/* Rolltopia: sistema "Brinquedo de pista" (docs/DESIGN.md) aplicado ao site */
@font-face{font-family:Fredoka;src:url(../fonts/fredoka_600.ttf) format("truetype");font-weight:600;font-display:swap}
@font-face{font-family:Fredoka;src:url(../fonts/fredoka_700.ttf) format("truetype");font-weight:700;font-display:swap}
@font-face{font-family:Figtree;src:url(../fonts/figtree_400.ttf) format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:Figtree;src:url(../fonts/figtree_600.ttf) format("truetype");font-weight:600;font-display:swap}
@font-face{font-family:Figtree;src:url(../fonts/figtree_800.ttf) format("truetype");font-weight:800;font-display:swap}

:root{
  --bg:#241C38;--raised:#2A2142;--surface:#33284F;--surface2:#3A2E58;--sunk:#1B1430;--base:#18122A;
  --line:rgba(255,246,232,.08);--ink:#FFF6E8;--ink2:#DDD3EE;--muted:#ADA0C8;--faint:#7F72A0;
  --cta:#FFC531;--cta-ink:#2B1B00;--cta-base:#B98200;
  --sec:#46396E;--sec-base:#1C1530;
  --ok:#7EE0B0;--ok-base:#2F8A62;--trophy:#FF7A45;--phase:#C4B5F0;
  --b1:#FF6B6B;--b2:#FF7A45;--b3:#FFC531;--b4:#2BA84A;--b5:#7CC4FF;--b6:#B98CFF;--b7:#FFF6E8;
  --wrap:1120px;--gut:16px;
  --display:Fredoka,"Noto Sans",system-ui,sans-serif;
  --text:Figtree,"Noto Sans",system-ui,sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font:400 16px/1.55 var(--text);overflow-x:hidden;min-height:100vh;display:flex;flex-direction:column}
main{flex:1}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-radius:8px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
@media(min-width:720px){:root{--gut:28px}}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--bg);padding:8px 14px;border-radius:10px;z-index:99}
.skip:focus{left:8px}

/* topo */
.top{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:12px;height:68px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font:700 24px/1 var(--display);letter-spacing:.2px}
.logo img{width:40px;height:40px;border-radius:12px;box-shadow:0 3px 0 var(--base)}
.nav{display:none;gap:4px;margin-left:24px}
.nav a{text-decoration:none;color:var(--ink2);font:800 14px var(--text);padding:10px 14px;border-radius:12px}
.nav a:hover,.nav a[aria-current=page]{background:var(--surface);color:var(--ink)}
@media(min-width:860px){.nav{display:flex}}
.top .end{margin-left:auto;display:flex;align-items:center;gap:10px}

/* seletor de idioma */
.lang{position:relative}
.lang select{appearance:none;-webkit-appearance:none;background:var(--sec);color:var(--ink);border:0;border-radius:12px;height:40px;
  padding:0 34px 0 14px;font:800 14px var(--text);cursor:pointer;box-shadow:0 3px 0 var(--sec-base)}
.lang::after{content:"";position:absolute;right:14px;top:16px;width:7px;height:7px;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:rotate(45deg);pointer-events:none}

/* botões com base sólida */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;border:0;cursor:pointer;
  font:800 15px var(--text);height:48px;padding:0 20px;border-radius:14px;background:var(--sec);color:var(--ink);
  box-shadow:0 4px 0 var(--sec-base);transition:transform 80ms,box-shadow 80ms;white-space:nowrap}
.btn:active{transform:translateY(4px);box-shadow:0 0 0 var(--sec-base)}
.btn.cta{background:var(--cta);color:var(--cta-ink);box-shadow:0 5px 0 var(--cta-base);font:600 18px var(--display);height:58px;padding:0 26px;border-radius:16px}
.btn.cta:active{transform:translateY(5px);box-shadow:0 0 0 var(--cta-base)}
.btn svg{width:22px;height:22px;flex:none}
.btn.small{height:40px;font-size:14px;padding:0 14px;border-radius:12px;box-shadow:0 3px 0 var(--sec-base)}
.top .btn.small{display:none}
@media(min-width:560px){.top .btn.small{display:inline-flex}}

