/* Usina de Reels — design system (tokens + componentes compartilhados).
   Página comercial e biblioteca usam este arquivo; CSS específico fica na própria página.
   Breakpoints (não dá para usar variável em @media): 640px (tablet) e 1024px (notebook).
   Documentação: docs/execucao/design-system.md */

:root{
  /* cor: superfícies */
  --c-fundo:#05070C;
  --c-fundo-centro:#0C1424;
  --c-superficie:#0A101C;
  --c-superficie-2:#0F1726;
  /* cor: texto (todos ≥ 4.5:1 sobre --c-fundo e --c-superficie) */
  --c-texto:#E8F4FF;
  --c-texto-2:#A3AEC3;
  --c-texto-3:#8F9BB3;
  /* cor: linhas */
  --c-linha:rgba(232,244,255,.10);
  --c-linha-forte:rgba(232,244,255,.24);
  /* cor: função */
  --c-marca:#FFB547;          /* âmbar: marca, ação principal, foco */
  --c-marca-fraca:rgba(255,181,71,.35);
  --c-sobre-marca:#05070C;
  --c-dado:#5CE1FF;           /* ciano: só dado, código e fonte */
  --c-dado-fraco:rgba(92,225,255,.28);
  --c-erro:#FF8A7A;
  --c-ok:#8BE3B0;

  /* tipo */
  --f-ui:Sora,system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-editorial:Newsreader,Georgia,"Times New Roman",serif;
  --f-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --t-12:.75rem; --t-14:.875rem; --t-16:1rem; --t-18:1.125rem; --t-22:1.375rem;
  --t-28:1.75rem; --t-36:2.25rem; --t-48:3rem; --t-64:4rem;
  --lh-corpo:1.6; --lh-titulo:1.08;

  /* espaço (base 4) */
  --e-1:4px; --e-2:8px; --e-3:12px; --e-4:16px; --e-5:24px; --e-6:32px; --e-7:48px; --e-8:64px; --e-9:96px;
  --largura:1080px; --medida:66ch;

  /* forma: a marca não usa cantos arredondados */
  --r-0:0; --r-pilula:999px;
  --borda:1px solid var(--c-linha);
  --sombra-1:0 1px 2px rgba(0,0,0,.45);
  --sombra-2:0 18px 40px -18px rgba(0,0,0,.8);

  /* movimento */
  --m-rapido:150ms; --m-medio:250ms;
  --ease-saida:cubic-bezier(.16,1,.3,1);

  /* camadas */
  --z-barra:20; --z-aviso:40;
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{background:var(--c-fundo);color-scheme:dark;scrollbar-color:#24324a var(--c-fundo);-webkit-text-size-adjust:100%}
body{color:var(--c-texto);font-family:var(--f-ui);font-weight:300;font-size:var(--t-16);line-height:var(--lh-corpo);
  background:radial-gradient(ellipse at 70% 0%,var(--c-fundo-centro) 0%,var(--c-fundo) 55%) no-repeat,var(--c-fundo);
  -webkit-font-smoothing:antialiased;caret-color:var(--c-marca);min-height:100dvh}
::selection{background:var(--c-marca);color:var(--c-sobre-marca)}
img,video,svg{display:block;max-width:100%}
a{color:var(--c-marca);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:2px solid var(--c-marca);outline-offset:3px}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;touch-action:manipulation}
.num{font-variant-numeric:tabular-nums}
.mono{font-family:var(--f-mono)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- layout ---------- */
.container{max-width:var(--largura);margin:0 auto;padding:0 20px}
.pular{position:absolute;left:12px;top:-60px;z-index:var(--z-aviso);background:var(--c-marca);color:var(--c-sobre-marca);padding:var(--e-2) var(--e-4);font-weight:600;text-decoration:none}
.pular:focus{top:12px}

/* barra de navegação */
.barra{display:flex;justify-content:space-between;align-items:center;gap:var(--e-4);min-height:64px}
.marca{display:inline-flex;align-items:center;gap:10px;color:var(--c-texto);text-decoration:none;font-weight:400;font-size:var(--t-14);letter-spacing:.2em;text-transform:uppercase;min-height:44px}
.marca svg{flex:none}
.nav{display:flex;gap:var(--e-2);list-style:none}
.nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--e-3);color:var(--c-texto-2);text-decoration:none;font-size:var(--t-14)}
.nav a:hover{color:var(--c-texto)}
.nav a[aria-current="page"]{color:var(--c-texto);box-shadow:inset 0 -2px 0 var(--c-marca)}

/* ---------- tipografia ---------- */
.titulo-1{font-weight:300;font-size:clamp(2.1rem,5.4vw,var(--t-64));line-height:1.04;letter-spacing:-.03em;text-wrap:balance}
.titulo-2{font-weight:300;font-size:clamp(1.6rem,3.4vw,2.5rem);line-height:1.12;letter-spacing:-.02em;text-wrap:balance}
.titulo-3{font-weight:400;font-size:var(--t-18);line-height:1.3}
.editorial{font-family:var(--f-editorial);font-weight:500;letter-spacing:-.01em}
.lide{font-size:var(--t-18);color:var(--c-texto-2);max-width:56ch}
.apoio{font-size:var(--t-14);color:var(--c-texto-3)}
.prosa{max-width:var(--medida)}
.prosa p+p{margin-top:var(--e-4)}

/* ---------- botões ---------- */
.botao{display:inline-flex;align-items:center;justify-content:center;gap:var(--e-2);min-height:48px;padding:12px 20px;border:1px solid transparent;border-radius:var(--r-0);
  font-weight:600;font-size:var(--t-16);text-decoration:none;cursor:pointer;
  transition:filter var(--m-rapido) var(--ease-saida),background-color var(--m-rapido),border-color var(--m-rapido),transform var(--m-rapido) var(--ease-saida)}
