@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/instrument-serif.woff2) format('woff2')}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/instrument-serif-italic.woff2) format('woff2')}
@font-face{font-family:'Inter Tight';font-style:normal;font-weight:300 500;font-display:swap;src:url(../fonts/inter-tight.woff2) format('woff2')}
:root{--bg:#0b0306;--wine:#4a0e1f;--gold:#d8b36a;--gold2:#f1d9a0;--cream:#f6ece4;--dim:#c2a7a1;--line:rgba(216,179,106,.26);--serif:'Instrument Serif',Georgia,serif;--sans:'Inter Tight',system-ui,sans-serif;--pad:clamp(20px,5vw,72px);--e:cubic-bezier(.2,.7,.1,1);--tv:1000}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg)}
body{font:300 1rem/1.6 var(--sans);color:var(--cream);background:var(--bg);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.label,.eyebrow{font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold2)}
.eyebrow b{font-weight:400;color:var(--gold);margin-right:.7em}
.lenis.lenis-smooth{scroll-behavior:auto!important}

/* buttons / nav */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;min-height:46px;padding:0 26px;border-radius:99px;background:linear-gradient(135deg,#f1d9a0,#c99a4e);color:#2a0a14;font-weight:500;font-size:.88rem;letter-spacing:.04em;text-decoration:none;transition:transform .35s var(--e),box-shadow .35s;box-shadow:0 0 0 0 rgba(241,217,160,.0)}
.btn:hover{transform:translateY(-2px);box-shadow:0 8px 40px -6px rgba(241,200,120,.6)}
.btn:active{transform:scale(.96)}
.btn--ghost{background:transparent;color:var(--cream);box-shadow:inset 0 0 0 1px var(--line)}
.btn--sm{min-height:38px;padding:0 18px;font-size:.78rem}
.nav{position:fixed;inset:0 0 auto;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px var(--pad);background:linear-gradient(#0b0306d0,#0b030600);pointer-events:none}
.nav>*{pointer-events:auto}
.nav__brand{font:400 1.7rem/1 var(--serif);text-decoration:none;letter-spacing:.01em}
.nav__links{display:flex;gap:28px;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase}
.nav__links a{text-decoration:none;color:var(--dim);transition:color .3s}
.nav__links a:hover{color:var(--gold2)}

/* stage */
.stage{position:fixed;inset:0;z-index:0;background:radial-gradient(120% 90% at 50% 70%,#2a0713 0%,#0b0306 70%)}
.stage .poster{position:absolute;inset:0;transition:opacity 1.4s ease}
.stage .poster img{width:100%;height:100%;object-fit:cover;animation:kb 18s ease-in-out infinite alternate}
@keyframes kb{from{scale:1.02}to{scale:1.1}}
#gl{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity 1.6s ease}
html.ready .stage .poster{opacity:0}
html.ready #gl{opacity:1}
.vig{position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 100% at 50% 50%,transparent 55%,rgba(5,1,3,.72) 100%)}
.grain{position:absolute;inset:-50%;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");animation:gr 1s steps(4) infinite}
@keyframes gr{0%{transform:translate(0,0)}25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-1%)}100%{transform:translate(3%,3%)}}

/* chapter rail */
.rail{position:fixed;right:clamp(10px,2vw,28px);top:50%;transform:translateY(-50%);z-index:20;display:flex;flex-direction:column;gap:14px;align-items:flex-end}
.rail button{display:flex;align-items:center;gap:10px;padding:2px 0;opacity:.55;transition:opacity .3s}
.rail button span{font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;opacity:0;transform:translateX(8px);transition:.35s var(--e)}
.rail button i{display:block;width:18px;height:1px;background:var(--cream);transition:width .4s var(--e),background .3s}
.rail button:hover,.rail button.on{opacity:1}
.rail button:hover span,.rail button.on span{opacity:1;transform:none}
.rail button.on i{width:34px;background:var(--gold)}

/* acts */
.acts{position:fixed;inset:0;z-index:10;pointer-events:none}
.act{position:absolute;opacity:0;visibility:hidden;max-width:min(520px,38vw);will-change:opacity}
.act a,.act button{pointer-events:auto}
.pos-l{left:var(--pad);bottom:clamp(40px,12vh,120px)}
.pos-intro{bottom:clamp(40px,10vh,100px);max-width:min(640px,46vw)}
.pos-tl{left:var(--pad);top:clamp(80px,13vh,130px);max-width:min(460px,40vw)}
.pos-scent{left:50%;translate:-50% 0;bottom:clamp(30px,6vh,70px);max-width:min(860px,88vw);text-align:center}
.pos-end{left:50%;translate:-50% 0;top:clamp(90px,16vh,160px);max-width:min(760px,90vw);text-align:center}
.act::before{content:"";position:absolute;z-index:-1;inset:-60px -80px -40px -80px;background:radial-gradient(closest-side,rgba(8,2,5,.62),transparent);pointer-events:none}
.big{font:400 clamp(2.4rem,5.2vw,5.6rem)/.98 var(--serif);letter-spacing:-.01em;margin:.2em 0 .22em;text-wrap:balance}
.pos-intro .big{font-size:clamp(2.1rem,4.4vw,4.8rem)}
.big em,.mid em{font-style:italic;color:var(--gold2)}
.mid{font:400 clamp(1.5rem,2.6vw,2.6rem)/1.08 var(--serif);margin:.3em 0 .4em;text-wrap:balance}
.sub{font-size:clamp(.95rem,1.1vw,1.08rem);color:#e8d6cc;max-width:44ch;text-shadow:0 1px 14px #000}
.pos-scent .sub,.pos-end .sub{margin-inline:auto}
.meta{font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin:.1em 0 .9em}
.cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.pos-end .cta{justify-content:center}
.ask{display:inline-block;margin-top:14px;font-size:.84rem;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--gold2);border-bottom:1px solid var(--line);padding-bottom:3px;transition:letter-spacing .4s var(--e),color .3s}
.ask:hover{letter-spacing:.2em;color:#fff}
.cue{margin-top:30px;display:flex;align-items:center;gap:14px;font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--dim)}
.cue i{display:block;width:1px;height:42px;background:linear-gradient(var(--gold),transparent);transform-origin:top;animation:cue 2.2s var(--e) infinite}
@keyframes cue{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
/* reveal units: JS sets --r 0..1 */
.rv{--r:1}
.rv:not(.kin){opacity:var(--r);transform:translateY(calc((1 - var(--r)) * 26px));filter:blur(calc((1 - var(--r)) * 7px))}
.kin .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
.kin .wi{display:inline-block;transform:translateY(calc((1 - var(--r)) * 108%)) rotate(calc((1 - var(--r)) * 5deg));transform-origin:0 100%;opacity:calc(.2 + var(--r) * .8)}

/* scents */
.scents{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:22px 0 14px}
.scent{position:relative;text-align:left;padding:16px 16px 14px;border-radius:14px;background:rgba(14,4,8,.62);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:inset 0 0 0 1px var(--line);transition:transform .45s var(--e),box-shadow .4s,background .4s}
.scent i{display:block;width:26px;height:26px;border-radius:50%;margin-bottom:10px;background:radial-gradient(circle at 35% 30%,#fff,var(--c) 45%,transparent 72%);box-shadow:0 0 28px 4px var(--c)}
.scent b{display:block;font:400 1.25rem/1.1 var(--serif);letter-spacing:.01em}
.scent span{display:block;font-size:.72rem;color:var(--dim);margin-top:4px}
.scent:hover{transform:translateY(-4px)}
.scent[data-live="1"]{box-shadow:inset 0 0 0 1px var(--c),0 0 36px -8px var(--c)}
.scent[aria-pressed="true"]{background:rgba(30,8,16,.85);box-shadow:inset 0 0 0 1.5px var(--c),0 0 46px -4px var(--c)}
.note{font-size:.8rem;color:var(--dim);max-width:60ch;margin-inline:auto}

/* end panel */
.end{position:relative;z-index:5;min-height:100vh;padding:48vh var(--pad) 0;display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(to bottom,transparent 0,rgba(11,3,6,.0) 22%,rgba(11,3,6,.82) 48%,#0b0306 100%)}
.end__in{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(24px,5vw,80px);align-items:start;padding-bottom:60px;max-width:1280px;margin:0 auto;width:100%}
.block__title{font:400 clamp(2rem,4vw,3.6rem)/1.02 var(--serif);margin:.2em 0 .4em;text-wrap:balance}
.block__lede{color:#e8d6cc;max-width:46ch}
.block__note{color:var(--dim);font-size:.9rem;max-width:50ch;margin-top:18px}
.stats{display:flex;gap:36px;margin:26px 0 0}
.stats b{display:block;font:400 3rem/1 var(--serif);color:var(--gold2)}
.stats span{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
.quote{display:grid;gap:14px;padding:clamp(18px,2.4vw,30px);border-radius:20px;background:rgba(18,5,10,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:inset 0 0 0 1px var(--line),0 30px 80px -20px #000}
.quote label{display:grid;gap:6px;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold2)}
.quote input,.quote select{height:46px;padding:0 14px;border-radius:10px;border:0;background:rgba(255,255,255,.07);color:var(--cream);font:300 1rem var(--sans);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.quote select option{color:#222}
.quote .btn{margin-top:6px;min-height:52px}
.foot{display:flex;flex-wrap:wrap;gap:12px 36px;justify-content:space-between;align-items:center;padding:24px var(--pad) 28px;border-top:1px solid var(--line);font-size:.82rem;color:var(--dim)}

/* film mode: track + hidden plain content */
html.js:not(.plain) #track{height:calc(var(--tv) * 1vh)}
html.js:not(.plain) #plain{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}

/* plain mode: reduced motion, no WebGL, no JS */
html.plain .stage .vig,html.plain .stage .grain{display:none}
html.plain .stage{position:absolute;height:92vh;z-index:0}
html.plain .stage .poster{opacity:1}
html.plain .stage .poster img{animation:none}
html.plain #gl,html.plain .acts,html.plain .rail,html.plain #track{display:none}
html.plain .nav{position:absolute}
html.plain main{position:relative;z-index:2;padding-top:84vh}
html.plain .end{padding-top:60px;min-height:0;background:#0b0306}
.block{padding:clamp(56px,9vw,120px) var(--pad);background:#0b0306;position:relative}
.plain__h1{font:400 clamp(2.4rem,6vw,5rem)/1 var(--serif);margin:.3em 0;max-width:16ch}
.plain__h1 em{color:var(--gold2)}
.story__text{font:400 clamp(1.3rem,2.4vw,2rem)/1.35 var(--serif);max-width:34ch;margin-bottom:28px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;margin-top:30px}
.card{padding:18px;border-radius:16px;background:#150510;box-shadow:inset 0 0 0 1px var(--line)}
.card__img{aspect-ratio:5/4;display:grid;place-items:center;margin-bottom:12px}
.card__img img{max-height:100%;width:auto;object-fit:contain}
.card h3{font:400 1.4rem var(--serif)}
.card p{font-size:.85rem;color:var(--dim);margin:4px 0 10px}
.card__ask{font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--gold2)}
.steps{list-style:none;display:grid;gap:22px;margin-top:26px;max-width:720px}
.steps li{display:grid;grid-template-columns:48px 1fr;gap:4px 16px}
.steps b{grid-row:span 2;font:400 2.4rem var(--serif);color:var(--gold)}
.steps h3{font:400 1.5rem var(--serif)}
.steps p{color:var(--dim)}
.orders{display:grid;gap:34px;margin-top:30px}
.order{display:grid;grid-template-columns:minmax(0,320px) 1fr;gap:28px;align-items:center}
.order figure img{border-radius:14px}
.order h3{font:400 1.8rem var(--serif)}
.order ul{margin:12px 0 0 18px;color:var(--dim)}
.noscript{padding:100px var(--pad) 40px;color:var(--cream)}

@media (max-width:900px){.nav__links{display:none}.end__in{grid-template-columns:1fr}.order{grid-template-columns:1fr}}
@media (max-width:760px){
  .rail{display:none}
  .act{max-width:calc(100vw - 2 * var(--pad))}
  .pos-l,.pos-intro{left:var(--pad);right:var(--pad);bottom:max(22px,env(safe-area-inset-bottom));max-width:none}
  .big{font-size:clamp(2.1rem,10.5vw,3.2rem)}
  .pos-intro .big{font-size:clamp(1.9rem,9vw,2.6rem)}
  .sub{font-size:.92rem;max-width:none}
  .pos-intro .sub{display:none}
  .pos-tl{top:68px;max-width:80vw}
  .mid{font-size:1.35rem}
  .pos-scent{left:var(--pad);right:var(--pad);translate:none;bottom:14px;max-width:none}
  .scents{grid-template-columns:repeat(2,1fr);gap:8px;margin:12px 0 8px}
  .scent{padding:10px 12px}
  .scent i{width:18px;height:18px;margin-bottom:6px}
  .scent span{display:none}
  .note{display:none}
  .pos-scent .mid{font-size:1.2rem;margin:.1em 0 0}
  .pos-end{top:84px}
  .cue{margin-top:16px}
  .act::before{inset:-50px -30px -30px -30px;background:radial-gradient(closest-side at 50% 70%,rgba(8,2,5,.78),transparent)}
  .nav{padding:12px var(--pad)}
  .nav__brand{font-size:1.45rem}
  .end{padding-top:42vh}
  .stats{gap:22px}.stats b{font-size:2.3rem}
}
@media (prefers-reduced-motion:reduce){.grain,.cue i{animation:none}}
