@charset "UTF-8";

@font-face { font-family: "Gelasio"; src: url("assets/fonts/Gelasio-Regular.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Gelasio"; src: url("assets/fonts/Gelasio-Medium.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Blauer Nue"; src: url("assets/fonts/BlauerNue-Regular.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Blauer Nue"; src: url("assets/fonts/BlauerNue-Medium.woff2") format("woff2"); font-weight: 500; font-display: swap; }

/* Identidade nova da MBD (deck do símbolo, out/2026): café em degradê até o preto,
   creme no texto, champanhe como metal, âmbar como herança do laranja do Chris. */
:root {
  --cafe: #2A1C12;
  --preto: #000;
  --creme: #FFF3D9;
  --champanhe: #F0CF9E;
  --ambar: #D67610;
  --ambar-claro: #F2A65A;

  --texto: var(--creme);
  --texto-2: rgb(255 243 217 / .72);
  --texto-3: rgb(255 243 217 / .5);
  --linha: rgb(255 243 217 / .18);
  --linha-forte: rgb(255 243 217 / .42);
  --superficie: rgb(255 243 217 / .05);
  --superficie-2: rgb(240 207 158 / .12);

  --serif: "Gelasio", Georgia, "Times New Roman", serif;
  --sans: "Blauer Nue", "Helvetica Neue", Arial, sans-serif;

  /* seis degraus */
  --t-micro: .75rem;
  --t-corpo: 1rem;
  --t-lead: 1.125rem;
  --t-h3: clamp(1.5rem, 1.2rem + 1.3vw, 2rem);
  --t-h2: clamp(1.75rem, 1.35rem + 1.8vw, 2.5rem);
  --t-h1: clamp(2.125rem, 1.4rem + 3vw, 3.5rem);

  --s-1: 8px; --s-2: 12px; --s-3: 16px; --s-4: 24px; --s-5: 32px; --s-6: 48px; --s-7: 64px;
  --gutter: 20px;
  --conteudo: 720px;
  --topo: 72px;

  --rapido: 160ms; --medio: 320ms; --lento: 560ms;
  --sai: cubic-bezier(.2, .7, .2, 1);
  --entra: cubic-bezier(.4, 0, 1, 1);
  --raio: 12px;
}
@media (min-width: 768px) { :root { --gutter: 40px; --topo: 84px; } }

*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
img, svg { display: block; max-width: 100%; }
button, input, textarea { font: inherit; color: inherit; }
fieldset { border: 0; padding: 0; min-width: 0; }
legend { padding: 0; }
[hidden] { display: none !important; }

html { -webkit-text-size-adjust: 100%; }
body {
  min-height: 100dvh;
  background: linear-gradient(180deg, var(--cafe) 0%, #140d08 55%, var(--preto) 100%) fixed;
  background-color: var(--preto);
  color: var(--texto);
  font-family: var(--sans);
  font-size: var(--t-corpo);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

.wrap { width: 100%; max-width: calc(var(--conteudo) + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter); }

:focus-visible { outline: 2px solid var(--champanhe); outline-offset: 3px; border-radius: 4px; }

/* ── topo ─────────────────────────────── */
.topo { position: fixed; inset: 0 0 auto; z-index: 10; height: var(--topo); background: linear-gradient(180deg, rgb(42 28 18 / .92), rgb(42 28 18 / 0)); }
.topo-in { height: 100%; display: flex; align-items: center; justify-content: space-between; max-width: none; }
.topo-logo { width: auto; height: 24px; }
@media (min-width: 768px) { .topo-logo { height: 30px; } }
.contador { font-size: var(--t-micro); letter-spacing: .16em; text-transform: uppercase; color: var(--texto-2); font-variant-numeric: tabular-nums; transition: opacity var(--medio) var(--sai); }
.contador-sep { color: var(--texto-3); }
.progresso { position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--linha); }
.progresso span { display: block; height: 100%; width: 100%; transform-origin: left; transform: scaleX(0); background: linear-gradient(90deg, var(--champanhe), var(--creme)); transition: transform var(--lento) var(--sai); }
body[data-etapa="inicio"] .contador, body[data-etapa="inicio"] .progresso,
body[data-etapa="fim"] .contador { opacity: 0; }

/* ── telas ────────────────────────────── */
.form { position: relative; }
.tela { min-height: 100dvh; display: flex; align-items: center; padding-block: calc(var(--topo) + var(--s-5)) calc(var(--s-7) + var(--s-5)); }
.tela.entra { animation: entra var(--lento) var(--sai) both; }
.tela.entra.de-cima { animation-name: entra-cima; }
@keyframes entra { from { opacity: 0; transform: translateY(28px); } }
@keyframes entra-cima { from { opacity: 0; transform: translateY(-28px); } }

.titulo:focus { outline: none; }
.titulo { display: block; font-family: var(--serif); font-weight: 400; font-size: var(--t-h2); line-height: 1.15; letter-spacing: -.015em; text-wrap: balance; color: var(--texto); }
.num { display: flex; align-items: center; gap: 6px; margin-bottom: var(--s-3); font-family: var(--sans); font-size: var(--t-micro); font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--champanhe); }
.descricao { margin-top: var(--s-2); font-size: var(--t-lead); color: var(--texto-2); }

/* ── boas-vindas ──────────────────────── */
.simbolo { width: 56px; height: auto; margin-bottom: var(--s-5); filter: drop-shadow(0 6px 24px rgb(240 207 158 / .18)); }
.sobre { margin-bottom: var(--s-3); font-size: var(--t-micro); font-weight: 500; letter-spacing: .22em; text-transform: uppercase; color: var(--champanhe); }

/* Foto do Chris em aula, que some por máscara (sem emenda de cor): em cima no celular, à esquerda no computador. */
.tela-inicio { position: relative; align-items: flex-end; padding-bottom: var(--s-6); }
.inicio-foto { position: absolute; inset: 0 0 auto; height: 50dvh; margin: 0; -webkit-mask-image: linear-gradient(180deg, #000 45%, transparent 100%); mask-image: linear-gradient(180deg, #000 45%, transparent 100%); }
.inicio-foto img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; opacity: .85; }
.inicio-in { position: relative; display: flex; flex-direction: column; align-items: flex-start; padding-top: 34dvh; }
.tela-inicio .simbolo { width: 44px; margin-bottom: var(--s-4); }
.tela-inicio .titulo { font-size: var(--t-h1); line-height: 1.08; letter-spacing: -.02em; max-width: 22ch; }
.tela-inicio .botao { margin-top: var(--s-6); }
@media (min-width: 960px) {
  .tela-inicio { align-items: center; padding-left: 50%; padding-block: var(--topo); }
  .inicio-foto { inset: 0 auto 0 0; width: 54%; height: auto; -webkit-mask-image: linear-gradient(90deg, #000 50%, transparent 100%); mask-image: linear-gradient(90deg, #000 50%, transparent 100%); }
  .inicio-in { padding-top: 0; padding-inline: clamp(40px, 6vw, 96px); max-width: 640px; margin: 0; }
  .tela-inicio .titulo { font-size: clamp(2rem, .75rem + 2vw, 3rem); }
}

/* ── abertura ─────────────────────────── */
/* O símbolo se desenha pelo contorno, ganha o metal e a cortina sai. Só com JS (a classe vem
   do <head>, antes da pintura) e nunca com movimento reduzido. Some sozinha, sem depender do main.js. */
.abertura { display: none; }
.js .abertura {
  display: grid; place-items: center; position: fixed; inset: 0; z-index: 50;
  background: linear-gradient(180deg, var(--cafe) 0%, #140d08 55%, var(--preto) 100%);
  animation: abertura-sai 420ms var(--sai) 1300ms forwards;
}
.abertura-simbolo { width: 64px; height: auto; overflow: visible; animation: abertura-simbolo 420ms var(--sai) 1300ms forwards; }
.abertura-traco { fill: none; stroke: var(--champanhe); stroke-width: 1.2; stroke-dasharray: 1; stroke-dashoffset: 1; animation: abertura-traca 1000ms cubic-bezier(.65, 0, .35, 1) 120ms forwards; }
.abertura-metal { opacity: 0; animation: abertura-metal 420ms var(--sai) 900ms forwards; }
@keyframes abertura-traca { to { stroke-dashoffset: 0; } }
@keyframes abertura-metal { to { opacity: 1; } }
@keyframes abertura-simbolo { to { transform: translateY(-10px) scale(.9); opacity: 0; } }
@keyframes abertura-sai { to { opacity: 0; visibility: hidden; } }

/* O conteúdo da boas-vindas entra em cascata quando a cortina sai. */
.js .inicio-foto { animation: aparece 900ms var(--sai) 1350ms backwards; }
.js .inicio-in > * { animation: entra var(--lento) var(--sai) backwards; animation-delay: calc(1450ms + var(--i, 0) * 70ms); }
.js .inicio-in > :nth-child(2) { --i: 1; }
.js .inicio-in > :nth-child(3) { --i: 2; }
.js .inicio-in > :nth-child(4) { --i: 3; }
@keyframes aparece { from { opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
  .js .abertura { display: none; }
  .js .inicio-foto, .js .inicio-in > * { animation: none; }
}

/* ── botão de início ─────────────────── */
/* Seta de ponta quadrada; no hover ela sai pela direita e outra entra pela esquerda. */
.botao-inicio { gap: 14px; background-size: 160% 100%; background-position: 0 0; transition: transform var(--rapido) var(--sai), box-shadow var(--medio) var(--sai), background-position var(--medio) var(--sai); }
.botao-inicio:hover { background-position: 100% 0; }
.seta-cta { position: relative; flex: none; width: 20px; height: 20px; overflow: hidden; }
.seta-cta svg { position: absolute; inset: 0; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 2.25; stroke-linecap: square; stroke-linejoin: miter; transition: transform var(--medio) var(--sai); }
.seta-cta svg + svg { transform: translateX(-140%); }
.botao-inicio:hover .seta-cta svg:first-child { transform: translateX(140%); }
.botao-inicio:hover .seta-cta svg + svg { transform: none; }

/* ── campos ───────────────────────────── */
.pergunta { display: flex; flex-direction: column; }
.campo {
  width: 100%; margin-top: var(--s-5); padding: var(--s-2) 0;
  background: none; border: 0; border-bottom: 1px solid var(--linha-forte); border-radius: 0;
  font-family: var(--sans); font-size: var(--t-h3); line-height: 1.3; color: var(--texto);
  transition: border-color var(--rapido) var(--sai);
}
.campo::placeholder { color: var(--texto-3); }
.campo:focus { outline: none; border-bottom-color: var(--champanhe); box-shadow: 0 1px 0 var(--champanhe); }
.campo[aria-invalid="true"] { border-bottom-color: var(--ambar-claro); }
.campo-longo { resize: none; overflow: hidden; min-height: 1.3em; }
.descricao + .campo { margin-top: var(--s-4); }

.opcoes { display: grid; gap: var(--s-2); margin-top: var(--s-5); max-width: 520px; }
.opcao {
  position: relative; display: flex; align-items: center; gap: var(--s-3);
  min-height: 56px; padding: var(--s-2) var(--s-3) var(--s-2) var(--s-2);
  background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio);
  font-size: var(--t-lead); line-height: 1.3; cursor: pointer;
  transition: background var(--rapido) var(--sai), border-color var(--rapido) var(--sai), transform var(--rapido) var(--sai);
}
.opcao:hover { border-color: var(--linha-forte); background: rgb(255 243 217 / .08); }
.opcao:active { transform: scale(.98); }
.opcao input { position: absolute; opacity: 0; pointer-events: none; }
.opcao kbd {
  flex: none; display: grid; place-items: center; width: 32px; height: 32px;
  border: 1px solid var(--linha-forte); border-radius: calc(var(--raio) - 4px);
  font-family: var(--sans); font-size: var(--t-micro); font-weight: 500; color: var(--texto-2);
  transition: inherit;
}
.opcao:has(input:focus-visible) { outline: 2px solid var(--champanhe); outline-offset: 3px; }
.opcao:has(input:checked) { background: var(--superficie-2); border-color: var(--champanhe); }
.opcao:has(input:checked) kbd { background: var(--champanhe); border-color: var(--champanhe); color: var(--cafe); }
.opcao.pisca { animation: pisca 360ms steps(2, jump-none) 1; }
@keyframes pisca { 50% { background: var(--superficie); } }

.erro { min-height: 1.5em; margin-top: var(--s-2); font-size: .9375rem; color: var(--ambar-claro); }
.erro:empty { min-height: 0; margin: 0; }

.acoes { display: flex; align-items: center; gap: var(--s-3); margin-top: var(--s-5); }
.dica-enter { font-size: .8125rem; color: var(--texto-3); }
.dica-enter b { font-weight: 500; color: var(--texto-2); }
@media (hover: none) { .dica-enter { display: none; } }

/* CTA: o metal (champanhe → creme) com o café no texto. É o dono do acento. */
.botao {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  height: 48px; padding: 0 var(--s-5); border: 0; border-radius: 999px;
  background: linear-gradient(135deg, var(--champanhe), var(--creme));
  color: var(--cafe); font-family: var(--sans); font-size: var(--t-corpo); font-weight: 500; letter-spacing: .01em;
  cursor: pointer; box-shadow: 0 8px 28px rgb(240 207 158 / .16);
  transition: transform var(--rapido) var(--sai), box-shadow var(--rapido) var(--sai), opacity var(--rapido);
}
.botao:hover { transform: translateY(-1px); box-shadow: 0 12px 32px rgb(240 207 158 / .26); }
.botao:active { transform: scale(.97); }
.botao:disabled { opacity: .55; cursor: progress; transform: none; }
.tela-inicio .botao { height: 56px; padding: 0 var(--s-6); font-size: var(--t-lead); }

/* ── setas ────────────────────────────── */
.setas { position: fixed; right: var(--gutter); bottom: calc(var(--s-4) + env(safe-area-inset-bottom)); z-index: 10; display: flex; gap: 1px; border-radius: 10px; overflow: hidden; transition: opacity var(--medio) var(--sai); }
.seta { display: grid; place-items: center; width: 40px; height: 40px; border: 0; background: rgb(240 207 158 / .16); cursor: pointer; transition: background var(--rapido); }
.seta:hover { background: rgb(240 207 158 / .28); }
.seta:active { background: rgb(240 207 158 / .36); }
.seta:disabled { opacity: .35; cursor: default; }
.seta svg { width: 20px; height: 20px; fill: none; stroke: var(--creme); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
body[data-etapa="inicio"] .setas, body[data-etapa="fim"] .setas { opacity: 0; pointer-events: none; }

/* ── fim ──────────────────────────────── */
.tela-fim:focus { outline: none; }
.fim { display: flex; flex-direction: column; align-items: flex-start; }
.fim .simbolo { width: 44px; margin-bottom: var(--s-5); }
.fim .titulo { font-size: var(--t-h1); line-height: 1.08; letter-spacing: -.02em; }
.fim-intro { margin-top: var(--s-4); font-size: var(--t-lead); color: var(--texto-2); }
.passos { list-style: none; padding: 0; margin-top: var(--s-5); display: grid; gap: var(--s-3); max-width: 560px; }
.passos li { display: flex; gap: var(--s-3); padding: var(--s-4); background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); }
.passo-num { flex: none; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--champanhe); color: var(--cafe); font-size: .875rem; font-weight: 500; }
.passos p { color: var(--texto-2); text-wrap: pretty; }
.passos b { font-weight: 500; color: var(--texto); }

.isca { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; }
}
