@font-face{font-family:'Playfair';src:url('../fontes/playfair.woff2') format('woff2');font-weight:400 900;font-style:normal;font-display:swap}
@font-face{font-family:'Playfair';src:url('../fontes/playfair-italic.woff2') format('woff2');font-weight:400 900;font-style:italic;font-display:swap}
@font-face{font-family:'Manrope';src:url('../fontes/manrope.woff2') format('woff2');font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:'DM Mono';src:url('../fontes/dm-mono-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}

:root{
  --verde:#1B3A2B;
  --verde-fundo:#12261C;
  --creme:#F5EBD8;
  --creme-claro:#FDF8EF;
  --vermelho:#B5121B;
  --dourado:#C9A227;
  --tinta:#23201A;
  --tinta-fraca:#6B6355;

  --serif:'Playfair',Georgia,serif;
  --sans:'Manrope',system-ui,-apple-system,sans-serif;
  --mono:'DM Mono',ui-monospace,monospace;

  --margem:clamp(1.25rem,5vw,5rem);
  --capitulos:5;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--creme-claro);
  color:var(--tinta);
  font-family:var(--sans);
  font-size:clamp(1rem,.95rem + .25vw,1.125rem);
  line-height:1.6;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{font-family:var(--serif);font-weight:700;line-height:1.02;margin:0;letter-spacing:-.015em}
em{font-style:italic}
a{color:inherit}

.rotulo{
  font-family:var(--mono);
  font-size:.7rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  margin:0 0 1.1rem;
  color:var(--dourado);
}

/* ---------- topo ---------- */

.topo{
  position:fixed;
  inset:0 0 auto 0;
  z-index:50;
  display:flex;
  align-items:center;
  gap:2rem;
  padding:1.1rem var(--margem);
  color:var(--creme);
  transition:background .4s ease,backdrop-filter .4s ease;
}
/* Véu próprio: o quadro do filme pode ser claro e o menu precisa continuar legível. */
.topo::before{
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(to bottom,rgba(10,22,16,.78),rgba(10,22,16,.35) 60%,transparent);
  pointer-events:none;
}
.topo[data-fundo]::before{opacity:0}
.topo[data-fundo]{
  background:rgba(18,38,28,.92);
  backdrop-filter:blur(10px);
}
.marca{text-decoration:none;display:grid;line-height:1}
.marca__nome{font-family:var(--serif);font-size:1.35rem;letter-spacing:.01em}
.marca__linha{font-family:var(--mono);font-size:.56rem;letter-spacing:.3em;text-transform:uppercase;opacity:.75;margin-top:.35rem}

.indice{margin-left:auto;display:flex;gap:1.6rem}
.indice a{
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.08em;
  text-decoration:none;
  opacity:.62;
  transition:opacity .25s ease;
  white-space:nowrap;
}
.indice a:hover,.indice a:focus-visible{opacity:1}
.indice a[data-ativo]{opacity:1;color:var(--dourado)}
.indice b{font-weight:400;opacity:.55;margin-right:.3rem}

.topo__pedido{
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.1em;
  text-decoration:none;
  border:1px solid rgba(245,235,216,.35);
  border-radius:999px;
  padding:.5rem 1rem;
  white-space:nowrap;
  transition:background .25s ease,border-color .25s ease;
}
.topo__pedido:hover,.topo__pedido:focus-visible{background:var(--creme);color:var(--verde);border-color:var(--creme)}

/* ---------- filme ---------- */

.filme{
  position:relative;
  height:calc(var(--capitulos) * 100svh);
  background:var(--verde-fundo);
}
.palco{
  position:sticky;
  top:0;
  height:100svh;
  overflow:hidden;
}
.palco picture{display:contents}
.palco__base,.palco__tela{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.palco__tela{opacity:0;transition:opacity .6s ease}
.palco__tela[data-pronto]{opacity:1}
.palco__veu{
  position:absolute;
  inset:0;
  background:
    linear-gradient(to right,rgba(10,22,16,.82) 0%,rgba(10,22,16,.45) 42%,rgba(10,22,16,.1) 70%),
    linear-gradient(to bottom,rgba(10,22,16,.6) 0%,transparent 22%,transparent 70%,rgba(10,22,16,.75) 100%);
}

.roteiro{position:relative;z-index:2;margin-top:calc(-100svh)}
.capitulo{height:100svh}
.capitulo__texto{
  position:sticky;
  top:0;
  height:100svh;
  display:grid;
  align-content:center;
  padding:0 var(--margem);
  max-width:min(46rem,80vw);
  color:var(--creme);
  opacity:0;
  transform:translateY(1.1rem);
  transition:opacity .55s ease,transform .55s ease;
  pointer-events:none;
}
.capitulo[data-ativo] .capitulo__texto{opacity:1;transform:none;pointer-events:auto}

.capitulo h1,.capitulo h2{
  font-size:clamp(2.9rem,9vw,6.6rem);
  text-shadow:0 2px 40px rgba(8,18,12,.5);
}
.capitulo h1 em,.capitulo h2 em{display:inline-block}
.capitulo .linha{
  margin:1.6rem 0 0;
  font-size:clamp(1rem,.9rem + .4vw,1.2rem);
  max-width:34ch;
  text-shadow:0 1px 20px rgba(8,18,12,.6);
}

.seta{
  margin-top:2.4rem;
  justify-self:start;
  font-family:var(--mono);
  font-size:.75rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  text-decoration:none;
  border-bottom:1px solid rgba(245,235,216,.45);
  padding-bottom:.45rem;
  display:inline-flex;
  gap:.7rem;
  align-items:center;
}
.seta span{transition:transform .3s ease}
.seta:hover span,.seta:focus-visible span{transform:translateY(3px)}

.selo{
  position:absolute;
  right:var(--margem);
  bottom:5.5rem;
  margin:0;
  display:grid;
  justify-items:center;
  gap:.2rem;
  color:var(--creme);
  font-family:var(--mono);
  font-size:.6rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  opacity:.7;
}
.selo b{font-family:var(--serif);font-size:1.5rem;letter-spacing:0}

.trilho{
  position:fixed;
  right:calc(var(--margem) * .55);
  top:50%;
  z-index:30;
  margin:0;
  transform:translateY(-50%) rotate(180deg);
  writing-mode:vertical-rl;
  font-family:var(--mono);
  font-size:.6rem;
  letter-spacing:.3em;
  text-transform:uppercase;
  color:var(--creme);
  opacity:0;
  transition:opacity .5s ease;
  pointer-events:none;
}
.progresso{
  position:fixed;
  left:var(--margem);
  bottom:2rem;
  z-index:30;
  display:flex;
  align-items:center;
  gap:.75rem;
  font-family:var(--mono);
  font-size:.6rem;
  letter-spacing:.2em;
  color:var(--creme);
  opacity:0;
  transition:opacity .5s ease;
  pointer-events:none;
}
.progresso i{display:block;width:clamp(5rem,12vw,9rem);height:1px;background:rgba(245,235,216,.3)}
.progresso b{display:block;height:100%;width:0;background:var(--dourado);transition:width .15s linear}

.controle{
  position:fixed;
  right:var(--margem);
  bottom:2rem;
  z-index:30;
  opacity:0;
  transition:opacity .5s ease;
  pointer-events:none;
}
.controle button{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  border:0;
  border-radius:999px;
  padding:.7rem 1.2rem;
  background:var(--creme);
  color:var(--verde);
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.08em;
  cursor:pointer;
  box-shadow:0 10px 30px rgba(8,18,12,.35);
  transition:transform .2s ease;
}
.controle button:hover{transform:translateY(-2px)}
.controle__icone{font-size:.65rem}

body[data-filme] .trilho,
body[data-filme] .progresso,
body[data-filme] .controle{opacity:1}
body[data-filme] .controle{pointer-events:auto}

/* ---------- história ---------- */

.historia{
  background:var(--creme);
  padding:clamp(5rem,11vw,9rem) var(--margem);
  display:grid;
  gap:clamp(3rem,6vw,6rem);
  grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);
  align-items:start;
}
.historia h2{font-size:clamp(2.1rem,4.6vw,3.6rem);margin-bottom:1.8rem}
.historia p{margin:0 0 1.2rem;max-width:52ch;color:#4A4336}
.assinatura{
  font-family:var(--serif);
  font-size:1.35rem;
  line-height:1.45;
  color:var(--verde);
  margin-top:2.2rem;
}
.selos{list-style:none;margin:0;padding:0;display:grid;gap:1.6rem}
.selos li{border-top:1px solid rgba(27,58,43,.18);padding-top:1.1rem;display:grid;gap:.3rem}
.selos b{font-family:var(--serif);font-size:1.5rem;color:var(--verde)}
.selos span{font-size:.92rem;color:var(--tinta-fraca)}

/* ---------- catálogo ---------- */

.catalogo{padding:clamp(4.5rem,10vw,8rem) var(--margem);background:var(--creme-claro)}
.secao__topo{max-width:40rem;margin:0 0 clamp(2.5rem,5vw,4rem)}
.secao__topo h2{font-size:clamp(2.1rem,4.6vw,3.6rem)}
.secao__linha{margin:1.1rem 0 0;color:var(--tinta-fraca);max-width:46ch}
.catalogo .rotulo{color:var(--vermelho)}

.produtos{
  list-style:none;margin:0;padding:0;
  display:grid;
  gap:clamp(1.25rem,2.5vw,2rem);
  grid-template-columns:repeat(auto-fill,minmax(15.5rem,1fr));
}
.produto{
  background:var(--creme);
  border-radius:.9rem;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  border:1px solid rgba(27,58,43,.09);
  transition:transform .3s ease,box-shadow .3s ease;
}
.produto:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(27,58,43,.13)}
.produto img{aspect-ratio:1;object-fit:cover;width:100%}
.produto__corpo{padding:1.4rem 1.4rem 1.5rem;display:flex;flex-direction:column;gap:.7rem;flex:1}
.produto h3{font-size:1.3rem;color:var(--verde);line-height:1.15}
.produto p{margin:0;font-size:.92rem;color:var(--tinta-fraca);line-height:1.55}
.produto__meta{
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  margin-top:auto!important;padding-top:.6rem;
  border-top:1px solid rgba(27,58,43,.1);
}
.produto__meta span{font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;color:var(--tinta-fraca)}
.produto__meta b{font-family:var(--serif);font-size:1.5rem;color:var(--vermelho)}
.produto__meta .sob-consulta{font-family:var(--sans);font-size:.82rem;font-weight:600;color:var(--tinta-fraca)}

.botao{
  display:inline-block;
  text-align:center;
  text-decoration:none;
  background:var(--verde);
  color:var(--creme);
  border-radius:999px;
  padding:.72rem 1.3rem;
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  transition:background .25s ease,transform .2s ease;
}
.botao:hover,.botao:focus-visible{background:var(--vermelho);transform:translateY(-1px)}
.botao--grande{padding:1rem 2.2rem;font-size:.78rem}

/* ---------- combo ---------- */

.combo{
  background:var(--verde);
  color:var(--creme);
  padding:clamp(4rem,9vw,7rem) var(--margem);
  display:grid;
  gap:clamp(2.5rem,5vw,5rem);
  grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);
  align-items:center;
}
.combo h2{font-size:clamp(2rem,4.2vw,3.3rem)}
.combo .rotulo{color:var(--dourado)}
.combo__lista{list-style:none;margin:2rem 0;padding:0;display:grid;gap:.55rem;max-width:30rem}
.combo__lista li{
  display:flex;justify-content:space-between;gap:1rem;
  padding-bottom:.55rem;
  border-bottom:1px solid rgba(245,235,216,.16);
  font-size:.95rem;
}
.combo__lista span{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;opacity:.65}
.combo__preco{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap;margin:0 0 2rem}
.combo__preco s{opacity:.5;font-size:1rem}
.combo__preco b{font-family:var(--serif);font-size:clamp(2.6rem,6vw,3.8rem);color:var(--creme);line-height:1}
.combo__preco em{
  font-family:var(--mono);font-style:normal;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  background:var(--vermelho);color:var(--creme);border-radius:999px;padding:.4rem .85rem;
}
.combo .botao{background:var(--creme);color:var(--verde)}
.combo .botao:hover,.combo .botao:focus-visible{background:var(--dourado);color:var(--verde-fundo)}
.combo__foto img{border-radius:.9rem}

/* ---------- rodapé ---------- */

.rodape{
  background:var(--verde-fundo);
  color:var(--creme);
  padding:clamp(3.5rem,8vw,6rem) var(--margem) 3rem;
  display:grid;
  gap:clamp(2rem,5vw,4rem);
  grid-template-columns:auto 1fr;
  align-items:center;
}
.rodape__logo img{width:clamp(7rem,14vw,10.5rem);border-radius:50%}
.rodape__contato .rotulo{color:var(--dourado)}
.rodape__frase{margin:0 0 1.8rem;max-width:40ch}
.rodape__link{
  display:inline-block;margin-left:1.4rem;
  font-family:var(--mono);font-size:.75rem;letter-spacing:.12em;
  text-decoration:none;border-bottom:1px solid rgba(245,235,216,.4);padding-bottom:.25rem;
}
.rodape__assinatura{
  grid-column:1/-1;
  margin:1.5rem 0 0;
  padding-top:1.8rem;
  border-top:1px solid rgba(245,235,216,.14);
  font-family:var(--mono);
  font-size:.68rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  opacity:.6;
  line-height:2;
}
.rodape__assinatura em{font-family:var(--serif);font-size:.95rem;letter-spacing:.02em;text-transform:none;opacity:.9}

/* ---------- responsivo ---------- */

@media (max-width:60rem){
  .indice{display:none}
  .historia,.combo,.rodape{grid-template-columns:1fr}
  .combo__foto{order:-1}
  .rodape__logo{justify-self:start}
}

@media (max-width:40rem){
  .topo{padding:.9rem var(--margem);gap:1rem}
  .topo__pedido{margin-left:auto;padding:.45rem .8rem;font-size:.66rem}
  .capitulo__texto{max-width:100%}
  .capitulo h1,.capitulo h2{font-size:clamp(2.4rem,11vw,3.4rem)}
  .selo{display:none}
  .trilho{display:none}
  .progresso{bottom:1.2rem}
  .controle{bottom:1.2rem}
  .controle button{padding:.6rem 1rem;font-size:.66rem}
  .produto__meta{flex-direction:row}
}

/* ---------- sem animação ---------- */

/* O filme continua inteiro. Ele não anda sozinho: cada quadro é escolhido pela
   rolagem da própria pessoa, como rolar uma imagem comprida. O "tocar sozinho"
   fica, porque só se move depois de um clique — é movimento pedido.
   Some apenas o que acontece sem ninguém mandar: rolagem suave e transições.
   Conferido em 20/10/2026: a referência (Terra Arc) faz exatamente isso. */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
}