/* hero */
.hero{padding:44px 0 28px}
.hero .wrap{display:grid;gap:36px;align-items:center}
@media(min-width:920px){.hero .wrap{grid-template-columns:1.05fr 1fr}.hero{padding:72px 0 48px}}
.kicker{font:800 12px var(--text);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
h1{font:700 clamp(40px,8.4vw,72px)/1.02 var(--display);margin:12px 0 16px;letter-spacing:-.5px;text-wrap:balance}
h1 em{font-style:normal;color:var(--ok)}
.lead{font-size:clamp(17px,2.3vw,19px);color:var(--ink2);max-width:34ch}
.hero .actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px;align-items:center}
.store-note{font:600 13px var(--text);color:var(--muted)}

/* pista animada */
.track{position:relative;aspect-ratio:1/1;max-width:520px;width:100%;margin:0 auto;background:var(--surface);border-radius:28px;
  box-shadow:0 6px 0 var(--base);overflow:hidden}
.track > svg{position:absolute;inset:0;width:100%;height:100%}
.ball{transform-box:fill-box;transform-origin:center}
@media(prefers-reduced-motion:reduce){.track animateMotion,.track animate{display:none}}

/* seções */
section{padding:56px 0}
.sec-head{margin-bottom:24px}
h2{font:600 clamp(30px,5vw,44px)/1.08 var(--display);margin-top:8px;text-wrap:balance}
h3{font:600 21px/1.2 var(--display)}

