:root {
  --cream:#f3eee4; --dark:#17231e; --wine:#52232b; --gold:#d1b88c;
  --muted:#68645b; --line:#d1c9bb;
  --display:'Cormorant Garamond',Georgia,serif;
  --body:'Manrope',Arial,sans-serif;
}
* {box-sizing:border-box}
html {scroll-behavior:smooth;scroll-padding-top:90px}
body {margin:0;background:var(--cream);color:var(--dark);font:14px/1.8 var(--body)}
body.modal-open {overflow:hidden}
h1,h2,h3,p,figure {margin:0}
h1,h2,h3 {font-family:var(--display);font-weight:400;line-height:.98}
h2 {font-size:clamp(48px,5.8vw,90px);letter-spacing:-2px}
em,.italic {font-style:italic;font-weight:400}
a {text-decoration:none;color:inherit}
button {font:inherit;color:inherit;cursor:pointer}
a,button,summary {touch-action:manipulation;-webkit-tap-highlight-color:transparent}
img {display:block;max-width:100%;height:auto}
a:focus-visible,button:focus-visible,summary:focus-visible {outline:3px solid #c28546;outline-offset:6px}
.section {padding:130px 7%}
.eyebrow {font-size:10px;line-height:1.8;letter-spacing:2.6px;font-weight:600;margin-bottom:30px}
.skip {position:fixed;top:-120px;left:20px;padding:15px;background:white;color:black;z-index:100}
.skip:focus {top:20px}
.reading-progress {position:fixed;inset:0 auto auto 0;width:100%;height:3px;background:var(--gold);transform:scaleX(0);transform-origin:left;z-index:40;pointer-events:none}
.site-header {position:absolute;z-index:10;top:0;left:0;width:100%;padding:26px 5%;color:var(--cream);display:flex;align-items:center;justify-content:space-between;gap:25px;border-bottom:1px solid #ffffff24}
.brand {display:inline-flex;align-items:center;gap:17px;font-size:9px;line-height:1.8;letter-spacing:2px}
.brand-mark {font:italic 54px/.8 var(--display);letter-spacing:-4px;padding-right:10px}
nav {display:flex;align-items:center;gap:34px;font-size:11px}
nav a {min-height:44px;display:flex;align-items:center}
.nav-pill {border:1px solid #ffffff70;padding:11px 20px;gap:32px;border-radius:2px}
nav a:hover {color:var(--gold)}
.hero {height:100svh;min-height:760px;max-height:1200px;background:var(--dark);position:relative;overflow:hidden;color:var(--cream)}
.hero-photo {position:absolute;inset:0 0 0 31%;overflow:hidden}
.hero-photo img {height:115%;width:100%;max-width:none;object-fit:cover;object-position:52% center;transform:translate3d(0,var(--hero-y,0px),0) scale(1.025);will-change:transform;filter:brightness(.81) saturate(.78)}
.hero-shade {position:absolute;inset:0;background:linear-gradient(90deg,#17231e 8%,#17231ee8 27%,#17231e62 56%,#17231e05 82%),linear-gradient(0deg,#17231ed6,transparent 28%);pointer-events:none}
.hero-inner {position:relative;padding:170px 7% 110px;max-width:1500px;margin:auto}
.hero .eyebrow {color:var(--gold);font-size:9px;margin-bottom:32px}
.hero .eyebrow span {margin-inline:15px}
h1 {font-size:clamp(84px,9.5vw,148px);line-height:.86;letter-spacing:-4px;max-width:1050px}
.hero-line {display:block}
.hero-line.italic {color:#e5c99c;margin-left:80px}
.hero-caption {display:flex;align-items:center;gap:25px;margin-top:42px}
.hero-caption p {font-size:12px;line-height:1.9;color:#e0e0d4}
.caption-line {width:42px;height:1px;background:var(--gold)}
.round-link {margin-left:45px;border:1px solid #e7dbc480;border-radius:50%;width:58px;height:58px;display:grid;place-items:center;font-size:24px;transition:background .25s,transform .25s}
.round-link:hover {background:#f3eee421;transform:translateY(4px)}
.hero-footer {position:absolute;bottom:28px;left:5%;right:5%;display:flex;justify-content:space-between;gap:20px;font-size:8px;letter-spacing:2px;color:#d9decc}
.hero-footer>span:nth-child(2)>span {margin-left:18px}
.section-label {display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:20px;font-size:9px;letter-spacing:2px;gap:20px}
.opening {padding-bottom:70px;overflow:hidden}
.opening-text {padding:100px 0 80px 13%}
.opening-text h2 {font-size:clamp(50px,5.4vw,84px);line-height:1.08}
.opening-text h2 em {color:var(--wine)}
.opening-body {font-size:14px;line-height:2;max-width:470px;margin:34px 0 0 30%;color:var(--muted)}
.word-ribbon {white-space:nowrap;font:400 clamp(60px,10vw,160px)/1 var(--display);letter-spacing:-3px;color:#ded7c9;transform:translateX(var(--ribbon-x,0px));will-change:transform;pointer-events:none}
.journey {position:relative;height:auto;background:#e9e2d5}
.journey-sticky {display:grid;grid-template-columns:1fr 1fr;min-height:780px}
.journey-visual {position:relative;overflow:hidden;min-height:720px;background:var(--dark)}
.journey-image {position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;opacity:0;transform:scale(1.09);transition:opacity .85s ease,transform 1.3s ease}
.journey-image.current {opacity:1;transform:scale(1)}
.journey-image-label {position:absolute;inset:auto 30px 30px;color:white;display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.4px;z-index:2;text-shadow:0 1px 8px black}
.journey-copy {padding:75px 10%;align-self:center;min-width:0}
.journey-copy h2 {font-size:clamp(42px,4vw,64px);line-height:1.02}
.journey-copy h2 em {color:var(--wine)}
.story-panels {position:relative;min-height:310px;margin-top:44px}
.story-panel {position:absolute;top:0;left:0;right:0;opacity:0;visibility:hidden;transform:translateY(20px);transition:opacity .5s,transform .5s,visibility .5s}
.story-panel.active {opacity:1;visibility:visible;transform:none}
.chapter {color:var(--wine);font-size:9px;letter-spacing:2px;margin-bottom:18px}
.story-panel h3 {font-size:50px;line-height:1.02}
.story-panel>p:not(.chapter) {font-size:13px;line-height:1.95;color:var(--muted);max-width:370px;margin-top:20px}
.recipe-caption {display:block;font-size:8px;letter-spacing:1.2px;margin-top:25px}
.chapter-controls {display:flex;align-items:center;gap:18px;border-top:1px solid #bcb3a3;padding-top:18px}
.chapter-controls button {border:0;border-bottom:1px solid transparent;padding:9px 0;background:none;font-size:11px;min-height:44px;white-space:nowrap;opacity:.6}
.chapter-controls button.active {border-color:var(--wine);color:var(--wine);opacity:1}
.chapter-controls button span {margin-left:8px}
.journey-instruction {margin-left:auto;font-size:7px;letter-spacing:1px}
.motion-on .journey {height:220vh}
.motion-on .journey-sticky {position:sticky;top:0;height:100vh;min-height:740px}
.motion-on .journey-visual {min-height:0}
.film-section {background:var(--dark);color:var(--cream);display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:12%;padding-inline:13%;position:relative}
.film-copy .eyebrow {color:var(--gold)}
.film-copy h2 {font-size:clamp(76px,9vw,136px);line-height:.87;letter-spacing:-3px}
.film-copy h2 em {color:var(--gold)}
.film-copy>p:not(.eyebrow) {font-size:15px;line-height:1.9;margin-top:32px;color:#dedcd2}
.film-copy>p.film-disclaimer {font-size:10px;line-height:1.9;color:#bcc3b7;max-width:310px}
.text-button {margin-top:28px;background:none;border:0;border-bottom:1px solid var(--gold);color:var(--gold);padding:12px 0;min-height:44px;display:flex;gap:60px;font-size:12px}
.film-frame {max-width:420px;justify-self:center;width:100%;position:relative}
.film-frame:before {content:'';position:absolute;inset:-15px 15px 40px -15px;border:1px solid #d1b88c55;pointer-events:none}
video {position:relative;display:block;width:100%;height:auto;aspect-ratio:9/16;background:#121914;object-fit:contain;box-shadow:0 28px 70px #0005}
.film-meta {display:flex;justify-content:space-between;gap:15px;font-size:7px;letter-spacing:1px;color:#c1c7ba;margin-top:20px}
.book-section {background:#e8e0d3;overflow:hidden;text-align:center;padding-bottom:90px}
.book-heading h2 em {color:var(--wine)}
.book-heading>p:last-child {font-size:13px;color:var(--muted);margin-top:25px;line-height:1.9}
.book-stage {position:relative;max-width:1000px;margin:70px auto 40px;perspective:1800px;padding:0 50px}
.book-spread {display:flex;position:relative;z-index:1;transform:rotateX(var(--book-rx,10deg)) rotateZ(var(--book-rz,-4deg));transform-style:preserve-3d;will-change:transform}
.book-page {padding:0;background:#f7f1e6;border:0;width:50%;position:relative;transform-style:preserve-3d;transition:filter .25s}
.book-page:hover {filter:brightness(1.05)}
.book-page img {width:100%;height:auto}
.left-page {transform-origin:right;transform:rotateY(var(--book-open,-12deg));box-shadow:-12px 15px 22px #43362935}
.right-page {transform-origin:left;transform:rotateY(calc(var(--book-open,-12deg) * -1));box-shadow:12px 15px 22px #43362935}
.left-page:after,.right-page:after {content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 80%,#41331b28)}
.right-page:after {background:linear-gradient(90deg,#41331b25,transparent 18%)}
.book-shadow {position:absolute;bottom:0;left:12%;width:76%;height:80px;filter:blur(24px);background:#55452c44;border-radius:50%;transform:translateY(20px)}
.book-bottom {max-width:900px;margin:auto;display:flex;justify-content:space-between;gap:25px;font-size:8px;letter-spacing:1.5px;padding-top:30px}
.sample-selector {display:flex;gap:30px;justify-content:center;flex-wrap:wrap;margin-top:30px}
.sample-selector button {font-size:12px;border:0;border-bottom:1px solid var(--wine);background:none;min-height:44px;padding:10px 0}
.reference-note {font-size:9px;color:var(--muted);margin-top:25px}
.index-section {display:grid;grid-template-columns:.9fr 1.1fr;gap:8%}
.index-heading {position:sticky;top:70px;align-self:start}
.index-heading h2 {font-size:clamp(48px,4.5vw,70px)}
.index-heading h2 em {color:var(--wine)}
details {border-bottom:1px solid var(--line)}
summary {list-style:none;cursor:pointer}
summary::-webkit-details-marker {display:none}
.recipe-index summary {display:flex;align-items:center;gap:22px;min-height:105px}
.recipe-index summary>span {font-size:10px;color:var(--wine)}
.recipe-index h3 {font-size:35px;flex:1}
.recipe-index small {font-size:8px;letter-spacing:1.2px}
.recipe-index b {font-weight:400;font-size:20px;color:var(--wine)}
details[open] summary b {transform:rotate(45deg)}
.recipe-index details p {font-size:12px;line-height:1.9;padding:0 15px 25px 35px;color:var(--muted)}
.closing {background:var(--wine);color:var(--cream);text-align:center}
.closing .eyebrow {color:var(--gold)}
.closing h2 {font-size:clamp(72px,10vw,150px);line-height:.88;letter-spacing:-3px}
.closing h2 em {color:var(--gold)}
.outline-button {display:inline-flex;align-items:center;gap:55px;border:1px solid #d1b88c88;color:var(--cream);padding:17px 26px;font-size:12px;margin-top:44px;min-height:54px;transition:background .25s}
.outline-button:hover {background:#ffffff12}
.status {font-size:8px;letter-spacing:1.8px;margin-top:25px;color:#dfcbb8}
.faq {display:grid;grid-template-columns:1fr 1.2fr;gap:10%}
.faq h2 {font-size:64px}
.faq summary {display:flex;justify-content:space-between;align-items:center;gap:25px;min-height:80px;font-size:13px}
.faq details p {padding:0 20px 25px 0;font-size:12px;color:var(--muted)}
footer {padding:45px 7%;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:25px;flex-wrap:wrap}
footer>p {font:italic 29px var(--display)}
footer>a:last-of-type {font-size:10px;min-height:44px;display:flex;align-items:center}
.footer-small {width:100%;font-size:8px;letter-spacing:1.4px;border-top:1px solid var(--line);padding-top:24px;margin-top:15px}
dialog {background:var(--cream);color:var(--dark);border:0;padding:20px;width:850px;max-width:94vw;max-height:92dvh;overflow:auto}
dialog::backdrop {background:#08120de6}
.dialog-bar {display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}
.dialog-bar h2 {font-size:25px;letter-spacing:0;line-height:1.2}
.dialog-bar button {min-height:44px;min-width:90px;background:none;border:1px solid var(--line);font-size:12px}
dialog>img {width:100%}dialog>p {font-size:10px;margin-top:15px}
.motion-on .reveal {opacity:0;transform:translateY(35px);transition:opacity .9s ease,transform 1.05s cubic-bezier(.2,.7,.2,1)}
.motion-on .reveal.visible {opacity:1;transform:none}
.motion-on .hero-line {animation:hero-in 1.2s cubic-bezier(.2,.7,.2,1) both}
.motion-on .hero-line:nth-child(2) {animation-delay:.13s}
.motion-on .hero-line:nth-child(3) {animation-delay:.26s}
.motion-on .hero-enter {animation:hero-in 1s .35s both}
@keyframes hero-in {from{opacity:0;transform:translateY(36px);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(0)}}
@media(min-width:1700px) {.hero-inner{padding-top:210px}.journey-copy{padding-inline:13%}}
@media(max-width:1100px) {
 .section{padding:95px 6%}.hero{min-height:710px}.hero-inner{padding-top:175px}.hero-photo{left:25%}h1{font-size:115px}.hero-line.italic{margin-left:35px}
 .journey-copy{padding:45px 8%}.journey-copy h2{font-size:45px}.story-panel h3{font-size:42px}.story-panels{margin-top:30px;min-height:320px}.journey-instruction{display:none}
 .film-section{gap:10%;padding-inline:10%}.film-copy h2{font-size:100px}.index-section{gap:5%}.recipe-index h3{font-size:30px}.recipe-index summary{gap:15px}.recipe-index small{font-size:7px}
}
@media(max-width:760px) {
 html{scroll-padding-top:20px}.section{padding:75px 6%}.site-header{padding:20px 6%;gap:12px}.brand{gap:8px;font-size:7px;letter-spacing:1.1px}.brand-mark{font-size:43px;padding-right:5px}nav{gap:0}nav>a:not(.nav-pill){display:none}.nav-pill{padding:9px 12px;font-size:9px;gap:15px}
 .hero{height:95svh;min-height:700px;max-height:1000px}.hero-photo{inset:0}.hero-photo img{object-position:55% center;filter:brightness(.55) saturate(.8)}.hero-shade{background:linear-gradient(0deg,#17231ef5 1%,#17231e55 45%,#17231e85 100%),linear-gradient(90deg,#17231eb0,transparent)}
 .hero-inner{padding:175px 6% 100px}.hero .eyebrow{font-size:7px;letter-spacing:1.7px;max-width:270px;margin-bottom:38px}.hero .eyebrow span{margin:0 5px}h1{font-size:clamp(65px,14vw,106px);line-height:.92;letter-spacing:-2px}.hero-line.italic{margin-left:10px}.hero-caption{gap:15px;margin-top:38px}.hero-caption p{font-size:11px}.caption-line{width:24px}.round-link{width:48px;height:48px;min-width:48px;margin-left:auto}.hero-footer{font-size:7px;letter-spacing:1.1px;bottom:24px;left:6%;right:6%}.hero-footer>span:nth-child(2){display:none}
 .section-label{font-size:7px;letter-spacing:1.3px}.opening-text{padding:65px 0 55px}.opening-text h2{font-size:clamp(42px,7.8vw,62px);letter-spacing:-1px}.opening-body{margin:28px 0 0 14%;font-size:12px}.word-ribbon{font-size:75px;letter-spacing:-2px}
 .journey,.motion-on .journey{height:auto}.journey-sticky,.motion-on .journey-sticky{position:relative;display:flex;flex-direction:column;min-height:0;height:auto}.journey-visual,.motion-on .journey-visual{height:450px;min-height:0}.journey-copy{padding:48px 7%}.journey-copy h2{font-size:51px}.story-panels{min-height:290px;margin-top:30px}.story-panel h3{font-size:43px}.story-panel>p:not(.chapter){font-size:12px}.chapter-controls{gap:30px}.journey-image-label{left:22px;right:22px;font-size:7px}
 .film-section{grid-template-columns:1fr;gap:55px;padding-inline:10%}.film-copy h2{font-size:93px;letter-spacing:-2px}.film-copy,.film-frame{min-width:0}.film-copy>p:not(.eyebrow){font-size:13px;margin-top:25px}.film-frame{max-width:380px}.film-meta{font-size:6px;letter-spacing:.7px}.film-frame:before{inset:-12px 12px 40px -12px}
 h2{font-size:50px;letter-spacing:-1px}.eyebrow{font-size:8px;letter-spacing:1.7px;margin-bottom:24px}.book-heading>p:last-child{font-size:12px}.book-stage{padding:0;margin:45px -2% 20px}.book-bottom{font-size:6px;letter-spacing:.8px;padding-top:20px;gap:20px;text-align:left}.sample-selector{gap:20px}.sample-selector button{font-size:10px}.reference-note{font-size:8px;line-height:1.9}.index-section{grid-template-columns:1fr;gap:35px}.index-heading{position:static}.index-heading h2{font-size:51px}.recipe-index summary{min-height:88px;gap:14px}.recipe-index h3{font-size:31px}.recipe-index small{font-size:7px;letter-spacing:.5px}
 .closing h2{font-size:76px;line-height:.94;letter-spacing:-2px}.closing .status{font-size:7px;letter-spacing:.8px}.faq{grid-template-columns:1fr;gap:35px}.faq h2{font-size:54px}.faq summary{font-size:12px}.footer-small{font-size:7px;line-height:1.9}footer>p{font-size:23px}.dialog-bar h2{font-size:20px}dialog{padding:14px}
}
@media(max-width:359px) {h1{font-size:60px}.hero-line.italic{margin-left:0}.hero-inner{padding-top:155px}.hero{min-height:650px}.recipe-index h3{font-size:27px}.recipe-index small{font-size:6px}.brand-mark{font-size:36px}.brand{font-size:6px}.hero-caption{gap:10px}.opening-text h2{font-size:39px}.film-copy h2{font-size:78px}.closing h2{font-size:65px}}
@media(prefers-reduced-motion:reduce) {
 html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .hero-photo img,.word-ribbon,.book-spread,.book-page{transform:none!important}.reveal{opacity:1!important;transform:none!important}
 .journey,.motion-on .journey{height:auto}.journey-sticky,.motion-on .journey-sticky{position:relative;height:auto}
}