/* ---------- sem javascript ---------- */

/* Sem JavaScript não há como rebobinar nada, mas a página continua
   cinematográfica: cada capítulo vira uma tela cheia com sua própria foto.
   Essas fotos só são baixadas aqui, porque entram como fundo em CSS. */
.sem-js .filme{height:auto}
.sem-js .palco{display:none}
.sem-js .roteiro{margin-top:0}
.sem-js .trilho,.sem-js .progresso,.sem-js .controle{display:none}

.sem-js .capitulo{
  position:relative;
  height:100svh;
  display:grid;
  align-content:center;
  isolation:isolate;
}
.sem-js .capitulo::before,
.sem-js .capitulo::after{content:'';position:absolute;inset:0}
.sem-js .capitulo::before{z-index:-2;background-size:cover;background-position:center}
.sem-js .capitulo::after{
  z-index:-1;
  background:
    linear-gradient(to right,rgba(10,22,16,.82) 0%,rgba(10,22,16,.45) 42%,rgba(10,22,16,.1) 70%),
    linear-gradient(to bottom,rgba(10,22,16,.6) 0%,transparent 22%,transparent 70%,rgba(10,22,16,.75) 100%);
}
.sem-js #cap-0::before{background-image:url('../quadros/capitulo-0.webp')}
.sem-js #cap-1::before{background-image:url('../quadros/capitulo-1.webp')}
.sem-js #cap-2::before{background-image:url('../quadros/capitulo-2.webp')}
.sem-js #cap-3::before{background-image:url('../quadros/capitulo-3.webp')}
.sem-js #cap-4::before{background-image:url('../quadros/capitulo-4.webp')}

.sem-js .capitulo__texto{position:static;height:auto;opacity:1;transform:none;pointer-events:auto}
.sem-js .selo{bottom:3rem}
