:root{
  --bg:#0B0A0A; --bg-2:#161312; --ink:#F3EDE4; --ink-2:#A69C8F;
  --red:#C8102E; --ember:#FF7A1A; --gold:#E6B23C; --smoke:rgba(243,237,228,.08);
  --mono:'JetBrains Mono',ui-monospace,monospace; --sans:'Inter',system-ui,sans-serif; --display:'Bebas Neue',Impact,sans-serif;
  --gutter:clamp(16px,4vw,56px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:auto}
html.lenis{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden;cursor:none}
@media (hover:none){body{cursor:auto}.cursor{display:none}}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.mono{font-family:var(--mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase}
.muted{color:var(--ink-2)}
.h-chapter{font-family:var(--display);font-size:clamp(48px,8vw,120px);line-height:.9;letter-spacing:.01em}
.h-house{font-family:var(--display);font-size:clamp(72px,14vw,220px);line-height:.85}

/* grain + cursor */
.grain{position:fixed;inset:-50%;pointer-events:none;z-index:50;opacity:.06;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  animation:grain 1.2s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-5%)}60%{transform:translate(-2%,-2%)}80%{transform:translate(4%,4%)}100%{transform:translate(0,0)}}
.cursor{position:fixed;top:0;left:0;width:8px;height:8px;border-radius:50%;background:var(--red);pointer-events:none;z-index:60;transform:translate(-50%,-50%);mix-blend-mode:screen;transition:width .2s,height .2s}
body[data-hover] .cursor{width:28px;height:28px;background:transparent;border:1px solid var(--red)}

/* HUD */
.hud{position:fixed;left:0;right:0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:14px var(--gutter);font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;pointer-events:none;mix-blend-mode:difference}
.hud>*{pointer-events:auto}
.hud--top{top:0}
.hud--bottom{bottom:0;gap:16px}
.hud__brand span{color:var(--red)}
.hud__nav{display:flex;gap:18px}
.hud__nav a{opacity:.5;transition:opacity .3s,color .3s}
.hud__nav a.is-active{opacity:1;color:var(--red)}
.hud__menu{background:none;border:0;color:inherit;font:inherit;letter-spacing:inherit;cursor:none}
.hud__menu span{color:var(--red)}
.hud__ruler{flex:1;height:10px;position:relative;background:repeating-linear-gradient(90deg,var(--ink) 0 1px,transparent 1px 10px);opacity:.5}
.hud__ruler i{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--red);left:0}
.hud__label,.hud__frame{min-width:140px}
.hud__frame{text-align:right}
@media (max-width:760px){.hud__nav{display:none}.hud__label,.hud__frame{min-width:0}.hud--bottom{gap:10px}}

/* chapters */
.chapter{position:relative;min-height:100vh;padding:120px var(--gutter) 80px}
.chapter__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 40px;margin-bottom:40px}

/* 00 intro */
.chapter--intro{display:grid;place-items:center;overflow:hidden;background:radial-gradient(60% 50% at 50% 80%,rgba(255,122,26,.18),transparent 70%),var(--bg)}
.intro{text-align:center;position:relative;z-index:2}
.intro__kicker{color:var(--ink-2);margin-bottom:28px}
.intro__title{font-family:var(--display);font-size:clamp(56px,11.5vw,190px);line-height:.86;letter-spacing:.01em}
.intro__title .line{display:block;overflow:hidden}
.intro__title .line--red{color:var(--red)}
.intro__hint{margin-top:40px;color:var(--ink-2);display:inline-flex;align-items:center;gap:10px}
.pulse{width:6px;height:6px;border-radius:50%;background:var(--ember);box-shadow:0 0 0 0 rgba(255,122,26,.6);animation:pulse 1.6s infinite}
@keyframes pulse{to{box-shadow:0 0 0 14px rgba(255,122,26,0)}}
.intro__smoke{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(40% 30% at 30% 90%,var(--smoke),transparent 70%),radial-gradient(35% 25% at 70% 85%,var(--smoke),transparent 70%);
  filter:blur(30px);animation:smoke 12s ease-in-out infinite alternate}
@keyframes smoke{to{transform:translateY(-12%) scale(1.15)}}

