:root{
  /* NEURO&REABILITAÇÃO · paleta: azul-turquesa, azul-marinho e verdes azulados.
     Display Quicksand (como a logo) e corpo Atkinson Hyperlegible (legibilidade para idosos).
     Layout: uma coluna central, telas trocadas pelo endereço (#inicio, #sessao...). */
  --bg:#EEF8F7; --paper:#FFFFFF; --ink:#0B2545; --muted:#46646C; --line:#D3E9E6;
  --navy:#0B2545; --teal:#0E7C86; --turq:#17BEBB; --aqua:#9FF3E4; --mint:#B8F2E6; --green:#2D6A4F;
  --error:#FF6B5E;
  --c-aten:#0E7C86; --c-vel:#17BEBB; --c-mo:#1D4E89; --c-flex:#1F7A70; --c-ling:#2A6FB0;
  --c-epi:#2D6A4F; --c-vis:#74C69D; --c-soc:#007C7C; --c-plan:#264653; --c-reg:#52B69A;
  --display:"Quicksand","Trebuchet MS",system-ui,sans-serif;
  --body:"Atkinson Hyperlegible","Segoe UI",system-ui,sans-serif;
  --fs:17px; --tap:48px;
  color-scheme:light;
}
html.senior{--fs:21px;--tap:60px}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:var(--fs);line-height:1.6;min-height:100vh;display:flex;flex-direction:column}
h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.2;text-wrap:balance;margin:0}
a{color:var(--teal)}
:focus-visible{outline:3px solid var(--turq);outline-offset:2px;border-radius:8px}
.skip{position:absolute;left:-9999px;top:8px;background:var(--navy);color:#fff;padding:8px 12px;border-radius:8px;z-index:10}
.skip:focus{left:8px}

/* topo */
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 20px;background:var(--paper);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.brand-mark svg{width:44px;height:44px;display:block}
.brand-name{font-family:var(--display);font-size:22px;letter-spacing:.5px;white-space:nowrap}
.brand-name b{font-weight:600;color:#0D4F44}.brand-name i{font-style:normal;font-weight:400;color:var(--turq)}
.topnav{display:flex;gap:6px}
.topnav a{text-decoration:none;font-weight:700;color:var(--teal);padding:8px 12px;border-radius:999px;min-height:var(--tap);display:flex;align-items:center}
.topnav a:hover{background:var(--bg)}

main{flex:1;width:100%;max-width:880px;margin:0 auto;padding:24px 20px 40px;outline:none}
.foot{background:var(--paper);border-top:1px solid var(--line);padding:18px 20px;font-size:14px;color:var(--muted)}
.foot p{max-width:880px;margin:4px auto}

/* blocos */
.stack{display:flex;flex-direction:column;gap:18px}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.card{background:var(--paper);border:1.5px solid var(--line);border-radius:22px;padding:20px 22px}
.lede{color:var(--muted);margin:4px 0 0;max-width:62ch}
.eyebrow{font-family:var(--display);font-weight:600;font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--teal)}
.honest{background:#E3F4F1;border-radius:16px;padding:12px 16px;font-size:15px}
.honest b{color:#0D4F44}

/* botões */
.btn{font-family:var(--display);font-weight:600;font-size:18px;border:none;border-radius:999px;padding:12px 24px;min-height:var(--tap);cursor:pointer;background:var(--navy);color:#fff;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.btn:hover{background:#13315C}
.btn.soft{background:var(--mint);color:var(--navy)}
.btn.soft:hover{background:var(--aqua)}
.btn.ghost{background:transparent;color:var(--teal);border:2px solid var(--line)}
.btn.danger{background:#fff;color:#A33A2E;border:2px solid #F3C4BE}
.btn[disabled]{opacity:.5;cursor:default}

/* início */
.hello h1{font-size:clamp(28px,5vw,38px)}
.sessions{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.sess{border-radius:24px;padding:22px;color:#fff;display:flex;flex-direction:column;gap:10px;position:relative;overflow:hidden}
.sess.manha{background:linear-gradient(150deg,#0E7C86,#17BEBB)}
.sess.noite{background:linear-gradient(150deg,#0B2545,#264653)}
.sess h2{font-size:26px}
.sess p{margin:0;opacity:.95}
.sess .tag{align-self:flex-start;background:rgba(255,255,255,.2);border-radius:999px;padding:3px 12px;font-size:14px;font-weight:700}
.sess.sugerida{box-shadow:0 0 0 4px var(--aqua)}
.sess .btn{align-self:flex-start;background:#fff;color:var(--navy);margin-top:6px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font-size:13px;font-weight:700;padding:3px 10px;border-radius:999px;background:rgba(255,255,255,.18);color:inherit}
.chip.dom{color:#fff}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.stat{background:var(--paper);border:1.5px solid var(--line);border-radius:18px;padding:14px 16px}
.stat b{display:block;font-family:var(--display);font-size:30px;color:var(--teal);line-height:1.1;font-variant-numeric:tabular-nums}
.stat span{font-size:14px;color:var(--muted)}
.local{font-size:14px;color:var(--muted)}

/* sessão */
.progress{display:flex;gap:6px}
.progress span{flex:1;height:8px;border-radius:99px;background:var(--line)}
.progress span.done{background:var(--turq)}
.progress span.now{background:var(--teal)}
.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.list li{display:flex;gap:12px;align-items:center;background:var(--paper);border:1.5px solid var(--line);border-radius:16px;padding:12px 14px}
.dot{width:14px;height:14px;border-radius:50%;flex:none}
.list .t{font-family:var(--display);font-weight:600;font-size:19px;display:block}
.list .s{font-size:15px;color:var(--muted)}
.gamehead{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.gamehead h1{font-size:30px}
details.rules{background:var(--paper);border:1.5px solid var(--line);border-radius:16px;padding:10px 16px}
details.rules summary{cursor:pointer;font-weight:700;color:var(--teal);min-height:32px}
details.rules ol{margin:6px 0 4px;padding-left:22px}
.result{border-left:6px solid var(--turq)}
.result h2{font-size:22px}

/* área de jogo */
.game{background:var(--navy);border-radius:24px;padding:18px;color:#fff}
.game .bar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.hud{display:flex;gap:8px;flex-wrap:wrap;font-variant-numeric:tabular-nums}
.hud span{background:rgba(255,255,255,.12);padding:3px 12px;border-radius:999px;font-size:15px;font-weight:700}
.game .msg{min-height:52px;margin:12px auto 0;text-align:center;font-size:16px;color:#D7F3EF;max-width:52ch}
.game .gbtn{font-family:var(--display);font-weight:600;font-size:18px;border:none;border-radius:999px;padding:10px 22px;min-height:var(--tap);cursor:pointer;background:var(--aqua);color:var(--navy)}
.game .gbtn.alt{background:rgba(255,255,255,.14);color:#fff}
.game .gbtn[disabled]{opacity:.45;cursor:default}
.center{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:12px}
.board{display:grid;gap:8px;margin:0 auto;max-width:360px}
.cell{aspect-ratio:1;border-radius:14px;background:rgba(255,255,255,.08);border:none;cursor:pointer;display:grid;place-items:center;font-size:30px;color:#fff;min-height:var(--tap)}
.cell.lit-a{background:radial-gradient(circle,#E6FFF9 0%,#5EEAD4 55%,rgba(94,234,212,.2) 100%)}
.cell.lit-b{background:radial-gradient(circle,#5B7DB0 0%,#1A3563 60%,rgba(26,53,99,.3) 100%)}
.cell.lit-star{background:radial-gradient(circle,#fff 0%,#B8F2E6 45%,#17BEBB 100%)}
.cell.hit{background:#40916C}.cell.miss{background:var(--error)}
.cell.sel{outline:4px solid var(--aqua)}
.pair{display:flex;justify-content:center;gap:20px}
.shape{width:104px;height:104px;border-radius:20px;background:rgba(255,255,255,.08);display:grid;place-items:center;font-size:56px}
.cue{text-align:center;font-family:var(--display);font-weight:600;font-size:22px;padding:6px 14px;border-radius:12px;margin:0 auto 10px;max-width:280px;background:rgba(255,255,255,.12)}
.legend{display:flex;justify-content:space-between;max-width:320px;margin:8px auto 0;font-size:15px;color:#D7F3EF}
.opts{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;max-width:400px;margin:10px auto 0}
.wordform{display:flex;gap:8px;max-width:440px;margin:0 auto}
.wordform input{flex:1;min-width:0;font:inherit;font-size:18px;padding:10px 14px;border-radius:999px;border:none}
.wchips{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:10px;min-height:34px}
.wchips span{background:rgba(255,255,255,.14);padding:3px 10px;border-radius:999px;font-size:15px}
.tower{display:flex;justify-content:center;gap:14px;align-items:flex-end;margin:6px 0}
.peg{width:88px;border:none;background:transparent;cursor:pointer;display:flex;flex-direction:column-reverse;align-items:center;gap:4px;padding:6px 0 0;border-bottom:6px solid #74C69D;border-radius:4px}
.peg.sel{border-bottom-color:var(--aqua)}
.ball{width:42px;height:42px;border-radius:50%;border:3px solid rgba(255,255,255,.6);display:grid;place-items:center;font-size:20px}
.ball.up{transform:translateY(-10px);box-shadow:0 0 0 4px var(--aqua)}
.mini{transform:scale(.75)}
.mini .peg{width:46px;cursor:default;border-bottom-width:4px}
.mini .ball{width:24px;height:24px;font-size:12px;border-width:2px}
.breath{width:140px;height:140px;border-radius:50%;margin:10px auto;background:radial-gradient(circle,#B8F2E6,#17BEBB);transition:transform 1s ease-in-out}

/* dados e ajustes */
.toggle{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}
.toggle:last-child{border-bottom:none}
.toggle input{width:28px;height:28px;accent-color:var(--teal)}
textarea.io{width:100%;min-height:110px;font:inherit;font-size:14px;border-radius:12px;border:1.5px solid var(--line);padding:10px}
.note{font-size:14px;color:var(--muted)}
.ok{color:#1E7A45;font-weight:700}

@media (max-width:520px){
  .brand-name{font-size:18px}
  .topnav a{padding:6px 8px;font-size:15px}
  main{padding:18px 14px 32px}
}
html.calm *,html.calm *::before{transition:none!important;animation:none!important}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* conquistas */
details.badges summary{cursor:pointer;list-style:none;min-height:var(--tap);display:flex;align-items:center;gap:10px}
details.badges summary::-webkit-details-marker{display:none}
.blist{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.badge{display:flex;gap:12px;align-items:center;border-radius:16px;padding:10px 12px;background:var(--bg);opacity:.6}
.badge.on{opacity:1;background:#E3F4F1}
.bicon{width:46px;height:46px;flex:none;border-radius:50%;display:grid;place-items:center;font-family:var(--display);font-weight:600;font-size:18px;background:#D3E9E6;color:var(--muted)}
.badge.on .bicon{background:linear-gradient(150deg,#0E7C86,#17BEBB);color:#fff}
.badge .t{font-family:var(--display);font-weight:600;font-size:17px;display:block}
.badge .s{font-size:14px;color:var(--muted)}
.celebrate{border:2px solid var(--turq)}

/* convite e comparação de versões */
.upsell{border:2px solid var(--c-vel);background:linear-gradient(135deg,#E6FAF7,#fff)}
.upsell h2{margin-top:.2em}
.cmpwrap{overflow-x:auto}
table.cmp{width:100%;border-collapse:collapse;background:#fff;border-radius:16px;overflow:hidden}
table.cmp caption{text-align:left;padding:0 0 6px}
table.cmp th,table.cmp td{padding:12px 14px;text-align:left;vertical-align:top;border-bottom:1px solid #D7ECEA}
table.cmp thead th{background:var(--night);color:#fff}
table.cmp thead th:last-child{background:#0E7C86}
table.cmp tbody th{font-weight:700;color:var(--night)}
table.cmp td:last-child{background:#F1FBF9}

/* Bloco 2A */
.board.lince .cell{padding:6px}
.board.lince .cell svg{display:block}
.portas{display:grid;gap:10px;margin:10px 0}
.porta{border:2px dashed rgba(255,255,255,.25);border-radius:16px;padding:10px;min-height:110px;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:.55;transition:opacity .2s}
.porta.on{opacity:1;border-style:solid;border-color:#9FF3E4;background:rgba(159,243,228,.08)}
.plabel{font-size:14px;color:#CFE9F0;letter-spacing:.02em}
.pcard{font-size:52px;font-weight:700;color:#fff;min-height:64px;letter-spacing:.06em}
html.calm .porta{transition:none}
.daytag{display:inline-block;background:#E6FAF7;color:var(--night);border-radius:999px;padding:4px 12px;font-size:14px;font-weight:700}

/* Bloco 2B */
.board.bussola{max-width:340px}
.board.bussola .cell{cursor:default;font-size:26px}
.dirpad{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-width:340px;margin:10px auto 0}
.dirpad [data-a="0"],.dirpad [data-a="2"]{grid-column:1 / -1}
.eyes{margin:6px 0 4px}
ol.plan{max-width:440px;margin:8px auto;padding-left:26px;color:#fff}
ol.plan li{margin:4px 0}
ol.plan li.ok{color:#B8F2E6}
ol.plan li.off{color:#FFD1CC}
ol.plan small{color:#CFE9F0}
.steps{display:grid;gap:8px;max-width:440px;margin:8px auto 0}
.steps .step{text-align:left;border-radius:14px;font-family:var(--body);font-weight:700;font-size:16px}
.scale{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;max-width:440px;margin:8px auto 0}
.scale .gbtn{min-width:48px;padding:8px 0}
[hidden]{display:none !important}

/* Bloco 3 */
.birds{display:flex;justify-content:center;align-items:center;gap:6px;min-height:90px;margin:12px 0}
.lights{display:flex;justify-content:center;gap:14px;margin:16px 0}
.light{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;color:#5A7BA0;background:rgba(255,255,255,.06);border:3px solid rgba(255,255,255,.18)}
.light.on{color:#0B2545;background:#FFE08A;border-color:#fff;box-shadow:0 0 22px rgba(255,224,138,.7)}
.stroopbox{display:grid;grid-template-rows:1fr 1fr;gap:8px;max-width:340px;margin:12px auto;height:230px}
.stroopbox .slot{border:2px dashed rgba(255,255,255,.2);border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:40px;font-weight:800;color:#fff;letter-spacing:.06em}
.rooms{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;margin:8px 0;color:#CFE9F0;font-size:14px}
.rooms .room{padding:4px 8px;border-radius:999px;background:rgba(255,255,255,.07)}
.rooms .room.on{background:#9FF3E4;color:#0B2545;font-weight:700}
.rooms .arrow{opacity:.5}
.story{max-width:460px;margin:10px auto;background:rgba(255,255,255,.08);border-radius:14px;padding:14px 16px;color:#fff;font-size:17px;line-height:1.5}
ul.rulelist{max-width:440px;margin:6px auto;padding-left:20px;color:#FFE9B0;font-size:15px}
ul.rulelist li{margin:3px 0}
ul.rulelist li.ok{color:#B8F2E6}
ul.rulelist li.off{color:#FFD1CC}
html.senior .stroopbox .slot{font-size:46px}

/* Bloco 4 */
.sentinel{font-size:72px;font-weight:800;min-height:120px;display:flex;align-items:center;justify-content:center;max-width:220px}
.sentinel.hit{outline:4px solid #9FF3E4}
.codekey{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:8px auto;max-width:440px}
.codekey div{display:flex;flex-direction:column;align-items:center;background:#F4FBFA;color:#0B2545;border-radius:10px;padding:6px 10px;min-width:44px;font-size:24px}
.codekey b{font-size:18px}
.sr{position:absolute;left:-9999px}
.speech{max-width:460px;margin:12px auto;min-height:120px;color:#fff}
.speech .who{display:flex;align-items:center;gap:8px;font-size:16px}
.speech .who.right{justify-content:flex-end}
.speech .av{font-size:34px}
.speech .bub{background:#F4FBFA;color:#0B2545;border-radius:16px;padding:12px 14px;margin-top:6px;font-size:18px;max-width:85%}
.speech .bub.right{margin-left:auto}
.speech .bub.mid{margin:20px auto;text-align:center}
.foldopts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:340px;margin:8px auto}
.foldopt{position:relative;background:rgba(255,255,255,.06);border:2px solid rgba(255,255,255,.2);border-radius:14px;padding:8px;cursor:pointer;display:flex;justify-content:center}
.foldopt .n{position:absolute;left:8px;top:6px;color:#fff;font-weight:700}
.foldopt.good{border-color:#52B69A;background:rgba(82,182,154,.25)}
.foldopt.bad{border-color:var(--error)}
.director{text-align:center;color:#CFE9F0;font-size:15px;margin-top:6px}
.shelf{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;max-width:360px;margin:8px auto;background:#5B3A1E;padding:8px;border-radius:10px}
.shelf .slotc{height:62px;border-radius:6px;border:2px solid #8A5A2B;background:#F4E3C8;display:flex;align-items:center;justify-content:center;cursor:pointer}
.shelf .slotc.occ{background:#9AA7B2;border-color:#6B7782}
.shelf .slotc.good{outline:4px solid #52B69A}
.shelf .slotc.bad{outline:4px solid var(--error)}
.planbox{max-width:440px;margin:10px auto;background:#FFE08A;color:#0B2545;border-radius:14px;padding:12px 14px;font-size:17px}
.goodlist{display:grid;gap:10px;max-width:460px;margin:8px auto}
.goodlist .good{display:grid;grid-template-columns:24px 1fr;gap:6px;color:#fff;align-items:center}
.goodlist .good input{grid-column:2;padding:10px 12px;border-radius:10px;border:0;font-size:16px}
.goodlist .good input[data-y]{font-size:14px;opacity:.9}
/* fontes no próprio servidor (LGPD: nada vai para o Google) */
@font-face{font-family:"Quicksand";src:url(../fonts/quicksand-500.woff2) format("woff2");font-weight:300 550;font-display:swap}
@font-face{font-family:"Quicksand";src:url(../fonts/quicksand-700.woff2) format("woff2");font-weight:551 800;font-display:swap}
@font-face{font-family:"Atkinson Hyperlegible";src:url(../fonts/atkinson-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Atkinson Hyperlegible";src:url(../fonts/atkinson-700.woff2) format("woff2");font-weight:700;font-display:swap}
/* vivências */
.vivdia,.trilha{border-top:6px solid var(--c)}
.trilhas{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.trilha ol{padding-left:22px;margin:.5em 0 0}.trilha li{margin:5px 0}
.trilha li.lock{color:#5b6f80}.trilha summary{cursor:pointer;font-weight:700}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
