:root { --ink:#210907; --ink-soft:#57312b; --paper:#f4eee5; --paper-warm:#e9dac8; --red:#a5261d; --red-deep:#6e130e; --ember:#ed5427; --line:rgba(33,9,7,.18); --pad:clamp(1.25rem,4.8vw,5.5rem); --max:94rem; --serif:"Instrument Serif", Georgia, serif; --sans:"DM Sans", Arial, sans-serif; --mono:"DM Mono", monospace; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:var(--paper); }
body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--sans); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
a { color:inherit; } button, input, select, textarea { font:inherit; } img { display:block; max-width:100%; } button, a { -webkit-tap-highlight-color:transparent; }
::selection { color:#fff; background:var(--red); }
.cs-site { overflow:clip; }
.cs-skip { position:fixed; z-index:100; top:-5rem; left:1rem; padding:.75rem 1rem; color:var(--paper); background:var(--red); text-decoration:none; font-weight:700; }.cs-skip:focus { top:1rem; }
.cs-header { position:fixed; z-index:20; inset:0 0 auto; height:5.45rem; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding:0 var(--pad); color:#fff; border-bottom:1px solid rgba(255,255,255,.18); transition:height .3s ease, color .3s ease, background .3s ease, border-color .3s ease, backdrop-filter .3s ease; }
.cs-header.is-scrolled { height:4.4rem; color:var(--ink); background:rgba(244,238,229,.9); border-color:var(--line); backdrop-filter:blur(18px); }
.cs-wordmark { display:inline-flex; align-items:baseline; gap:.12em; color:inherit; font-family:var(--serif); font-size:clamp(1.85rem,2.8vw,2.7rem); letter-spacing:-.07em; line-height:1; text-decoration:none; }.cs-wordmark span { color:var(--ember); font-family:var(--sans); font-size:.55em; font-weight:700; letter-spacing:0; }
.cs-nav { display:flex; align-items:center; gap:clamp(1rem,2.25vw,2.4rem); font-family:var(--mono); font-size:.66rem; letter-spacing:.075em; text-transform:uppercase; }.cs-nav a { padding:.75rem 0; color:inherit; text-decoration:none; }.cs-nav>a:not(.cs-nav__reserve) { position:relative; }.cs-nav>a:not(.cs-nav__reserve)::after { position:absolute; right:0; bottom:.45rem; left:0; height:1px; background:currentColor; content:""; transform:scaleX(0); transform-origin:right; transition:transform .25s ease; }.cs-nav>a:not(.cs-nav__reserve):hover::after,.cs-nav>a:not(.cs-nav__reserve):focus-visible::after { transform:scaleX(1); transform-origin:left; }.cs-nav__reserve { padding:.75rem .95rem!important; border:1px solid currentColor; }.cs-nav__reserve span { display:inline-block; margin-left:.8rem; color:var(--ember); font-size:1rem; transition:transform .2s ease; }.cs-nav__reserve:hover span { transform:translateY(.15rem); }
.cs-menu-toggle { display:none; width:2.7rem; height:2.7rem; padding:0; border:0; color:inherit; background:transparent; cursor:pointer; }.cs-menu-toggle span { display:block; width:1.4rem; height:1px; margin:.4rem auto; background:currentColor; transition:transform .25s ease; }
.cs-eyebrow { display:flex; align-items:center; gap:.7rem; margin:0; color:inherit; font-family:var(--mono); font-size:clamp(.6rem,.76vw,.7rem); font-weight:500; letter-spacing:.11em; line-height:1.45; text-transform:uppercase; }.cs-eyebrow span { width:1.8rem; height:1px; background:currentColor; opacity:.75; }.cs-eyebrow--red { color:var(--red); }
.cs-hero { position:relative; min-height:100svh; display:flex; align-items:flex-end; padding:calc(5.45rem + clamp(2rem,6vh,5rem)) var(--pad) clamp(1.3rem,3vw,2.5rem); overflow:hidden; color:#fff; background:#1a0706; isolation:isolate; }.cs-hero__image,.cs-hero__veil { position:absolute; inset:0; z-index:-2; }.cs-hero__image img { width:100%; height:100%; object-fit:cover; object-position:center; animation:heroImage 12s ease-out both; }.cs-hero__veil { z-index:-1; background:linear-gradient(90deg,rgba(16,3,2,.88) 0%,rgba(28,7,4,.6) 37%,rgba(28,7,4,.08) 68%),linear-gradient(0deg,rgba(15,3,2,.76),transparent 54%); }.cs-hero__content { width:min(100%,56rem); padding-bottom:clamp(2.8rem,8vh,6rem); }.cs-hero__brand { margin:1.35rem 0 0; color:#fff; font-family:var(--serif); font-size:clamp(4rem,8vw,9.6rem); letter-spacing:-.075em; line-height:.69; }.cs-hero__brand i { color:var(--ember); font-family:var(--sans); font-size:.41em; font-style:normal; font-weight:700; vertical-align:.18em; }.cs-hero h1 { max-width:41rem; margin:1.45rem 0 0; font-family:var(--serif); font-size:clamp(2.85rem,5vw,5.2rem); font-weight:400; letter-spacing:-.055em; line-height:.87; }.cs-hero h1 em { color:#ffb091; font-style:italic; }.cs-hero__lede { max-width:32rem; margin:1.7rem 0 0; color:rgba(255,255,255,.83); font-size:clamp(.98rem,1.35vw,1.16rem); line-height:1.65; }.cs-hero__actions { display:flex; flex-wrap:wrap; align-items:center; gap:1.5rem; margin-top:2rem; }.cs-hero__meta { position:absolute; right:var(--pad); bottom:clamp(1.3rem,3vw,2.5rem); left:var(--pad); display:flex; justify-content:flex-end; gap:clamp(1rem,3vw,3rem); padding-top:1rem; border-top:1px solid rgba(255,255,255,.34); font-family:var(--mono); font-size:.58rem; letter-spacing:.1em; text-transform:uppercase; }
.cs-button { display:inline-flex; align-items:center; justify-content:center; gap:1.55rem; min-height:3.35rem; padding:.85rem 1.1rem .9rem 1.25rem; border:1px solid transparent; font-family:var(--mono); font-size:.65rem; font-weight:500; letter-spacing:.075em; text-decoration:none; text-transform:uppercase; cursor:pointer; transition:transform .25s ease,background .25s ease,color .25s ease; }.cs-button:hover { transform:translateY(-.2rem); }.cs-button span { color:var(--ember); font-size:1rem; line-height:.5; }.cs-button--cream { color:var(--ink); background:var(--paper); }.cs-button--red { width:100%; color:#fff; background:var(--red); }.cs-button--red span { color:#ffb091; }.cs-link { display:inline-flex; align-items:center; gap:.55rem; padding:.45rem 0; border-bottom:1px solid currentColor; font-family:var(--mono); font-size:.65rem; font-weight:500; letter-spacing:.075em; line-height:1.4; text-decoration:none; text-transform:uppercase; transition:opacity .2s ease; }.cs-link:hover { opacity:.64; }.cs-link span { font-size:1rem; }.cs-link--light { color:#fff; }
.cs-intro { display:grid; grid-template-columns:minmax(10rem,.52fr) minmax(0,1.48fr); gap:clamp(2rem,8vw,12rem); max-width:var(--max); margin:0 auto; padding:clamp(6.5rem,13vw,12rem) var(--pad); }.cs-section-number { display:flex; align-items:flex-start; gap:1rem; padding-top:.55rem; border-top:1px solid var(--line); color:var(--ink-soft); }.cs-section-number span { color:var(--red); font-family:var(--mono); font-size:.68rem; }.cs-section-number p { margin:0; font-family:var(--mono); font-size:.64rem; letter-spacing:.095em; text-transform:uppercase; }.cs-intro__copy { max-width:59rem; }.cs-intro h2,.cs-menu h2,.cs-story h2,.cs-visit h2,.cs-reservation h2,.cs-gather h2 { margin:1.2rem 0 0; font-family:var(--serif); font-size:clamp(3.45rem,6.4vw,7.35rem); font-weight:400; letter-spacing:-.07em; line-height:.82; }.cs-intro h2 em,.cs-menu h2 em,.cs-story h2 em,.cs-visit h2 em { color:var(--red); font-style:italic; }.cs-intro__copy>p:last-child { max-width:43rem; margin:1.8rem 0 0; color:var(--ink-soft); font-size:clamp(1rem,1.35vw,1.2rem); line-height:1.7; }
.cs-menu { padding:clamp(6.5rem,12vw,11rem) var(--pad); background:var(--red); color:#fff; }.cs-menu__heading { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(15rem,.5fr); align-items:end; gap:clamp(2rem,8vw,10rem); max-width:var(--max); margin:0 auto; }.cs-menu h2 { max-width:46rem; }.cs-menu h2 em { color:#ffb091; }.cs-menu__heading>p { max-width:24rem; margin:0 0 .3rem; color:rgba(255,255,255,.76); font-size:.96rem; line-height:1.6; }.cs-menu__controls { display:flex; flex-wrap:wrap; gap:.75rem 1.7rem; max-width:var(--max); margin:clamp(3rem,6vw,5.4rem) auto 0; border-bottom:1px solid rgba(255,255,255,.36); }.cs-menu__controls button { position:relative; padding:0 0 1rem; border:0; color:rgba(255,255,255,.63); background:transparent; font-family:var(--mono); font-size:.64rem; letter-spacing:.085em; text-transform:uppercase; cursor:pointer; }.cs-menu__controls button::after { position:absolute; right:0; bottom:-1px; left:0; height:2px; background:#ffb091; content:""; transform:scaleX(0); transition:transform .24s ease; }.cs-menu__controls button[aria-selected="true"] { color:#fff; }.cs-menu__controls button[aria-selected="true"]::after { transform:scaleX(1); }.cs-menu-list { max-width:var(--max); margin:0 auto; }.cs-menu-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:2rem; padding:1.25rem 0; border-bottom:1px solid rgba(255,255,255,.32); transition:opacity .24s ease,transform .24s ease; }.cs-menu-item[hidden] { display:none; }.cs-menu-item h3 { margin:0; font-family:var(--serif); font-size:clamp(1.8rem,2.65vw,2.85rem); font-weight:400; letter-spacing:-.045em; line-height:.95; }.cs-menu-item h3 i { display:inline-flex; align-items:center; justify-content:center; min-width:1.75rem; min-height:1.1rem; margin-left:.45rem; padding:.1rem .3rem; border:1px solid rgba(255,255,255,.5); color:#ffb091; font-family:var(--mono); font-size:.48rem; font-style:normal; letter-spacing:.07em; vertical-align:middle; }.cs-menu-item p { max-width:36rem; margin:.5rem 0 0; color:rgba(255,255,255,.75); font-size:.88rem; line-height:1.55; }.cs-menu-item>span { padding-top:.36rem; color:#ffb091; font-family:var(--mono); font-size:.72rem; white-space:nowrap; }.cs-menu__note { max-width:var(--max); margin:1.3rem auto 0; color:rgba(255,255,255,.66); font-family:var(--mono); font-size:.58rem; letter-spacing:.05em; }.cs-menu__note i { color:#ffb091; font-style:normal; }
.cs-story { display:grid; grid-template-columns:minmax(20rem,.75fr) minmax(0,1.25fr); align-items:stretch; background:var(--paper-warm); }.cs-story__image { min-height:49rem; overflow:hidden; }.cs-story__image img { width:100%; height:100%; object-fit:cover; object-position:center; transition:transform 1s cubic-bezier(.2,.75,.2,1); }.cs-story:hover .cs-story__image img { transform:scale(1.035); }.cs-story__copy { display:flex; flex-direction:column; justify-content:center; max-width:54rem; padding:clamp(4rem,10vw,9rem) var(--pad); }.cs-story h2 { max-width:45rem; font-size:clamp(3.2rem,5.9vw,6.9rem); }.cs-story__copy>p:not(.cs-eyebrow) { max-width:34rem; margin:1.7rem 0 0; color:var(--ink-soft); font-size:1rem; line-height:1.7; }.cs-story__rules { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:2rem; }.cs-story__rules span { padding:.48rem .65rem; border:1px solid var(--line); color:var(--red-deep); font-family:var(--mono); font-size:.58rem; letter-spacing:.07em; text-transform:uppercase; }
.cs-gather { position:relative; min-height:min(48rem,88svh); display:flex; align-items:center; padding:clamp(5rem,9vw,8rem) var(--pad); overflow:hidden; color:#fff; background:#1d0706; isolation:isolate; }.cs-gather__image,.cs-gather__veil { position:absolute; inset:0; z-index:-2; }.cs-gather__image img { width:100%; height:100%; object-fit:cover; object-position:center; }.cs-gather__veil { z-index:-1; background:linear-gradient(90deg,rgba(27,4,3,.88),rgba(32,7,4,.48) 49%,rgba(30,6,4,.1)); }.cs-gather__content { max-width:45rem; }.cs-gather h2 { font-size:clamp(3.8rem,7vw,8.3rem); }.cs-gather__content>p:not(.cs-eyebrow) { max-width:31rem; margin:1.6rem 0 0; color:rgba(255,255,255,.8); font-size:1.04rem; line-height:1.68; }.cs-gather .cs-link { margin-top:2rem; }
.cs-visit { display:grid; grid-template-columns:minmax(0,1fr) minmax(23rem,.9fr); gap:clamp(3rem,9vw,11rem); max-width:var(--max); margin:0 auto; padding:clamp(6.5rem,13vw,12rem) var(--pad); }.cs-visit__details { max-width:53rem; }.cs-visit h2 { max-width:47rem; font-size:clamp(3.25rem,5.7vw,6.8rem); }.cs-hours { margin-top:2.45rem; border-top:1px solid var(--line); }.cs-hours div { display:flex; justify-content:space-between; gap:1rem; padding:.85rem 0; border-bottom:1px solid var(--line); }.cs-hours span,.cs-hours b { font-family:var(--mono); font-size:.68rem; letter-spacing:.045em; }.cs-hours span { color:var(--ink-soft); }.cs-hours b { color:var(--red-deep); font-weight:500; white-space:nowrap; }.cs-address { margin:1.7rem 0 .9rem; color:var(--ink-soft); font-size:.95rem; line-height:1.6; }.cs-reservation { align-self:start; padding:clamp(2rem,3.5vw,3rem); color:#fff; background:var(--ink); }.cs-reservation h2 { margin-top:1rem; font-size:clamp(3rem,4vw,4.4rem); }.cs-reservation form { margin-top:2.15rem; }.cs-form__row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }.cs-reservation label { display:block; margin:0 0 1rem; color:rgba(255,255,255,.72); font-family:var(--mono); font-size:.58rem; letter-spacing:.08em; text-transform:uppercase; }.cs-reservation label span { color:#ffb091; }.cs-reservation input,.cs-reservation select,.cs-reservation textarea { width:100%; margin-top:.5rem; padding:.78rem 0; border:0; border-bottom:1px solid rgba(255,255,255,.38); outline:0; color:#fff; background:transparent; font-family:var(--sans); font-size:.88rem; letter-spacing:0; text-transform:none; }.cs-reservation select { color:#fff; cursor:pointer; }.cs-reservation select option { color:var(--ink); }.cs-reservation textarea { resize:vertical; }.cs-reservation input::placeholder,.cs-reservation textarea::placeholder { color:rgba(255,255,255,.42); }.cs-reservation input:focus,.cs-reservation select:focus,.cs-reservation textarea:focus { border-color:#ffb091; }.cs-reservation .cs-button { margin-top:.25rem; }.cs-form__message { min-height:1.3rem; margin:1rem 0 0; color:#ffb091; font-size:.8rem; line-height:1.4; }
.cs-footer { display:grid; grid-template-columns:minmax(12rem,.75fr) minmax(15rem,1fr) minmax(13rem,.65fr); gap:2rem; align-items:end; padding:2.4rem var(--pad); color:var(--paper); background:#160403; }.cs-wordmark--footer { color:var(--paper); }.cs-footer p { margin:0; color:rgba(244,238,229,.7); font-size:.78rem; line-height:1.5; }.cs-footer a:not(.cs-wordmark) { display:inline-block; margin-top:.55rem; color:#ffb091; font-family:var(--mono); font-size:.61rem; letter-spacing:.05em; text-decoration:none; }.cs-footer__note { max-width:18rem; justify-self:end; font-family:var(--mono); font-size:.56rem!important; letter-spacing:.04em; text-align:right; }
.cs-site.is-ready [data-reveal] { opacity:0; transform:translateY(1.35rem); transition:opacity .68s cubic-bezier(.2,.75,.2,1),transform .68s cubic-bezier(.2,.75,.2,1); }.cs-site.is-ready [data-reveal].is-visible { opacity:1; transform:translateY(0); }.cs-site.is-ready .cs-hero [data-reveal]:nth-child(1) { transition-delay:70ms; }.cs-site.is-ready .cs-hero [data-reveal]:nth-child(2) { transition-delay:145ms; }.cs-site.is-ready .cs-hero [data-reveal]:nth-child(3) { transition-delay:220ms; }.cs-site.is-ready .cs-hero [data-reveal]:nth-child(4) { transition-delay:295ms; }
:where(.cs-site) :focus-visible { outline:2px solid var(--ember); outline-offset:4px; }.cs-header:not(.is-scrolled) :focus-visible { outline-color:#ffb091; }
@keyframes heroImage { from { opacity:.2; transform:scale(1.07); } to { opacity:1; transform:scale(1); } }
@media (max-width:860px) { .cs-header { height:4.7rem; }.cs-header.is-scrolled { height:4.25rem; }.cs-nav { position:fixed; inset:4.7rem 0 auto; display:grid; gap:0; padding:.75rem var(--pad) 1.3rem; color:var(--ink); background:var(--paper); border-bottom:1px solid var(--line); box-shadow:0 1.2rem 2.2rem rgba(30,6,4,.16); opacity:0; pointer-events:none; transform:translateY(-1rem); transition:opacity .22s ease,transform .22s ease; }.cs-header.is-scrolled .cs-nav { top:4.25rem; }.cs-site--menu-open .cs-nav { opacity:1; pointer-events:auto; transform:translateY(0); }.cs-nav>a { padding:.9rem 0; border-bottom:1px solid var(--line); }.cs-nav>a:last-child { margin-top:.7rem; padding:.9rem 1rem!important; border:1px solid var(--ink); }.cs-menu-toggle { display:block; }.cs-site--menu-open .cs-menu-toggle span:first-child { transform:translateY(.2rem) rotate(45deg); }.cs-site--menu-open .cs-menu-toggle span:last-child { transform:translateY(-.2rem) rotate(-45deg); }.cs-hero { min-height:max(44rem,100svh); padding-top:7rem; }.cs-hero__content { padding-bottom:3.6rem; }.cs-hero__image img { object-position:61% center; }.cs-hero__veil { background:linear-gradient(90deg,rgba(16,3,2,.85),rgba(28,7,4,.38)),linear-gradient(0deg,rgba(15,3,2,.83),transparent 60%); }.cs-hero__meta { justify-content:space-between; gap:.5rem; }.cs-intro { grid-template-columns:1fr; gap:2.4rem; }.cs-menu__heading { grid-template-columns:1fr; gap:1.5rem; }.cs-menu__heading>p { max-width:30rem; }.cs-story { grid-template-columns:1fr; }.cs-story__image { min-height:clamp(31rem,108vw,45rem); }.cs-story__copy { max-width:none; }.cs-visit { grid-template-columns:1fr; gap:3.7rem; }.cs-reservation { max-width:42rem; }.cs-footer { grid-template-columns:1fr; gap:1.3rem; }.cs-footer__note { justify-self:start; text-align:left; } }
@media (max-width:560px) { .cs-wordmark { font-size:1.85rem; }.cs-hero { min-height:44rem; padding-bottom:1rem; }.cs-hero__content { padding-bottom:4.5rem; }.cs-hero__brand { font-size:clamp(3.75rem,18vw,5.6rem); }.cs-hero h1,.cs-intro h2,.cs-menu h2,.cs-story h2,.cs-visit h2,.cs-reservation h2,.cs-gather h2 { font-size:clamp(3rem,15vw,4.75rem); }.cs-hero h1 { margin-top:1.1rem; }.cs-hero__lede { margin-top:1.25rem; }.cs-hero__actions { gap:1.1rem; margin-top:1.45rem; }.cs-hero__meta { font-size:.49rem; letter-spacing:.055em; }.cs-button { min-height:3.15rem; gap:1rem; padding-right:.9rem; padding-left:1rem; font-size:.59rem; }.cs-menu__controls { gap:.6rem 1.1rem; }.cs-menu-item { gap:1rem; padding:1.1rem 0; }.cs-menu-item h3 { font-size:2rem; }.cs-menu-item p { font-size:.8rem; }.cs-menu-item>span { font-size:.63rem; }.cs-story__rules { gap:.4rem; }.cs-story__rules span { font-size:.51rem; }.cs-form__row { grid-template-columns:1fr; gap:0; }.cs-reservation { margin-right:calc(var(--pad) * -1); margin-left:calc(var(--pad) * -1); }.cs-hours div { align-items:flex-start; flex-direction:column; gap:.35rem; }.cs-footer { padding-top:2rem; padding-bottom:2rem; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; scroll-behavior:auto!important; transition-duration:.01ms!important; }.cs-site.is-ready [data-reveal] { opacity:1; transform:none; } }