.botao:active{transform:translateY(1px)}
.botao[disabled],.botao[aria-disabled="true"]{opacity:.5;cursor:not-allowed}
.botao-primario{background:var(--c-marca);color:var(--c-sobre-marca)}
.botao-primario:hover{filter:brightness(1.08)}
.botao-secundario{background:transparent;color:var(--c-texto);border-color:var(--c-linha-forte)}
.botao-secundario:hover{border-color:var(--c-texto-2)}
.botao-texto{background:none;border:0;color:var(--c-marca);font-weight:400;padding:0;min-height:44px}
.botao-bloco{width:100%}

/* ---------- formulários ---------- */
.campo{display:block}
.campo>span{display:block;font-size:var(--t-14);color:var(--c-texto-2);margin-bottom:6px}
.campo input,.campo select{appearance:none;width:100%;min-height:48px;font-size:var(--t-16);color:var(--c-texto);background:var(--c-superficie);border:var(--borda);border-radius:var(--r-0);padding:12px 14px;
  transition:border-color var(--m-rapido)}
.campo input::placeholder{color:var(--c-texto-3)}
.campo input:hover,.campo select:hover{border-color:var(--c-linha-forte)}
.campo input:focus,.campo select:focus{outline:none;border-color:var(--c-marca)}
.campo select{background-image:linear-gradient(45deg,transparent 50%,var(--c-marca) 50%),linear-gradient(135deg,var(--c-marca) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:40px;cursor:pointer}
.campo [aria-invalid="true"]{border-color:var(--c-erro)}
.campo .erro{display:block;margin-top:6px;font-size:var(--t-14);color:var(--c-erro)}
.campo .erro:empty{display:none}
.retorno{min-height:1.5em;font-size:var(--t-14)}
.retorno.ok{color:var(--c-ok)}
.retorno.erro{color:var(--c-erro)}
.armadilha{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- elementos de dado ---------- */
.chip{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border:var(--borda);color:var(--c-texto-2);font-size:var(--t-14);text-decoration:none;
  transition:border-color var(--m-rapido),color var(--m-rapido)}
.chip:hover{border-color:var(--c-linha-forte);color:var(--c-texto)}
.chip[aria-pressed="true"],.chip[aria-current="page"]{border-color:var(--c-marca);color:var(--c-texto)}
.fonte-dado{font-family:var(--f-mono);font-size:var(--t-12);line-height:1.6;color:var(--c-texto-3);overflow-wrap:anywhere}
.fonte-dado a{color:var(--c-dado)}
.codigo{font-family:var(--f-mono);font-size:13px;line-height:1.65;background:var(--c-superficie);border:var(--borda);padding:16px 18px;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--c-texto-2)}
.codigo .id{color:var(--c-dado)}
.codigo .s{color:var(--c-texto)}

/* cartão de dado: o componente central da biblioteca */
.cartao-dado{display:grid;grid-template-columns:72px minmax(0,1fr);gap:var(--e-4);padding:var(--e-4);border:var(--borda);background:var(--c-superficie);color:inherit;text-decoration:none;
  transition:border-color var(--m-rapido)}
.cartao-dado:hover{border-color:var(--c-linha-forte)}
.cartao-dado img{width:72px;aspect-ratio:9/16;object-fit:cover;background:#000}
.cartao-dado .numero{font-family:var(--f-mono);font-size:var(--t-14);color:var(--c-dado)}
.cartao-dado h3{margin-top:4px;font-family:var(--f-editorial);font-weight:500;font-size:var(--t-18);line-height:1.3}
.cartao-dado .fonte-dado{margin-top:var(--e-2)}

/* migalhas */
.migalhas{font-size:var(--t-14);color:var(--c-texto-3)}
.migalhas ol{display:flex;flex-wrap:wrap;gap:6px;list-style:none}
.migalhas li+li::before{content:"›";margin-right:6px;color:var(--c-texto-3)}
.migalhas a{color:var(--c-texto-2);text-decoration:none}
.migalhas a:hover{color:var(--c-texto);text-decoration:underline}

/* perguntas */
.perguntas details{border-bottom:var(--borda)}
.perguntas details:first-child{border-top:var(--borda)}
.perguntas summary{cursor:pointer;list-style:none;padding:16px 32px 16px 0;position:relative;font-size:var(--t-16);min-height:44px}
.perguntas summary::-webkit-details-marker{display:none}
.perguntas summary::after{content:"";position:absolute;right:4px;top:24px;width:8px;height:8px;border-right:1px solid var(--c-marca);border-bottom:1px solid var(--c-marca);transform:rotate(45deg);transition:transform var(--m-medio) var(--ease-saida)}
.perguntas details[open] summary::after{transform:rotate(-135deg);top:28px}
.perguntas details p{padding:0 0 var(--e-4);color:var(--c-texto-2);max-width:var(--medida)}

/* rodapé */
.rodape{margin-top:var(--e-8);padding:var(--e-6) 0 var(--e-7);border-top:var(--borda);font-size:var(--t-14);color:var(--c-texto-3)}
.rodape nav{display:flex;flex-wrap:wrap;gap:var(--e-4);margin-bottom:var(--e-3)}
.rodape a{color:var(--c-texto-2)}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* celular: barra numa linha só */
.marca,.nav a{white-space:nowrap}
@media (max-width:639px){
  .container{padding:0 16px}
  .barra{gap:var(--e-2)}
  .marca{font-size:12px;letter-spacing:.14em;gap:8px}
  .nav{gap:0}
  .nav a{padding:0 var(--e-2);font-size:13px}
}
@media (max-width:399px){ .nav li:last-child{display:none} }
