/* CONCEPT B — CINEMATIC EDITORIAL. Dark, full-bleed, scroll-paced; the recipe itself switches to a calm light "kitchen" surface. */
:root{
  --night:#0F0D0B; --night-2:#1A1714; --bone:#F1E9DC; --bone-2:#CDBFAA; --dim:#8E8172; --line:#2E2924;
  --paper:#F7F2EA; --ink:#1B1713; --kline:#E3DACD; --flame:#E2A24B; --ember:#D0603A;
  --display:'Bodoni Moda', 'Didot', Georgia, serif; --sans:'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --gutter:clamp(16px,4vw,64px);
}
*{box-sizing:border-box} body{margin:0;background:var(--night);color:var(--bone);font:400 clamp(1rem,.96rem + .2vw,1.1rem)/1.65 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;width:100%;height:auto}picture{display:block}a{color:inherit}h1,h2,h3{font-family:var(--display);font-weight:500;line-height:.98;letter-spacing:-.015em;margin:0}
.dev{position:relative;z-index:40;background:#000;color:var(--bone-2);font:500 12px/1.4 var(--sans);text-align:center;padding:6px 12px}
.site{position:fixed;top:30px;left:0;right:0;z-index:30;display:flex;justify-content:space-between;align-items:center;padding:14px var(--gutter);transition:background .4s,top .3s}
.site.solid{top:0;background:rgba(15,13,11,.86);backdrop-filter:blur(10px)}
.brand{font-family:var(--display);font-size:1.5rem;text-decoration:none;letter-spacing:.02em}.brand i{color:var(--flame)}
.brand small{font:600 9px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--dim);margin-left:8px;vertical-align:middle}
.nav{display:flex;gap:28px;font-size:.88rem;letter-spacing:.06em;text-transform:uppercase}.nav a{text-decoration:none;color:var(--bone-2)}.nav a:hover{color:var(--flame)}
.navbtn{display:none;background:rgba(0,0,0,.35);color:var(--bone);border:1px solid rgba(241,233,220,.35);border-radius:999px;padding:10px 16px;font:600 12px var(--sans);letter-spacing:.12em;text-transform:uppercase;min-height:44px}
/* hero */
.hero{position:relative;height:100svh;min-height:560px;overflow:hidden}
.hero .bg{position:absolute;inset:-8% 0 0 0;will-change:transform}.hero .bg picture{height:100%}.hero .bg img{height:100%;object-fit:cover;animation:settle 2.4s cubic-bezier(.2,.7,.2,1) both}
@keyframes settle{from{transform:scale(1.12);filter:brightness(.6)}to{transform:scale(1);filter:brightness(1)}}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,13,11,.45) 0%,rgba(15,13,11,0) 30%,rgba(15,13,11,.25) 55%,rgba(15,13,11,.92) 100%)}
.hero .copy{position:absolute;z-index:2;left:var(--gutter);right:var(--gutter);bottom:clamp(32px,8vh,90px);text-shadow:0 2px 24px rgba(0,0,0,.55)}
.hero .copy .eyebrow{display:inline-block;background:rgba(15,13,11,.55);padding:8px 12px;border-radius:999px;text-shadow:none}
.eyebrow{font:600 12px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--flame)}
.hero h1{font-size:clamp(3rem,1rem + 7.4vw,9rem);margin:18px 0 18px;max-width:12ch;text-wrap:balance}
.hero h1 .w{display:inline-block;opacity:0;transform:translateY(.4em);animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes rise{to{opacity:1;transform:none}}
.hero .row{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center}.hero p{max-width:46ch;color:var(--bone-2);margin:0}
.btn{display:inline-flex;align-items:center;gap:10px;background:var(--bone);color:var(--night);text-decoration:none;border:0;border-radius:999px;padding:15px 26px;font:700 13px var(--sans);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;min-height:44px}
.btn:hover{background:var(--flame)}.btn.line{background:transparent;color:var(--bone);border:1px solid rgba(241,233,220,.45)}.btn.line:hover{border-color:var(--flame);color:var(--flame)}
.cue{position:absolute;z-index:2;right:var(--gutter);bottom:34px;font:600 11px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--bone-2);writing-mode:vertical-rl}
/* reveal */
.rv{opacity:0;transform:translateY(28px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1)}.rv.in{opacity:1;transform:none}
/* manifesto */
.manifesto{padding:clamp(90px,16vh,200px) var(--gutter);max-width:1400px;margin:0 auto}
.manifesto p{font-family:var(--display);font-size:clamp(1.8rem,1rem + 3.4vw,4.4rem);line-height:1.12;margin:0}.manifesto em{color:var(--flame);font-style:italic}
.manifesto .sig{font:500 .95rem var(--sans);color:var(--dim);margin-top:30px;letter-spacing:.04em}
/* reel */
.reel-head{display:flex;justify-content:space-between;align-items:end;padding:0 var(--gutter) 28px;gap:20px}.reel-head h2{font-size:clamp(2.2rem,1rem + 4vw,5rem)}
.arrows{display:flex;gap:10px}.arrows button{width:52px;height:52px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--bone);font-size:20px;cursor:pointer}.arrows button:hover{border-color:var(--flame);color:var(--flame)}
.reel{display:flex;gap:clamp(14px,2vw,28px);overflow-x:auto;scroll-snap-type:x mandatory;padding:0 var(--gutter) 30px;scrollbar-width:none}.reel::-webkit-scrollbar{display:none}
.slide{flex:0 0 clamp(260px,32vw,460px);scroll-snap-align:start;text-decoration:none;position:relative}
.slide .ph{aspect-ratio:3/4;overflow:hidden;border-radius:4px}.slide img{height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.2,1),filter .6s;filter:saturate(.92) brightness(.92)}
.slide:hover img{transform:scale(1.06);filter:none}.slide .n{font:600 11px var(--sans);letter-spacing:.2em;color:var(--flame);margin-top:16px;display:block}
.slide h3{font-size:clamp(1.4rem,1rem + 1vw,2.1rem);margin-top:8px}.slide p{color:var(--dim);font-size:.9rem;margin:6px 0 0}
/* sticky story */
.tables{display:grid;grid-template-columns:1.1fr 1fr;gap:0;margin-top:clamp(80px,12vh,160px)}
.tables .stage{position:sticky;top:0;height:100svh;overflow:hidden}.tables .stage img{position:absolute;inset:0;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity .9s,transform 1.6s cubic-bezier(.2,.7,.2,1)}
.tables .stage img.on{opacity:1;transform:none}.tables .stage:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,13,11,0) 60%,var(--night) 100%)}
.tables .panels{padding:0 var(--gutter)}.panel{min-height:100svh;display:flex;flex-direction:column;justify-content:center;max-width:520px}
.panel .chip{font:600 11px var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--flame)}.panel h3{font-size:clamp(2.2rem,1rem + 3.4vw,4.6rem);margin:16px 0}
.panel p{color:var(--bone-2)}.panel .meta{color:var(--dim);font-size:.9rem;margin:6px 0 26px;letter-spacing:.04em}
.panel .mob{display:none}
/* index with hover preview */
.idx{padding:clamp(80px,12vh,160px) var(--gutter);max-width:1400px;margin:0 auto}.idx h2{font-size:clamp(2.2rem,1rem + 4vw,5rem);margin-bottom:30px}
.idx a{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:24px 0;border-top:1px solid var(--line);text-decoration:none}
.idx a h3{font-size:clamp(1.5rem,1rem + 2.2vw,3.4rem);transition:color .3s,transform .5s cubic-bezier(.2,.7,.2,1)}.idx a:hover h3{color:var(--flame);transform:translateX(12px)}
.idx a span{color:var(--dim);font-size:.9rem;white-space:nowrap}
.peek{position:fixed;z-index:25;width:260px;aspect-ratio:3/4;pointer-events:none;border-radius:4px;overflow:hidden;opacity:0;transform:translate(-50%,-50%) scale(.9);transition:opacity .3s,transform .3s;left:0;top:0}
.peek.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.peek img{height:100%;object-fit:cover}
footer.ft{padding:80px var(--gutter) 40px;border-top:1px solid var(--line)}footer.ft .big{font-family:var(--display);font-size:clamp(3rem,1rem + 10vw,12rem);line-height:.9;color:var(--night-2);-webkit-text-stroke:1px var(--line)}
footer.ft .cols{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px;color:var(--dim);font-size:.9rem;margin-top:30px}footer.ft a{text-decoration:none;margin-right:18px}
/* recipe page */
.r-hero .copy{bottom:clamp(28px,7vh,80px)}.r-hero h1{font-size:clamp(2.6rem,1rem + 6.4vw,8rem);max-width:14ch}
.facts{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 24px}.facts span{border:1px solid rgba(241,233,220,.3);border-radius:999px;padding:9px 16px;font-size:.86rem;background:rgba(15,13,11,.35);backdrop-filter:blur(6px)}.facts b{color:var(--flame);font-weight:700}
.lede{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,110px);align-items:center;padding:clamp(80px,12vh,150px) var(--gutter);max-width:1400px;margin:0 auto}
.lede .quote{font-family:var(--display);font-size:clamp(1.6rem,1rem + 2.2vw,3.2rem);line-height:1.15}.lede .quote em{color:var(--flame)}
.lede p{color:var(--bone-2)}.lede .ph{overflow:hidden;border-radius:4px;aspect-ratio:3/4}.lede .ph img{height:115%;object-fit:cover;will-change:transform}
.why{padding:0 var(--gutter) clamp(80px,12vh,140px);max-width:900px;margin:0 auto}.why h2{font:700 12px var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--flame);margin-bottom:14px}.why p{font-size:1.15rem;color:var(--bone-2)}
/* the kitchen: calm, light, practical */
.kitchen{background:var(--paper);color:var(--ink);padding:clamp(56px,9vh,110px) 0;border-radius:28px 28px 0 0}
.kitchen .in{max-width:1240px;margin:0 auto;padding:0 var(--gutter);display:grid;grid-template-columns:minmax(260px,380px) 1fr;gap:clamp(28px,5vw,80px)}
.kitchen h2{font-size:clamp(2rem,1rem + 2.4vw,3.4rem);margin-bottom:6px}.kitchen .sub{color:#7a6e61;font-size:.92rem;margin-bottom:20px}
.ingr{position:sticky;top:84px;align-self:start;max-height:calc(100svh - 100px);overflow:auto}
.ingr ul{list-style:none;margin:0;padding:0}.ingr li{border-bottom:1px solid var(--kline)}.ingr label{display:flex;gap:12px;padding:12px 0;cursor:pointer;line-height:1.45}
.ingr input{width:20px;height:20px;flex:none;margin-top:2px;accent-color:var(--ember)}.ingr .q{font-weight:700;white-space:nowrap}.ingr input:checked~span{color:#a39684;text-decoration:line-through}
.prep{background:#efe6d8;border-radius:14px;padding:16px 22px 16px 38px;margin:0 0 24px;font-size:.98rem}
.steps{list-style:none;margin:0;padding:0;counter-reset:s}.steps li{counter-increment:s;display:grid;grid-template-columns:60px 1fr;gap:6px;padding:22px 18px;border-radius:14px;cursor:pointer;transition:background .25s}
.steps li:before{content:counter(s,decimal-leading-zero);font:700 1.05rem var(--sans);color:var(--ember);padding-top:4px}.steps li p{margin:0;font-size:1.12rem;line-height:1.72}
.steps li:hover{background:#efe6d8}.steps li.now{background:#fff;box-shadow:0 0 0 2px var(--ember) inset}
.serve{margin-top:22px;padding:18px 22px;border-radius:14px;background:#efe6d8}
.kitchen .tools{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 24px}.kitchen .btn{background:var(--ink);color:var(--paper)}.kitchen .btn.line{background:transparent;color:var(--ink);border:1px solid var(--ink)}
.more{background:var(--paper);color:var(--ink);padding:0 0 clamp(60px,10vh,120px)}.more .reel-head h2{font-size:clamp(2rem,1rem + 3vw,3.6rem)}.more .slide p{color:#7a6e61}.more .arrows button{color:var(--ink);border-color:var(--kline)}
@media (max-width:900px){
  .dev{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:30px}
  .site{top:30px}.nav{display:none}.nav.open{display:flex;position:fixed;inset:0;flex-direction:column;justify-content:center;align-items:center;gap:26px;background:rgba(15,13,11,.97);font-size:1.2rem;z-index:-1}.navbtn{display:inline-block}
  .tables{grid-template-columns:1fr}.tables .stage{display:none}.panel{min-height:0;padding:40px 0}.panel .mob{display:block;aspect-ratio:4/5;overflow:hidden;border-radius:4px;margin-bottom:22px}.panel .mob img{height:100%;object-fit:cover}
  .lede{grid-template-columns:1fr}.kitchen .in{grid-template-columns:1fr}.ingr{position:static;max-height:none}.steps li{grid-template-columns:44px 1fr;padding:18px 12px}
  .peek{display:none}.cue{display:none}
}
@media (prefers-reduced-motion:reduce){
  .hero .bg img,.hero h1 .w{animation:none;opacity:1;transform:none}.rv{opacity:1;transform:none;transition:none}
  .slide img,.tables .stage img,.idx a h3{transition:none}.hero .bg,.lede .ph img{transform:none!important}.peek{display:none}html{scroll-behavior:auto}
}
@media print{
  body{background:#fff;color:#000;font-size:11pt}.dev,.site,.hero .bg,.hero:after,.cue,.lede,.why,.more,footer,.kitchen .tools,.peek,.btn{display:none!important}
  .hero{height:auto;min-height:0;overflow:visible}.hero .copy{position:static}.hero h1{font-size:22pt;color:#000;max-width:none;margin:0 0 6pt}.hero h1 .w{opacity:1;transform:none;animation:none}
  .hero p,.eyebrow{color:#000}.facts span{border:0;padding:0 10pt 0 0;background:none;color:#000}.facts b{color:#000}
  .kitchen{padding:6pt 0;border-radius:0}.kitchen .in{grid-template-columns:1fr 1.6fr;padding:0}.ingr{position:static;max-height:none;overflow:visible}.ingr input{display:none}.ingr label{padding:3pt 0}
  .steps li{padding:5pt 0;break-inside:avoid;background:none!important;box-shadow:none!important}.steps li:before{color:#000}.prep,.serve{background:none;padding:0;margin:6pt 0}
}