/* faixa de selos */
.chips{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media(min-width:820px){.chips{grid-template-columns:repeat(4,1fr)}}
.chip{background:var(--surface);border-radius:16px;box-shadow:0 4px 0 var(--base);padding:16px;display:flex;align-items:center;gap:12px;font:800 15px/1.25 var(--text)}
.chip .ic{width:40px;height:40px;border-radius:12px;background:var(--sunk);display:grid;place-items:center;flex:none}
.chip .ic svg{width:22px;height:22px}

/* modos */
.modes{display:grid;gap:16px}
@media(min-width:640px){.modes{grid-template-columns:repeat(2,1fr)}}
@media(min-width:980px){.modes{grid-template-columns:repeat(3,1fr)}}
.card{background:var(--surface);border-radius:20px;box-shadow:0 5px 0 var(--base);overflow:hidden;display:flex;flex-direction:column}
.card .pic{aspect-ratio:16/10;background:var(--sunk);position:relative;overflow:hidden}
.card .pic img{width:100%;height:100%;object-fit:cover}
.card .pic svg{width:100%;height:100%}
.card .body{padding:16px 18px 20px}
.card p{color:var(--muted);font-size:15px;margin-top:6px}
.tag{position:absolute;left:12px;top:12px;font:800 11px var(--text);letter-spacing:.08em;text-transform:uppercase;padding:5px 9px;border-radius:7px;background:var(--sunk);color:var(--ink2)}
.tag.trophy{background:var(--trophy);color:#2A1000}
.tag.phase{background:var(--phase);color:var(--bg)}

/* bloco de destaque (vídeos) */
.split{display:grid;gap:28px;align-items:center}
@media(min-width:900px){.split{grid-template-columns:1fr 1fr}}
.panel{background:var(--surface);border-radius:20px;box-shadow:0 5px 0 var(--base);padding:22px}
.list{list-style:none;display:grid;gap:2px}
.list li{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line);font-weight:600}
.list li:last-child{border-bottom:0}
.list svg{width:22px;height:22px;flex:none;margin-top:1px}
.phone{width:100%;max-width:300px;margin:0 auto;background:var(--base);border-radius:36px;padding:10px;box-shadow:0 6px 0 #0E0A18}
.phone .screen{border-radius:28px;overflow:hidden;background:var(--bg);aspect-ratio:9/17;position:relative}
.phone .screen svg{width:100%;height:100%}

/* chamada final */
.final{background:var(--raised);border-radius:28px;box-shadow:0 6px 0 var(--base);padding:36px 22px;text-align:center;display:grid;justify-items:center;gap:18px}
.final img{width:88px;height:88px;border-radius:24px;box-shadow:0 5px 0 var(--base)}

/* redes */
.social{display:flex;flex-wrap:wrap;gap:12px}
.social a{width:48px;height:48px;border-radius:14px;background:var(--sec);box-shadow:0 4px 0 var(--sec-base);display:grid;place-items:center;transition:transform 80ms,box-shadow 80ms}
.social a:active{transform:translateY(4px);box-shadow:none}
.social svg{width:22px;height:22px;fill:var(--ink)}

/* rodapé */
footer{border-top:1px solid var(--line);padding:40px 0 32px;margin-top:40px;background:var(--bg)}
.foot{display:grid;gap:28px}
@media(min-width:820px){.foot{grid-template-columns:1.4fr 1fr 1fr}}
.foot h4{font:800 11px var(--text);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.foot ul{list-style:none;display:grid;gap:8px}
.foot ul a{text-decoration:none;color:var(--ink2);font-weight:600}
.foot ul a:hover{color:var(--ink);text-decoration:underline}
.legal-line{margin-top:28px;color:var(--faint);font-size:13px;display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:space-between}

/* páginas internas */
.page-head{padding:44px 0 8px}
.page-head h1{font-size:clamp(34px,6vw,52px);margin:8px 0 0}
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 4px}
.tabs a{text-decoration:none;font:800 14px var(--text);height:40px;display:inline-flex;align-items:center;padding:0 16px;border-radius:999px;background:var(--surface2);color:var(--ink2)}
.tabs a[aria-current=page]{background:var(--ink);color:var(--bg)}
.doc{background:var(--surface);border-radius:20px;box-shadow:0 5px 0 var(--base);padding:24px 18px;margin:24px 0 8px;max-width:860px}
@media(min-width:720px){.doc{padding:36px 40px}}
.doc h1{font:600 28px/1.15 var(--display);margin:0 0 6px}
.doc h2{font:600 22px/1.2 var(--display);margin:30px 0 10px}
.doc h3{font:600 18px/1.25 var(--display);margin:22px 0 8px}
.doc p,.doc li{color:var(--ink2);font-size:16px}
.doc p{margin:10px 0}
.doc ul,.doc ol{padding-left:22px;margin:10px 0;display:grid;gap:6px}
.doc strong{color:var(--ink)}
.doc a{color:var(--cta)}
.doc .tbl{overflow-x:auto;margin:14px 0;border-radius:12px;background:var(--sunk)}
.doc table{border-collapse:collapse;width:100%;min-width:520px;font-size:14px}
.doc th,.doc td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top;color:var(--ink2)}
.doc th{color:var(--ink);font-weight:800}
.note{background:var(--sunk);border-radius:12px;padding:12px 14px;color:var(--ink2);font-size:14px;margin:18px 0 0;max-width:860px}
.loading{color:var(--muted)}

/* suporte */
.support-grid{display:grid;gap:16px;margin-top:24px}
@media(min-width:820px){.support-grid{grid-template-columns:1fr 1.3fr;align-items:start}}
.faq{display:grid;gap:10px}
.faq details{background:var(--surface);border-radius:16px;box-shadow:0 4px 0 var(--base)}
.faq summary{cursor:pointer;list-style:none;padding:16px 48px 16px 18px;font:800 16px/1.35 var(--text);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:20px;top:22px;width:9px;height:9px;border-right:2.5px solid var(--ink2);border-bottom:2.5px solid var(--ink2);transform:rotate(45deg);transition:transform .15s}
.faq details[open] summary::after{transform:rotate(-135deg);top:26px}
.faq details p{padding:0 18px 18px;color:var(--ink2)}
.mail{font:600 clamp(18px,4vw,22px) var(--display);word-break:break-all}
.label{font:800 11px var(--text);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;display:block}

/* 404 */
.lost{text-align:center;padding:90px 0;display:grid;justify-items:center;gap:18px}
.lost .big{font:700 clamp(90px,22vw,170px)/1 var(--display)}
/* exclusão de conta */
.btn.cta.danger{background:#FF6B6B;color:#2A0606;box-shadow:0 5px 0 #B8323F}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.check{display:flex;gap:10px;align-items:flex-start;cursor:pointer;line-height:1.4}
.check input{width:22px;height:22px;margin-top:1px;flex:none;accent-color:#FF6B6B}
#web-status{min-height:1.4em;font-weight:600}

/* ---------- animações (js/fx.js) ---------- */
#rain{position:absolute;left:0;top:0;width:100%;height:100vh;pointer-events:none;z-index:0}
main,footer{position:relative;z-index:1}
footer{background:transparent}
.track{cursor:pointer;touch-action:manipulation}
.track canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.podium{position:absolute;left:14px;top:14px;display:flex;gap:8px;align-items:center;pointer-events:none}
.podium .round{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 10px;border-radius:10px;background:var(--sunk);color:var(--ink2);font:800 13px var(--text);font-variant-numeric:tabular-nums}
.podium .round svg{width:15px;height:15px}
.podium ol{list-style:none;display:flex;gap:6px}
.podium li{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 9px 0 5px;border-radius:10px;background:var(--sunk);color:var(--muted);font:800 12px var(--text)}
.podium li i{width:20px;height:20px;border-radius:50%;background:var(--surface2);box-shadow:inset 0 0 0 2.5px var(--base)}
.podium li.got{color:var(--ink);animation:slot .45s cubic-bezier(.34,1.8,.64,1)}
.podium li:first-child.got{background:#5A4C82}
@keyframes slot{0%{transform:translateY(-8px) scale(.8)}100%{transform:none}}
.tap{position:absolute;right:14px;top:14px;width:30px;height:30px;border-radius:10px;background:var(--sunk);color:var(--ink2);display:grid;place-items:center;pointer-events:none}
.tap svg{width:18px;height:18px}
html.fx .tap{animation:nudge 2.4s ease-in-out infinite}
@keyframes nudge{0%,70%,100%{transform:none}78%{transform:translateY(3px) scale(.92)}86%{transform:none}}
.phone .screen canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.rec{position:absolute;left:12px;top:12px;display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border-radius:8px;background:var(--sunk);font:800 11px var(--text);color:var(--ink)}
.rec i{width:8px;height:8px;border-radius:50%;background:#FF5F6D}
.rec b{font-variant-numeric:tabular-nums;color:var(--ink2)}

/* entradas: a peça sobe e encaixa */
html.fx .rv{opacity:0;transform:translateY(34px) scale(.96)}
html.fx .rv.in{opacity:1;transform:none;transition:opacity .45s ease-out,transform .75s cubic-bezier(.34,1.56,.64,1)}
html.fx .chip.in .ic{animation:boing .7s .25s cubic-bezier(.34,1.8,.64,1) both}
@keyframes boing{0%{transform:scale(.4) rotate(-20deg)}100%{transform:none}}
html.fx .card .pic img,html.fx .card .pic svg{transition:transform .5s cubic-bezier(.34,1.56,.64,1)}
html.fx .card:hover .pic img,html.fx .card:hover .pic svg{transform:scale(1.05)}
html.fx .card{transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s}
html.fx .card:hover{transform:translateY(-4px);box-shadow:0 9px 0 var(--base)}

/* título: letras caem e quicam */
h1 em .drop{display:inline-block}
html.fx h1 em .drop{animation:drop .8s cubic-bezier(.3,1.65,.55,1) both}
h1 em .sp{white-space:pre}
@keyframes drop{0%{transform:translateY(-1.1em) scaleY(1.15);opacity:0}45%{opacity:1}70%{transform:translateY(.06em) scaleY(.88) scaleX(1.08)}100%{transform:none}}
@media(prefers-reduced-motion:reduce){html.fx .rv{opacity:1;transform:none}}
.podium .round svg,.tap svg{flex:none}
/* cliques repetidos não selecionam texto nas áreas de brincar */
.track,.podium,.tap,.phone,.chip,.card,.btn,.social,.nav,.logo,.final{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