/* 01 line-up */
.lineup{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.lineup__item{position:relative;overflow:hidden;background:var(--bg-2);aspect-ratio:4/5}
.lineup__item img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.lineup__item:hover img{transform:scale(1)}
.lineup__item{transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.lineup__item:hover{transform:translateY(-6px)}
.lineup__item figcaption{position:absolute;left:14px;bottom:14px;right:14px;color:var(--ink);text-shadow:0 2px 12px rgba(0,0,0,.8)}
.lineup__item figcaption b{color:var(--red);margin-left:8px}
.lineup__foot{margin-top:22px}
@media (max-width:760px){.lineup{grid-template-columns:1fr 1fr}.lineup__item:last-child{grid-column:1/-1;aspect-ratio:16/10}}

/* sequence chapters */
.seq{position:relative;height:100vh;overflow:hidden;background:var(--bg);padding:0}
.seq__canvas,.seq__fx{position:absolute;inset:0;width:100%;height:100%;display:block}
.seq__fx{pointer-events:none;mix-blend-mode:screen}
.seq__vignette{position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(180deg,rgba(11,10,10,.75) 0%,transparent 28%,transparent 70%,rgba(11,10,10,.85) 100%),
  radial-gradient(70% 70% at 50% 50%,transparent 55%,rgba(11,10,10,.7) 100%)}
.seq__ui{position:absolute;inset:0;padding:110px var(--gutter) 90px;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}
.seq__head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.seq__title{font-family:var(--display);font-size:clamp(40px,7vw,110px);line-height:.9}
.seq__title small{display:block;font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;color:var(--ink-2);margin-top:8px}
.seq__counter{text-align:right;text-shadow:0 0 24px rgba(255,122,26,.45);font-family:var(--display);font-size:clamp(40px,7vw,110px);line-height:.9;color:var(--ember);font-variant-numeric:tabular-nums}
.seq__counter small{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--ink-2);margin-top:8px}
.seq__stages{display:grid;gap:4px;max-width:560px}
.seq__stage{font-family:var(--mono);font-size:clamp(12px,1.5vw,15px);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);opacity:.28;transform:translateY(0);transition:opacity .35s,color .35s,transform .35s;display:flex;gap:12px;align-items:baseline}
.seq__stage::before{content:"";width:18px;height:1px;background:currentColor;flex:none;transform:translateY(-4px)}
.seq__stage.is-on{opacity:1;color:var(--ink);transform:translateX(8px)}
.seq__stage.is-on::before{background:var(--red);width:30px}
.seq__stage.is-past{opacity:.45}
@media (max-width:760px){.seq__ui{padding:90px 16px 80px}.seq__head{flex-direction:column}.seq__counter{text-align:left}.seq__stage{font-size:12px}}

/* 05 houses */
.chapter--houses{display:grid;grid-template-columns:1fr 1fr;padding:0;min-height:100vh}
.house{padding:140px var(--gutter) 100px;display:flex;flex-direction:column;justify-content:flex-end;gap:16px;min-height:100vh}
.house--cave{background:radial-gradient(60% 40% at 30% 100%,rgba(200,16,46,.25),transparent 70%),var(--bg)}
.house--cave .mono{color:var(--red)}
.house--roof{background:#F3EDE4;color:#111}
.house--roof .mono{color:#111}
.house__txt{max-width:38ch;color:inherit;opacity:.8}
.btn{display:inline-block;font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;padding:14px 20px;border:1px solid currentColor;width:max-content;transition:background .3s,color .3s}
.btn--ghost:hover{background:var(--red);border-color:var(--red);color:var(--ink)}
.btn--dark{background:#111;color:#F3EDE4;border-color:#111}
.btn--dark:hover{background:transparent;color:#111}
.houses__foot{grid-column:1/-1;padding:18px var(--gutter);border-top:1px solid rgba(243,237,228,.12);color:var(--ink-2);background:var(--bg)}
@media (max-width:760px){.chapter--houses{grid-template-columns:1fr}.house{min-height:70vh;padding:100px 16px 60px}}

/* 06 menu */
.filters{display:flex;gap:6px;flex-wrap:wrap}
.filters button{background:none;border:1px solid rgba(243,237,228,.2);color:var(--ink-2);font:inherit;letter-spacing:inherit;text-transform:inherit;padding:10px 14px;cursor:none;transition:.25s}
.filters button.is-active,.filters button:hover{border-color:var(--red);color:var(--ink)}
.menu{display:grid;gap:56px 40px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.menu__cat h3{font-family:var(--display);font-size:clamp(32px,4vw,56px);line-height:1;margin-bottom:18px;display:flex;align-items:center;gap:12px}
.menu__cat h3::after{content:"★";color:var(--red);font-size:.5em}
.menu__item{display:grid;grid-template-columns:1fr auto;gap:4px 20px;padding:14px 0;border-top:1px solid rgba(243,237,228,.1)}
.menu__item:last-child{border-bottom:1px solid rgba(243,237,228,.1)}
.menu__name{font-weight:500;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.menu__name .tag{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--red);border:1px solid var(--red);padding:2px 6px}
.menu__name .casa{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--ink-2)}
.menu__desc{grid-column:1;color:var(--ink-2);font-size:14px}
.menu__price{font-family:var(--mono);font-size:13px;letter-spacing:.06em;color:var(--gold);align-self:start}
.menu__cat .rodape{margin-top:12px;color:var(--ink-2)}
.menu__foot{margin-top:60px}

@media (prefers-reduced-motion:reduce){
  .grain,.intro__smoke,.pulse{animation:none}
  .seq{height:auto}
  .seq__canvas{position:relative;height:auto;aspect-ratio:16/9}
}
