
  @font-face { font-family:"IBM Plex Sans"; src:url("/fontes/plex-sans.woff2") format("woff2"); font-weight:100 700; font-style:normal; font-display:swap; }
  @font-face { font-family:"IBM Plex Mono"; src:url("/fontes/plex-mono-700.woff2") format("woff2"); font-weight:700; font-style:normal; font-display:swap; }
  @font-face { font-family:"MD Nichrome"; src:url("/fontes/MDNichrome-Bold.ttf") format("truetype"); font-weight:700; font-style:normal; font-display:swap; }
  @font-face { font-family:"MD Nichrome"; src:url("/fontes/MDNichrome-Regular.ttf") format("truetype"); font-weight:400; font-style:normal; font-display:swap; }
  @font-face { font-family:"MD Nichrome"; src:url("/fontes/MDNichrome-Infra.ttf") format("truetype"); font-weight:100; font-style:normal; font-display:swap; }
  :root { --font-titulo:"MD Nichrome",sans-serif; --font-corpo:"IBM Plex Sans",system-ui,sans-serif; --fs-base:16px; --fs-titulo:26px; --fs-nome:20px; --raio:20px; --pad-card:22px; --gap-post:18px; --gap-bloco:24px; --topo:#000; --topo-texto:#fff; }
  :root { --ground:#F2F2F2; --card:#FFFFFF; --ink:#171310; --soft:#6d675f; --rule:#ECE6DC; --amarelo:#FFDE00; --teal:#0F5F5B; --verde:#1f7a4d; }
  * { box-sizing:border-box; }
  body { margin:0; background:var(--ground); color:var(--ink); font:var(--fs-base)/var(--lh-corpo,1.65) var(--font-corpo); -webkit-font-smoothing:antialiased; }
  a { color:var(--teal); }
  .wrap { max-width:var(--largura,680px); margin:0 auto; padding:28px 18px 80px; }
  /* topo igual ao da loja: faixa de aviso + barra preta com hambúrguer à esquerda, marca no centro, points/score à direita */
  .aviso-loja { background:var(--topo); color:var(--topo-texto); width:100vw; margin:-28px 0 0 calc(50% - 50vw); text-align:center; font-size:13px; padding:8px 14px; line-height:1.3; }
  .topo-loja { background:var(--topo); color:var(--topo-texto); width:100vw; margin:0 0 0 calc(50% - 50vw); position:sticky; top:0; z-index:40; }
  .aviso-loja + .topo-loja { margin-top:0; } .sem-aviso + .topo-loja { margin-top:-28px; }
  header.topo { max-width:680px; margin:0 auto; padding:8px 12px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:10px; min-height:62px; }
  .marca-img { display:inline-flex; align-items:center; gap:10px; justify-self:center; } .marca-img img { height:30px; width:auto; display:block; } .marca-img .adm { font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#fff; border:1px solid rgba(255,255,255,.4); border-radius:99px; padding:2px 7px; }
  header.topo .pts { font-size:13px; color:rgba(255,255,255,.75); white-space:nowrap; text-align:right; } header.topo .pts b { color:#fff; font-size:15px; } header.topo .pts .sc { margin-left:8px; padding-left:8px; border-left:1px solid rgba(255,255,255,.3); }
  @media (min-width:600px){ .marca-img img { height:34px; } header.topo { min-height:70px; } }
  @media (max-width:480px){ .aviso-loja { margin-top:-16px; } .sem-aviso + .topo-loja { margin-top:-16px; } header.topo .pts { font-size:12px; } header.topo .pts b { font-size:14px; } header.topo .pts .sc { margin-left:6px; padding-left:6px; } }
  .titulo-site { font-family:var(--font-titulo); font-weight:var(--peso-titulo,700); font-size:30px; line-height:1.05; letter-spacing:-0.02em; }
  .titulo-site .marca { background:linear-gradient(transparent 62%, var(--amarelo) 62%); }
  .sub-site { color:var(--soft); font-size:14px; margin:2px 0 0; }
  /* abas como divisórias de agenda: linguetas com topo arredondado sobre uma linha; a ativa é branca, mais alta e se abre pra página */
  /* abas como divisórias de agenda: a ativa tem a cor da página (é a página); as outras ficam um tom atrás */
  /* abas como divisórias de agenda: a linha vai de um canto a outro da tela e passa por baixo das inativas; só a ativa (cor da página) a cobre */
  /* abas como divisórias de agenda penduradas na capa preta: a faixa das abas é preta de canto a canto; a ativa tem a cor da página e se abre pra ela */
  nav.abas { display:flex; align-items:flex-end; gap:4px; margin:0 0 18px calc(50% - 50vw); width:100vw; padding:6px max(18px, calc(50vw - 322px)) 0; background:var(--topo); position:relative; }
  nav.abas::before { display:none; }
  nav.abas a svg { width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }

  .abas-sent { height:0; }
  nav.abas a { flex:1; text-decoration:none; color:rgba(255,255,255,.7); font-weight:600; font-size:13px; padding:9px 8px 8px; border-radius:12px 12px 0 0; border:1px solid rgba(255,255,255,.14); border-bottom:none; background:#1c1915; white-space:nowrap; line-height:1.2; display:flex; align-items:center; justify-content:center; gap:6px; transition:padding .15s, background .15s; }
  nav.abas a.on { background:var(--aba-ativa,var(--ground)); color:var(--ink); border-color:var(--aba-ativa,var(--ground)); padding-top:13px; }
  nav.abas a:not(.on):hover { background:#2a2622; color:#fff; }
  .card.perfil { padding-bottom:var(--gap-bloco,24px); }
  .nivel-abre { cursor:pointer; display:inline-block; }
  nav.abas a:not(.on):hover { background:#ECE9E2; color:var(--ink); }
  nav.abas a:not(.on):hover { background:#ECE9E2; color:var(--ink); }
  nav.abas a:not(.on):hover { background:#F0EEE8; color:var(--ink); }
  nav.abas .pts { margin-left:auto; align-self:center; font-size:13px; color:var(--soft); white-space:nowrap; }
  @media (max-width:560px){ nav.abas { gap:3px; padding:0 2px; } nav.abas a { font-size:12.5px; padding:8px 4px 7px; gap:4px; } nav.abas a svg { width:14px; height:14px; } nav.abas a.on { padding-top:12px; } }
  /* menu sanduíche no topo direito */
  .hamb { border:none; background:transparent; width:40px; height:40px; border-radius:10px; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; color:#fff; flex-shrink:0; justify-self:start; margin-left:-8px; } .hamb svg { width:22px; height:22px; stroke:currentColor; fill:none; stroke-width:1.6; stroke-linecap:round; }
  .topo-dir { display:flex; align-items:center; gap:12px; justify-self:end; }
  .sino { position:relative; display:inline-flex; align-items:center; cursor:pointer; color:var(--topo-texto); padding:4px; border-radius:50%; } .sino svg { width:22px; height:22px; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
  .sino-n { position:absolute; top:-4px; right:-6px; background:var(--amarelo); color:#171310; font-size:11px; font-weight:700; border-radius:99px; min-width:18px; height:18px; padding:0 5px; display:inline-flex; align-items:center; justify-content:center; line-height:1; }
  .folha.sino .sino-tit { font-family:var(--font-titulo); font-weight:700; font-size:22px; margin:8px 0 10px; } .sino-item { display:flex; gap:12px; align-items:center; padding:12px; border:1px solid var(--rule); border-radius:14px; margin:8px 0; text-decoration:none; color:var(--ink); } .sino-item small { display:block; color:var(--soft); font-size:12.5px; } .sino-ic { font-size:22px; } .sino-vazio { color:var(--soft); font-size:14px; padding:6px 0 12px; }
  .menu-bg { position:fixed; inset:0; z-index:50; background:rgba(23,19,16,.25); display:none; } .menu-bg.on { display:block; }
  .menu-drop { position:absolute; top:12px; left:12px; width:min(300px, calc(100vw - 24px)); background:var(--card); border:1px solid var(--rule); border-radius:18px; padding:8px; box-shadow:0 20px 50px -20px rgba(0,0,0,.4); animation:sobeModal .2s cubic-bezier(.2,.9,.3,1.1); }
  .menu-drop a { display:flex; align-items:center; gap:12px; padding:12px 12px; border-radius:12px; text-decoration:none; color:var(--ink); font-weight:600; font-size:15px; } .menu-drop a:hover { background:var(--ground); } .menu-drop a.on { background:var(--ground); }
  .menu-drop a svg { width:20px; height:20px; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
  .menu-drop .sep { height:1px; background:var(--rule); margin:6px 8px; } .menu-drop .loja { color:var(--teal); } .menu-drop .fechar-m { position:absolute; top:8px; right:8px; border:none; background:none; font-size:20px; cursor:pointer; color:var(--soft); padding:6px; line-height:1; }
  .menu-drop .quem { padding:10px 12px 4px; font-size:12px; color:var(--soft); text-transform:uppercase; letter-spacing:.06em; font-weight:600; }
  @media (prefers-reduced-motion: reduce) { .menu-drop { animation:none; } }
  nav.abas .pts b { color:var(--ink); }
  .card { background:var(--card); border:var(--borda,1px) solid var(--rule); border-radius:var(--raio); padding:18px 20px; margin:0 0 14px; }
  .perfil { display:flex; gap:12px; align-items:flex-start; padding:14px 16px; }
  /* bloco da cliente: continua o preto do topo, de um canto a outro, com o conteúdo alinhado à página */
  .perfil { background:var(--topo); color:var(--topo-texto); border:none; border-radius:0; width:100vw; margin:0 0 0 calc(50% - 50vw); padding:10px max(18px, calc(50vw - 322px)) var(--gap-bloco,24px); }
  .perfil .pnome { color:#fff; } .perfil .pmeta { color:rgba(255,255,255,.7); } .perfil .pmeta b { color:#fff; }
  .perfil .nivel { background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.35); color:#fff; } .perfil .nivel img { border:1px solid rgba(255,255,255,.4); }
  .perfil .verif path.b { fill:#fff; } .perfil .verif path.c { stroke:#000; }
  .perfil .pbar { background:rgba(255,255,255,.22); } .perfil .pscore { color:rgba(255,255,255,.7); } .perfil .pscore b { color:#fff; }
  .perfil .pcapa { border-color:#fff; } .perfil .pcapa.vazia { background:#1f1b16; }
  .perfil .pmeta a, .perfil .pmeta #demoAnim { color:var(--amarelo); } .perfil .pts { color:rgba(255,255,255,.7); } .perfil .pts b { color:#fff; }
  .perfil .pfoto { border:none; background:none; padding:0; cursor:pointer; border-radius:50%; flex-shrink:0; } .perfil .pfoto:active .pcapa { transform:scale(.96); } .perfil .pcapa { transition:transform .15s; }
  .perfil .pbar { display:block; width:100%; border:none; padding:0; cursor:pointer; margin:8px 0 6px; height:7px; background:var(--rule); }
  .perfil .pscore { display:none; margin:0 0 6px; } .perfil.mostra-score .pscore { display:flex; animation:entra .3s both; }
  .id-bg { position:fixed; inset:0; z-index:50; background:rgba(23,19,16,.55); display:none; align-items:center; justify-content:center; padding:16px; } .id-bg.on { display:flex; }
  .idcard { background:var(--card); width:100%; max-width:420px; max-height:90vh; overflow:auto; border-radius:22px; box-shadow:0 30px 60px -20px rgba(0,0,0,.5); animation:sobeModal .3s cubic-bezier(.2,.9,.3,1.1); border:1px solid var(--rule); }
  .id-topo { background:var(--amarelo); color:var(--ink); display:flex; align-items:center; justify-content:space-between; padding:10px 14px 10px 18px; font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
  .id-x { border:none; background:rgba(0,0,0,.1); width:30px; height:30px; border-radius:50%; font-size:18px; line-height:1; cursor:pointer; color:var(--ink); }
  .id-corpo { display:flex; gap:16px; padding:18px 18px 6px; } .id-foto { width:104px; height:104px; border-radius:16px; overflow:hidden; background:var(--ground); border:1px solid var(--rule); flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:40px; } .id-foto img { width:100%; height:100%; object-fit:cover; }
  .id-campos { display:grid; grid-template-columns:1fr 1fr; gap:10px 12px; flex:1; min-width:0; } .id-campo small { display:block; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--soft); font-weight:600; } .id-campo b { display:block; font-size:14px; line-height:1.25; overflow-wrap:anywhere; } .id-campo .mono { font-family:"IBM Plex Mono",monospace; letter-spacing:.06em; }
  .id-stats { display:grid; grid-template-columns:repeat(3,1fr); margin:12px 18px 0; border:1px solid var(--rule); border-radius:14px; overflow:hidden; } .id-stats div { text-align:center; padding:10px 6px; border-left:1px solid var(--rule); } .id-stats div:first-child { border-left:none; } .id-stats b { display:block; font-family:var(--font-titulo); font-weight:700; font-size:22px; line-height:1; } .id-stats span { font-size:11px; color:var(--soft); text-transform:uppercase; letter-spacing:.06em; }
  .id-sec { font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--soft); font-weight:600; margin:16px 18px 6px; } .idcard .selos, .idcard .selo-dica, .idcard .avs, .idcard .pnomeopt, .idcard .aniv { margin-left:18px; margin-right:18px; }
  .id-form { display:flex; gap:8px; margin:0 18px; } .id-form input, .id-form select { flex:1; min-width:0; font:inherit; font-size:14px; padding:9px 12px; border:1px solid var(--rule); border-radius:12px; background:var(--card); color:var(--ink); } .id-form button { font:inherit; font-weight:700; border:none; border-radius:12px; background:var(--ink); color:#fff; padding:9px 14px; cursor:pointer; }
  .id-nota { font-size:12px; color:var(--soft); margin:6px 18px 0; }
  .folha.pagina { padding:24px 22px 26px; } .folha.pagina h2 { font-family:var(--font-titulo); font-weight:700; font-size:26px; margin:0 0 10px; line-height:1.1; } .folha.pagina h3 { font-size:15px; margin:16px 0 4px; } .folha.pagina p, .folha.pagina li { font-size:15px; line-height:1.55; }
  .menu-drop a.sair { color:var(--soft); }
  .id-rodape { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 18px 16px; margin-top:14px; border-top:1px dashed var(--rule); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--soft); font-weight:600; }
  .id-barcode { flex:1; height:26px; background:repeating-linear-gradient(90deg, var(--ink) 0 2px, transparent 2px 4px, var(--ink) 4px 5px, transparent 5px 8px, var(--ink) 8px 11px, transparent 11px 13px); opacity:.8; max-width:180px; }
  @media (prefers-reduced-motion: reduce) { .idcard { animation:none; } .perfil.mostra-score .pscore { animation:none; } }
  .perfil .pcapa { border-radius:50%; width:56px; height:56px; }
  .perfil .pmais { position:absolute; right:12px; top:12px; font:inherit; font-size:12px; font-weight:600; border:1px solid var(--rule); background:var(--ground); border-radius:99px; padding:4px 10px; cursor:pointer; color:var(--ink); }
  .perfil { position:relative; }
  .perfil .pexp { display:none; }
  .perfil.aberto .pexp { display:block; }
  .perfil.aberto .pmais { background:var(--ink); color:#fff; border-color:var(--ink); }
  .avs { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; align-items:center; }
  .avs .avt { font-size:12.5px; color:var(--soft); width:100%; }
  .avs button { width:44px; height:44px; border-radius:50%; padding:0; border:2px solid var(--rule); background:var(--ground); cursor:pointer; overflow:hidden; transition:transform .2s, border-color .2s; }
  .avs button img { width:100%; height:100%; object-fit:cover; display:block; }
  .avs button.on { border-color:var(--ink); transform:scale(1.08); }
  .pcab { display:flex; align-items:center; gap:10px; margin:0 0 10px; }
  .pcab .pav { width:52px; height:52px; border-radius:50%; object-fit:cover; background:var(--amarelo); border:1px solid var(--rule); flex-shrink:0; }
  .pcab .pquem { font-weight:700; font-size:14px; line-height:1.2; } .pcab .pquando { display:block; color:var(--soft); font-size:12px; font-weight:400; }
  .pcab .ptipo { margin:0 0 0 auto; }
  .pcab .phandle { color:var(--soft); font-weight:400; font-size:12.5px; margin-left:4px; }
  .pcab .pquem { font-size:15px; }
  @media (max-width:520px){ .pcab .pav { width:46px; height:46px; } }
  .perfil .pcapa { width:64px; height:64px; border-radius:50%; object-fit:cover; background:var(--ground); flex-shrink:0; border:2px solid var(--ink); }
  .verif { display:inline-block; width:18px; height:18px; vertical-align:-3px; margin-left:5px; flex-shrink:0; } .verif path.b { fill:var(--ink); } .verif path.c { fill:none; stroke:#fff; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
  .perfil .pcapa.vazia { display:flex; align-items:center; justify-content:center; font-size:26px; }
  .pnome { font-family:var(--font-titulo); font-weight:var(--peso-titulo,700); font-size:var(--fs-nome); letter-spacing:-0.01em; line-height:1.15; }
  .pmeta { color:var(--soft); font-size:13.5px; margin-top:2px; }
  .pmeta b { color:var(--ink); font-weight:600; }
  .nivel img { width:18px; height:18px; border-radius:50%; object-fit:cover; vertical-align:-5px; margin:-2px 4px -2px -4px; }
  .niv .narte { width:40px; height:40px; border-radius:50%; object-fit:cover; display:block; margin-bottom:6px; border:1px solid var(--rule); }
  .rec .ic img, .nvl-big img { width:100%; height:100%; object-fit:cover; border-radius:inherit; }
  .nivel { display:inline-flex; align-items:center; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; border-radius:99px; padding:2px 8px; border:1px solid var(--rule); background:var(--ground); margin-left:4px; vertical-align:middle; }
  .nivel.club { background:#EEF0F4; } .nivel.insider { background:#E4F1EF; border-color:var(--teal); } .nivel.icon { background:var(--amarelo); border-color:var(--ink); } .nivel.legend { background:var(--ink); color:var(--amarelo); border-color:var(--ink); }
  nav.abas .pts .sc { margin-left:8px; padding-left:8px; border-left:1px solid var(--rule); }
  .duas { display:grid; grid-template-columns:1fr 1fr; gap:14px; } @media (max-width:520px){ .duas { grid-template-columns:1fr; } }
  .duas { margin:0 0 14px; } .duas .card { margin:0; } .lema { color:var(--soft); font-size:13px; margin:0 0 14px; }
  .score-big { font-family:var(--font-titulo); font-weight:700; font-size:34px; letter-spacing:-0.03em; line-height:1; }
  .selos { display:flex; gap:6px; flex-wrap:wrap; margin-top:10px; }
  .selo { font:inherit; font-size:12.5px; display:inline-flex; align-items:center; gap:5px; border-radius:99px; padding:4px 10px; border:1px solid var(--rule); background:var(--ground); cursor:pointer; color:var(--ink); }
  .selo.tem { background:var(--amarelo); border-color:var(--ink); font-weight:600; }
  .selo img { width:18px; height:18px; border-radius:50%; object-fit:cover; }
  .quiz { border:1px solid var(--rule); border-radius:16px; padding:14px; margin:4px 0 14px; background:#F3F8F7; }
  .quiz .perg { font-weight:600; margin:0 0 10px; }
  .opcao.certa { border-color:var(--verde); background:#EAF6EF; } .opcao.errada { border-color:#c9584c; background:#FBEDEB; }
  .opcao .marca { font-weight:700; margin-right:6px; }
  .aposta { border:1px solid var(--rule); border-radius:16px; padding:14px; margin:4px 0 14px; background:#FFF6DA; }
  .aposta .perg { font-weight:600; margin:0 0 10px; }
  .aposta .valor { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin:8px 0 4px; font-size:13.5px; }
  .aposta .valor input { width:90px; font:inherit; border:1px solid var(--rule); border-radius:10px; padding:8px 10px; background:var(--card); }
  .aposta .valor .preset { font:inherit; font-size:12.5px; border:1px solid var(--rule); background:var(--card); border-radius:99px; padding:4px 10px; cursor:pointer; }
  .aposta .btn { font:inherit; font-weight:600; background:var(--ink); color:#fff; border:none; border-radius:99px; padding:10px 18px; cursor:pointer; }
  .aposta .btn:disabled { opacity:.5; cursor:not-allowed; }
  .aposta .res { margin-top:8px; font-weight:600; }
  .conq { display:grid; grid-template-columns:repeat(auto-fill, minmax(140px,1fr)); gap:12px; } @media (max-width:520px){ .conq { grid-template-columns:1fr 1fr; gap:10px; } }
  /* selo postal: borda picotada (pontos da cor do fundo ao longo da margem), moldura interna, valor no canto e carimbo quando obtida */
  .cq { position:relative; padding:7px; border-radius:2px; text-align:center; background:radial-gradient(circle, var(--ground) 0 2.6px, var(--card) 3.2px) -7px -7px / 14px 14px; box-shadow:0 2px 3px rgba(23,19,16,.08); }
  .cq .cq-in { position:relative; background:var(--card); padding:16px 10px 12px; min-height:150px; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; }
  .cq .cq-in::before { content:''; position:absolute; inset:4px; border:1px solid var(--rule); border-radius:7px; pointer-events:none; }
  .cq.tem .cq-in { background:#FFFDF4; } .cq.tem .cq-in::before { border-color:var(--ink); } .cq.falta .cq-in::before { border-style:dashed; } .cq.falta .ic, .cq.falta b, .cq.falta .como { filter:grayscale(1); opacity:.7; }
  .cq .valor { position:absolute; top:9px; left:10px; font-family:var(--font-titulo); font-weight:700; font-size:13px; letter-spacing:.02em; color:var(--ink); line-height:1; } .cq .valor small { display:block; font-family:var(--font-corpo); font-weight:600; font-size:8px; letter-spacing:.12em; text-transform:uppercase; color:var(--soft); margin-top:2px; }
  .cq .carimbo { position:absolute; top:6px; right:6px; width:56px; height:56px; border-radius:50%; border:1.5px dashed #B3261E; color:#B3261E; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:7.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; line-height:1.15; transform:rotate(-14deg); opacity:.85; mix-blend-mode:multiply; pointer-events:none; } .cq .carimbo small { font-size:7px; letter-spacing:.04em; font-weight:600; }
  /* a arte do selo é vertical 3:4 (foto); sem arte, o emoji fica no centro do retângulo */
  .cq .ic { width:100%; aspect-ratio:3/4; border-radius:3px; margin:0 0 10px; display:flex; align-items:center; justify-content:center; font-size:40px; background:var(--ground); border:1px solid var(--rule); overflow:hidden; }
  .cq.tem .ic { background:var(--amarelo); border:none; } .cq.falta .ic { border:none; }
  .cq .cq-in { padding:12px 10px 12px; }
  .cq .valor { top:20px; left:18px; background:rgba(255,255,255,.88); padding:4px 6px 3px; border-radius:3px; } .cq .carimbo { top:14px; right:12px; }
  .cq .ic img { width:100%; height:100%; object-fit:cover; }
  .cq b { display:block; font-size:12px; line-height:1.2; text-transform:uppercase; letter-spacing:.08em; } .cq .como { color:var(--soft); font-size:11.5px; margin-top:4px; line-height:1.35; }
  .cq .quando { font-size:11px; color:var(--soft); margin-top:auto; padding-top:8px; font-weight:600; letter-spacing:.04em; }
  .cq .prog { height:5px; background:var(--rule); border-radius:99px; margin:8px 0 3px; overflow:hidden; } .cq .prog span { display:block; height:100%; background:var(--teal); border-radius:99px; }
  .cq .progt { font-size:11px; color:var(--soft); }
  .pub { display:inline-block; font-size:11px; color:var(--teal); border:1px dashed var(--teal); border-radius:99px; padding:2px 8px; margin:0 0 10px 6px; }
  .vit { display:grid; grid-template-columns:repeat(auto-fill, minmax(200px,1fr)); gap:12px; }
  @media (max-width:520px){ .vit { grid-template-columns:1fr 1fr; gap:8px; } .vi { padding:10px; gap:6px; border-radius:14px; } .vi b { font-size:13.5px; } .vi .desc { font-size:12px; } .vi button { padding:8px 10px; font-size:13px; } .vi .chips span { font-size:10px; padding:2px 6px; } }
  .vi { background:var(--card); border:1px solid var(--rule); border-radius:calc(var(--raio) - 2px); padding:14px; display:flex; flex-direction:column; gap:8px; }
  .vi.pode { border-color:var(--ink); } .vi.esg { opacity:.6; }
  .vi .img { width:100%; aspect-ratio:1; border-radius:12px; background:var(--ground); display:flex; align-items:center; justify-content:center; font-size:38px; overflow:hidden; } .vi .img img { width:100%; height:100%; object-fit:cover; }
  .vi b { font-size:15px; line-height:1.2; } .vi .desc { color:var(--soft); font-size:13px; line-height:1.4; flex:1; }
  .vi .chips { display:flex; gap:6px; flex-wrap:wrap; } .vi .chips span { font-size:11px; border:1px solid var(--rule); border-radius:99px; padding:2px 8px; color:var(--soft); background:var(--ground); }
  .vi .chips .ex { background:var(--amarelo); color:var(--ink); border-color:var(--ink); font-weight:600; }
  .vi button { font:inherit; font-weight:600; border-radius:99px; padding:9px 14px; border:1px solid var(--ink); background:var(--ink); color:#fff; cursor:pointer; }
  .vi button:disabled { background:var(--card); color:var(--soft); border-color:var(--rule); cursor:not-allowed; }
  .vi .falta { font-size:12px; color:var(--soft); text-align:center; } .vi .falta.pouco { color:var(--ink); font-weight:600; }
  .vi .prog { height:5px; background:var(--rule); border-radius:99px; margin:8px 6px 4px; overflow:hidden; } .vi .prog span { display:block; height:100%; background:var(--barra,var(--amarelo)); border-radius:99px; animation:enche .9s cubic-bezier(.2,.8,.2,1); }
  .vou-acao .prog { margin:0 0 6px; }
  .vi .inc input[type=range] { width:100%; accent-color:var(--ink); } .vi .incv { font-size:13px; color:var(--soft); text-align:center; } .vi .incv b { color:var(--ink); }
  .niv { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:12px; } .niv div { border:1px solid var(--rule); border-radius:12px; padding:10px 12px; font-size:12.5px; color:var(--soft); } .niv div.atual { border-color:var(--ink); background:#FFFDF4; } .niv b { display:block; color:var(--ink); font-size:13px; }
  @media (max-width:480px){ .niv { grid-template-columns:1fr; } }
  .selo.falta { opacity:.55; filter:grayscale(1); }
  .selo-dica { display:none; color:var(--soft); font-size:12.5px; margin-top:6px; } .selo-dica.on { display:block; }
  .pnomeopt { display:flex; align-items:center; gap:6px; color:var(--soft); font-size:12.5px; margin-top:8px; cursor:pointer; }
  .times-tit { font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--soft); margin:0 0 6px; }
  .times { display:flex; gap:8px; overflow-x:auto; padding:2px 2px 8px; margin:0 0 10px; scrollbar-width:none; } .times::-webkit-scrollbar { display:none; }
  .time { flex-shrink:0; display:inline-flex; align-items:center; gap:8px; background:var(--card); border:1px solid var(--rule); border-radius:99px; padding:5px 12px 5px 5px; font-size:13px; }
  .time img, .time .ini { width:28px; height:28px; border-radius:50%; object-fit:cover; background:var(--ground); }
  .time .ini { display:inline-flex; align-items:center; justify-content:center; font-size:11px; font-weight:600; color:var(--soft); }
  .time b { font-weight:600; } .time .n { color:var(--soft); } .time.meu { border-color:var(--ink); background:#FFFDF4; }
  .tl { position:relative; }
  .post { content-visibility:auto; contain-intrinsic-size:auto 560px; }
  .post { position:relative; background:var(--card); border:var(--borda,1px) solid var(--rule); border-radius:20px; padding:22px 22px 14px; margin-bottom:30px; box-shadow:var(--sombra, 0 1px 2px rgba(23,19,16,.04), 0 10px 30px -22px rgba(23,19,16,.25)); }
  .post { padding:var(--pad-card) calc(var(--pad-card) - 2px) calc(var(--pad-card) - 8px); margin-bottom:var(--gap-post); border-radius:var(--raio); }

  .pdata { display:inline-block; font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--ink); background:var(--amarelo); border-radius:99px; padding:3px 10px; margin:0 6px 10px 0; }
  .ptipo { display:inline-block; font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--soft); border:1px solid var(--rule); border-radius:99px; padding:3px 10px; margin-bottom:10px; }
  h2.ptit { font-family:var(--font-titulo); font-weight:var(--peso-titulo,700); font-size:var(--fs-titulo); line-height:1.12; letter-spacing:var(--ls-titulo,-0.015em); margin:0 0 4px; }
  .psub { color:var(--soft); font-size:15.5px; margin:0 0 14px; }
  .pcorpo p { margin:0 0 12px; } .pcorpo h3 { font-family:var(--font-titulo); font-size:18px; margin:18px 0 6px; } .pcorpo ul { margin:0 0 12px; padding-left:20px; }
  .carrossel { display:flex; gap:10px; overflow-x:auto; scroll-snap-type:x mandatory; border-radius:14px; margin:6px 0 12px; -webkit-overflow-scrolling:touch; scrollbar-width:none; cursor:grab; }
  .carrossel::-webkit-scrollbar { display:none; } .carrossel.arrastando { cursor:grabbing; scroll-snap-type:none; }
  .carrossel img { width:86%; flex-shrink:0; scroll-snap-align:center; border-radius:14px; object-fit:cover; max-height:460px; background:#eee; user-select:none; -webkit-user-drag:none; pointer-events:none; }
  .carrossel img:first-child { margin-left:7%; } .carrossel img:last-child { margin-right:7%; } .carrossel img:only-child { width:100%; margin:0; pointer-events:auto; }
  .dots { display:flex; gap:6px; justify-content:center; margin:-4px 0 12px; } .dots span { width:7px; height:7px; border-radius:4px; background:var(--rule); transition:width .3s cubic-bezier(.2,.9,.3,1), background .3s; } .dots span.on { width:20px; background:var(--ink); }
  .produtos { display:flex; gap:8px; flex-wrap:wrap; margin:4px 0 14px; }
  .produtos a { text-decoration:none; color:var(--ink); font-size:13px; font-weight:600; border:1px solid var(--ink); border-radius:99px; padding:6px 12px; background:var(--card); }
  .enquete { border:1px solid var(--rule); border-radius:16px; padding:14px; margin:4px 0 14px; background:#FFFDF4; }
  .enquete .perg { font-weight:600; margin:0 0 10px; }
  .opcao { display:block; width:100%; text-align:left; font:inherit; background:var(--card); border:1px solid var(--rule); border-radius:12px; padding:10px 12px; margin:0 0 8px; cursor:pointer; position:relative; overflow:hidden; }
  .opcao:hover { border-color:var(--ink); } .opcao.minha { border-color:var(--ink); font-weight:600; }
  .opcao .barra { position:absolute; left:0; top:0; bottom:0; background:var(--amarelo); opacity:.45; z-index:0; transition:width .4s; }
  .opcao .txt { position:relative; z-index:1; display:flex; justify-content:space-between; gap:8px; }
  .opcao .pct { color:var(--soft); font-weight:600; }
  .opcao .times-op { font-size:11px; color:var(--soft); font-weight:400; }
  .enquete .rodape { color:var(--soft); font-size:12.5px; }
  .desafio { display:flex; align-items:center; gap:12px; border:1px solid var(--rule); border-radius:16px; padding:12px 14px; margin:4px 0 14px; background:#FFFDF4; }
  .desafio .btn { font:inherit; font-weight:600; background:var(--ink); color:#fff; border:none; border-radius:99px; padding:10px 18px; cursor:pointer; white-space:nowrap; display:inline-flex; align-items:center; gap:6px; flex-shrink:0; }
  .desafio .n { flex:1; min-width:0; }
  .desafio .btn.feito { background:var(--verde); } .desafio .n { color:var(--soft); font-size:13px; }
  .reacoes { display:flex; gap:8px; flex-wrap:wrap; border-top:1px solid var(--rule); padding-top:12px; }
  .coms { margin-top:12px; border-top:1px solid var(--rule); padding-top:10px; }
  .com { display:flex; gap:10px; align-items:flex-start; padding:6px 0; }
  .com .cav { width:30px; height:30px; border-radius:50%; object-fit:cover; background:var(--ground); border:1px solid var(--rule); flex-shrink:0; margin-top:2px; }
  .com .ctx { flex:1; min-width:0; font-size:14.5px; line-height:1.4; } .com .cnome { display:block; font-size:13px; font-weight:500; color:var(--soft); margin-bottom:1px; }
  .com .ctx p { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; color:var(--ink); }
  .com .crod { display:flex; gap:12px; align-items:center; margin-top:4px; font-size:12px; color:var(--soft); }
  .com .cx, .com .cresp { border:none; background:none; color:var(--soft); cursor:pointer; font:inherit; font-size:12px; padding:0; } .com .cresp { font-weight:600; } .com .cx:hover, .com .cresp:hover { color:var(--ink); text-decoration:underline; }
  .com .ccur { border:none; background:none; cursor:pointer; color:var(--soft); display:flex; flex-direction:column; align-items:center; gap:2px; padding:4px 2px; margin-top:6px; flex-shrink:0; font:inherit; font-size:11px; line-height:1; min-width:26px; }
  .com .ccur svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linejoin:round; transition: transform .2s; } .com .ccur.on { color:#E0245E; } .com .ccur.on svg { fill:currentColor; }
  .com .ccur:disabled { cursor:default; } .com .ccur.pop svg { animation: curPop .35s cubic-bezier(.2,.8,.2,1); } @keyframes curPop { 0% { transform:scale(1); } 40% { transform:scale(1.5); } 100% { transform:scale(1); } }
  .com .ccur .n:empty { display:none; }
  .com.resp { padding:4px 0; } .com.resp .cav { width:24px; height:24px; } .com.resp .ctx { font-size:14px; }
  .crespostas { margin-top:2px; } .crespostas:empty { display:none; }
  .cver { display:inline-flex; align-items:center; gap:8px; font-size:12px; color:var(--soft); margin:6px 0 2px; cursor:pointer; background:none; border:none; padding:0; font-family:inherit; } .cver::before { content:''; width:22px; height:1px; background:var(--rule); }
  .cform { flex-wrap:wrap; } .cchip { flex-basis:100%; font-size:12px; color:var(--soft); display:flex; align-items:center; gap:8px; } .cchip:empty { display:none; } .cchip button { border:none; background:none; color:var(--soft); cursor:pointer; font-size:14px; padding:0 2px; line-height:1; }
  .com.oc .ctx { opacity:.6; } .com .coc { font-size:11px; color:#B3261E; margin-left:6px; }
  .com.nova { animation: comEntra .45s cubic-bezier(.2,.8,.2,1) both; } @keyframes comEntra { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
  .cmais { display:inline-block; font-size:13px; color:var(--soft); margin:4px 0 2px; text-decoration:underline; text-underline-offset:2px; cursor:pointer; }
  .cform { display:flex; gap:8px; align-items:flex-end; margin-top:8px; } .cform textarea { flex:1; min-height:40px; max-height:160px; resize:none; font:inherit; font-size:14px; padding:9px 12px; border:1px solid var(--rule); border-radius:14px; background:var(--card); color:var(--ink); }
  .cform button { border:none; border-radius:12px; background:var(--ink); color:#fff; font:inherit; font-weight:700; font-size:13.5px; padding:10px 14px; cursor:pointer; white-space:nowrap; } .cform button:disabled { opacity:.5; cursor:default; }
  @media (prefers-reduced-motion: reduce) { .com.nova { animation:none; } }
  .reacoes button { font:inherit; font-size:15px; display:inline-flex; align-items:center; gap:6px; background:var(--ground); border:1px solid var(--rule); border-radius:99px; padding:6px 13px; cursor:pointer; transition:all .15s; }
  .reacoes button:hover { border-color:var(--ink); } .reacoes button.minha { background:var(--amarelo); border-color:var(--ink); font-weight:600; }
  .reacoes .n { font-size:13px; color:var(--soft); } .reacoes button.minha .n { color:var(--ink); }
  .phora { display:inline-flex; align-items:center; gap:4px; color:var(--soft); font-size:11.5px; margin-left:auto; align-self:center; } .phora svg { width:17px; height:12px; }
  .ptime { display:flex; align-items:center; gap:8px; color:var(--soft); font-size:12.5px; margin-top:10px; } .ptime a { color:var(--teal); cursor:pointer; text-decoration:underline; margin-left:auto; }
  .zap { display:flex; align-items:center; gap:11px; background:#FFFDF4; border:1px solid var(--rule); border-radius:16px; padding:11px 14px; margin:4px 0 14px; }
  .zplay { flex-shrink:0; width:44px; height:44px; border-radius:50%; border:none; background:var(--ink); color:var(--amarelo); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; } .zplay svg { width:17px; height:17px; }
  .zmain { flex:1; min-width:0; } .zbars { display:flex; align-items:center; gap:2.5px; height:28px; cursor:pointer; } .zbars span { width:3px; border-radius:2px; background:#DCD5C6; } .zbars span.on { background:var(--ink); }
  .ztime { display:flex; justify-content:space-between; font-size:11.5px; color:var(--soft); margin-top:3px; }
  .vazio, .portao { background:var(--card); border:1px solid var(--rule); border-radius:20px; padding:34px 26px; text-align:center; }
  .landing { text-align:left; padding:0; overflow:hidden; }
  .landing .hero { background:var(--ink); color:#fff; padding:34px 26px 30px; position:relative; }
  .landing .hero::after { content:''; position:absolute; right:-40px; top:-40px; width:180px; height:180px; border-radius:50%; background:var(--hero-bolha,var(--amarelo)); opacity:.9; }
  .landing .hero.sem-bolha::after { display:none; } .landing .hero.centro { text-align:center; } .landing .hero.centro img { margin-left:auto; margin-right:auto; } .landing .hero.centro p { margin:0 auto; }
  .landing .hero.fundo { background-size:cover; background-position:center; } .landing .hero.fundo::before { content:''; position:absolute; inset:0; background:var(--hero-veu,rgba(0,0,0,.45)); } .landing .hero.fundo > * { position:relative; z-index:1; }
  .landing .rodape { font-size:13px; color:var(--soft); padding:0 26px 22px; margin:0; } .landing .rodape p { margin:0; }
  .previa-bar { position:fixed; left:0; right:0; bottom:0; z-index:60; background:#FFDE00; color:#171310; font-size:12px; text-align:center; padding:5px 10px; } .previa-bar a { color:inherit; font-weight:700; margin-left:8px; }
  .landing .hero img { width:64px; height:64px; object-fit:contain; margin:0 0 10px; position:relative; z-index:1; }
  .landing .hero h1 { font-family:var(--font-titulo); font-weight:700; font-size:34px; line-height:1.02; letter-spacing:-0.02em; margin:0 0 8px; position:relative; z-index:1; }
  .landing .hero h1 span { background:linear-gradient(transparent 62%, var(--amarelo) 62%); color:#fff; }
  .landing .hero p { color:#d9d4c7; margin:0; max-width:42ch; position:relative; z-index:1; }
  .landing .oque { display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:18px 22px 6px; }
  .landing .oque div { border:1px solid var(--rule); border-radius:14px; padding:12px; font-size:13.5px; color:var(--soft); }
  .landing .oque b { display:block; color:var(--ink); font-size:15px; margin-bottom:2px; }
  .landing .acao { padding:14px 22px 24px; display:flex; flex-direction:column; gap:10px; align-items:flex-start; }
  .landing .acao p { margin:0; color:var(--soft); font-size:13.5px; }
  .landing .msg { margin:18px 22px 0; padding:12px 14px; border-radius:12px; background:#FFF6DA; border:1px solid #F0DC7A; font-size:14px; }
  @media (max-width:480px){ .landing .oque { grid-template-columns:1fr; } .landing .hero h1 { font-size:28px; } }
  @keyframes pop { 0% { transform:scale(.4); opacity:0 } 60% { transform:scale(1.12); opacity:1 } 100% { transform:scale(1) } }
  @keyframes confete { 0% { transform:translateY(0) rotate(0); opacity:1 } 100% { transform:translateY(240px) rotate(540deg); opacity:0 } }
  @keyframes pulso { 0% { transform:scale(1) } 50% { transform:scale(1.35); color:var(--verde) } 100% { transform:scale(1) } }
  .pts b.up { display:inline-block; animation:pulso .7s ease; }
  .selo-pop { position:fixed; inset:0; z-index:30; display:none; align-items:center; justify-content:center; background:rgba(23,19,16,.55); }
  .selo-pop.on { display:flex; }
  .selo-pop .caixa { background:var(--card); border-radius:24px; padding:28px 26px 22px; text-align:center; max-width:320px; width:calc(100% - 40px); animation:pop .5s cubic-bezier(.2,.9,.3,1.3); position:relative; }
  .selo-pop .ic { width:96px; height:96px; border-radius:50%; margin:0 auto 12px; background:var(--amarelo); border:2px solid var(--ink); display:flex; align-items:center; justify-content:center; font-size:46px; overflow:hidden; } .selo-pop .ic img { width:100%; height:100%; object-fit:cover; }
  .selo-pop h3 { font-family:var(--font-titulo); font-size:22px; margin:0 0 4px; } .selo-pop p { color:var(--soft); margin:0 0 14px; font-size:14px; }
  .selo-pop .eyebrow { font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--soft); font-weight:600; }
  .selo-pop .conf { position:absolute; top:-6px; width:9px; height:14px; border-radius:2px; animation:confete 1.6s ease-out forwards; }
  /* movimentos */
  @keyframes shimmer { to { background-position:-200% 0 } }
  .carrossel img { background:linear-gradient(90deg, var(--rule) 25%, #DCD5C6 50%, var(--rule) 75%); background-size:200% 100%; animation:shimmer 1.3s infinite; min-height:180px; }
  .carrossel img.ok { animation:none; background:var(--rule); min-height:0; }
  .skel { background:var(--card); border:1px solid var(--rule); border-radius:20px; padding:22px; margin-bottom:14px; display:flex; flex-direction:column; gap:10px; }
  .skel span { display:block; height:12px; border-radius:6px; background:linear-gradient(90deg, var(--rule) 25%, #DCD5C6 50%, var(--rule) 75%); background-size:200% 100%; animation:shimmer 1.3s infinite; }
  .skel .t { height:22px; width:55%; } .skel .img { height:150px; border-radius:12px; } .skel .c { width:85%; } .skel .c2 { width:65%; }
  @keyframes enche { from { width:0 } }
  @keyframes pula { 0% { transform:scale(1) } 35% { transform:scale(1.35) rotate(-8deg) } 70% { transform:scale(.95) rotate(4deg) } 100% { transform:scale(1) } }
  @keyframes part { 0% { transform:translate(-50%,-50%) scale(.6); opacity:1 } 100% { transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(1.2); opacity:0 } }
  @keyframes flut { 0% { transform:translateY(0); opacity:0 } 15% { opacity:1 } 100% { transform:translateY(-44px); opacity:0 } }
  @keyframes entra { to { opacity:1; transform:none } }
  @keyframes brilho { to { transform:translateX(100%) } }
  @keyframes shake { 0%,100% { transform:translateX(0) } 25% { transform:translateX(-6px) } 50% { transform:translateX(6px) } 75% { transform:translateX(-3px) } }
  @keyframes gira { to { transform:rotate(360deg) } }
  @keyframes sobeModal { from { transform:translateY(40px); opacity:0 } }
  .reacoes button { position:relative; } .reacoes button:active { transform:scale(.92); } .reacoes button.pula { animation:pula .5s cubic-bezier(.2,.9,.3,1.4); }
  .part { position:absolute; left:50%; top:50%; pointer-events:none; font-size:13px; animation:part .8s ease-out forwards; z-index:2; }
  .flut { position:absolute; font-weight:700; color:var(--verde); font-size:15px; animation:flut 1.1s ease-out forwards; pointer-events:none; z-index:5; }
  .opcao .barra { animation:enche .7s cubic-bezier(.2,.8,.2,1); } .opcao .pct { animation:entra .4s .35s both; opacity:0; transform:translateY(3px); }
  .desafio .btn svg { width:16px; height:16px; flex-shrink:0; } .desafio .btn svg path { stroke:currentColor; stroke-width:3; fill:none; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:30; stroke-dashoffset:30; }
  .desafio .btn.feito svg path { animation:desenha .45s .1s forwards; } @keyframes desenha { to { stroke-dashoffset:0 } }
  .desafio .btn, .aposta .btn, .rec button, .vi button, .btn-p { transition:background .3s, transform .15s; } .desafio .btn:active, .aposta .btn:active, .rec button:active, .vi button:active { transform:scale(.96); }
  .carregando { position:relative; color:transparent !important; pointer-events:none; } .carregando::after { content:''; position:absolute; left:50%; top:50%; width:16px; height:16px; margin:-8px 0 0 -8px; border-radius:50%; border:2px solid rgba(255,255,255,.35); border-top-color:#fff; animation:gira .8s linear infinite; }
  .feito-ok { background:var(--verde) !important; border-color:var(--verde) !important; color:#fff !important; }
  .aposta .valor input.erro { border-color:#c9584c; animation:shake .4s; }
  .post.anim { opacity:0; transform:translateY(28px); } .post.anim.vis { animation:entra .6s cubic-bezier(.2,.8,.2,1) forwards; }
  .mais-posts { min-height:1px; }
  .modal-bg.on .modal { animation:sobeModal .4s cubic-bezier(.2,.9,.3,1.1); }
  .toast { transition:all .3s cubic-bezier(.2,.9,.3,1.2); }
  .barra-nivel span { animation:enche 1.1s cubic-bezier(.2,.8,.2,1); position:relative; overflow:hidden; }
  .barra-nivel span::after { content:''; position:absolute; inset:0; background:linear-gradient(100deg, transparent 20%, rgba(255,255,255,.75) 50%, transparent 80%); transform:translateX(-100%); animation:brilho 2.4s 1.2s 2; }
  .cq .prog span { animation:enche .9s cubic-bezier(.2,.8,.2,1); }
  @media (hover:hover) { .vi, .cq { transition:transform .25s cubic-bezier(.2,.9,.3,1), box-shadow .25s; } .vi:hover, .cq.falta:hover, .cq.tem:hover { transform:translateY(-4px); box-shadow:0 16px 34px -20px rgba(23,19,16,.45); } .cq.falta:hover { opacity:1; } }
  .codigo { cursor:pointer; transition:background .3s, color .3s; } .codigo.ok { background:var(--verde); color:#fff; }
  @media (prefers-reduced-motion: reduce) { .selo-pop .caixa, .selo-pop .conf, .pts b.up, .reacoes button.pula, .part, .flut, .opcao .barra, .opcao .pct, .post.anim, .barra-nivel span, .barra-nivel span::after, .cq .prog span, .modal-bg.on .modal { animation:none !important; opacity:1; transform:none; } }
  .portao img { width:96px; height:96px; object-fit:contain; margin-bottom:10px; }
  .portao h1 { font-family:var(--font-titulo); font-weight:700; font-size:26px; margin:0 0 8px; letter-spacing:-0.015em; } .portao p { color:var(--soft); margin:0 0 8px; }
  .btn-p { display:inline-block; margin-top:14px; background:var(--botao,var(--ink)); color:var(--botao-texto,#fff); text-decoration:none; font-weight:600; border-radius:var(--raio-btn,99px); padding:12px 22px; border:none; font:inherit; cursor:pointer; }
  .btn-p:disabled { opacity:.5; cursor:not-allowed; }
  .ordem { display:flex; justify-content:flex-end; align-items:center; gap:8px; margin:0 0 14px; font-size:13px; color:var(--soft); }
  .ordem select { font:inherit; font-size:13px; color:var(--ink); background:var(--card); border:1px solid var(--rule); border-radius:99px; padding:7px 12px; cursor:pointer; }
  footer { text-align:center; color:var(--soft); font-size:12.5px; margin-top:36px; letter-spacing:.08em; text-transform:uppercase; }
  .conf-bg { position:fixed; inset:0; z-index:40; display:none; align-items:center; justify-content:center; background:rgba(23,19,16,.5); padding:16px; }
  .conf-bg.on { display:flex; }
  .conf { background:var(--card); border-radius:20px; padding:22px 20px 18px; width:100%; max-width:380px; animation:sobeModal .3s cubic-bezier(.2,.9,.3,1.1); box-shadow:0 20px 50px -20px rgba(0,0,0,.4); }
  .conf-msg { margin:0 0 16px; font-size:15.5px; line-height:1.5; }
  .conf-btns { display:flex; gap:8px; justify-content:flex-end; flex-wrap:wrap; }
  .conf-btns button { font:inherit; font-weight:600; border-radius:99px; padding:10px 16px; cursor:pointer; border:1px solid var(--ink); }
  .conf-sim { background:var(--ink); color:#fff; } .conf-nao { background:var(--card); color:var(--ink); }
  .conf-btns button:focus-visible { outline:2px solid var(--amarelo); outline-offset:2px; }
  @media (prefers-reduced-motion: reduce) { .conf { animation:none; } }
  /* recibo de troca: papel branco em mono, com a borda de baixo picotada em zigue-zague */
  .recibo { background:#fff; color:#171310; width:100%; max-width:340px; font-family:"IBM Plex Mono",ui-monospace,monospace; font-size:13px; line-height:1.5; padding:22px 20px 26px; position:relative; box-shadow:0 24px 50px -18px rgba(0,0,0,.45); animation:sobeModal .3s cubic-bezier(.2,.9,.3,1.1); border-radius:4px 4px 0 0; }
  .recibo::after { content:''; position:absolute; left:0; right:0; bottom:-10px; height:10px; background:linear-gradient(-45deg, transparent 7px, #fff 0) 0 0/14px 14px, linear-gradient(45deg, transparent 7px, #fff 0) 7px 0/14px 14px; background-repeat:repeat-x; }
  .recibo .rc-tit { text-align:center; font-weight:700; letter-spacing:.14em; text-transform:uppercase; } .recibo .rc-sub { text-align:center; font-size:11px; color:#6d675f; letter-spacing:.06em; text-transform:uppercase; }
  .recibo .rc-sep { border:none; border-top:1px dashed #b9b3a7; margin:12px 0; }
  .recibo .rc-item { font-weight:700; text-transform:uppercase; letter-spacing:.02em; white-space:normal; }
  .recibo .rc-l { display:flex; justify-content:space-between; gap:10px; } .recibo .rc-l span:first-child { color:#6d675f; } .recibo .rc-l.tot { font-weight:700; font-size:16px; margin-top:4px; }
  .recibo .rc-bar { height:30px; margin:14px auto 4px; width:82%; background:repeating-linear-gradient(90deg, #171310 0 2px, transparent 2px 4px, #171310 4px 5px, transparent 5px 8px, #171310 8px 11px, transparent 11px 13px, #171310 13px 14px, transparent 14px 17px); opacity:.85; }
  .recibo .rc-cod { text-align:center; font-size:10px; letter-spacing:.2em; color:#6d675f; }
  .recibo .rc-btns { display:flex; gap:8px; margin-top:16px; } .recibo .rc-btns button { flex:1; font-family:var(--font-corpo); font-weight:700; font-size:14px; border-radius:99px; padding:11px 12px; cursor:pointer; } .recibo .rc-sim { background:#171310; color:#fff; border:none; } .recibo .rc-nao { background:#fff; color:#171310; border:1px solid #d9d2c4; }
  .recibo .rc-obs { font-size:11px; color:#6d675f; margin-top:10px; text-align:center; }
  @media (prefers-reduced-motion: reduce) { .recibo { animation:none; } }
  /* folha: modal genérico das versões longas (carta do selo, voucher do mimo, passaporte do nível) */
  .folha-bg { position:fixed; inset:0; z-index:55; background:rgba(23,19,16,.55); display:flex; align-items:center; justify-content:center; padding:16px; }
  .folha { position:relative; background:var(--card); width:100%; max-width:440px; max-height:88vh; overflow:auto; border-radius:20px; box-shadow:0 30px 60px -20px rgba(0,0,0,.5); animation:sobeModal .3s cubic-bezier(.2,.9,.3,1.1); }
  .folha-x { position:absolute; top:10px; right:10px; z-index:2; border:none; background:rgba(0,0,0,.08); width:32px; height:32px; border-radius:50%; font-size:18px; line-height:1; cursor:pointer; color:var(--ink); }
  .folha h3 { margin:14px 0 6px; font-size:15px; } .folha p { margin:0 0 10px; } .folha ul { margin:0 0 10px; padding-left:20px; }
  [data-det] { cursor:pointer; }
  /* carta (selo) */
  .carta { background:#FFFDF4; font-size:15px; line-height:1.6; }
  .carta .carta-topo { display:flex; justify-content:space-between; align-items:flex-start; padding:22px 22px 0; }
  .carta .carta-remet { font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--soft); font-weight:600; margin-top:6px; }
  .carta .carta-selo { position:relative; width:64px; aspect-ratio:3/4; border-radius:3px; overflow:hidden; background:var(--amarelo); display:flex; align-items:center; justify-content:center; font-size:28px; box-shadow:0 0 0 4px #fff, 0 0 0 5px var(--rule); margin-right:30px; } .carta .carta-selo img { width:100%; height:100%; object-fit:cover; }
  .carta .carta-selo.falta { filter:grayscale(1); opacity:.7; }
  .carta .carimbo { position:absolute; top:46px; right:14px; width:64px; height:64px; border-radius:50%; border:1.5px dashed #B3261E; color:#B3261E; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:8px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; line-height:1.15; transform:rotate(-14deg); opacity:.85; pointer-events:none; } .carta .carimbo small { font-size:7.5px; font-weight:600; letter-spacing:.04em; }
  .carta .carta-corpo { padding:18px 22px 4px; } .carta .carta-sauda { font-family:var(--font-titulo); font-weight:700; font-size:20px; margin:0 0 12px; }
  .carta .carta-ass { margin-top:18px; color:var(--soft); font-style:italic; } .carta .carta-ass b { color:var(--ink); font-style:normal; font-family:var(--font-titulo); font-size:17px; }
  .carta .carta-rod { border-top:1px dashed var(--rule); margin:12px 22px 0; padding:12px 0 18px; font-size:12.5px; color:var(--soft); display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; } .carta .carta-rod b { color:var(--ink); }
  /* voucher (mimo): canhoto à esquerda com o custo, picote tracejado, corpo à direita */
  .voucher { display:flex; overflow:hidden; }
  .voucher .vou-canhoto { flex:0 0 64px; background:var(--amarelo); border-right:2px dashed var(--ink); display:flex; align-items:center; justify-content:center; } .voucher .vou-canhoto span { writing-mode:vertical-rl; transform:rotate(180deg); font-family:var(--font-titulo); font-weight:700; font-size:22px; letter-spacing:.04em; white-space:nowrap; }
  .voucher .vou-corpo { flex:1; min-width:0; padding:18px 44px 18px 18px; }
  .voucher .vou-img { width:100%; aspect-ratio:1; border-radius:12px; overflow:hidden; background:var(--ground); display:flex; align-items:center; justify-content:center; font-size:44px; margin-bottom:12px; } .voucher .vou-img img { width:100%; height:100%; object-fit:cover; }
  .voucher .vou-nome { font-family:var(--font-titulo); font-weight:700; font-size:22px; line-height:1.1; margin:0 0 4px; } .voucher .vou-desc { color:var(--soft); font-size:14px; margin:0 0 10px; }
  .voucher .vou-regras { font-size:14px; line-height:1.5; } .voucher .chips { margin:10px 0; }
  .voucher .vou-acao { margin-top:12px; } .voucher .vou-acao button { width:100%; font:inherit; font-weight:700; font-size:15px; border:none; border-radius:99px; padding:12px 16px; background:var(--ink); color:#fff; cursor:pointer; } .voucher .vou-acao .falta { text-align:center; }
  /* passaporte (nível): capa escura com o nome, página com requisitos e benefícios, visto se já alcançou */
  .passaporte .pas-capa { background:var(--ink); color:#fff; padding:26px 22px 22px; position:relative; }
  .passaporte .pas-capa small { display:block; font-size:10px; letter-spacing:.16em; text-transform:uppercase; opacity:.7; font-weight:600; } .passaporte .pas-capa b { display:block; font-family:var(--font-titulo); font-weight:700; font-size:34px; line-height:1; margin-top:8px; }
  .passaporte .pas-capa img { width:56px; height:56px; border-radius:50%; object-fit:cover; position:absolute; right:22px; top:22px; border:2px solid #fff; }
  .passaporte .pas-visto { position:absolute; right:18px; bottom:14px; width:70px; height:70px; border-radius:50%; border:1.5px dashed var(--amarelo); color:var(--amarelo); display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:8px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; transform:rotate(12deg); line-height:1.15; } .passaporte .pas-visto small { font-size:7.5px; letter-spacing:.04em; }
  .passaporte .pas-pag { padding:18px 22px 22px; font-size:14.5px; line-height:1.55; } .passaporte .pas-req { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:12px; } .passaporte .pas-req div { border:1px solid var(--rule); border-radius:12px; padding:8px 10px; } .passaporte .pas-req small { display:block; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--soft); font-weight:600; } .passaporte .pas-req b { font-size:15px; }
  .passaporte .pas-status { margin-top:12px; padding:10px 12px; border-radius:12px; background:var(--ground); font-size:13.5px; } .passaporte .pas-status.atual { background:#FFF6C7; }
  @media (prefers-reduced-motion: reduce) { .folha { animation:none; } }
  .bloco img.bimg { width:100%; border-radius:calc(var(--raio) - 8px); display:block; margin:0 0 12px; } .bloco h2 { font-family:var(--font-titulo); font-weight:700; font-size:22px; margin:0 0 6px; line-height:1.15; } .bloco .btxt p { margin:0 0 10px; } .bloco .btn-p { margin-top:6px; }
  .landing .bloco { margin:14px 22px 0; }
  .cmodal-bg { position:fixed; inset:0; z-index:45; background:rgba(23,19,16,.5); display:flex; align-items:flex-end; justify-content:center; }
  .cmodal { background:var(--card); width:100%; max-width:560px; height:82vh; max-height:88vh; border-radius:20px 20px 0 0; display:flex; flex-direction:column; animation:sobeModal .3s cubic-bezier(.2,.9,.3,1.1); box-shadow:0 -10px 40px rgba(0,0,0,.25); }
  .cmodal .chead { display:flex; align-items:center; justify-content:space-between; padding:12px 18px; border-bottom:1px solid var(--rule); font-size:14px; }
  .cmodal .chead b { font-size:15px; } .cmodal .chead .puxador { position:absolute; left:50%; top:6px; width:36px; height:4px; border-radius:99px; background:var(--rule); transform:translateX(-50%); }
  .cmodal .cfechar { border:none; background:var(--ground); width:32px; height:32px; border-radius:50%; font-size:18px; line-height:1; cursor:pointer; color:var(--ink); }
  .cmodal .cbody { overflow:auto; padding:4px 18px 0; flex:1; -webkit-overflow-scrolling:touch; }
  .cmodal .coms { border-top:none; margin:0; padding:0; } .cmodal .cform { position:sticky; bottom:0; background:var(--card); padding:10px 0 14px; margin-top:6px; border-top:1px solid var(--rule); }
  .cmodal .vazio-c { color:var(--soft); font-size:14px; padding:24px 0; text-align:center; }
  @media (min-width:600px) { .cmodal-bg { align-items:center; padding:20px; } .cmodal { border-radius:20px; height:auto; min-height:50vh; max-height:80vh; } .cmodal .chead .puxador { display:none; } }
  @media (prefers-reduced-motion: reduce) { .cmodal { animation:none; } }
  .modal-bg { position:fixed; inset:0; background:rgba(23,19,16,.45); display:none; align-items:flex-end; justify-content:center; z-index:9; } .modal-bg.on { display:flex; }
  .modal { background:var(--card); border-radius:20px 20px 0 0; width:100%; max-width:680px; max-height:75vh; overflow:auto; padding:18px 20px 28px; }
  .modal h3 { font-family:var(--font-titulo); margin:0 0 10px; font-size:18px; } .modal .quem { display:flex; flex-wrap:wrap; gap:6px; }
  .modal .quem span { background:var(--ground); border:1px solid var(--rule); border-radius:99px; padding:4px 10px; font-size:13px; } .modal .fechar { float:right; background:none; border:none; font-size:20px; cursor:pointer; color:var(--soft); }
  .toast { position:fixed; left:50%; top:78px; transform:translateX(-50%) translateY(-24px); background:var(--ink); color:#fff; border-radius:99px; padding:10px 18px; font-size:14px; font-weight:600; opacity:0; transition:all .25s; z-index:60; pointer-events:none; white-space:nowrap; }
  .toast.on { opacity:1; transform:translateX(-50%) translateY(0); }
  .faixa { display:flex; align-items:center; gap:10px; background:var(--ink); color:#fff; border-radius:16px; padding:12px 16px; margin:0 0 14px; font-size:14px; }
  .faixa b { color:var(--amarelo); } .faixa span { color:#d9d4c7; font-size:12.5px; margin-left:auto; white-space:nowrap; }
  .aniv { display:flex; align-items:center; gap:8px; flex-wrap:wrap; color:var(--soft); font-size:12.5px; margin-top:8px; }
  .aniv input { font:inherit; font-size:13px; border:1px solid var(--rule); border-radius:8px; padding:4px 8px; background:var(--card); color:var(--ink); }
  .aniv button { font:inherit; font-size:12.5px; font-weight:600; border-radius:99px; padding:5px 11px; border:1px solid var(--ink); background:var(--ink); color:#fff; cursor:pointer; }
  /* carteira */
  .saldo-linhas { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
  .saldo-linhas span { font-size:12.5px; color:var(--soft); border:1px solid var(--rule); border-radius:99px; padding:4px 10px; background:var(--ground); } .saldo-linhas b { color:var(--ink); }
  .saldo { display:flex; align-items:baseline; gap:10px; }
  .saldo .big { font-family:var(--font-titulo); font-weight:700; font-size:44px; letter-spacing:-0.03em; line-height:1; }
  .saldo .lab { color:var(--soft); font-size:14px; }
  .pscore { display:flex; justify-content:space-between; align-items:baseline; gap:10px; margin-top:8px; font-size:13px; color:var(--soft); } .pscore b { color:var(--ink); font-size:15px; } .pscore .pfalta { font-size:12px; white-space:nowrap; }
  .perfil .pbar { margin:5px 0 0; height:6px; } .perfil:not(.aberto) .pbar { margin-bottom:2px; }
  .barra-nivel { height:8px; background:var(--rule); border-radius:99px; margin:12px 0 6px; overflow:hidden; } .barra-nivel span { display:block; height:100%; background:var(--barra,var(--amarelo)); border-radius:99px; }
  .extrato { list-style:none; margin:0; padding:0; } .extrato li { display:flex; justify-content:space-between; gap:10px; padding:9px 0; border-top:1px solid var(--rule); font-size:14px; }
  .extrato li:first-child { border-top:none; } .extrato .d { color:var(--soft); font-size:12px; } .extrato .v { font-weight:700; white-space:nowrap; } .extrato .v.neg { color:var(--soft); }
  .rec { display:flex; align-items:center; gap:12px; padding:12px 0; border-top:1px solid var(--rule); } .rec:first-of-type { border-top:none; }
  .rec .ic { width:42px; height:42px; border-radius:12px; background:var(--amarelo); display:flex; align-items:center; justify-content:center; font-size:20px; flex-shrink:0; }
  .rec .t { flex:1; min-width:0; } .rec .t b { display:block; } .rec .t span { color:var(--soft); font-size:13px; }
  .rec button { font:inherit; font-weight:600; border-radius:99px; padding:8px 14px; border:1px solid var(--ink); background:var(--ink); color:#fff; cursor:pointer; white-space:nowrap; }
  .rec button:disabled { background:var(--card); color:var(--soft); border-color:var(--rule); cursor:not-allowed; }
  .codigo { font-family:"IBM Plex Mono",ui-monospace,monospace; font-weight:700; letter-spacing:.06em; background:var(--amarelo); border-radius:8px; padding:2px 8px; }
  @media (min-width:600px){ .modal-bg{ align-items:center } .modal{ border-radius:20px } }
  @media (max-width:480px){ .titulo-site{font-size:25px} h2.ptit{font-size:calc(var(--fs-titulo) - 5px)} .wrap{padding:16px 10px 60px} .post{padding:calc(var(--pad-card) - 2px) calc(var(--pad-card) - 4px) calc(var(--pad-card) - 8px)} .card{padding:14px} }
  