:root{--ink:#12100c;--ink2:#1b1813;--ink3:#262117;--cream:#f7f2e7;--cream2:#e6ddcb;--cream3:#bfb5a1;--gold:#e5a85c;--golddeep:#8a5310;--green:#7fbb86;--greendeep:#24512f;--neon:#7fe3e8;--muted:#4a4335;--serif:"Fraunces",Georgia,serif;--sans:"Manrope",system-ui,sans-serif;--ease:cubic-bezier(.2,.7,.1,1)}
*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--cream);font:400 17px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
figure{margin:0}
h1,h2,h3{font-family:var(--serif);font-weight:700;line-height:1.02;margin:0 0 .5em;letter-spacing:-.015em}
h1{font-size:clamp(2.6rem,6.4vw,5.6rem)}h1 em{font-style:italic;font-weight:600;color:var(--gold)}
h2{font-size:clamp(2rem,4.6vw,3.6rem)}h3{font-size:1.35rem;font-weight:600}
a{color:var(--gold)}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #ffd79a;outline-offset:3px}
.light a:focus-visible,.light input:focus-visible,.light button:focus-visible{outline-color:var(--golddeep)}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;z-index:99;background:var(--cream);color:var(--ink);padding:.5rem 1rem}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.wrap{max-width:1200px;margin:0 auto;padding:0 1.5rem}.narrow{max-width:680px;text-align:center}
.eyebrow{color:var(--gold);text-transform:uppercase;letter-spacing:.18em;font-size:.74rem;font-weight:700;margin:0 0 1.1rem}.eyebrow.dark{color:var(--golddeep)}
.todo,.chapter p.todo,.light p.todo{display:inline-block;font-size:.78rem;font-weight:600;color:var(--ink)!important;background:#ffd79a;border-radius:6px;padding:.25rem .6rem;margin:.4rem 0}
.todo-inline{font:600 .66rem var(--sans);background:#ffd79a;color:var(--ink);padding:.12rem .42rem;border-radius:4px;vertical-align:middle;letter-spacing:.03em}
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:.75rem 1.5rem;border-radius:999px;font-weight:700;text-decoration:none;border:1.5px solid transparent;cursor:pointer;font-family:var(--sans);font-size:1rem;transition:transform .35s var(--ease),background .3s,color .3s;overflow:hidden}
.btn:hover{transform:translateY(-2px)}.btn.sm{min-height:40px;padding:.45rem 1.05rem;font-size:.88rem}
.btn-gold{background:var(--gold);color:var(--ink)}.btn-gold:hover{background:#f0bb76}
.btn-ghost{border-color:rgba(230,221,203,.45);color:var(--cream)}.btn-ghost:hover{border-color:var(--cream);background:rgba(247,242,231,.06)}
.btn-ink{background:var(--ink);color:var(--cream)}
.ctas{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.8rem 0 1.1rem}
.textlink{color:var(--cream2);font-weight:600;text-underline-offset:4px}
/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.5rem;transition:background .4s,transform .5s var(--ease)}
.nav.solid{background:rgba(18,16,12,.86);box-shadow:0 1px 0 rgba(255,255,255,.05)}
.brand{font-family:var(--serif);font-weight:700;font-size:1.2rem;color:var(--cream);text-decoration:none;margin:0}.brand span{color:var(--gold);font-style:italic;font-weight:600}
.nav nav{display:flex;gap:1.8rem}.nav nav a{color:var(--cream2);text-decoration:none;font-weight:600;font-size:.92rem;position:relative}
.nav nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-4px;height:1px;background:var(--gold);transition:right .4s var(--ease)}.nav nav a:hover::after{right:0}
/* hero */
.hero{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:4rem;align-items:center;max-width:1280px;margin:0 auto;padding:8rem 1.5rem 5rem;min-height:100vh}
.hero::before{content:"";position:absolute;inset:-10% -30% auto auto;width:70vw;height:70vw;background:radial-gradient(circle,rgba(229,168,92,.14),transparent 60%);pointer-events:none;z-index:-1}
.hero>*{min-width:0}
.lede{font-size:1.18rem;color:var(--cream2);max-width:38ch}
.ph{position:relative;display:grid;place-items:center;text-align:center;border-radius:4px;overflow:hidden;color:var(--cream2);
 background:radial-gradient(120% 80% at 30% 20%,#3a2a1a,#15110c 70%);border:1px solid rgba(229,168,92,.25)}
.ph::after{content:"";position:absolute;inset:0;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='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E");mix-blend-mode:overlay;pointer-events:none}
.ph-tag{position:absolute;top:1rem;left:1rem;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--ink);background:#ffd79a;padding:.25rem .55rem;border-radius:3px;z-index:1}
.ph-cap{font-family:var(--serif);font-size:1.3rem;max-width:18ch;line-height:1.25;z-index:1;padding:1rem}.ph-cap small{display:block;font:500 .78rem var(--sans);color:var(--cream3);margin-top:.6rem;letter-spacing:.04em}
.ph-portrait{aspect-ratio:4/5;width:100%;max-height:80vh}
.ph-frame{position:relative}.ph-frame::before{content:"";position:absolute;inset:-14px 14px 14px -14px;border:1px solid rgba(229,168,92,.35);z-index:-1}
/* story */
.story{position:relative;background:#0d0a07}
.story-pin{position:relative;height:100vh;height:100svh;overflow:hidden}
#scene{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity 1.2s}
#scene.ready{opacity:1}
.no-webgl .story-pin{background:radial-gradient(60% 60% at 70% 50%,#4a2e18,#0d0a07)}
.scrim{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(10,8,6,.82) 0%,rgba(10,8,6,.45) 34%,rgba(10,8,6,0) 58%),linear-gradient(0deg,rgba(10,8,6,.55),transparent 30%)}
.story-head{position:absolute;top:5.2rem;left:clamp(1.5rem,5vw,5rem);max-width:30rem;z-index:2}
.story-head h2{font-size:clamp(1rem,1.4vw,1.15rem);font-family:var(--sans);font-weight:600;color:var(--cream3);letter-spacing:0;line-height:1.4}
.bigyear{position:absolute;right:-1vw;bottom:-3vw;font:700 clamp(6rem,19vw,22rem)/.8 var(--serif);color:transparent;-webkit-text-stroke:1px rgba(229,168,92,.22);white-space:nowrap;pointer-events:none;z-index:1;letter-spacing:-.04em}
.chapters{list-style:none;margin:0;padding:0}
.chapter{position:absolute;left:clamp(1.5rem,5vw,5rem);top:50%;transform:translateY(-42%);width:min(34rem,44vw);z-index:3;visibility:hidden}
.chapter.is-on{visibility:visible}
.chapter .num{font:700 .78rem var(--sans);letter-spacing:.2em;color:var(--cream3);margin:0 0 1.2rem}.chapter .num span{opacity:.5}
.chapter .year{font:600 1rem var(--sans);color:var(--gold);letter-spacing:.16em;text-transform:uppercase;margin:0 0 .6rem}
.chapter h3{font-size:clamp(2.3rem,4.4vw,4.4rem);font-weight:700;line-height:1;margin-bottom:1.4rem;text-shadow:0 2px 30px rgba(0,0,0,.5)}
.chapter p{color:var(--cream2);font-size:1.08rem;max-width:42ch;text-shadow:0 1px 18px rgba(0,0,0,.6)}
.sig{font-family:var(--serif);font-style:italic;color:var(--gold)!important;font-size:1.3rem!important}
.line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}.line>span{display:inline-block;will-change:transform}
.rail{position:absolute;right:clamp(1rem,2.5vw,2.5rem);top:50%;transform:translateY(-50%);z-index:4}
.rail ol{list-style:none;margin:0;padding:0;display:grid;gap:.15rem}
.rail button{all:unset;cursor:pointer;display:flex;align-items:center;justify-content:flex-end;gap:.7rem;padding:.35rem 0;font:600 .7rem var(--sans);letter-spacing:.14em;text-transform:uppercase;color:rgba(230,221,203,.4);transition:color .3s}
.rail button::after{content:"";width:18px;height:1px;background:currentColor;transition:width .4s var(--ease)}
.rail button.on{color:var(--gold)}.rail button.on::after{width:42px}.rail button:hover{color:var(--cream)}
.rail button:focus-visible{outline:2px solid #ffd79a;outline-offset:4px}
.scroll-hint{position:absolute;left:50%;bottom:1.6rem;transform:translateX(-50%);font:600 .66rem var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--cream3);display:grid;justify-items:center;gap:.6rem;z-index:3}
.scroll-hint span{width:1px;height:42px;background:linear-gradient(var(--gold),transparent);animation:hint 2.2s var(--ease) infinite;transform-origin:top}
@keyframes hint{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
.marquee{overflow:hidden;border-block:1px solid var(--ink3);padding:1.4rem 0;background:var(--ink)}
.mq-track{display:flex;gap:4rem;width:max-content;animation:mq 40s linear infinite;font:600 italic clamp(1.4rem,3vw,2.4rem) var(--serif);color:var(--cream2);white-space:nowrap}
.mq-track span::after{content:"✦";margin-left:4rem;color:var(--gold);font-style:normal;font-size:.7em}
@keyframes mq{to{transform:translateX(-50%)}}
/* light sections */
.light{background:var(--cream);color:var(--ink)}.light p{color:var(--muted)}
.menu{padding:8rem 0}.note{font-size:1.12rem;max-width:60ch}.note strong{color:var(--ink)}
.menu-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:4rem;margin:3rem 0 5rem}.menu-grid>*,.visit-grid>*{min-width:0}
.card{background:#fffdf8;border:1px solid var(--cream2);border-radius:6px;padding:1.4rem;box-shadow:0 30px 60px -40px rgba(60,40,20,.35)}
.feature .ph{aspect-ratio:1;margin-bottom:1.4rem;background:radial-gradient(120% 80% at 30% 20%,#efe3cc,#d9c8a8);color:var(--muted);border-color:rgba(138,83,16,.3)}
.feature .ph-cap small{color:var(--muted)}
.price{font-family:var(--sans);color:var(--golddeep);font-weight:700;white-space:nowrap}.price sup{margin-left:.3rem}
.list-h{font-size:1.2rem;margin-top:1.8rem;border-bottom:1.5px solid var(--ink);padding-bottom:.35rem}.list-h.center{text-align:center;border:0;font-size:clamp(1.8rem,3vw,2.6rem)}
.seasonal{font-family:var(--serif);font-size:1.15rem;color:var(--ink)!important;font-style:italic}
.dots{list-style:none;padding:0;margin:0}
.dots li{display:flex;gap:.5rem;padding:.4rem 0;background:radial-gradient(circle,#a89c85 1px,transparent 1.5px) 0 72%/8px 6px repeat-x}
.dots span,.dots b{background:var(--cream);padding:0 .35rem}.dots span{padding-left:0}.dots b{margin-left:auto;font-variant-numeric:tabular-nums;padding-right:0}
.small{font-size:.86rem}
.bags{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2rem}
.bag{position:relative;display:flex;flex-direction:column;gap:.6rem;padding:2rem 1.6rem 1.6rem;border-radius:6px;background:var(--ink);color:var(--cream);text-decoration:none;transition:transform .5s var(--ease),box-shadow .5s;overflow:hidden;min-height:260px}
.bag::before{content:"";position:absolute;inset:auto -30% -60% auto;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(229,168,92,.28),transparent 65%);transition:transform .6s var(--ease)}
.bag:hover{transform:translateY(-6px);box-shadow:0 30px 50px -30px rgba(0,0,0,.6)}.bag:hover::before{transform:scale(1.4)}
.bag b{font:700 1.7rem var(--serif);color:var(--gold)}.bag span{color:var(--cream2);font-size:.95rem}.bag em{font-style:normal;font-weight:700;margin-top:auto}
.visit{padding:8rem 0;background:radial-gradient(80% 60% at 80% 40%,#132418,var(--ink) 70%)}
.visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
address{font-style:normal;font-family:var(--serif);font-size:clamp(1.4rem,2.4vw,1.9rem);line-height:1.25;margin-bottom:1.2rem}
.door{color:var(--cream2)}.door strong{color:var(--green)}
.hours{margin:1.8rem 0;display:grid;gap:.7rem}.hours div{display:grid;grid-template-columns:7rem 1fr;border-bottom:1px solid var(--ink3);padding-bottom:.7rem}.hours dt{font-weight:700;color:var(--gold)}.hours dd{margin:0}
.ph-door{aspect-ratio:4/5}
.ic{padding:7rem 0}
form{display:flex;gap:.6rem;margin:1.8rem auto 1rem;max-width:480px}
input{flex:1;min-height:50px;border-radius:999px;border:1.5px solid var(--muted);padding:0 1.2rem;font:inherit;background:#fff;color:var(--ink)}
.foot{padding:4rem 0 6rem;border-top:1px solid var(--ink3);color:var(--cream3);font-size:.95rem}.foot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.foot a{color:var(--cream2)}
.mbar{display:none}
.reveal{will-change:transform}
@media (max-width:860px){
  body{font-size:16px}
  .nav nav,.nav .btn{display:none}.nav{padding:.85rem 1.2rem}
  .hero{grid-template-columns:1fr;padding:4.6rem 1.2rem 3rem;gap:1.8rem;min-height:0}
  .hero .ph-portrait{order:-1;aspect-ratio:auto;height:45vh}.ph-frame::before{display:none}
  .scrim{background:linear-gradient(0deg,rgba(10,8,6,.94) 0%,rgba(10,8,6,.75) 38%,rgba(10,8,6,0) 64%)}
  .story-head{top:4.4rem;left:1.2rem;right:1.2rem}.story-head .eyebrow{margin:0}.story-head h2{display:none}
  .chapter{left:1.2rem;right:1.2rem;width:auto;top:auto;bottom:5.6rem;transform:none}
  .chapter h3{font-size:clamp(1.9rem,8.4vw,2.6rem);margin-bottom:.8rem}.chapter p{font-size:.98rem}.chapter .num{margin-bottom:.6rem}
  .rail{display:none}.scroll-hint{display:none}
  .bigyear{font-size:34vw;top:4.2rem;bottom:auto;right:-2vw;-webkit-text-stroke-color:rgba(229,168,92,.16)}
  .menu,.visit{padding:5rem 0}.menu-grid,.visit-grid,.foot-grid{grid-template-columns:1fr;gap:2.5rem}.bags{grid-template-columns:1fr}
  form{flex-direction:column}
  .mbar{display:grid;grid-template-columns:1fr 1fr 1.3fr;position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--ink2);border-top:1px solid var(--ink3)}
  .mbar a{min-height:56px;display:grid;place-items:center;color:var(--cream);text-decoration:none;font-weight:700;font-size:.95rem}.mbar .go{background:var(--gold);color:var(--ink)}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}.scroll-hint{display:none}}
.line{vertical-align:top;line-height:inherit}
html,body{overflow-x:clip}
.arrive{margin:1.2rem 0 .8rem;padding:1.2rem 1.3rem;border:1px solid rgba(229,168,92,.35);border-radius:6px;background:rgba(14,11,8,.55)}
.arrive p{margin:.2rem 0 .6rem;font-size:.98rem!important}.arrive-addr strong{font-family:var(--serif);font-size:1.25rem;color:var(--cream);font-weight:600}
.arrive-door{color:var(--green)!important}.arrive .ctas{margin:.9rem 0 0}.arrive .btn{min-height:46px}
.chapter[data-step="8"] h3{font-size:clamp(2.2rem,4vw,3.8rem)}
@media (max-width:860px){.chapter[data-step="8"]{bottom:4.4rem}.chapter[data-step="8"]>p:not(.year):not(.num):not(.sig),.chapter[data-step="8"] .sig,.chapter[data-step="8"] .arrive-door{display:none}.arrive{padding:.9rem 1rem;margin-top:.6rem}.arrive .ctas{gap:.5rem}.arrive .btn{flex:1;padding:.6rem .8rem}}
.chapter[data-step="8"]{top:auto;bottom:2.2rem;transform:none}@media (max-width:860px){.chapter[data-step="8"]{bottom:4.6rem}}
@media (max-width:860px){.chapter[data-step="8"]>p:not(.year):not(.num),.chapter[data-step="8"] .arrive-door{display:none!important}.chapter[data-step="8"] h3{margin-bottom:.4rem}}
.foot-agents{grid-column:1/-1;font-size:.8rem;border-top:1px solid var(--ink3);padding-top:1rem}.foot-label{text-transform:uppercase;letter-spacing:.16em;font-size:.66rem;margin:0 0 .2rem;color:var(--cream3)}
.photo{display:block;overflow:hidden;border-radius:4px;background:#1b1813}.photo img{display:block;width:100%;height:100%;object-fit:cover}
.photo-portrait{aspect-ratio:4/5;max-height:80vh}.photo-portrait img{object-position:40% 35%}
.photo-sq{aspect-ratio:1;margin-bottom:1.4rem}.photo-door{aspect-ratio:4/5}
@media (max-width:860px){.hero .photo-portrait{order:-1;aspect-ratio:auto;height:45vh}}
@media (max-width:860px){
  .rail{display:block;top:6.3rem;left:1.2rem;right:1.2rem;transform:none;overflow-x:auto;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
  .rail::-webkit-scrollbar{display:none}
  .rail ol{display:flex;gap:0;width:max-content;padding:0 .6rem;position:relative}
  .rail ol::before{content:"";position:absolute;left:.6rem;right:.6rem;top:50%;height:1px;background:rgba(230,221,203,.18)}
  .rail button{flex-direction:column-reverse;gap:.35rem;padding:.3rem .55rem;font-size:.62rem;letter-spacing:.08em;position:relative;background:var(--ink)}
  .rail button::after{width:6px;height:6px;border-radius:50%}.rail button.on::after{width:9px;height:9px}
  .bigyear{display:none}
  .chapter{bottom:calc(56px + 1.4rem)}
  .chapter[data-step="8"]{bottom:calc(56px + .8rem)}.chapter[data-step="8"] h3{font-size:2rem}.arrive{padding:.9rem 1rem;margin:.8rem 0 .4rem}
}
.bar-gallery{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin-top:1.2rem}
.bar-gallery figure,.ch-accent{margin:0}.bar-gallery figcaption,.ch-accent figcaption{font:600 .72rem var(--sans);letter-spacing:.12em;text-transform:uppercase;opacity:.7;margin-top:.45rem}
.photo-43{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:6px}.photo-43 img{width:100%;height:100%;object-fit:cover;display:block}
.ch-accent{width:220px;margin-top:1.2rem;box-shadow:0 18px 40px rgba(0,0,0,.45)}
@media (max-width:860px){.ch-accent{display:none}}
