:root{
  --logo-1:#df6e45;
  --logo-2:#a14f32;
  --logo-3:#592c1c;
  --paper:#FBFCFF;
  /* capa por defeito: Azul-noite e tampinhas (o JS aplica a escolha do visitante) */
  --cover:#1E2B45;
  --cover-deep:#151E30;
  --on-cover:#F4F1EA;
  --on-cover-soft:#D6D5D3;
  --cover-ink:var(--on-cover-soft);
  --hl:#FFB86B;
  --hl-soft:#FFEAD3;
  --hl-on-cover:#FFB86B;
  --pen:#1E2B45;
  --grid:rgba(30,43,69,.07);
  --rule:#DFE1E6;
  --ring:rgba(30,43,69,.26);
  --tape:rgba(255,255,255,.6);
  --action:#F2784B;
  --action-ink:#1B1D2A;
  --cap1:#FF9A4D;--cap2:#F28AB3;--cap3:#6EC1EA;--cap4:#79C98A;
  --red:#E0301E;
  --red-ink:#C21F0E;
  --yellow:var(--hl);
  --ink:#1B1D2A;
  --pencil:#474C5E;
  --green:#12884A;
  --cap-orange:#FF7A1A;
  --display:"Bricolage Grotesque", system-ui, sans-serif;
  --hand:"Gochi Hand", cursive;
  --body:"Atkinson Hyperlegible", system-ui, sans-serif;
  --cell:24px;
  --margin:clamp(20px, 6vw, 88px);
  --ease:cubic-bezier(.16,1,.3,1);
}
.paleta{position:fixed;right:14px;bottom:14px;z-index:60}
.paleta-toggle{display:flex;align-items:center;gap:10px;background:#fff;border:2px solid var(--ink);border-radius:999px;padding:6px 8px 6px 16px;box-shadow:0 10px 24px -14px rgba(8,10,20,.6);cursor:pointer;font:400 1.15rem/1 var(--hand);color:var(--pen)}
.paleta-toggle i{width:30px;height:30px;border-radius:50%;border:2px solid var(--ink);background:radial-gradient(circle at 70% 30%,var(--hl) 0 26%,transparent 27%),var(--cover)}
.paleta-panel{position:absolute;right:0;bottom:calc(100% + 10px);width:min(92vw,392px);background:#fff;border:2px solid var(--ink);border-radius:18px;padding:16px;box-shadow:0 22px 40px -20px rgba(8,10,20,.6);display:grid;grid-template-columns:repeat(3,1fr);gap:10px;transform-origin:bottom right;transition:opacity .2s var(--ease),transform .25s var(--ease)}
.paleta-panel[hidden]{display:grid;opacity:0;transform:scale(.96) translateY(6px);pointer-events:none;visibility:hidden}
.paleta-panel b{grid-column:1/-1;font:400 1.3rem/1 var(--hand);color:var(--pen);margin-bottom:2px}
.paleta-panel button{display:flex;flex-direction:column;align-items:flex-start;gap:6px;border:2px solid transparent;background:none;border-radius:12px;padding:6px;cursor:pointer;font:700 .78rem/1.15 var(--body);color:var(--ink);text-align:left}
.paleta-panel button:hover{background:var(--paper);border-color:var(--rule)}
.paleta-panel button[aria-pressed="true"]{border-color:var(--ink);background:var(--paper)}
.paleta-panel button span.sw{width:100%;height:40px;border-radius:8px;border:2px solid var(--ink);background:radial-gradient(circle at 78% 34%,var(--b) 0 13%,transparent 14%),radial-gradient(circle at 60% 70%,var(--c1) 0 9%,transparent 10%),radial-gradient(circle at 88% 74%,var(--c2) 0 8%,transparent 9%),var(--a)}
.paleta[hidden]{display:none}
html[data-dark] .cover h1 em{color:var(--ink);background:var(--hl);padding:0;box-shadow:.06em 0 0 var(--hl),-.06em 0 0 var(--hl);border-radius:4px;box-decoration-break:clone;-webkit-box-decoration-break:clone}
@media (max-width:760px){.paleta{bottom:84px;right:10px}}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font:400 1.125rem/1.6 var(--body);
  background-image:
    linear-gradient(var(--grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid) 1px, transparent 1px);
  background-size:var(--cell) var(--cell);
  background-position:-1px -1px;
}
::selection{background:var(--yellow);color:var(--ink)}
:focus-visible{outline:3px solid var(--red);outline-offset:3px;border-radius:4px}
a{color:var(--red-ink);text-underline-offset:.2em;text-decoration-thickness:2px}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{font-family:var(--display);font-weight:800;font-stretch:84%;line-height:1.02;letter-spacing:-.025em;margin:0;text-wrap:balance}
h2{font-size:clamp(2.25rem, 5.2vw, 4.25rem)}
h3{font-size:clamp(1.4rem, 2.2vw, 1.75rem);letter-spacing:-.015em;line-height:1.1}
p{margin:0 0 1em;max-width:62ch}
.hand{font-family:var(--hand);font-weight:400;letter-spacing:0}
.hl{color:var(--ink);background:linear-gradient(transparent 12%, var(--yellow) 12%, var(--yellow) 88%, transparent 88%);padding:0 .15em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.num{font-variant-numeric:tabular-nums lining-nums}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* page with red margin line */
.page{position:relative;padding:clamp(72px,10vw,136px) clamp(20px,5vw,72px) clamp(72px,10vw,136px) calc(var(--margin) + clamp(20px,3vw,48px))}
.page::before{content:"";position:absolute;top:0;bottom:0;left:var(--margin);width:2px;background:var(--red);opacity:.55;transition:opacity .4s var(--ease), background .4s}
.page[data-path].on::before{opacity:1;width:3px}
.page[data-path]:not(.on)::before{background:repeating-linear-gradient(var(--red) 0 10px, transparent 10px 18px);opacity:.5}
.inner{max-width:1180px;margin:0 auto}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.6em;font:700 1.0625rem/1 var(--body);padding:1em 1.4em;border-radius:10px;text-decoration:none;border:2px solid transparent;cursor:pointer;transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .2s}
.btn svg{width:20px;height:20px;flex:none}
.btn-yellow{background:var(--yellow);color:var(--ink);border-color:var(--ink);box-shadow:0 6px 14px -8px rgba(15,17,28,.45)}
.btn-yellow:hover{transform:translateY(-2px);box-shadow:0 12px 20px -10px rgba(15,17,28,.5)}
.btn-ghost{color:var(--on-cover);border-color:var(--on-cover)}
.btn-ghost:hover{background:rgba(255,255,255,.35)}
.btn-red{background:var(--action);color:var(--action-ink);border-color:var(--ink);box-shadow:0 6px 14px -8px rgba(15,17,28,.45)}
.btn-red:hover{transform:translateY(-2px)}
.btn-line{color:var(--ink);border-color:var(--ink);background:var(--paper)}
.btn-line:hover{background:var(--yellow)}

/* ============ NAV ============ */
.nav{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:10px clamp(16px,3vw,32px);background:rgba(251,252,255,.94);backdrop-filter:saturate(1.2) blur(6px);border-bottom:2px solid var(--ink)}
.brand{display:flex;align-items:center;text-decoration:none;color:var(--ink)}
.tabs{display:flex;gap:4px;list-style:none;margin:0;padding:0}
.tabs a{display:block;padding:10px 14px 12px;font:700 .95rem/1 var(--body);color:var(--ink);text-decoration:none;border-radius:8px 8px 0 0;position:relative}
.tabs a::after{content:"";position:absolute;left:14px;right:14px;bottom:4px;height:4px;border-radius:2px;background:var(--tab);transform:scaleX(.35);transform-origin:left;transition:transform .35s var(--ease)}
.tabs a:hover::after,.tabs a[aria-current]::after{transform:scaleX(1)}
.nav-right{display:flex;align-items:center;gap:10px}
.lang{font:700 .9rem/1 var(--body);display:flex;border:2px solid var(--ink);border-radius:8px;overflow:hidden}
.lang a{padding:8px 10px;text-decoration:none;color:var(--ink)}
.lang a[aria-current]{background:var(--ink);color:#fff}
.nav .btn{padding:.75em 1.1em;font-size:.95rem}
.navlink{font-weight:700;color:var(--ink);padding:8px 6px}
@media (max-width:1020px){.tabs{display:none}}
@media (max-width:760px){.nav .btn-red,.navlink{display:none}}

/* ============ HERO: cover + page ============ */
.hero{position:relative;display:grid;grid-template-columns:minmax(0,46fr) 28px minmax(0,54fr);min-height:clamp(640px,calc(100svh - 62px),940px);border-bottom:2px solid var(--ink)}
.cover{background:var(--cover);color:var(--on-cover);position:relative;overflow:hidden;padding:clamp(28px,4vw,56px) clamp(20px,4vw,56px) clamp(28px,4vw,48px);display:flex;flex-direction:column;justify-content:space-between;gap:28px}
.cover::after{content:"";position:absolute;inset:0;pointer-events:none;background:
  radial-gradient(120% 70% at 0% 0%, rgba(255,255,255,.22), transparent 55%),
  repeating-linear-gradient(115deg, rgba(60,40,20,.04) 0 1px, transparent 1px 5px)}
.caps{position:absolute;right:clamp(16px,3vw,44px);top:22px;width:clamp(170px,15vw,230px);height:190px;z-index:1;pointer-events:none}
.caps svg{position:absolute;width:var(--s);height:var(--s);left:var(--x);top:var(--y);transform:rotate(var(--r));filter:drop-shadow(0 3px 3px rgba(40,25,10,.25))}
@media (max-width:900px){.caps{top:auto;bottom:16px;right:8px;width:104px;height:74px}.caps svg{width:calc(var(--s)*.7);height:calc(var(--s)*.7)}.cover .ctas{position:relative;z-index:2}}
.label{position:relative;z-index:1;background:#fff;color:var(--ink);border-radius:14px;padding:14px 18px 10px;width:min(100%,380px);box-shadow:0 10px 22px -12px rgba(8,10,20,.55);border:2px solid var(--cover-deep)}
.label .row{display:flex;align-items:baseline;gap:10px;border-bottom:1.5px solid var(--rule);padding:4px 0 2px}
.label .row:last-child{border-bottom:0}
.label small{font:700 .72rem/1 var(--body);text-transform:uppercase;letter-spacing:.08em;color:var(--pencil);flex:none;width:72px}
.label .hand{font-size:1.45rem;line-height:1.1;color:var(--pen)}
.cover h1{position:relative;z-index:1;font-size:clamp(3rem,6.4vw,5.9rem);color:var(--on-cover);max-width:9ch}
.cover h1 em{font-style:normal;background:linear-gradient(transparent 58%,var(--hl) 58%,var(--hl) 92%,transparent 92%);padding:0 .06em}
.cover .lede{position:relative;z-index:1;color:var(--cover-ink);font-size:clamp(1.05rem,1.35vw,1.2rem);max-width:42ch;margin:0}
.cover .ctas{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:12px}
.spiral{background:var(--cover-deep);position:relative;background-image:radial-gradient(circle at 50% 50%, var(--paper) 0 5px, transparent 5.5px);background-size:28px 34px;background-position:center 10px}
.spiral::before{content:"";position:absolute;inset:0;background-image:radial-gradient(ellipse 13px 5px at 50% 50%, transparent 0 9px, #C7CCD8 9.5px 11.5px, transparent 12px);background-size:28px 34px;background-position:center 10px}
.sheet{position:relative;padding:clamp(28px,4vw,56px) clamp(20px,4vw,64px) clamp(28px,4vw,48px) clamp(56px,6vw,96px);display:flex;flex-direction:column;justify-content:center}
.sheet::before{content:"";position:absolute;top:0;bottom:0;left:clamp(36px,4vw,64px);width:2px;background:var(--red);opacity:.7}
.photo{position:absolute;z-index:3;width:clamp(190px,19vw,290px);transform:rotate(-4deg);background:#fff;padding:10px 10px 38px;box-shadow:0 18px 30px -18px rgba(10,20,50,.55),0 2px 6px rgba(10,20,50,.12)}
.photo img{aspect-ratio:1/1;object-fit:cover;width:100%;height:auto}
.photo figcaption{position:absolute;left:0;right:0;bottom:8px;text-align:center;font:400 1.3rem/1 var(--hand);color:var(--ink)}
.tape{position:absolute;width:92px;height:28px;background:var(--tape);box-shadow:0 1px 2px rgba(0,0,0,.08);top:-12px;left:50%;transform:translateX(-50%) rotate(3deg)}
.hero .photo{right:clamp(16px,2vw,28px);top:34px;width:clamp(160px,13.5vw,200px);transform:rotate(5deg);z-index:2}
@media (max-width:1180px) and (min-width:901px){.hero .photo{width:150px;top:40px}}
/* o título não pode ficar por baixo da foto (a partir de 1181px "Cada tampinha" cabe numa linha) */
@media (min-width:1181px){.cover h1{margin-top:clamp(40px,3.6vw,64px)}}
.sum{font-family:var(--hand);font-size:clamp(1.55rem,2.35vw,2.2rem);line-height:1.3;color:var(--pen)}
.sum .q{font-family:var(--body);font-size:1rem;line-height:1.5;color:var(--pencil);max-width:46ch;margin-bottom:18px}
.sum .q b{color:var(--ink)}
.sum .line{display:flex;align-items:baseline;gap:.4em;white-space:nowrap;min-height:1.55em}
.sum .line .op{color:var(--red-ink);width:1.1em;text-align:center}
.sum .rule{height:3px;background:var(--pen);margin:6px 0 10px;max-width:420px;border-radius:2px;transform-origin:left}
.sum .answer{position:relative;display:inline-block;color:var(--ink);font-size:clamp(1.8rem,2.8vw,2.6rem)}
.sum .answer svg{position:absolute;inset:-18px -26px -14px -22px;width:calc(100% + 48px);height:calc(100% + 32px);overflow:visible;pointer-events:none}
.sum .r{margin-top:18px;font-size:clamp(1.3rem,1.8vw,1.65rem);color:var(--ink)}
.sum .r b{color:var(--red-ink);font-weight:400}
.sheet .note-red{margin-top:22px;display:flex;align-items:center;gap:10px;font:400 1.35rem/1.1 var(--hand);color:var(--red-ink)}
.sheet .note-red svg{width:40px;height:40px}
/* draw-in */
@media (prefers-reduced-motion:no-preference){
.draw .line,.draw .answer,.draw .r{opacity:0;transform:translateY(6px);animation:ink .7s var(--ease) forwards}
.draw .rule{transform:scaleX(0);animation:rule .6s var(--ease) forwards}
.draw .answer path{stroke-dasharray:420;stroke-dashoffset:420;animation:circle 1s var(--ease) forwards;animation-delay:2.4s}
@keyframes ink{to{opacity:1;transform:none}}
@keyframes rule{to{transform:scaleX(1)}}
@keyframes circle{to{stroke-dashoffset:0}}
}

@media (max-width:900px){
  .hero{grid-template-columns:1fr;min-height:0}
  .spiral{height:26px;background-size:34px 26px;background-position:10px center}
  .spiral::before{background-image:radial-gradient(ellipse 5px 13px at 50% 50%, transparent 0 9px, #C7CCD8 9.5px 11.5px, transparent 12px);background-size:34px 26px;background-position:10px center}
  .hero .photo{right:14px;top:18px;width:124px;padding:6px 6px 26px}
  .hero .photo figcaption{font-size:1rem;bottom:5px}
  .hero .photo .tape{width:60px;height:20px}
  .label{width:calc(100% - 136px);padding:10px 12px 6px}
  .label small{width:auto;min-width:0;font-size:.7rem}
  .label .row{flex-direction:column;gap:0}
  .label .hand{font-size:1.08rem;overflow-wrap:anywhere}
  .report .stamp{top:-52px;right:-8px;width:92px;height:92px;font-size:.85rem}
  .report td:last-child{white-space:nowrap}
  .report h3,.report .sub{padding-right:64px}
  .cover h1{max-width:11ch}
  .sheet{padding-left:56px}
  .sheet::before{left:36px}
}

/* ============ HOW TO HELP ============ */
.choose{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:28px 0 48px}
.choose .hand{font-size:1.6rem;color:var(--pencil);margin-right:6px}
.chip{font:700 1rem/1 var(--body);padding:.8em 1.1em;border-radius:999px;border:2px solid var(--ink);background:var(--paper);color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;gap:.5em;transition:background .2s, transform .2s var(--ease)}
.chip:hover{transform:translateY(-1px)}
.chip[aria-pressed="true"]{background:var(--ink);color:#fff}
.chip .box{width:18px;height:18px;border:2px solid currentColor;border-radius:4px;display:grid;place-items:center}
.chip[aria-pressed="true"] .box::after{content:"";width:9px;height:5px;border-left:2.5px solid var(--yellow);border-bottom:2.5px solid var(--yellow);transform:rotate(-45deg) translate(1px,-1px)}
.ways{display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(20px,3vw,40px);align-items:start}
.way{position:relative;background:#fff;border:2px solid var(--ink);border-radius:18px;padding:clamp(22px,3vw,36px);transition:border-color .3s, box-shadow .3s}
.way.dim{border-style:dashed;border-color:#8C92A6}
.way.lit{box-shadow:0 18px 40px -26px rgba(20,30,80,.55)}
.way h3{margin-bottom:10px}
.way .who{font:400 1.3rem/1 var(--hand);color:var(--red-ink);margin-bottom:10px}
.steps{list-style:none;margin:22px 0 26px;padding:0;display:grid;gap:16px;counter-reset:s}
.steps li{display:grid;grid-template-columns:64px 1fr;gap:16px;align-items:center}
.steps .thumb{width:64px;height:64px;border-radius:14px;background:var(--paper);border:2px solid var(--ink);display:grid;place-items:center;position:relative}
.steps .thumb::before{counter-increment:s;content:counter(s);position:absolute;top:-10px;left:-10px;width:26px;height:26px;border-radius:50%;background:var(--red);color:#fff;font:700 .9rem/26px var(--body);text-align:center}
.steps .thumb svg{width:40px;height:40px}
.steps b{display:block;font-size:1.1rem}
.steps span{color:var(--pencil);font-size:1rem;line-height:1.45}
.side{display:grid;gap:clamp(20px,3vw,32px)}
.iban{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--paper);border:2px dashed var(--ink);border-radius:12px;padding:12px 14px;margin:14px 0}
.iban code{font:700 1.02rem/1.3 var(--body);letter-spacing:.02em;flex:1 1 220px}
.copy{font:700 .9rem/1 var(--body);background:var(--ink);color:#fff;border:0;border-radius:8px;padding:.7em 1em;cursor:pointer;min-width:92px}
.copy.done{background:var(--green)}
.small{font-size:1rem;color:var(--pencil)}
@media (max-width:900px){.ways{grid-template-columns:1fr}}

/* ============ THE SUM TABLE ============ */
.maths{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,64px);align-items:center;margin-top:40px}
.bigbag-photo{position:relative}
.bigbag-photo img{border-radius:6px;border:2px solid var(--ink);aspect-ratio:4/3;object-fit:cover;width:100%}
.bigbag-photo .scribble{position:absolute;right:-6px;top:-58px;font:400 1.6rem/1.05 var(--hand);color:var(--red-ink);transform:rotate(3deg);text-align:right}
.rates{width:100%;border-collapse:collapse;background:#fff;border:2px solid var(--ink);font-size:1.05rem}
.rates caption{text-align:left;font:400 1.35rem/1.2 var(--hand);color:var(--pencil);padding-bottom:10px;caption-side:top}
.rates th,.rates td{padding:14px 16px;text-align:left;border-bottom:1.5px solid var(--rule);vertical-align:middle}
.rates thead th{font:700 .8rem/1 var(--body);text-transform:uppercase;letter-spacing:.08em;color:var(--pencil);background:var(--paper);border-bottom:2px solid var(--ink)}
.rates td.eur{font:800 1.35rem/1 var(--display);white-space:nowrap;text-align:right}
.rates td.bag{font:400 1.4rem/1 var(--hand);color:var(--pen);white-space:nowrap;text-align:right}
.rates tr:last-child td{border-bottom:0}
.mat{display:flex;align-items:center;gap:12px}
.mat svg{width:34px;height:34px;flex:none}
.mat small{display:block;color:var(--pencil);font-size:.88rem}
.warn{margin-top:24px;display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;padding:18px 20px;border-radius:14px;background:#FFF4F2;border:2px solid var(--red)}
.warn svg{width:30px;height:30px;color:var(--red)}
.warn p{margin:0;font-size:1.02rem}
@media (max-width:900px){.maths{grid-template-columns:1fr}.bigbag-photo .scribble{position:static;text-align:left;transform:rotate(-2deg);margin-bottom:8px;font-size:1.35rem}}
@media (max-width:640px){.rates{font-size:.95rem}.rates th,.rates td{padding:10px 8px}.rates td.eur{font-size:1.05rem}.rates td.bag{font-size:1.15rem}.mat{gap:8px}.mat svg{width:24px;height:24px}.mat small{display:none}.rates thead th{font-size:.72rem;letter-spacing:.04em}}

/* ============ WORKSHEET ============ */
.worksheet{background:#fff;border:2px solid var(--ink);border-radius:20px;padding:clamp(20px,3vw,40px);margin-top:36px;position:relative}
.ws-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;align-items:end;border-bottom:2px solid var(--ink);padding-bottom:16px;margin-bottom:26px}
.ws-head .hand{font-size:1.5rem;color:var(--pen)}
.progress .score{font:800 1.1rem/1 var(--display);display:flex;align-items:center;gap:10px}
.progress .score span{font:400 1.8rem/1 var(--hand);color:var(--red-ink)}
.feedback{margin-top:20px;min-height:3.2em;font:400 1.5rem/1.25 var(--hand);color:var(--pen);display:flex;align-items:center;gap:12px}
.feedback.bad{color:var(--red-ink)}
.feedback svg{width:34px;height:34px;flex:none}
.stamp{position:absolute;right:clamp(16px,4vw,48px);top:-34px;width:132px;height:132px;border-radius:50%;border:4px solid var(--red);color:var(--red);display:grid;place-items:center;text-align:center;font:800 1.2rem/1 var(--display);text-transform:uppercase;letter-spacing:.02em;transform:rotate(-14deg) scale(1.6);opacity:0;pointer-events:none;background:rgba(255,255,255,.7)}
.stamp::before{content:"";position:absolute;inset:6px;border:2px dashed var(--red);border-radius:50%}
.stamp small{display:block;font:400 1rem/1 var(--hand);text-transform:none;margin-top:4px}
.stamp.on{animation:stamp .5s var(--ease) forwards}
@keyframes stamp{to{opacity:.92;transform:rotate(-14deg) scale(1)}}

/* ============ WHERE (timetable) ============ */
.where{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(24px,4vw,56px);margin-top:36px;align-items:start}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.filters .chip{font-size:.92rem;padding:.65em 1em}
.filters .chip .n{font:400 1.1rem/1 var(--hand);color:var(--red-ink)}
.filters .chip[aria-pressed="true"] .n{color:var(--yellow)}
.timetable{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:2px solid var(--ink);border-radius:14px;overflow:hidden}
.timetable th{font:700 .78rem/1 var(--body);text-transform:uppercase;letter-spacing:.08em;color:var(--pencil);text-align:left;padding:14px 16px;background:var(--paper);border-bottom:2px solid var(--ink)}
.timetable td{padding:14px 16px;border-bottom:1.5px solid var(--rule);vertical-align:middle}
.timetable tr:last-child td{border-bottom:0}
.timetable tr[hidden]{display:none}
.timetable td:first-child{font-weight:700}
.kind{display:inline-flex;align-items:center;gap:6px;font-size:.9rem;color:var(--pencil);white-space:nowrap}
.kind i{width:10px;height:10px;border-radius:50%;display:inline-block;background:var(--k)}
.maplink{font-weight:700;font-size:.95rem;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}
.maplink svg{width:16px;height:16px}
.volta{background:var(--cover);color:var(--on-cover);border-radius:18px;padding:26px 24px;position:relative}
.volta h3{color:var(--on-cover);margin-bottom:10px}
.volta p{color:var(--cover-ink);font-size:1rem}
.volta .hand{color:var(--hl-on-cover);font-size:1.45rem;line-height:1.15;display:block;margin:12px 0}
.volta ul{margin:0;padding-left:1.1em;color:var(--cover-ink);font-size:.98rem}
.nobody{margin-top:18px;background:#fff;border:2px dashed var(--ink);border-radius:14px;padding:18px 20px}
.nobody p{margin:0 0 10px;font-size:1rem}
@media (max-width:980px){.where{grid-template-columns:1fr}}
@media (max-width:640px){
  .timetable thead{display:none}
  .timetable tr{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:12px 14px;border-bottom:1.5px solid var(--rule)}
  .timetable td{padding:0;border:0}
  .timetable td:nth-child(2){grid-column:1}
  .timetable td:nth-child(3){grid-column:1;font-size:.95rem;color:var(--pencil)}
  .timetable td:nth-child(4){grid-row:1 / span 3;grid-column:2;align-self:center}
}

/* ============ STORY ============ */
.story{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,5vw,80px);margin-top:36px;align-items:start}
.essay{font-size:1.14rem;line-height:1.75}
.essay p:first-of-type::first-line{font-weight:700}
.essay .sign{font:400 2rem/1 var(--hand);color:var(--pen);margin-top:8px}
details.more summary{cursor:pointer;font-weight:700;color:var(--red-ink);list-style:none;display:inline-flex;align-items:center;gap:8px;margin:6px 0 18px}
details.more summary::-webkit-details-marker{display:none}
details.more summary::after{content:"";width:9px;height:9px;border-right:2.5px solid currentColor;border-bottom:2.5px solid currentColor;transform:rotate(45deg) translateY(-3px);transition:transform .3s var(--ease)}
details.more[open] summary::after{transform:rotate(-135deg) translate(-2px,-1px)}
.album{display:grid;grid-template-columns:1fr 1fr;gap:28px 22px;padding:10px 6px}
.album .photo{position:relative;width:auto}
.album .p1{grid-column:1 / -1;width:78%;justify-self:center;transform:rotate(-2.5deg)}
.album .p2,.album .p3{width:100%;padding-bottom:10px}
.album .p2 figcaption,.album .p3 figcaption{position:static;margin-top:8px;font-size:1.15rem;line-height:1.1}
.album .p2{transform:rotate(3deg)}
.album .p3{transform:rotate(-2deg);margin-top:18px}
.album .p2 img,.album .p3 img{aspect-ratio:4/3}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:56px;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.facts div{padding:22px 20px;border-right:1.5px solid var(--rule)}
.facts div:last-child{border-right:0}
.facts b{display:block;font:800 clamp(1.6rem,2.8vw,2.3rem)/1 var(--display);margin-bottom:8px}
.facts span{font-size:1rem;color:var(--pencil);line-height:1.45;display:block}
@media (max-width:900px){.story{grid-template-columns:1fr}.album .p2,.album .p3{padding:6px 6px 8px}.album .p2 figcaption,.album .p3 figcaption{font-size:1rem}.album .p1{grid-column:1 / -1}.facts{grid-template-columns:1fr}.facts div{border-right:0;border-bottom:1.5px solid var(--rule)}.facts div:last-child{border-bottom:0}}

/* ============ EVENTS ============ */
.agenda{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);margin-top:36px;align-items:start}
.next{display:grid;grid-template-columns:260px 1fr;align-items:center;background:var(--cover);color:var(--on-cover);border-radius:20px;overflow:hidden;border:2px solid var(--ink)}
.next img{width:100%;aspect-ratio:1/1;object-fit:cover;background:#fff}
.next .body{padding:26px 26px 24px}
.next .when{font:400 1.7rem/1 var(--hand);color:var(--hl-on-cover);margin-bottom:10px}
.next h3{color:var(--on-cover);font-size:clamp(1.6rem,2.6vw,2.2rem);margin-bottom:14px}
.next dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0 0 20px;color:var(--cover-ink);font-size:1rem}
.next dt{font-weight:700;color:var(--on-cover)}
.next dd{margin:0}
.past{list-style:none;margin:22px 0 0;padding:0;border-top:2px solid var(--ink)}
.past li{display:grid;grid-template-columns:86px 1fr;gap:16px;padding:14px 0;border-bottom:1.5px solid var(--rule);align-items:baseline}
.past .d{font:800 1.05rem/1 var(--display)}
.past .d small{display:block;font:400 1rem/1 var(--hand);color:var(--pencil);margin-top:4px}
.report{background:#fff;border:2px solid var(--ink);border-radius:18px;padding:24px 24px 20px;position:relative}
.report h3{margin-bottom:4px}
.report .sub{color:var(--pencil);font-size:1rem;margin-bottom:16px}
.report table{width:100%;border-collapse:collapse;font-size:1.02rem}
.report td{padding:10px 0;border-bottom:1.5px solid var(--rule)}
.report td:last-child{text-align:right;font:400 1.4rem/1 var(--hand);color:var(--pen)}
.report tr.total td{border-bottom:0;border-top:2px solid var(--ink);font-weight:700;padding-top:14px}
.report tr.total td:last-child{font:800 1.7rem/1 var(--display);color:var(--ink)}
.report blockquote{margin:18px 0 0;padding:14px 16px;background:var(--paper);border-radius:12px;font:400 1.3rem/1.3 var(--hand);color:var(--pen)}
.report .stamp{opacity:.9;transform:rotate(12deg);top:-44px;right:-14px;width:112px;height:112px;font-size:1rem}
.report-photos{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}
.report-photos img{border-radius:10px;aspect-ratio:4/3;object-fit:cover;border:1.5px solid var(--ink)}
.host{margin-top:26px;padding:20px 22px;border-radius:14px;border:2px dashed var(--ink);background:#fff}
.host ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:12px 0 0}
.host li{font:700 .88rem/1 var(--body);padding:.55em .8em;border-radius:999px;background:var(--paper);border:1.5px solid var(--ink)}
@media (max-width:980px){.agenda{grid-template-columns:1fr}}
@media (max-width:560px){.next{grid-template-columns:1fr}}

/* ============ FAQ (lista simples, + / −) ============ */
.faq{list-style:none;margin:36px 0 0;padding:0;border-top:2px solid var(--ink);max-width:880px}
.faq li{border-bottom:1.5px solid var(--rule)}
.faq summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 4px;font:700 1.12rem/1.35 var(--body)}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--pen)}
.faq .pm{flex:none;width:34px;height:34px;border-radius:50%;border:2px solid var(--ink);display:grid;place-items:center;background:#fff;transition:background .2s,transform .3s var(--ease)}
.faq .pm::before,.faq .pm::after{content:"";grid-area:1/1;width:14px;height:2.5px;border-radius:2px;background:var(--ink);transition:transform .3s var(--ease)}
.faq .pm::after{transform:rotate(90deg)}
.faq details[open] .pm{background:var(--hl)}
.faq details[open] .pm::after{transform:rotate(0deg)}
.faq .a{padding:0 60px 20px 4px;font-size:1.05rem;max-width:68ch}
.faq .a p,.faq .a ul{margin:0 0 10px}
.faq .a ul{padding-left:1.2em}

/* ============ CONTACT ============ */
.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(24px,5vw,72px);margin-top:36px}
.people{display:grid;gap:14px}
.person{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;align-items:center;background:#fff;border:2px solid var(--ink);border-radius:14px;padding:16px 18px}
.person .who{grid-row:span 2;width:52px;height:52px;border-radius:50%;background:var(--yellow);border:2px solid var(--ink);display:grid;place-items:center;font:400 1.35rem/1 var(--hand)}
.person b{font-size:1.08rem}
.person span{font-size:.98rem;color:var(--pencil)}
.person .who{color:var(--ink)}
form.join{background:#fff;border:2px solid var(--ink);border-radius:20px;padding:clamp(20px,3vw,34px)}
.field{display:grid;gap:6px;margin-bottom:16px}
.field label{font-weight:700;font-size:1rem}
.field input,.field select,.field textarea{font:400 1.05rem/1.4 var(--body);padding:12px 14px;border-radius:10px;border:2px solid var(--ink);background:var(--paper);color:var(--ink);width:100%}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--cover);box-shadow:0 0 0 4px var(--ring)}
.field textarea{min-height:110px;resize:vertical;background-image:linear-gradient(transparent 27px, var(--rule) 28px);background-size:100% 28px;line-height:28px}
.checks{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 18px;border:0;padding:0}
.checks legend{font-weight:700;margin-bottom:8px;padding:0}
.checks label{display:inline-flex;align-items:center;gap:8px;padding:.55em .9em;border:2px solid var(--ink);border-radius:999px;font-weight:700;font-size:.92rem;cursor:pointer;background:var(--paper)}
.checks input{accent-color:var(--red);width:18px;height:18px;margin:0}
.checks label:has(input:checked){background:var(--yellow)}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:.95rem;color:var(--pencil);margin-bottom:18px}
.consent input{accent-color:var(--red);width:20px;height:20px;margin-top:2px;flex:none}
@media (max-width:900px){.contact{grid-template-columns:1fr}}

/* ============ FOOTER ============ */
footer{background:var(--cover);color:var(--on-cover-soft);padding:56px clamp(20px,5vw,72px) 110px}
footer .inner{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:36px}
footer h2{color:var(--on-cover);font-size:clamp(2rem,4vw,3.2rem);max-width:14ch}
footer h3{font:700 .8rem/1 var(--body);text-transform:uppercase;letter-spacing:.08em;color:var(--on-cover);margin:0 0 12px}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:1rem}
footer a{color:var(--on-cover)}
footer .fine{grid-column:1 / -1;border-top:1.5px solid color-mix(in srgb,var(--on-cover) 25%,transparent);padding-top:18px;font-size:.9rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px}
@media (max-width:820px){footer .inner{grid-template-columns:1fr}}

/* mobile action bar */
.actionbar{position:fixed;left:10px;right:10px;bottom:10px;z-index:50;display:none;gap:8px;padding:8px;background:var(--ink);border-radius:16px;box-shadow:0 12px 30px -10px rgba(0,0,0,.5)}
.actionbar a{flex:1;justify-content:center;padding:.9em .6em;font-size:1rem}
@media (max-width:760px){.actionbar{display:flex}}

/* ============ ALBUM (slides) ============ */
.album-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin:32px 0 18px}
.album-head .filters{margin:0}
.nav-btns{display:flex;align-items:center;gap:10px}
.nav-btns .count{font:400 1.4rem/1 var(--hand);color:var(--pen);min-width:4.5ch;text-align:center}
.round{width:52px;height:52px;border-radius:50%;border:2px solid var(--ink);background:#fff;display:grid;place-items:center;cursor:pointer;transition:background .2s,transform .2s var(--ease)}
.round:hover{background:var(--hl);transform:translateY(-1px)}
.round:disabled{opacity:.35;cursor:default;transform:none;background:#fff}
.round svg{width:22px;height:22px}
.track{margin-right:calc(50% - 50vw);padding-right:max(24px,calc(50vw - 50%)) !important;display:flex;gap:26px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:4px;padding:28px 4px 34px;scrollbar-width:thin;scrollbar-color:var(--cover) transparent;overscroll-behavior-x:contain}
.track::-webkit-scrollbar{height:8px}.track::-webkit-scrollbar-thumb{background:var(--cover);border-radius:8px}
.slide{flex:none;scroll-snap-align:start;height:clamp(330px,40vw,470px);display:flex;flex-direction:column;background:#fff;padding:10px 10px 0;box-shadow:0 18px 30px -20px rgba(10,20,50,.55),0 2px 6px rgba(10,20,50,.1);position:relative;margin:0}
.slide:nth-child(odd){transform:rotate(-1.2deg)}.slide:nth-child(even){transform:rotate(1deg)}
.slide[hidden]{display:none}
.slide .media{flex:1;min-height:0;position:relative;overflow:hidden;background:var(--ink)}
.slide img,.slide video,.slide .poster{height:100%;width:100%;object-fit:cover;display:block}
.slide.l{aspect-ratio:4/3.55}.slide.w{aspect-ratio:16/10.6}.slide.p{aspect-ratio:3/4.4}.slide.v{aspect-ratio:9/15.6}
.slide figcaption{padding:10px 4px 12px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 10px}
.slide figcaption .hand{font-size:1.3rem;line-height:1.1;color:var(--ink)}
.slide figcaption small{font:700 .72rem/1 var(--body);text-transform:uppercase;letter-spacing:.06em;color:var(--pencil);white-space:nowrap}
.slide .tape{top:-12px}
.play{position:absolute;inset:0;border:0;padding:0;cursor:pointer;background:none;display:block;width:100%;height:100%}
.play::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 55%,rgba(10,12,20,.55))}
.play .btn-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:78px;height:78px;border-radius:50%;background:var(--hl);border:3px solid var(--ink);display:grid;place-items:center;z-index:1;transition:transform .25s var(--ease)}
.play:hover .btn-play{transform:translate(-50%,-50%) scale(1.08)}
.play .btn-play svg{width:28px;height:28px;margin-left:4px}
.play .dur{position:absolute;right:10px;bottom:10px;z-index:1;font:700 .85rem/1 var(--body);color:#fff;background:rgba(10,12,20,.7);padding:.4em .6em;border-radius:6px}
.album-note{font-size:1rem;color:var(--pencil);margin-top:6px}
@media (max-width:760px){.track{gap:18px;align-items:flex-start}.slide,.slide.l,.slide.w,.slide.p,.slide.v{height:auto;aspect-ratio:auto;width:min(80vw,330px)}.slide .media{flex:none;aspect-ratio:4/3}.slide.p .media{aspect-ratio:3/4}.slide.v .media{aspect-ratio:3/4}.nav-btns .round{width:46px;height:46px}.album-head .filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-right:calc(50% - 50vw);padding-right:20px}.album-head .filters .chip{flex:none}}

/* photo additions */
.ways-photo{position:relative;width:min(100%,250px);margin:0;transform:rotate(-3deg);flex:none}
.team{display:flex;align-items:center;gap:28px;padding:8px 10px 0}
.team p{font-size:clamp(1.35rem,1.8vw,1.7rem);line-height:1.25;color:var(--pen);margin:0;max-width:18ch}
.ways>.way[data-way="tampas"]{grid-row:1}.ways>.team{grid-column:1;grid-row:2}.ways>.side{grid-column:2;grid-row:1 / span 2}
@media (max-width:900px){.ways>.team,.ways>.side{grid-column:auto;grid-row:auto}.team{gap:16px}.ways-photo{width:170px}}
.ways-photo img{aspect-ratio:4/5 !important;object-position:50% 30%}
.bigbag-photo .extra{position:absolute;right:-18px;bottom:-40px;width:clamp(150px,16vw,220px);transform:rotate(4deg);padding:8px 8px 32px}
.bigbag-photo .extra img{aspect-ratio:4/3}
.bigbag-photo .extra figcaption{font-size:1.1rem}
.school{width:100%;margin:0 0 22px;transform:rotate(-1.5deg);position:relative}
.school img{aspect-ratio:4/3 !important;object-position:50% 60%}
.thanks{position:relative;min-height:clamp(360px,42vw,560px);display:grid;align-items:end;color:#fff;overflow:hidden;border-top:2px solid var(--ink)}
.thanks img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.thanks::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,10,20,.30) 0%,rgba(8,10,20,.55) 45%,rgba(8,10,20,.82) 100%)}
.thanks div{position:relative;z-index:1;padding:clamp(24px,5vw,64px);max-width:1180px;margin:0 auto;width:100%}
.thanks h2{color:#fff;font-size:clamp(2.4rem,6vw,5rem);max-width:13ch}
.thanks p{color:#fff;font:400 clamp(1.3rem,2vw,1.7rem)/1.2 var(--hand);margin:12px 0 0}
@media (max-width:900px){.bigbag-photo .extra{right:6px;bottom:-30px;width:150px}}

/* section heading block */
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:clamp(20px,4vw,64px);align-items:end}
.sec-head p{font-size:1.14rem;color:var(--pencil);margin:0}
@media (max-width:900px){.sec-head{grid-template-columns:1fr}}
.divider{border:0;height:2px;background:var(--ink);margin:0}
main{overflow-x:clip}

a.plain{color:inherit;text-decoration:none}
a.plain:hover{text-decoration:underline;text-decoration-color:var(--action)}

/* =====================================================================
   PÁGINAS SECUNDÁRIAS
   ===================================================================== */
.subhero{position:relative;overflow:hidden;background:var(--cover);color:var(--on-cover);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px 48px;align-items:end;padding:clamp(40px,6vw,80px) clamp(20px,5vw,72px) clamp(36px,5vw,64px)}
.subhero::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 70% at 0% 0%,rgba(255,255,255,.18),transparent 55%)}
.subhero .caps{top:18px;right:clamp(16px,3vw,44px);height:150px}
.subhero-in{position:relative;z-index:1;max-width:760px}
.subhero h1{font-size:clamp(2.6rem,6vw,5rem);color:var(--on-cover);margin:14px 0 16px}
.subhero .lede{color:var(--on-cover-soft);font-size:clamp(1.05rem,1.4vw,1.25rem);max-width:56ch;margin:0}
.subhero .label{position:relative;z-index:1;align-self:end;width:min(100%,330px)}
.subhero .label .hand{font-size:1.3rem}
.crumbs{font:700 .92rem/1.4 var(--body);color:var(--on-cover-soft);display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center}
.crumbs a{color:var(--on-cover);text-decoration-thickness:1.5px}
.crumbs [aria-current]{opacity:.85}
.spiral-h{height:26px;background:var(--cover-deep);background-image:radial-gradient(circle at 50% 50%,var(--paper) 0 5px,transparent 5.5px);background-size:34px 26px;background-position:10px center;border-bottom:2px solid var(--ink)}
@media (max-width:900px){.subhero{grid-template-columns:1fr}.subhero .caps{display:none}.subhero .label{width:100%}}
.h-sm{font-size:clamp(1.8rem,3.2vw,2.6rem);margin-bottom:22px}
.sub .page{padding-block:clamp(56px,7vw,96px)}

/* agenda */
.next-lg{grid-template-columns:minmax(220px,340px) 1fr}
.next-lg .body{padding:32px}
.evlist{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.evlist li{border-bottom:1.5px solid var(--rule)}
.evrow{display:grid;grid-template-columns:110px minmax(0,1fr) 150px;gap:24px;align-items:center;padding:20px 4px;color:var(--ink);text-decoration:none;transition:background .2s}
.evrow:hover{background:var(--hl-soft)}
.evrow:hover b{text-decoration:underline;text-decoration-color:var(--action);text-decoration-thickness:2px}
.evdate{font:400 1.25rem/1.1 var(--hand);color:var(--pen)}
.evdate b{display:block;font:800 2.2rem/1 var(--display);font-stretch:84%;color:var(--ink)}
.evtxt{display:grid;gap:4px}
.evtxt small{font:700 .75rem/1 var(--body);text-transform:uppercase;letter-spacing:.08em;color:var(--pencil)}
.evtxt b{font:800 1.45rem/1.1 var(--display);font-stretch:84%}
.evtxt span{color:var(--pencil);font-size:1rem}
.evtxt .res{justify-self:start;margin-top:6px;font:700 .85rem/1 var(--body);color:var(--ink);background:var(--hl);border:1.5px solid var(--ink);border-radius:999px;padding:.45em .8em}

@media (max-width:700px){.evrow{grid-template-columns:78px minmax(0,1fr)}.evdate b{font-size:1.8rem}}
.org{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:center}
.org h2{margin-bottom:16px}
.org p{font-size:1.12rem;color:var(--pencil)}
.steps-plain{margin:0}
@media (max-width:900px){.org{grid-template-columns:1fr}.next-lg{grid-template-columns:1fr}}

/* página de evento */
.evgrid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(28px,5vw,72px);align-items:start}
.evgrid-rev{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}
.evposter .photo{position:relative;width:100%;transform:rotate(-2deg)}
.evposter.duo{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.evposter.duo .photo:nth-child(2){transform:rotate(2.5deg);margin-top:40px}
.ficha{display:grid;grid-template-columns:auto 1fr;margin:0;border-top:2px solid var(--ink)}
.ficha dt,.ficha dd{padding:13px 0;border-bottom:1.5px solid var(--rule);margin:0}
.ficha dt{font:700 .78rem/1.6 var(--body);text-transform:uppercase;letter-spacing:.08em;color:var(--pencil);padding-right:24px}
.ficha dd{font-size:1.06rem}
.evactions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.timeline{list-style:none;margin:0;padding:0 0 0 22px;border-left:3px solid var(--action);display:grid;gap:18px}
.timeline li{position:relative;display:grid;grid-template-columns:78px 1fr;gap:14px;align-items:baseline}
.timeline li::before{content:"";position:absolute;left:-32px;top:6px;width:14px;height:14px;border-radius:50%;background:var(--paper);border:3px solid var(--action)}
.timeline time{font:400 1.45rem/1 var(--hand);color:var(--pen)}
.timeline span{font-size:1.08rem}
.howto{background:#fff;border:2px solid var(--ink);border-radius:18px;padding:26px}
.checklist{list-style:none;margin:10px 0 14px;padding:0;display:grid;gap:8px}
.checklist li{display:flex;gap:10px;align-items:center}
.checklist li::before{content:"";width:18px;height:18px;border:2px solid var(--ink);border-radius:4px;flex:none;background:var(--hl-soft)}
.sel{user-select:all;word-break:break-all}
.note{margin-top:26px;background:var(--hl-soft);border:2px dashed var(--ink);border-radius:14px;padding:18px 20px}
.note .hand{font-size:1.45rem;color:var(--pen);margin:0 0 6px}
.note p:last-child{margin:0}
.note-todo{background:#fff;border-color:var(--pencil)}
.note-todo b{color:var(--red-ink)}
.tally{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;border-top:2px solid var(--ink)}
.tally li{padding:18px 16px 18px 0;border-bottom:1.5px solid var(--rule)}
.tally b{display:block;font:800 clamp(1.6rem,2.6vw,2.2rem)/1.05 var(--display);font-stretch:84%}
.tally span{color:var(--pencil);font-size:1rem}
.vidrow{display:grid;grid-template-columns:repeat(3,minmax(0,280px));gap:26px}
.vidrow .slide{height:auto;aspect-ratio:auto;width:100%}
.vidrow .slide .media{aspect-ratio:9/16;flex:none}
.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 24px;align-items:start}
.gallery .photo{position:relative;width:100%}
.gallery .photo img{aspect-ratio:4/3}
.gallery .photo:nth-child(3n+1){transform:rotate(-1.8deg)}.gallery .photo:nth-child(3n+2){transform:rotate(1.4deg)}.gallery .photo:nth-child(3n){transform:rotate(-.6deg)}
.gallery .g-tall{grid-row:span 2}.gallery .g-tall img{aspect-ratio:3/4.3}
.gallery .g-wide{grid-column:span 2}
.evnav{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:center;margin-top:64px;padding-top:24px;border-top:2px solid var(--ink)}
.evnav a{color:var(--ink);text-decoration:none;font:800 1.15rem/1.2 var(--display);font-stretch:84%}
.evnav a small{display:block;font:700 .75rem/1 var(--body);text-transform:uppercase;letter-spacing:.08em;color:var(--pencil);margin-bottom:6px;font-stretch:100%}
.evnav a:hover{text-decoration:underline;text-decoration-color:var(--action)}
.evnav .evnav-next{text-align:right}
.evnav .evnav-all{font:700 .95rem/1 var(--body);border:2px solid var(--ink);border-radius:999px;padding:.7em 1.1em;background:#fff}
@media (max-width:900px){.evgrid,.evgrid-rev{grid-template-columns:1fr}.vidrow{grid-template-columns:repeat(3,minmax(200px,1fr));overflow-x:auto;padding-bottom:8px}.gallery{grid-template-columns:1fr 1fr}.gallery .g-wide{grid-column:span 2}.tally{grid-template-columns:1fr}.evnav{grid-template-columns:1fr}.evnav .evnav-next{text-align:left}}

/* história */
.storyfull{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,5vw,80px);align-items:start}
.storyfull .essay{font-size:1.16rem;line-height:1.8}
.storyside{display:grid;gap:34px}
.storyside .photo{position:relative;width:100%}
.storyside .photo:nth-of-type(odd){transform:rotate(-2deg)}.storyside .photo:nth-of-type(even){transform:rotate(2deg)}
.storyside .slide{transform:rotate(-1deg)}
@media (max-width:900px){.storyfull{grid-template-columns:1fr}}

/* legal */
.legal{display:grid;grid-template-columns:230px minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:start}
.legal>.note{grid-column:1/-1;margin:0 0 8px}
.toc{position:sticky;top:90px;font-size:.98rem}
.toc b{display:block;font:400 1.3rem/1 var(--hand);color:var(--pen);margin-bottom:10px}
.toc ol{margin:0;padding-left:1.2em;display:grid;gap:6px}
.toc a{color:var(--ink)}
.legal-body{max-width:70ch}
.legal-body h2{font-size:clamp(1.5rem,2.4vw,1.9rem);margin:40px 0 12px;scroll-margin-top:90px}
.legal-body h2:first-child{margin-top:0}
.legal-body ul{padding-left:1.2em;margin:0 0 1em}
.legal-body li{margin-bottom:6px}
.todo{background:var(--hl-soft);border-bottom:2px dashed var(--red);padding:0 .2em}
.tablewrap{overflow-x:auto;margin:6px 0 14px}
.legal-table{min-width:560px}
.legal-table code{font:700 .95rem/1 ui-monospace,Menlo,monospace;background:var(--hl-soft);padding:.2em .4em;border-radius:4px}
.forget{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:8px 0 10px}
@media (max-width:900px){.legal{grid-template-columns:1fr}.toc{position:static}}

/* 404 */
.s404{grid-template-columns:1fr;min-height:70svh;align-items:center}
.big404{font:800 clamp(6rem,20vw,14rem)/.85 var(--display);font-stretch:84%;color:var(--on-cover);margin:0;display:inline-block;background:linear-gradient(transparent 62%,var(--hl) 62%,var(--hl) 90%,transparent 90%);padding:0 .06em}

.legal-single{grid-template-columns:minmax(0,1fr)}
.subhero .label small{width:96px}
.subhero .label{width:min(100%,370px)}

/* ============ MOLDURAS DOS EVENTOS (sem fita-cola) ============ */
.next .next-photo{position:relative;width:auto;margin:26px 8px 26px 26px;transform:rotate(-3deg);padding:10px 10px 36px;align-self:center}
.next .next-photo img{width:100%;height:auto;min-height:0;aspect-ratio:1/1;object-fit:cover}
.next .next-photo figcaption{bottom:8px;font-size:1.15rem}
.next-lg .next-photo{margin:32px 10px 32px 32px}
.mini-photo{display:block;flex:none;width:84px;background:#fff;padding:5px 5px 14px;box-shadow:0 10px 16px -10px rgba(10,20,50,.55),0 1px 3px rgba(10,20,50,.15);transform:rotate(3deg);position:relative;transition:transform .25s var(--ease)}
.mini-photo img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block}
.past li:nth-child(even) .mini-photo,.evlist li:nth-child(even) .mini-photo{transform:rotate(-3deg)}
.past li{grid-template-columns:86px 1fr 84px;align-items:center}
.past li:hover .mini-photo{transform:rotate(0) scale(1.05)}
.evrow .mini-photo{width:130px;padding:7px 7px 20px}
.evrow:hover .mini-photo{transform:rotate(0) scale(1.04)}
.report-photos{gap:16px;margin-top:20px;padding:4px}
.report-photos .mini-photo{width:auto;padding:6px 6px 18px}
.report-photos .mini-photo img{aspect-ratio:4/3;border:0;border-radius:0}
.report-photos .mini-photo:nth-child(1){transform:rotate(-2deg)}
.report-photos .mini-photo:nth-child(2){transform:rotate(2deg)}
@media (max-width:560px){.next .next-photo{margin:20px 20px 6px;justify-self:center;width:min(78%,300px)}.past li{grid-template-columns:70px 1fr 64px}.mini-photo{width:64px}}
@media (max-width:700px){.evrow .mini-photo{display:none}}

/* ============ LOGÓTIPOS: sempre em caixa branca, tamanho fixo ============ */
.logo-chip{display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1.5px solid var(--rule);border-radius:10px;padding:6px 10px;vertical-align:middle;line-height:0}
.logo-chip .logo-img{height:100%;width:100%;max-width:none;object-fit:contain}
.logo-chip.xs{width:56px;height:24px;padding:2px 4px;border-radius:5px;margin-right:4px}
.logo-chip.sm{height:30px;padding:4px 7px;border-radius:7px}
.logo-chip.sm .logo-img{width:auto;max-height:20px;max-width:78px}
.logo-chip.lg{width:120px;height:56px;padding:7px 9px}
.logo-chip.mini{width:96px;height:58px;padding:5px 8px;border-radius:8px}
.ficha-logos .logo-chip.mini{width:84px;height:42px}
.foot-logos{display:flex!important;flex-wrap:wrap;gap:6px!important}
.foot-logos .logo-chip{width:58px;height:30px;padding:4px 5px;border-radius:6px;border-color:transparent}
.rates .mat small{display:flex;align-items:center;gap:2px;margin-top:3px}
.with-logo .logo-chip{float:right;margin:2px 0 8px 14px}
.logos-inline{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px!important}
.label .row{position:relative}
.label-logo{width:20px;height:20px;margin-left:auto;align-self:center;flex:none}
.volta-logo{float:right;margin:0 0 6px 12px;border-color:transparent}
.who-logo{background:#fff!important;padding:6px}
.who-logo img{width:100%;height:100%;object-fit:contain}

/* parceiros */
.partners{list-style:none;margin:36px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:2px solid var(--ink)}
.partner{display:grid;grid-template-columns:120px minmax(0,1fr);gap:20px;align-items:start;padding:28px 24px 28px 0;border-bottom:1.5px solid var(--rule)}
.partner:nth-child(odd){border-right:1.5px solid var(--rule)}
.partner:nth-child(even){padding-left:28px}
.partner-logos{display:grid;gap:6px}
.partner h3{margin-bottom:2px}
.partner .where{font:400 1.2rem/1.2 var(--hand);color:var(--pen);margin:0 0 10px}
.partner p{font-size:1.02rem;margin-bottom:10px}
.partner a{font-weight:700}
@media (max-width:900px){.partners{grid-template-columns:1fr}.partner,.partner:nth-child(odd),.partner:nth-child(even){border-right:0;padding-left:0;padding-right:0}}
@media (max-width:520px){.partner{grid-template-columns:1fr;gap:14px}}

/* apoios da comunidade: separados e em escala menor */
.community{margin-top:34px;padding-top:22px;border-top:1.5px dashed var(--rule);font-size:1.02rem;color:var(--pencil)}
.community b{color:var(--ink)}
.community-h{font:700 .78rem/1 var(--body);text-transform:uppercase;letter-spacing:.08em;color:var(--pencil);margin:0 0 14px}
.community-logos{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-wrap:wrap;gap:14px 28px}
.community-logos li{display:flex;align-items:center;gap:14px;font-size:.95rem;color:var(--pencil)}
.community-logos li .logo-chip{flex:none}
.community p{font-size:.92rem;color:var(--pencil);margin:0}
.ficha-logos{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}

/* logótipo original: cabeçalho a cores da capa, rodapé na versão branca */
.brand-logo{display:block;height:56px;width:auto;aspect-ratio:318.33/113.92}
.foot-logo{display:block;height:72px;width:auto;aspect-ratio:318.33/113.92;margin-bottom:16px}
@media (max-width:1180px) and (min-width:521px){.brand-logo{height:48px}}
@media (max-width:520px){.brand-logo{height:46px}}

/* telemóvel: nada sai do ecrã na agenda e no boletim */
.agenda>*{min-width:0}
.next dd,.ficha dd,.evtxt span{overflow-wrap:anywhere}
@media (max-width:980px){.agenda{grid-template-columns:minmax(0,1fr)}}
@media (max-width:560px){
  .past li{grid-template-columns:62px minmax(0,1fr) 58px;gap:12px}
  .past .mini-photo{width:56px}
  .report{padding:20px 16px}
  .report .stamp{right:6px;top:-40px;width:86px;height:86px;font-size:.8rem}
  .report h3,.report .sub{padding-right:70px}
  .community-logos{gap:12px}
  .community-logos li{width:100%}
}
@media (max-width:560px){
  .evposter .photo,.storyside .photo,.gallery .photo{width:92%;margin-inline:auto}
  .evposter .photo,.storyside .photo:nth-of-type(odd),.storyside .photo:nth-of-type(even){transform:rotate(-1.2deg)}
  .gallery{gap:22px 14px}
}

/* ============ FICHA DE TRABALHO: jogo, uma peça de cada vez ============ */
.name-field{display:flex;align-items:baseline;gap:10px;flex:1 1 240px}
.name-field input{flex:1;min-width:0;font:400 1.5rem/1.2 var(--hand);color:var(--pen);border:0;border-bottom:2px solid var(--pen);background:transparent;padding:2px 4px;border-radius:0}
.name-field input::placeholder{color:color-mix(in srgb,var(--pen) 45%,transparent)}
.name-field input:focus{outline:none;border-bottom-color:var(--action);background:var(--hl-soft)}
.dots{list-style:none;display:flex;gap:8px;margin:0 0 20px;padding:0}
.dots li{width:14px;height:14px;border-radius:50%;border:2px solid var(--ink);background:#fff;transition:background .3s}
.dots li.ok{background:var(--green)}.dots li.no{background:var(--red)}
.stage{display:grid;justify-items:center;gap:8px;margin-bottom:22px;position:relative}
.stage .q{font-size:1.6rem;color:var(--pen);margin:0}
.card-item{display:grid;justify-items:center;gap:8px;min-width:min(100%,280px);padding:20px 26px 16px;background:#fff;border:2px solid var(--ink);border-radius:18px;box-shadow:0 14px 24px -16px rgba(20,30,80,.55);font:800 1.35rem/1.15 var(--display);font-stretch:84%;text-align:center}
.card-item svg{width:84px;height:84px}
.card-item small{font:400 1rem/1 var(--hand);color:var(--pencil)}
.card-item.in{animation:cardIn .45s var(--ease)}
.card-item.fly{animation:cardFly .6s var(--ease) forwards}
.card-item.shake{animation:cardShake .45s ease}
@keyframes cardIn{from{opacity:0;transform:translateY(-14px) rotate(-4deg) scale(.96)}}
@keyframes cardFly{to{opacity:0;transform:translateY(40px) scale(.7) rotate(8deg)}}
@keyframes cardShake{25%{transform:translateX(-8px) rotate(-2deg)}50%{transform:translateX(8px) rotate(2deg)}75%{transform:translateX(-4px)}}
.streak{position:absolute;right:0;top:36px;font:400 1.35rem/1 var(--hand);color:var(--green);transform:rotate(6deg)}
.bins{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.bin{position:relative;display:grid;justify-items:start;gap:4px;text-align:left;border:2px solid var(--ink);border-radius:16px;padding:14px 14px 12px;background:#fff;cursor:pointer;font:inherit;color:var(--ink);transition:background .2s,transform .2s var(--ease),box-shadow .2s}
.bin:hover{transform:translateY(-2px);box-shadow:0 10px 18px -12px rgba(20,30,80,.6);background:var(--hl-soft)}
.bin:active{transform:translateY(1px)}
.bin svg{width:44px;height:44px}
.bin b{font:800 1.2rem/1.05 var(--display);font-stretch:84%}
.bin small{font-size:.85rem;color:var(--pencil)}
.bin .count{position:absolute;top:10px;right:12px;min-width:30px;height:30px;border-radius:15px;display:grid;place-items:center;font:400 1.2rem/1 var(--hand);color:var(--pen);border:1.5px dashed var(--pen)}
.bin.bin-no{background:#FFF4F2}
.bin.right{background:color-mix(in srgb,var(--green) 14%,#fff);border-color:var(--green);transform:scale(1.03)}
.bin.wrong{background:#FFE3DF;border-color:var(--red);animation:cardShake .45s ease}
.feedback{margin-top:18px;min-height:3.2em;font:400 1.45rem/1.25 var(--hand);color:var(--pen);display:flex;align-items:center;gap:12px}
.feedback.bad{color:var(--red-ink)}
.feedback svg{width:34px;height:34px;flex:none}
.game.done .bins,.game.done .dots{opacity:.55;pointer-events:none}
.stars{display:inline-flex;gap:4px}
@media (max-width:900px){.bins{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.bin{padding:12px 12px 10px}.bin svg{width:34px;height:34px}.card-item{padding:16px 18px 12px}.card-item svg{width:70px;height:70px}.stage .q{font-size:1.4rem}.streak{top:auto;bottom:-6px;right:6px}}
@media (prefers-reduced-motion:reduce){.card-item.in,.card-item.fly,.card-item.shake,.bin.wrong{animation:none}}

/* ============ PARTILHA (jogo e eventos) ============ */
.share{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin:6px 0 12px}
.share-label{width:100%;font:400 1.25rem/1.2 var(--hand);color:var(--pen)}
.share-btn{display:inline-flex;align-items:center;gap:7px;font:700 .95rem/1 var(--body);padding:.7em 1em;border-radius:999px;border:2px solid var(--ink);background:#fff;color:var(--ink);cursor:pointer;transition:background .2s,transform .2s var(--ease)}
.share-btn:hover{background:var(--hl);transform:translateY(-1px)}
.share-btn svg{width:18px;height:18px}
.share-btn.done{background:var(--green);border-color:var(--green);color:#fff}
.evactions .share{justify-content:flex-start;margin:0;width:100%}
.evactions .share-label{width:auto;margin-right:4px}

/* ============ "Quero ajudar com": filtro no telemóvel ============ */
@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--action) 55%,transparent)}100%{box-shadow:0 0 0 14px transparent}}
.way.pulse{animation:pulse .9s ease-out}
@media (max-width:900px){
  .way.filtered-out{display:none}
  .ways[data-choice="dinheiro"] .team,.ways[data-choice="tempo"] .team{display:none}
  .way{scroll-margin-top:80px}
}

/* ============ capa no telemóvel: foto sem tapar a etiqueta ============ */
.hero .cover h1{max-width:none}
.hero .cover h1 em{white-space:nowrap}
.hero .label{width:min(100%,340px)}
@media (max-width:900px){
  .hero .label{width:calc(100% - 150px)}
  .hero .photo{right:10px;top:22px;width:118px}
  .hero .label .row:last-child .hand{font-size:1rem}
  .label-logo{display:none}
}
.share-oncover{justify-content:flex-start;margin:14px 0 0}
.share-oncover .share-btn{font-size:.85rem;padding:.55em .85em}
.name-field{min-width:0;max-width:100%}
.name-field input{width:100%}
@media (max-width:760px){.paleta-toggle{padding:5px}.paleta-toggle span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}}

/* ============ DIPLOMA DE AMIGO DO MARTIM ============ */
.diploma{margin-top:6px;display:grid;justify-items:center;gap:18px}
.diploma[hidden]{display:none}
.dip-paper{position:relative;width:min(100%,760px);background:#FFFDF7;color:var(--ink);text-align:center;padding:clamp(28px,5vw,52px) clamp(20px,5vw,56px) clamp(24px,4vw,40px);border:6px double var(--cover);outline:2px solid var(--cover);outline-offset:-16px;box-shadow:0 26px 40px -26px rgba(20,30,80,.55),0 2px 6px rgba(20,30,80,.12);transform:rotate(-.6deg)}
.dip-paper::before{content:"";position:absolute;inset:22px;pointer-events:none;background:
  radial-gradient(circle at 50% 0,color-mix(in srgb,var(--hl) 22%,transparent),transparent 60%),
  repeating-linear-gradient(45deg,color-mix(in srgb,var(--cover) 4%,transparent) 0 2px,transparent 2px 9px)}
.dip-paper>*{position:relative}
.dip-corner{position:absolute;width:26px;height:26px;border-radius:50%;background:var(--hl);border:2px solid var(--ink);z-index:1}
.dip-corner.c1{top:8px;left:8px}.dip-corner.c2{top:8px;right:8px}.dip-corner.c3{bottom:8px;left:8px}.dip-corner.c4{bottom:8px;right:8px}
.dip-head{display:flex;flex-direction:column;align-items:center;gap:8px;max-width:none;margin:0 0 10px;font:700 .78rem/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--pen)}
.dip-mark{height:46px;width:auto;aspect-ratio:318.33/113.92}
.dip-title{font-size:clamp(1.8rem,4.6vw,3rem);line-height:1.02;margin:0 auto 12px;max-width:16ch}
.dip-certify{font:400 1.35rem/1 var(--hand);color:var(--pen);margin:0 0 4px}
.dip-name-wrap{display:block;margin:0 auto 12px;max-width:520px}
.dip-name{width:100%;text-align:center;font:400 clamp(2.2rem,6vw,3.4rem)/1.1 var(--hand);color:var(--logo-1);background:transparent;border:0;border-bottom:2px solid var(--pen);padding:0 8px 4px;border-radius:0}
.dip-name::placeholder{color:color-mix(in srgb,var(--pen) 40%,transparent);font-size:.6em}
.dip-name:focus{outline:none;background:var(--hl-soft)}
.dip-body{font-size:1.08rem;line-height:1.6;max-width:52ch;margin:0 auto 12px}
.dip-stars{display:flex;flex-direction:column;align-items:center;gap:6px;margin:0 0 20px;font:400 1.3rem/1.2 var(--hand);color:var(--pen)}
.stars{display:inline-flex;gap:6px}
.stars svg{width:34px;height:34px;fill:var(--hl)}
.stars svg.off{fill:#fff;opacity:.7}
.dip-foot{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:16px}
.dip-sig{display:grid;gap:4px;justify-items:center}
.dip-sig .hand{font-size:1.9rem;line-height:1;color:var(--pen);padding:0 16px 6px;border-bottom:1.5px solid var(--ink);min-width:140px}
.dip-sig small{font:700 .72rem/1 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--pencil)}
.dip-seal{width:118px;height:118px;border-radius:50%;border:4px solid var(--red);color:var(--red);display:grid;place-content:center;gap:2px;transform:rotate(-12deg);background:rgba(224,48,30,.05);position:relative}
.dip-seal::before{content:"";position:absolute;inset:7px;border:2px dashed var(--red);border-radius:50%}
.dip-seal span{font:800 .8rem/1.05 var(--display);text-transform:uppercase}
.dip-seal b{font:800 1.5rem/1 var(--display)}
.dip-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.dip-tip{max-width:none;margin:14px 0 0;text-align:center;font-size:1.2rem;line-height:1.35;color:var(--pen)}
.dip-tip-btn{font:inherit;color:inherit;background:linear-gradient(transparent 55%,var(--hl) 55%);border:0;padding:0 .15em;cursor:pointer;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.dip-tip-btn:focus-visible{outline:2px solid var(--pen);outline-offset:2px}
@media (max-width:560px){.dip-paper{transform:none;outline-offset:-12px}.dip-foot{grid-template-columns:1fr 1fr}.dip-seal{grid-column:1/-1;grid-row:1;justify-self:center;width:96px;height:96px}.dip-sig .hand{font-size:1.5rem;min-width:0;padding:0 6px 4px}}
@media (max-width:1180px) and (min-width:901px){.hero .label{width:calc(100% - 175px)}.hero .label .row{flex-direction:column;gap:0}.hero .label small{width:auto}}

/* ================= desafio: níveis ================= */
.levels{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:-6px 0 20px}
.levels .hand{font-size:1.4rem;color:var(--pen);margin-right:4px}
.levels button{font:700 .95rem/1 var(--body);padding:.6em .95em;border:2px solid var(--ink);border-radius:999px;background:#fff;color:var(--ink);cursor:pointer;display:inline-flex;align-items:baseline;gap:.45em}
.levels button small{font-weight:400;font-size:.82rem;color:var(--pencil)}
.levels button[aria-pressed="true"]{background:var(--ink);color:#fff}
.levels button[aria-pressed="true"] small{color:rgba(255,255,255,.8)}
.levels button:focus-visible{outline:3px solid var(--pen);outline-offset:2px}
.game.done .levels{opacity:.55}

/* ================= home: último boletim, ligações novas ================= */
.boletim{margin-top:22px;display:grid;grid-template-columns:auto 1fr;gap:6px 16px;align-items:center;background:#fff;border:2px solid var(--ink);border-radius:14px;padding:16px 18px}
.boletim .big{font:800 clamp(2rem,3.4vw,2.6rem)/1 var(--display);font-stretch:84%;color:var(--ink);grid-row:1/span 2}
.boletim p{margin:0}
.boletim small{grid-column:1/-1;color:var(--pencil);font-size:.9rem;border-top:1.5px solid var(--rule);padding-top:8px;margin-top:4px}
.where-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}

/* ================= mapa ================= */
.mapa-tools{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;margin-bottom:18px}
.mapa-tools .filters{margin:0}
.mapa-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:24px;align-items:start}
.mapa-frame{position:relative;border:2px solid var(--ink);border-radius:18px;overflow:hidden;background:#E9EEF3;box-shadow:0 18px 30px -22px rgba(10,20,50,.55)}
#map{height:clamp(420px,62vh,640px);z-index:1}
#map .leaflet-tile-pane{filter:saturate(.75) contrast(.96)}
.pin{display:block;width:26px;height:26px;border-radius:50%;background:var(--k);border:3px solid #fff;box-shadow:0 0 0 2px var(--ink),0 6px 10px -4px rgba(0,0,0,.5);position:relative}
.pin::after{content:"";position:absolute;inset:5px;border-radius:50%;border:1.5px dashed rgba(255,255,255,.8)}
.pin.on{transform:scale(1.25)}
.pin-me{display:block;width:18px;height:18px;border-radius:50%;background:#2B6FE0;border:3px solid #fff;box-shadow:0 0 0 2px #2B6FE0,0 0 0 10px rgba(43,111,224,.18)}
.leaflet-popup-content{font:400 1rem/1.4 var(--body);color:var(--ink);margin:12px 16px}
.leaflet-popup-content b{display:block;font-size:1.05rem}
.leaflet-popup-content a{font-weight:700;color:var(--ink)}
.leaflet-container a.leaflet-popup-close-button{color:var(--ink)}
.mapa-list{list-style:none;margin:0;padding:0;background:#fff;border:2px solid var(--ink);border-radius:18px;overflow:auto;max-height:clamp(420px,62vh,640px)}
.mapa-list li{border-bottom:1.5px solid var(--rule)}
.mapa-list li:last-child{border-bottom:0}
.mapa-list li[hidden]{display:none}
.mapa-item{display:grid;grid-template-columns:auto 1fr auto;gap:2px 12px;align-items:center;width:100%;text-align:left;background:none;border:0;padding:12px 16px;font:inherit;color:var(--ink);cursor:pointer}
.mapa-item:hover,.mapa-item[aria-current="true"]{background:var(--hl-soft)}
.mapa-item:focus-visible{outline:3px solid var(--pen);outline-offset:-3px}
.mapa-item .pin{width:18px;height:18px;border-width:2px;grid-row:1/span 2}
.mapa-item .pin::after{display:none}
.mapa-item b{font-weight:700;line-height:1.25}
.mapa-item small{grid-column:2;color:var(--pencil);font-size:.9rem}
.mapa-item .km{grid-row:1/span 2;grid-column:3;font:400 1.2rem/1 var(--hand);color:var(--pen);white-space:nowrap}
.mapa-status{min-height:1.4em;margin:10px 0 0;color:var(--pencil);font-size:.95rem}
.mapa-foot{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:28px}
.mapa-foot .note{margin:0}
@media (max-width:900px){.mapa-grid{grid-template-columns:1fr}#map{height:380px}.mapa-list{max-height:none}.mapa-foot{grid-template-columns:1fr}}

/* ================= organiza uma recolha ================= */
.passos{list-style:none;margin:32px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;counter-reset:p}
.passos li{counter-increment:p;background:#fff;border:2px solid var(--ink);border-radius:16px;padding:22px 20px 20px;position:relative}
.passos li::before{content:counter(p);display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--hl);border:2px solid var(--ink);font:800 1.4rem/1 var(--display);margin-bottom:14px}
.passos h3{font-size:1.35rem;margin-bottom:8px}
.passos p{margin:0;font-size:1rem}
.passos a{font-weight:700;color:var(--ink)}
@media (max-width:1000px){.passos{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.passos{grid-template-columns:1fr}}
.regras{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:26px}
.regra{background:#fff;border:2px solid var(--ink);border-radius:14px;padding:18px}
.regra svg{width:44px;height:44px;display:block;margin-bottom:10px}
.regra h3{font-size:1.2rem;margin-bottom:6px}
.regra p{margin:0;font-size:.98rem;color:var(--pencil)}
.regra.no{background:#FFF6F4;border-color:var(--red-ink)}
.regra.no h3{color:var(--red-ink)}
@media (max-width:900px){.regras{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.regras{grid-template-columns:1fr}}
.ideias{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:12px}
.ideias li{display:grid;grid-template-columns:28px 1fr;gap:10px;font-size:1.06rem}
.ideias li::before{content:"✓";font:400 1.5rem/1 var(--hand);color:var(--green)}
.carrinha{background:var(--cover);color:var(--on-cover);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.carrinha h2{color:var(--on-cover)}
.carrinha p{color:var(--on-cover-soft);font-size:1.12rem}
.carrinha .ficha{background:#fff;color:var(--ink);border-radius:14px;border:2px solid var(--ink);padding:6px 18px}
.org>.photo,.carrinha .photo{position:relative;width:min(100%,420px);transform:rotate(2deg);margin:0 auto;justify-self:center}

/* ================= cartaz ================= */
.cartaz-ctrl{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px 28px;align-items:end;background:#fff;border:2px solid var(--ink);border-radius:18px;padding:20px 22px;margin-bottom:34px}
.cartaz-ctrl .field{margin:0}
.cartaz-ctrl .opts{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;grid-column:1/-1;font-size:1rem}
.cartaz-ctrl .opts label{display:inline-flex;gap:8px;align-items:center;cursor:pointer}
.cartaz-ctrl .opts input{width:20px;height:20px;accent-color:var(--red)}
.cartaz-ctrl .btns{display:flex;flex-wrap:wrap;gap:10px}
@media (max-width:760px){.cartaz-ctrl{grid-template-columns:1fr}}
.sheets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px;align-items:start}
.sheets figure{margin:0}
.sheets figcaption{font:400 1.35rem/1.2 var(--hand);color:var(--pen);margin-top:12px;text-align:center}
@media (max-width:900px){.sheets{grid-template-columns:1fr}}
.a4{aspect-ratio:210/297;width:100%;background:#fff;box-shadow:0 22px 40px -24px rgba(10,20,50,.6),0 0 0 1px rgba(27,29,42,.2);container-type:inline-size;position:relative;overflow:hidden;color:var(--ink);-webkit-print-color-adjust:exact;print-color-adjust:exact}
.poster{display:flex;flex-direction:column}
.poster-top{background:var(--cover);color:var(--on-cover);padding:4.4cqw 6cqw 3.6cqw;position:relative}
.poster-top .pmark{width:24cqw;height:auto;display:block;background:#fff;border-radius:2.4cqw;padding:1.6cqw 2.4cqw;border:.5cqw solid var(--ink)}
.poster-top .proc{position:absolute;right:6cqw;top:6cqw;font:700 2.1cqw/1.3 var(--body);letter-spacing:.14em;text-transform:uppercase;text-align:right;color:var(--on-cover)}
.poster-top h2{font-size:7.8cqw;line-height:.98;margin-top:3cqw;color:var(--on-cover);max-width:none}
.poster-top h2 em{font-style:normal;background:linear-gradient(transparent 58%,var(--hl) 58%,var(--hl) 92%,transparent 92%)}
[data-dark] .poster-top h2 em{background:var(--hl);color:var(--ink);padding:0 .08em}
.poster-where{font:400 4.6cqw/1.1 var(--hand);color:var(--on-cover);margin:2cqw 0 0;overflow-wrap:anywhere}
.poster-where:empty{display:none}
.poster-mid{padding:3.4cqw 6cqw 0;display:flex;flex-direction:column;gap:2.4cqw}
.poster-sep{font:400 4.3cqw/1 var(--hand);color:var(--pen);margin:0}
.poster-bins{display:grid;grid-template-columns:repeat(3,1fr);gap:2.6cqw}
.poster-bins div{border:.55cqw solid var(--ink);border-radius:2.6cqw;padding:2cqw 1.6cqw 1.8cqw;text-align:center}
.poster-bins svg{width:8cqw;height:8cqw;display:block;margin:0 auto 1cqw}
.poster-bins b{display:block;font:800 4.4cqw/1 var(--display);font-stretch:84%}
.poster-bins small{display:block;font:400 3cqw/1.25 var(--body);color:var(--ink);margin-top:.9cqw}
.poster-no{display:flex;gap:2cqw;align-items:flex-start;background:#FFF6F4;border:.45cqw dashed var(--red-ink);border-radius:2.2cqw;padding:2cqw 2.6cqw;font:400 3.9cqw/1.3 var(--body);margin:0}
.poster-no svg{width:6cqw;height:6cqw;flex:none}
.poster-no b{color:var(--red-ink)}
.poster-bot{display:grid;grid-template-columns:auto 1fr auto;gap:3.4cqw;align-items:center;padding:2.6cqw 6cqw 4.2cqw;margin-top:auto}
.poster-bot .pmid{display:flex;flex-direction:column;gap:2.4cqw}
.poster-bot .pqr-txt{margin:0;font:700 2.9cqw/1.3 var(--body)}
.poster-bot .pqr-txt span{display:block;font:400 3.8cqw/1.1 var(--hand);color:var(--pen)}
.poster-bot .qr{width:19cqw;height:19cqw;padding:1.2cqw;border:.5cqw solid var(--ink);border-radius:1.6cqw;background:#fff}
.poster-bot .qr svg{display:block;width:100%;height:100%}
.poster-bot .pphoto{position:relative;background:#fff;padding:1.2cqw 1.2cqw 4.4cqw;box-shadow:0 1.6cqw 3cqw -1.8cqw rgba(0,0,0,.55),0 0 0 .2cqw rgba(0,0,0,.08);transform:rotate(-3deg);width:21cqw}
.poster-bot .pphoto img{display:block;width:100%;aspect-ratio:1;object-fit:cover}
.poster-bot .pphoto span{position:absolute;left:0;right:0;bottom:1.1cqw;text-align:center;font:400 2.6cqw/1 var(--hand)}
.poster-bot .pquote{font:400 4.8cqw/1.1 var(--hand);color:var(--pen);margin:0}
.poster-qr{display:flex;gap:2.4cqw;align-items:center;justify-content:flex-end;text-align:right}
.poster-qr .qr{width:18cqw;height:18cqw;padding:1.2cqw;border:.5cqw solid var(--ink);border-radius:1.6cqw;background:#fff}
.poster-qr .qr svg{display:block;width:100%;height:100%}
.poster-qr p{margin:0;font:700 2.9cqw/1.3 var(--body)}
.poster-qr p span{display:block;font:400 3.8cqw/1.1 var(--hand);color:var(--pen)}
.poster-left{display:flex;flex-direction:column;gap:2cqw}
.labels{display:grid;grid-template-rows:repeat(3,1fr);padding:4cqw;gap:3cqw}
.etq{border:.6cqw dashed var(--ink);border-radius:3cqw;display:grid;grid-template-columns:auto 1fr;gap:1cqw 4cqw;align-items:center;padding:3cqw 5cqw;position:relative}
.etq svg.ico{width:17cqw;height:17cqw;grid-row:1/span 2}
.etq b{font:800 9cqw/1 var(--display);font-stretch:84%;letter-spacing:-.02em}
.etq small{font:400 4.8cqw/1.3 var(--body);color:var(--ink)}
.etq .who{position:absolute;right:4cqw;top:3cqw;font:700 1.9cqw/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--pen)}
.etq.plastico{background:color-mix(in srgb,var(--cap-orange) 10%,#fff)}
.etq.caricas{background:#F2F3F6}
.etq.cortica{background:#F7EFE6}
.ink-saver .poster-top{background:#fff;color:var(--ink);border-bottom:.6cqw solid var(--ink)}
.ink-saver .poster-top h2,.ink-saver .poster-where,.ink-saver .poster-top .proc{color:var(--ink)}
.ink-saver .etq{background:#fff!important}
/* página com nome: margem zero só nas folhas A4 (cartaz, etiquetas, brochura) */
@page sheet{size:A4;margin:0}
.a4{page:sheet}
@media print{
  body:has(.cartaz-page){background:#fff!important}
  body:has(.cartaz-page)>*:not(main),body:has(.cartaz-page) main>*:not(.cartaz-page),.cartaz-page .cartaz-ctrl,.cartaz-page .sec-head,.cartaz-page .note,body:has(.cartaz-page) .paleta,body:has(.cartaz-page) .actionbar{display:none!important}
  .cartaz-page{padding:0!important}
  .cartaz-page .inner{max-width:none}
  .sheets{display:block}
  .sheets figure{break-after:page;page-break-after:always}
  .sheets figcaption{display:none}
  .a4{width:210mm;height:297mm;box-shadow:none;aspect-ratio:auto}
  .poster-bot .pphoto{box-shadow:none;border:.3cqw solid #C9CDD6}
  body.print-cartaz .sheets figure:not(.f-cartaz),body.print-etiquetas .sheets figure:not(.f-etiquetas){display:none}
}

/* ================= mural ================= */
.meu{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,64px);align-items:center}
@media (max-width:900px){.meu{grid-template-columns:1fr}}
.mini-dip{background:#FFFDF7;border:5px double var(--cover);outline:1.5px solid var(--cover);outline-offset:-11px;padding:26px 24px 20px;text-align:center;position:relative;box-shadow:0 18px 28px -20px rgba(10,20,50,.55);transform:rotate(-1deg)}
.mini-dip .t{font:800 1.25rem/1.05 var(--display);font-stretch:84%}
.mini-dip .nm{font:400 clamp(2rem,4vw,2.6rem)/1.05 var(--hand);color:var(--logo-1);margin:8px 0 6px;overflow-wrap:anywhere;border-bottom:1.5px solid var(--pen);padding-bottom:6px}
.mini-dip .sc{font-size:.95rem;color:var(--pencil);margin:6px 0 0}
.mini-dip .st{display:flex;justify-content:center;gap:4px;margin-top:8px}
.mini-dip .st svg{width:22px;height:22px;fill:var(--hl)}
.mini-dip .st svg.off{fill:#fff;opacity:.7}
.mini-dip .tp{position:absolute;width:74px;height:22px;background:var(--tape);box-shadow:0 1px 2px rgba(0,0,0,.1);top:-11px;left:50%;transform:translateX(-50%) rotate(-3deg)}
.mural{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:34px 24px;margin-top:30px}
.mural .mini-dip{padding:22px 16px 16px}
.mural .mini-dip:nth-child(3n+2){transform:rotate(1.2deg)}
.mural .mini-dip:nth-child(3n){transform:rotate(-.4deg)}
.mural .mini-dip .nm{font-size:1.9rem}
.mural .vazio{border:2px dashed var(--pencil);border-radius:6px;min-height:170px;display:grid;place-items:center;text-align:center;padding:18px;font:400 1.35rem/1.2 var(--hand);color:var(--pencil);background:rgba(255,255,255,.6)}
.mural-count{font:400 1.6rem/1.2 var(--hand);color:var(--pen);margin:0}
.meu-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.meu-status{min-height:1.4em;margin-top:12px;color:var(--pencil)}
.join-status{min-height:1.4em;margin:12px 0 0;color:var(--pencil);font-size:.98rem}
#meu-dip .mural{grid-template-columns:1fr;max-width:340px;margin:0}
.etq{align-content:center}
@media (max-width:560px){
  .boletim{grid-template-columns:1fr}
  .boletim .big{grid-row:auto}
  .levels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
  .levels .hand{grid-column:1/-1}
  .levels button{flex-direction:column;align-items:center;gap:3px;padding:.6em .4em;border-radius:12px}
}

/* ================= diploma → mural (consentimento) ================= */
.dip-mural{display:flex;gap:10px;align-items:flex-start;justify-content:center;max-width:560px;margin:16px auto 0;font-size:1rem;line-height:1.4;cursor:pointer;text-align:left}
.dip-mural input{width:20px;height:20px;flex:none;margin-top:1px;accent-color:var(--red)}
.dip-mural-st{max-width:none;min-height:1.4em;margin:6px 0 0;text-align:center;font-weight:700;color:var(--green)}
.dip-mural-st a{color:var(--ink)}

/* ================= mural: top 10 ================= */
.board-tabs{display:flex;gap:0;margin:30px 0 0;border-bottom:2px solid var(--ink)}
.board-tabs button{font:800 1.25rem/1 var(--display);font-stretch:84%;padding:.8em 1.3em .7em;border:2px solid var(--ink);border-bottom:0;border-radius:14px 14px 0 0;background:var(--paper);color:var(--pencil);cursor:pointer;margin-right:-2px;position:relative;top:2px}
.board-tabs button[aria-selected="true"]{background:#fff;color:var(--ink);z-index:1;box-shadow:inset 0 5px 0 var(--hl)}
.board-tabs button:focus-visible{outline:3px solid var(--pen);outline-offset:2px}
.board{list-style:none;margin:0;padding:6px 0;background:#fff;border:2px solid var(--ink);border-top:0;border-radius:0 0 18px 18px}
.board li{display:grid;grid-template-columns:52px minmax(0,1fr) auto 64px 84px 110px;gap:14px;align-items:center;padding:12px 20px;border-bottom:1.5px solid var(--rule)}
.board li:last-child{border-bottom:0}
.board .rk{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:2px solid var(--ink);font:800 1.15rem/1 var(--display);background:#fff}
.board .p1 .rk{background:#F6C343}.board .p2 .rk{background:#D5DAE3}.board .p3 .rk{background:#E3A06A}
.board .p1 .rk,.board .p2 .rk,.board .p3 .rk{width:44px;height:44px;box-shadow:0 0 0 4px #fff,0 0 0 6px var(--ink)}
.board .who{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;min-width:0}
.board .who b{font:400 1.7rem/1.05 var(--hand);color:var(--logo-1);overflow-wrap:anywhere}
.board .who small{color:var(--pencil);font-size:.92rem}
.board .who em{font-style:normal;font:700 .72rem/1 var(--body);letter-spacing:.1em;text-transform:uppercase;background:var(--hl);color:var(--ink);padding:.35em .6em;border-radius:999px}
.board .st{display:flex;gap:2px}.board .st svg{width:18px;height:18px;fill:var(--hl)}.board .st svg.off{fill:#fff;opacity:.7}
.board .sc{font:800 1.2rem/1 var(--display);text-align:right}
.board .tm{text-align:right;color:var(--pen);font-weight:700}
.board .dt{text-align:right;color:var(--pencil);font-size:.9rem}
.board li.me{background:var(--hl-soft)}
.board li.empty .rk{border-style:dashed;color:var(--pencil);background:transparent}
.board li.empty .who{font:400 1.3rem/1 var(--hand);color:var(--pencil)}
.board-note{margin:12px 0 18px;color:var(--pencil);font-size:.95rem}
@media (max-width:760px){
  .board li{grid-template-columns:44px minmax(0,1fr) auto;grid-template-areas:"rk who sc" "rk st tm";gap:4px 12px;padding:12px 14px}
  .board .rk{grid-area:rk}.board .who{grid-area:who}.board .sc{grid-area:sc}.board .st{grid-area:st}.board .tm{grid-area:tm}.board .dt{display:none}
  .board li.empty{grid-template-areas:"rk who"}
  .board-tabs button{flex:1;padding:.8em .4em .7em;font-size:1.1rem}
}
.regra-lista{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:7px}
.regra-lista li{display:grid;grid-template-columns:22px 1fr;gap:8px;align-items:start;font-size:1rem;line-height:1.35;color:var(--ink)}
.regra-lista li::before{font:400 1.35rem/1 var(--hand);text-align:center}
.regra-lista li.sim::before{content:"✓";color:var(--green)}
.regra-lista li.nao::before{content:"✗";color:var(--red-ink)}

/* ================= brochura (8 páginas A4) ================= */
.bk-ctrl{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.brochura-page .share{justify-content:flex-start;margin:0 0 34px}
.book{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 30px}
.book figure{margin:0}
.book figcaption{font:400 1.3rem/1.2 var(--hand);color:var(--pen);margin-top:10px;text-align:center}
@media (max-width:900px){.book{grid-template-columns:1fr}}
.bk{display:flex;flex-direction:column;gap:2.2cqw;padding:7cqw 7.5cqw 5.5cqw;font:400 2.25cqw/1.5 var(--body);color:var(--ink)}
.bk h2{font-size:7.4cqw;line-height:.98;margin:0;max-width:none}
.bk h3{font-size:3cqw;margin:0 0 1.2cqw}
.bk p{margin:0;max-width:none}
.bk-kicker{font:400 3.4cqw/1 var(--hand)!important;color:var(--pen);margin-bottom:-1cqw!important}
.bk-lede{font-size:2.6cqw;line-height:1.45;color:var(--ink)}
.bk-text{display:flex;flex-direction:column;gap:1.8cqw}
.bk-cols{display:grid;grid-template-columns:1.25fr 1fr;gap:4.5cqw;align-items:start}
.bk-stack{display:flex;flex-direction:column;gap:5cqw;padding-top:1cqw}
.bk-quote{font:400 3.3cqw/1.25 var(--hand);color:var(--pen);border-left:.6cqw solid var(--hl);padding-left:2.4cqw}
.bk-photo{position:relative;background:#fff;padding:1.3cqw 1.3cqw 5cqw;box-shadow:0 1.6cqw 3cqw -1.8cqw rgba(0,0,0,.5),0 0 0 .2cqw rgba(0,0,0,.08);transform:rotate(1.6deg)}
.bk-photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.bk-photo span{position:absolute;left:0;right:0;bottom:1.4cqw;text-align:center;font:400 2.8cqw/1 var(--hand);color:var(--ink)}
.bk-photo::before{content:"";position:absolute;width:16cqw;height:4cqw;background:var(--tape);box-shadow:0 .2cqw .4cqw rgba(0,0,0,.08);top:-2cqw;left:50%;transform:translateX(-50%) rotate(-3deg)}
.bk-tilt{transform:rotate(-2deg)}
.bk-wide{margin-top:auto;transform:rotate(-.8deg)}
.bk-wide img{aspect-ratio:3.1/1}
.bk-folio{display:flex;justify-content:space-between;margin-top:auto!important;padding-top:2cqw;border-top:.3cqw solid var(--rule);font:700 1.6cqw/1 var(--body)!important;letter-spacing:.12em;text-transform:uppercase;color:var(--pencil)}
.bk-wide+.bk-folio{margin-top:2cqw!important}
/* capa e contracapa */
.bk-cover{background:var(--cover);color:var(--on-cover);position:relative}
.bk-cover-top{display:flex;justify-content:space-between;align-items:flex-start}
.bk-mark{width:30cqw;height:auto;background:#fff;border-radius:2.4cqw;padding:1.8cqw 2.6cqw;border:.5cqw solid var(--ink)}
.bk-proc{font:700 2cqw/1.4 var(--body);letter-spacing:.14em;text-transform:uppercase;text-align:right;color:var(--on-cover)}
.bk-title{font-size:12.6cqw!important;color:var(--on-cover);margin-top:5cqw!important}
.bk-title em{font-style:normal;background:linear-gradient(transparent 58%,var(--hl) 58%,var(--hl) 92%,transparent 92%)}
[data-dark] .bk-title em{background:var(--hl);color:var(--ink);padding:0 .06em}
.bk-photo-xl{width:62cqw;align-self:center;margin:3cqw 0 2cqw;transform:rotate(-3deg)}
.bk-photo-xl img{aspect-ratio:1}
.bk-photo-xl span{font-size:3.6cqw}
.bk-sub{font:400 4.4cqw/1.2 var(--hand)!important;color:var(--on-cover)}
.bk-url{font:700 2.6cqw/1 var(--body)!important;letter-spacing:.06em;color:var(--on-cover);margin-top:auto!important}
/* números, contas, regras */
.bk-figs{display:grid;grid-template-columns:1fr 1fr;gap:3cqw}
.bk-figs div{border:.45cqw solid var(--ink);border-radius:2.4cqw;padding:2.6cqw 3cqw;background:#fff}
.bk-figs b{display:block;font:800 8cqw/1 var(--display);font-stretch:84%}
.bk-figs span{display:block;margin-top:1cqw;color:var(--pencil)}
.bk-list{list-style:none;margin:0;padding:0;display:grid;gap:1.1cqw}
.bk-list li{display:grid;grid-template-columns:3.4cqw 1fr;gap:1cqw;align-items:start}
.bk-list li::before{font:400 3cqw/1 var(--hand);text-align:center}
.bk-list li.sim::before{content:"✓";color:var(--green)}
.bk-list li.nao::before{content:"✗";color:var(--red-ink)}
.bk-rates{width:100%;border-collapse:separate;border-spacing:0;border:.45cqw solid var(--ink);border-radius:2cqw;overflow:hidden;background:#fff}
.bk-rates th{font:700 1.7cqw/1 var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--pencil);text-align:left;padding:1.8cqw 2cqw;border-bottom:.4cqw solid var(--ink)}
.bk-rates td{padding:1.8cqw 2cqw;border-bottom:.25cqw solid var(--rule)}
.bk-rates td.num,.bk-rates th:nth-child(n+3){text-align:right}
.bk-rates td:first-child{font-weight:700}
.bk-sum{border:.45cqw dashed var(--pen);border-radius:2.4cqw;padding:2.6cqw 3cqw;display:grid;gap:1.4cqw;background:#fff}
.bk-sum-l,.bk-sum-r{font-size:3.4cqw!important;color:var(--pen)}
.bk-sum-r{color:var(--red-ink)}
.bk-circle{border:.45cqw solid var(--red);border-radius:50%;padding:.2em .5em}
.bk-rules{display:grid;grid-template-columns:1fr 1fr;gap:2.2cqw}
.bk-rule{border:.45cqw solid var(--ink);border-radius:2.4cqw;padding:2.2cqw 2.6cqw;background:#fff}
.bk-rule .bk-list{gap:.6cqw}
.bk-rule svg{width:6cqw;height:6cqw;display:block;margin-bottom:.6cqw}
.bk-rule.no{border-color:var(--red-ink);background:#FFF6F4}
.bk-rule.no h3{color:var(--red-ink)}
.bk-tip{display:grid;grid-template-columns:auto 1fr;gap:2.6cqw;align-items:center;background:var(--hl-soft);border-radius:2.4cqw;padding:2cqw 2.6cqw}
.bk-tip img{width:9cqw;height:auto;background:#fff;border-radius:1.4cqw;padding:.8cqw}
.bk-locs{display:grid;grid-template-columns:1fr 1fr;gap:3cqw 4cqw}
.bk-loc h3{display:flex;justify-content:space-between;border-bottom:.45cqw solid var(--ink);padding-bottom:1cqw}
.bk-loc h3 span{font:400 3cqw/1 var(--hand);color:var(--pen)}
.bk-loc ul{list-style:none;margin:1cqw 0 0;padding:0}
.bk-loc li{padding:.9cqw 0;border-bottom:.25cqw solid var(--rule)}
.bk-qrrow,.bk-qrbig{display:flex;gap:3cqw;align-items:center}
.bk-qrrow p,.bk-qrbig p{font:700 2.4cqw/1.35 var(--body)!important}
.bk-qrrow .hand,.bk-qrbig .hand{display:block;font-size:3.4cqw;color:var(--pen);font-weight:400}
.bk-qr{width:17cqw;height:17cqw;flex:none;padding:1.1cqw;border:.45cqw solid var(--ink);border-radius:1.6cqw;background:#fff}
.bk-qr svg{display:block;width:100%;height:100%}
.bk-note{border:.4cqw dashed var(--ink);border-radius:2.4cqw;padding:2.4cqw 2.8cqw;background:var(--hl-soft)}
.bk-ways{display:grid;grid-template-columns:repeat(3,1fr);gap:2.4cqw}
.bk-way-full{grid-column:1/-1}
.bk-way-full .bk-iban{align-self:flex-start;white-space:nowrap}
.bk-way{border:.45cqw solid var(--ink);border-radius:2.4cqw;padding:2.6cqw 2.8cqw;background:#fff;display:flex;flex-direction:column;gap:1cqw}
.bk-iban{font:700 2.3cqw/1.2 var(--body)!important;background:var(--hl-soft);border-radius:1.2cqw;padding:1.2cqw 1.4cqw;letter-spacing:.02em}
.bk-result{display:grid;grid-template-columns:auto 1fr;gap:3cqw;align-items:center;border:.45cqw solid var(--ink);border-radius:2.4cqw;padding:2.4cqw 3cqw;background:#fff}
.bk-result b.num{font:800 7cqw/1 var(--display);font-stretch:84%}
.bk-result p+p{margin-top:.6cqw!important;color:var(--pencil)}
.bk-back{justify-content:space-between}
.bk-back .bk-title{font-size:10.4cqw!important;margin-top:2cqw!important}
.bk-contacts{display:grid;gap:2.2cqw}
.bk-contacts div{background:#fff;color:var(--ink);border:.45cqw solid var(--ink);border-radius:2.4cqw;padding:2.2cqw 3cqw;display:grid;gap:.4cqw}
.bk-contacts small{font:700 1.6cqw/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--pencil)}
.bk-contacts b{font:800 3.4cqw/1.1 var(--display);font-stretch:84%}
.bk-qrbig{background:#fff;color:var(--ink);border-radius:2.4cqw;padding:2.6cqw 3cqw;border:.45cqw solid var(--ink)}
.bk-qrbig .bk-qr{width:22cqw;height:22cqw}
.bk-qrbig p{font-size:3cqw!important}
.bk-qrbig .hand{font-size:4.2cqw}
.bk-logos{display:flex;flex-wrap:wrap;gap:1.8cqw}
.bk-logos{flex-wrap:nowrap!important;gap:1.4cqw!important}
.bk-logo{flex:1;background:#fff;border-radius:1.6cqw;padding:1.2cqw 1.4cqw;height:8cqw;display:grid;place-items:center}
.bk-logo img{height:5.4cqw;width:100%;object-fit:contain}
.bk-back .bk-sub{font-size:3.2cqw!important}
@media print{
  body.print-book>*:not(main),body.print-book main>*:not(.brochura-page),body.print-book .brochura-page .sec-head,body.print-book .brochura-page .bk-ctrl,body.print-book .brochura-page .share,body.print-book .paleta,body.print-book .actionbar{display:none!important}
  body.print-book .brochura-page{padding:0!important}
  body.print-book .brochura-page .inner{max-width:none}
  body.print-book .book{display:block}
  body.print-book .book figure{break-after:page;page-break-after:always}
  body.print-book .book figcaption{display:none}
  .bk-photo{box-shadow:none;border:.3cqw solid #C9CDD6}
}
/* as unidades cqw das folhas A4 medem a figura que as contém (uma folha não se pode medir a si própria) */
.book figure,.sheets figure{container-type:inline-size}

/* ================= desafio: instrução e revelação do resultado ================= */
.how{max-width:none;margin:4px 0 12px;text-align:center;font-size:1.5rem;line-height:1.2;color:var(--pen)}
.game.done .how{display:none}
.diploma{position:relative}
.diploma.reveal .dip-paper{animation:dipIn .9s var(--ease) both}
.diploma.reveal .dip-name-wrap{animation:dipFade .5s .45s both}
.diploma.reveal #stars svg{animation:starPop .45s cubic-bezier(.3,1.6,.5,1) both}
.diploma.reveal #stars svg:nth-child(1){animation-delay:.8s}
.diploma.reveal #stars svg:nth-child(2){animation-delay:.98s}
.diploma.reveal #stars svg:nth-child(3){animation-delay:1.16s}
.diploma.reveal .dip-seal{animation:sealIn .5s 1.45s cubic-bezier(.2,1.4,.4,1) both}
.diploma.reveal .dip-actions,.diploma.reveal .dip-mural,.diploma.reveal .dip-tip,.diploma.reveal .share{animation:dipFade .5s 1.7s both}
@keyframes dipIn{0%{opacity:0;transform:translateY(-60px) rotate(-7deg) scale(.86)}60%{opacity:1;transform:translateY(8px) rotate(.8deg) scale(1.01)}100%{opacity:1;transform:rotate(-.6deg)}}
@keyframes dipFade{from{opacity:0;transform:translateY(8px)}}
@keyframes starPop{0%{opacity:0;transform:scale(0) rotate(-40deg)}100%{opacity:1;transform:none}}
@keyframes sealIn{0%{opacity:0;transform:rotate(-40deg) scale(2.2)}100%{opacity:1;transform:rotate(-12deg) scale(1)}}
.confetti{position:absolute;inset:-40px 0 0;pointer-events:none;overflow:hidden;z-index:5}
.confetti i{position:absolute;top:0;left:var(--x);width:var(--s);height:var(--s);border-radius:50%;border:2px solid var(--ink);opacity:0;animation:capFall var(--d) var(--w) cubic-bezier(.3,.6,.5,1) both}
@keyframes capFall{0%{opacity:1;transform:translate(0,-20px) rotate(0)}85%{opacity:1}100%{opacity:0;transform:translate(var(--dx),620px) rotate(var(--r))}}
@media (max-width:560px){.diploma.reveal .dip-paper{animation-name:dipInFlat}@keyframes dipInFlat{0%{opacity:0;transform:translateY(-40px) scale(.9)}100%{opacity:1;transform:none}}}
@media (prefers-reduced-motion:reduce){.diploma.reveal *{animation:none!important}.confetti{display:none}}
/* desafio: nome e nível no cabeçalho; pontos e bolinhas por baixo das categorias */
.ws-head{display:grid;justify-content:stretch;align-items:start;gap:14px}
.ws-head .levels{margin:0}
.progress{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 22px;margin:22px 0 4px}
.progress .dots{margin:0}
.game.done .progress{opacity:.55}
/* rodapé: links sem sublinhado; aparece ao passar o rato ou com o teclado */
footer a{text-decoration:none}
footer a:hover,footer a:focus-visible{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
/* desafio em destaque: folha com um tom suave da capa escolhida; peça e categorias ficam brancas por cima */
.worksheet.game{background:color-mix(in srgb,var(--cover) 50%,#fff);border-width:2.5px;box-shadow:0 22px 40px -28px color-mix(in srgb,var(--cover) 70%,transparent),0 0 0 6px color-mix(in srgb,var(--cover) 5%,transparent)}
.worksheet.game .ws-head{border-bottom-color:color-mix(in srgb,var(--cover) 45%,var(--ink))}
.worksheet.game .name-field input{background:transparent}
.worksheet.game .levels button:not([aria-pressed="true"]){background:#fff}
[data-dark] .worksheet.game{background:color-mix(in srgb,var(--cover) 12%,#E9F0FF)}

/* ================= monte de fotos (contactos): a foto de trás sai e passa para a frente ================= */
.stack{position:relative;display:grid;width:min(100%,360px);margin:30px auto 0;padding-bottom:44px}
.stack-card.photo{position:relative;grid-area:1/1;width:100%;transform:rotate(var(--r));transition:filter .4s;cursor:pointer}
.stack-card.photo img{aspect-ratio:4/3}
.stack-card:not(.front){filter:brightness(.97)}
.stack-next{position:absolute;left:0;right:0;bottom:0;background:none;border:0;padding:6px;font-size:1.2rem;color:var(--pen);cursor:pointer;display:flex;justify-content:center;gap:10px;align-items:baseline}
.stack-next .num{font:700 .85rem/1 var(--body);color:var(--pencil)}
.stack-next:focus-visible{outline:3px solid var(--pen);outline-offset:2px;border-radius:8px}
body{overflow-x:clip}

/* ================= movimento geral ================= */
@media (prefers-reduced-motion:no-preference){
  /* tampinhas soltas da capa flutuam devagar */
  .caps svg{animation:capFloat 7s ease-in-out infinite}
  .caps svg:nth-child(2n){animation-duration:8.5s;animation-delay:-2s}
  .caps svg:nth-child(3n){animation-duration:6s;animation-delay:-4s}
  @keyframes capFloat{0%,100%{transform:rotate(var(--r)) translateY(0)}50%{transform:rotate(calc(var(--r) + 8deg)) translateY(-7px)}}
  /* título do hero escreve-se linha a linha ao abrir */
  .cover h1{animation:heroIn .8s var(--ease) both}
  .cover .lede{animation:heroIn .8s .15s var(--ease) both}
  .cover .ctas{animation:heroIn .8s .28s var(--ease) both}
  .hero .photo{animation:pinIn .9s .2s var(--ease) both}
  @keyframes heroIn{from{opacity:0;transform:translateY(16px)}}
  @keyframes pinIn{from{opacity:0;transform:translateY(-26px) rotate(-6deg) scale(1.04)}}
  /* botões afundam ao carregar */
  .btn:active,.chip:active,.bin:active,.levels button:active{transform:translateY(1px) scale(.98)}
  /* mudança de página suave (navegadores que suportam) */
  @view-transition{navigation:auto}
  ::view-transition-old(root){animation:vtOut .22s ease both}
  ::view-transition-new(root){animation:vtIn .32s var(--ease) both}
  @keyframes vtOut{to{opacity:0;transform:translateY(-6px)}}
  @keyframes vtIn{from{opacity:0;transform:translateY(10px)}}
  .nav{view-transition-name:nav}
}

/* ================= hero: coluna direita em slides (a conta · o próximo evento) ================= */
.sheet{padding-left:clamp(44px,4.2vw,72px);padding-right:clamp(20px,3vw,48px);justify-content:center;gap:18px}
.sheet::before{left:clamp(26px,2.6vw,42px)}
.hero-tabs{display:flex;gap:6px;align-self:flex-start}
.hero-tabs button{font:400 1.2rem/1 var(--hand);color:var(--pencil);background:none;border:0;border-bottom:2px solid transparent;padding:6px 8px 5px;cursor:pointer}
.hero-tabs button[aria-selected="true"]{color:var(--pen);border-bottom-color:var(--red);background:linear-gradient(transparent 60%,var(--hl-soft) 60%)}
.hero-tabs button:focus-visible{outline:3px solid var(--pen);outline-offset:2px;border-radius:6px}
.hero-tabs .bar{display:block;height:2px;background:var(--red);transform-origin:left;transform:scaleX(0)}
.hero-slides{display:grid}
.hero-slide{grid-area:1/1;min-width:0;align-self:start;transition:opacity .5s var(--ease),transform .6s var(--ease),visibility 0s .6s}
.hero-slide:not(.on){opacity:0;transform:translateX(28px);visibility:hidden;pointer-events:none}
.hero-slide.on{transition:opacity .5s var(--ease),transform .6s var(--ease),visibility 0s}
.hs-kicker{font-size:1.5rem;color:var(--red-ink);margin:0 0 10px}
.hs-event{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.72fr);gap:clamp(18px,3vw,40px);align-items:center}
.hs-date{display:inline-flex;align-items:center;gap:10px;border:2px solid var(--ink);border-radius:14px;padding:6px 14px 6px 10px;background:#fff;margin-bottom:14px}
.hs-date b{font:800 2.6rem/1 var(--display);font-stretch:84%;color:var(--red-ink)}
.hs-date span{font:700 .8rem/1.15 var(--body);text-transform:uppercase;letter-spacing:.08em;color:var(--pencil)}
.hs-title{font-size:clamp(1.9rem,3vw,2.8rem);margin:0 0 14px;max-width:14ch}
.hs-ficha{margin-bottom:18px}
.hs-ctas{display:flex;flex-wrap:wrap;gap:10px}
.hs-poster.photo{position:relative;width:100%;transform:rotate(3deg)}
.hs-poster img{aspect-ratio:1}
@media (max-width:1100px) and (min-width:901px){.hs-event{grid-template-columns:1fr}.hs-poster.photo{display:none}}
@media (max-width:900px){.hs-event{grid-template-columns:1fr}.hs-poster.photo{display:none}}
@media (prefers-reduced-motion:reduce){.hero-slide{transition:none}}
/* linha da margem: sempre a mesma, tracejada, em todo o site */
.page::before,.page[data-path].on::before,.page[data-path]:not(.on)::before,.sheet::before{width:2px;background:repeating-linear-gradient(var(--red) 0 10px,transparent 10px 18px);opacity:.6;transition:none}
html.lenis,
html.lenis body {
  height: auto;
}

.lenis:not(.lenis-autoToggle).lenis-stopped {
  overflow: clip;
}

.lenis [data-lenis-prevent],
.lenis [data-lenis-prevent-wheel],
.lenis [data-lenis-prevent-touch],
.lenis [data-lenis-prevent-vertical],
.lenis [data-lenis-prevent-horizontal] {
  overscroll-behavior: contain;
}

.lenis.lenis-smooth iframe {
  pointer-events: none;
}

.lenis.lenis-autoToggle {
  transition-property: overflow;
  transition-duration: 1ms;
  transition-behavior: allow-discrete;
}
html.lenis{scroll-behavior:auto}
