
/* ============ TOKENS ============ */
:root{
  --bg:#F6F2EA; --bg2:#EDE5D8; --ink:#29231F; --ink2:#6E6357;
  --cocoa:#6B4A3B; --olive:#777C62; --burg:#682F3B; --terra:#B87960;
  --accent:#682F3B; --accent-ink:#F6F2EA;
  --hair:rgba(41,35,31,.15); --hair2:rgba(41,35,31,.08);
  --ff-d:'Fraunces',Georgia,serif; --ff-b:'Manrope',system-ui,sans-serif; --ff-m:'IBM Plex Mono',monospace;
  --rad:3px; --hdr:74px;
}
html[data-theme="espresso"]{--bg:#221C17;--bg2:#2C241D;--ink:#F1E9DD;--ink2:#B4A898;--hair:rgba(241,233,221,.16);--hair2:rgba(241,233,221,.08);--accent:#B87960;--accent-ink:#221C17}
html[data-theme="burgundy"]{--accent:#682F3B}
html[data-theme="olive"]{--accent:#777C62}
/* ============ BASE ============ */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--ff-b);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:4000;opacity:.045;mix-blend-mode:multiply;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}
::selection{background:var(--accent);color:var(--accent-ink)}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;background:none;border:none;color:inherit}
:focus-visible{outline:2px solid var(--terra);outline-offset:3px;border-radius:2px}
::-webkit-scrollbar{width:10px}::-webkit-scrollbar-thumb{background:var(--hair);border-radius:6px}::-webkit-scrollbar-track{background:transparent}
.wrap{max-width:1360px;margin:0 auto;padding:0 clamp(20px,4vw,56px)}
.mono{font-family:var(--ff-m);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink2)}
.skip{position:absolute;left:-999px;top:8px;z-index:9999;background:var(--ink);color:var(--bg);padding:10px 18px;font-family:var(--ff-m);font-size:12px}
.skip:focus{left:8px}
h1,h2,h3{font-family:var(--ff-d);font-weight:400;line-height:1.04;letter-spacing:-.015em}
h2 em,h1 em{font-style:italic;font-weight:300;color:var(--accent)}
.kicker{display:flex;align-items:center;gap:14px;font-family:var(--ff-m);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}
.kicker::before{content:"";width:34px;height:1px;background:var(--accent)}
.sec{padding:clamp(72px,9vw,140px) 0;position:relative}
.sec-cream{background:var(--bg2)}
.sec-dark{background:#221C17;color:#F1E9DD}
.sec-dark .mono,.sec-dark .kicker{color:var(--terra-t)}
.sec-dark .kicker::before{background:var(--terra)}
.sec-burg{background:var(--burg);color:#F3E9E2}
.sec-burg .mono,.sec-burg .kicker{color:#E2B8A4}.sec-burg .kicker::before{background:#E2B8A4}
.h2{font-size:clamp(2.1rem,4.6vw,3.9rem);max-width:16ch;margin:22px 0 0}
.lead{font-size:clamp(1.02rem,1.35vw,1.2rem);color:var(--ink2);max-width:56ch;line-height:1.8}
/* ============ BUTTONS ============ */
.btn{position:relative;display:inline-flex;align-items:center;gap:12px;padding:15px 30px;border:1px solid var(--ink);font-family:var(--ff-b);font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;border-radius:var(--rad);overflow:hidden;isolation:isolate;transition:color .35s,border-color .35s}
.btn::before{content:"";position:absolute;inset:0;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.76,0,.24,1);z-index:-1}
.btn:hover{color:var(--bg)}.btn:hover::before{transform:scaleX(1)}
.btn.solid{background:var(--ink);color:var(--bg)}.btn.solid::before{background:var(--accent)}
.btn.solid:hover{color:var(--accent-ink);border-color:var(--accent)}
.btn.ghost-light{border-color:rgba(246,242,234,.5);color:#F1E9DD}.btn.ghost-light::before{background:#F1E9DD}.btn.ghost-light:hover{color:#221C17}
.btn.sm{padding:10px 20px;font-size:11.5px}
.btn .ar{transition:transform .35s}.btn:hover .ar{transform:translateX(5px)}
.tlink{display:inline-flex;align-items:center;gap:10px;font-family:var(--ff-m);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);padding-bottom:4px;border-bottom:1px solid transparent;transition:gap .3s}
.tlink:hover{gap:16px;border-color:var(--accent)}
/* ============ HEADER ============ */
.hdr{position:fixed;inset:0 0 auto;z-index:900;height:var(--hdr);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,3.5vw,48px);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:border-color .4s}
.hdr.scrolled{border-color:var(--hair)}
.wordmark{font-family:var(--ff-d);font-size:26px;font-weight:500;letter-spacing:-.01em;display:flex;align-items:baseline;gap:2px}
.wordmark .dot{color:var(--terra-t)}
.wordmark em{font-style:italic;font-size:14px;color:var(--ink2);margin-left:8px;font-weight:300}
.hdr-nav{display:flex;gap:30px}
.hdr-nav a{font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--ink2);position:relative;padding:6px 0;transition:color .3s}
.hdr-nav a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform .4s cubic-bezier(.76,0,.24,1)}
.hdr-nav a:hover,.hdr-nav a.on{color:var(--ink)}.hdr-nav a:hover::after,.hdr-nav a.on::after{transform:scaleX(1);transform-origin:left}
.hdr-right{display:flex;align-items:center;gap:20px}
.ig-mini{font-family:var(--ff-m);font-size:11px;letter-spacing:.2em;color:var(--ink2)}.ig-mini:hover{color:var(--accent)}
.menu-btn{display:none;width:42px;height:42px;flex-direction:column;justify-content:center;align-items:center;gap:6px}
.menu-btn span{display:block;width:26px;height:1.5px;background:var(--ink);transition:transform .3s}
/* mobile menu */
.mnav{position:fixed;inset:0;z-index:950;background:#221C17;color:#F1E9DD;display:flex;flex-direction:column;justify-content:center;padding:clamp(28px,7vw,80px);opacity:0;pointer-events:none;transition:opacity .45s}
.mnav.open{opacity:1;pointer-events:auto}
.mnav a.big{font-family:var(--ff-d);font-size:clamp(2.2rem,8vw,4rem);line-height:1.18;color:#F1E9DD;opacity:0;transform:translateY(24px);transition:opacity .6s,transform .6s,color .3s}
.mnav.open a.big{opacity:1;transform:none}
.mnav a.big:hover{color:var(--terra-t)}
.mnav .close{position:absolute;top:22px;right:24px;font-family:var(--ff-m);font-size:12px;letter-spacing:.2em;color:#B4A898}
.mnav .foot{margin-top:40px;display:flex;gap:26px;flex-wrap:wrap;font-family:var(--ff-m);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#B4A898}
/* ============ REVEALS ============ */
[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s cubic-bezier(.22,1,.36,1)}
[data-reveal].in{opacity:1;transform:none}
[data-mask] img{clip-path:inset(0 0 100% 0);transition:clip-path 1.2s cubic-bezier(.76,0,.24,1),opacity .9s ease,transform 1.2s cubic-bezier(.22,1,.36,1),filter .6s}
[data-mask].in img{clip-path:inset(0 0 0% 0)}
.lm{display:block;overflow:hidden}
.lm>span{display:block;transform:translateY(112%);transition:transform 1s cubic-bezier(.22,1,.36,1)}
.in .lm>span,.lm.in>span{transform:none}
.lm:nth-child(2)>span{transition-delay:.12s}.lm:nth-child(3)>span{transition-delay:.22s}
/* ============ HERO ============ */
.hero{min-height:100svh;display:grid;grid-template-columns:1fr;align-items:center;padding:calc(var(--hdr) + 30px) 0 0}
.hero-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(18px,2.5vw,36px);align-items:end;padding-bottom:0}
.hero-copy{grid-column:1/8;padding-bottom:clamp(40px,6vh,90px)}
.hero-copy .kicker{margin-bottom:34px}
.hero h1{font-size:clamp(3rem,7.4vw,7rem);letter-spacing:-.025em}
.hero .sub{margin-top:34px;font-size:clamp(1rem,1.3vw,1.18rem);color:var(--ink2);max-width:46ch;line-height:1.85}
.hero-ctas{margin-top:42px;display:flex;gap:16px;flex-wrap:wrap}
.hero-imgs{grid-column:8/13;position:relative}
.hero-fig{position:relative;overflow:hidden;border-radius:var(--rad);aspect-ratio:4/5.1}
.hero-fig img{width:100%;height:100%;object-fit:cover;animation:kenburns 18s ease-in-out infinite alternate}
@keyframes kenburns{from{transform:scale(1) translateY(0)}to{transform:scale(1.09) translateY(-2%)}}
.hero-tag{position:absolute;left:-58px;bottom:44px;background:var(--bg);border:1px solid var(--hair);padding:12px 18px;font-family:var(--ff-m);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--cocoa);transform:rotate(-3deg);box-shadow:0 18px 40px -18px rgba(41,35,31,.35)}
.hero-figcap{margin-top:12px;display:flex;justify-content:space-between;font-family:var(--ff-m);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink2)}
.hero-base{margin-top:clamp(30px,5vh,60px);border-top:1px solid var(--hair);display:flex;justify-content:space-between;align-items:center;padding:18px 0 26px;font-family:var(--ff-m);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink2)}
.scroll-cue{display:flex;align-items:center;gap:12px}
.scroll-cue i{display:block;width:1px;height:34px;background:var(--ink2);position:relative;overflow:hidden}
.scroll-cue i::after{content:"";position:absolute;inset:0;background:var(--accent);animation:drip 2.2s ease-in-out infinite}
@keyframes drip{0%{transform:translateY(-100%)}55%{transform:translateY(0)}100%{transform:translateY(100%)}}
/* ticker */
.ticker{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);overflow:hidden;padding:15px 0;background:var(--bg)}
.ticker-track{display:flex;gap:0;width:max-content;animation:tick 38s linear infinite}
.ticker span{font-family:var(--ff-m);font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--cocoa);padding:0 26px;white-space:nowrap}
.ticker b{color:var(--terra-t);font-weight:400}
@keyframes tick{to{transform:translateX(-50%)}}
/* ============ INTRO ============ */
.intro-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(20px,3vw,48px);align-items:center}
.intro-fig{grid-column:1/6;position:relative}
.intro-fig .frame{overflow:hidden;border-radius:var(--rad)}
.intro-fig img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform 1.4s cubic-bezier(.22,1,.36,1)}
.intro-fig:hover img{transform:scale(1.045)}
.intro-fig .stamp{position:absolute;top:-20px;right:-16px;width:104px;height:104px;border:1px solid var(--hair);border-radius:50%;display:grid;place-items:center;font-family:var(--ff-d);font-style:italic;font-size:15px;color:var(--accent);background:var(--bg);text-align:center;line-height:1.25;transform:rotate(8deg)}
.intro-txt{grid-column:7/13}
.intro-txt .h2{margin-bottom:30px}
.intro-txt p{color:var(--ink2);max-width:54ch;margin-bottom:1.2em;font-size:1.02rem}
.dropcap::first-letter{font-family:var(--ff-d);font-size:3.4em;float:left;line-height:.82;padding:6px 12px 0 0;color:var(--accent)}
/* ============ WORK GRID ============ */
.work-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(18px,2.4vw,34px);margin-top:clamp(40px,5vw,70px)}
.wcard{position:relative;display:block}
.wcard .ph{overflow:hidden;border-radius:var(--rad);position:relative}
.wcard img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.22,1,.36,1),filter .6s}
.wcard:hover img{transform:scale(1.05)}
.wcard .idx{position:absolute;top:14px;left:16px;font-family:var(--ff-m);font-size:11.5px;letter-spacing:.2em;color:#F6F2EA;background:rgba(34,28,23,.55);padding:6px 10px;border-radius:2px;backdrop-filter:blur(4px)}
.wcard .meta{display:flex;justify-content:space-between;align-items:baseline;gap:14px;margin-top:14px;border-top:1px solid var(--hair);padding-top:12px}
.wcard h3{font-size:clamp(1.15rem,1.7vw,1.5rem);transition:color .3s}
.wcard:hover h3{color:var(--accent)}
.wcard .tag{font-family:var(--ff-m);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink2);white-space:nowrap}
.sp7{grid-column:span 7}.sp5{grid-column:span 5}.sp4{grid-column:span 4}.sp8{grid-column:span 8}.sp6{grid-column:span 6}.sp12{grid-column:span 12}
.ar-43{aspect-ratio:4/3}.ar-34{aspect-ratio:3/4}.ar-169{aspect-ratio:16/9}.ar-11{aspect-ratio:1/1}.ar-32{aspect-ratio:3/2}
/* ============ BRANDS ============ */
.logo-row{display:flex;flex-wrap:wrap;column-gap:clamp(30px,4.4vw,72px);row-gap:26px;align-items:center;justify-content:center;margin-top:clamp(44px,5vw,72px);padding:34px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.logomark{font-family:var(--ff-d);font-size:clamp(1.15rem,1.8vw,1.6rem);color:var(--ink2);opacity:.75;filter:grayscale(1);transition:opacity .4s,color .4s,transform .4s;white-space:nowrap}
.logomark.m2{font-family:var(--ff-m);font-size:.82em;letter-spacing:.22em;text-transform:uppercase}
.logomark:hover{opacity:1;color:var(--ink);transform:translateY(-2px)}
.logomark.has-logo{display:inline-flex;align-items:center;height:44px}
.logo-img{height:100%;width:auto;max-width:150px;object-fit:contain;filter:grayscale(1) contrast(.9);opacity:.72;transition:filter .45s,opacity .45s}
.logomark.has-logo:hover .logo-img{filter:none;opacity:1}
html[data-theme="espresso"] .logo-img{filter:grayscale(1) invert(1) brightness(1.4)}
.logo-row-adm{display:grid;grid-template-columns:150px 120px 1fr auto;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--hair2)}
.logo-prev{height:46px;border:1px dashed var(--hair);border-radius:var(--rad);display:grid;place-items:center;padding:6px;background:#fff}
.logo-prev img{max-height:100%;max-width:100%;object-fit:contain}
.logo-prev span{font-family:var(--ff-m);font-size:11px;letter-spacing:.12em;color:var(--ink2);text-transform:uppercase}
.logo-row-adm .acts{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:760px){.logo-row-adm{grid-template-columns:1fr 1fr}}
.logo-note{margin-top:14px;font-family:var(--ff-m);font-size:11px;letter-spacing:.1em;color:var(--ink2)}
.case{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(20px,3vw,48px);margin-top:clamp(56px,6vw,90px);align-items:center}
.case+.case{margin-top:clamp(60px,7vw,100px)}
.case .ph{grid-column:1/6;overflow:hidden;border-radius:var(--rad)}
.case:nth-of-type(odd) .ph{grid-column:8/13;order:2}
.case .ph img{width:100%;aspect-ratio:4/3.4;object-fit:cover;transition:transform 1.3s cubic-bezier(.22,1,.36,1)}
.case .ph:hover img{transform:scale(1.045)}
.case .txt{grid-column:6/13;padding:0 clamp(0px,3vw,40px)}
.case:nth-of-type(odd) .txt{grid-column:1/8;order:1}
.case dl{margin-top:26px;display:grid;grid-template-columns:130px 1fr;row-gap:13px;column-gap:18px}
.case dt{font-family:var(--ff-m);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);padding-top:4px}
.case dd{font-size:.95rem;color:var(--ink2)}
/* ============ PHILOSOPHY ============ */
.phil-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(20px,3vw,48px)}
.phil-sticky{grid-column:1/6;position:sticky;top:110px;align-self:start}
.phil-flow{grid-column:7/13}
.phil-flow p{color:#CFC3B2;font-size:1.05rem;line-height:1.95;margin-bottom:2.4em;max-width:56ch}
.phil-flow p b{color:#F1E9DD;font-weight:600}
.phil-quote{margin-top:clamp(60px,7vw,100px);text-align:left;border-left:2px solid var(--terra);padding-left:clamp(20px,3vw,40px)}
.phil-quote p{font-family:var(--ff-d);font-style:italic;font-size:clamp(1.6rem,3vw,2.6rem);line-height:1.35;color:#F1E9DD;max-width:24ch}
.phil-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:clamp(48px,5vw,80px)}
.phil-strip .ph{overflow:hidden;border-radius:var(--rad)}
.phil-strip img{width:100%;aspect-ratio:3/4;object-fit:cover;filter:saturate(.85)}
.phil-strip .ph:nth-child(2){transform:translateY(26px)}
/* ============ RECIPES LIST ============ */
.rec-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(20px,2.6vw,36px);margin-top:clamp(44px,5vw,70px)}
.rcard{display:block}
.rcard .ph{overflow:hidden;border-radius:var(--rad);position:relative}
.rcard img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform 1.2s cubic-bezier(.22,1,.36,1)}
.rcard:hover img{transform:scale(1.05)}
.rcard .cat{position:absolute;top:14px;left:14px;background:var(--bg);font-family:var(--ff-m);font-size:11px;letter-spacing:.16em;text-transform:uppercase;padding:6px 11px;border-radius:2px;color:var(--cocoa)}
.rcard h3{font-size:clamp(1.15rem,1.6vw,1.45rem);margin-top:16px;transition:color .3s}
.rcard:hover h3{color:var(--accent)}
.rcard .rmeta{display:flex;gap:18px;margin-top:8px;font-family:var(--ff-m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink2)}
.chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
.chip{font-family:var(--ff-m);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;padding:9px 16px;border:1px solid var(--hair);border-radius:99px;color:var(--ink2);transition:all .3s}
.chip:hover{border-color:var(--ink);color:var(--ink)}
.chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
/* ============ PANTRY ============ */
.pantry-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(20px,3vw,48px);align-items:center}
.pantry-txt{grid-column:1/7}
.pantry-fig{grid-column:8/13;position:relative}
.pantry-fig img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--rad);filter:sepia(.25) saturate(.9)}
.hints{margin-top:36px;display:grid;gap:0}
.hint{display:flex;gap:22px;align-items:baseline;padding:18px 0;border-top:1px solid var(--hair)}
.hint:last-child{border-bottom:1px solid var(--hair)}
.hint .n{font-family:var(--ff-m);font-size:11px;letter-spacing:.2em;color:var(--terra-t)}
.hint p{font-family:var(--ff-d);font-style:italic;font-size:1.25rem}
/* forms */
.form{display:grid;gap:16px;max-width:520px}
.form.row{display:flex;gap:12px;align-items:flex-start;max-width:560px}
.field{display:grid;gap:8px}
.field label{font-family:var(--ff-m);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink2)}
input[type=text],input[type=email],input[type=url],input[type=password],input[type=number],input[type=search],select,textarea{width:100%;background:transparent;border:1px solid var(--hair);border-radius:var(--rad);padding:13px 15px;font-family:var(--ff-b);font-size:.95rem;color:var(--ink);transition:border-color .3s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}
textarea{resize:vertical;min-height:110px}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236E6357' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:.8rem;color:var(--ink2)}
.consent input{width:15px;height:15px;margin-top:3px;accent-color:var(--accent)}
.err-msg{color:#A8442E;font-size:.78rem;font-family:var(--ff-m);letter-spacing:.04em}
.fineprint{font-family:var(--ff-m);font-size:11px;letter-spacing:.08em;color:var(--ink2);margin-top:4px}
.wait-form{margin-top:38px;background:var(--bg);border:1px solid var(--hair);padding:26px;border-radius:var(--rad);max-width:520px;position:relative}
.sec-dark .wait-form,.sec-burg .wait-form{background:rgba(246,242,234,.05);border-color:rgba(246,242,234,.2)}
.ints{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0}
.ints label{font-family:var(--ff-m);font-size:11px;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--hair);padding:8px 13px;border-radius:99px;cursor:pointer;transition:all .3s;color:var(--ink2)}
.ints input{position:absolute;opacity:0}
.ints label:has(input:checked){border-color:var(--accent);color:var(--accent)}
.success{border:1px solid var(--olive);background:color-mix(in srgb,var(--olive) 10%,transparent);padding:26px;border-radius:var(--rad);max-width:520px}
.success h3{font-size:1.4rem;margin-bottom:8px}
.success p{color:var(--ink2);font-size:.92rem}
/* ============ ACADEMY ============ */
.course-row{border-top:1px solid var(--hair);padding:clamp(22px,3vw,34px) 0;display:grid;grid-template-columns:repeat(12,1fr);gap:20px;align-items:baseline;transition:background .3s,padding-left .3s}
.course-row:hover{background:var(--hair2);padding-left:14px}
.course-row:last-of-type{border-bottom:1px solid var(--hair)}
.course-row .cn{grid-column:span 1;font-family:var(--ff-m);font-size:11px;letter-spacing:.18em;color:var(--accent)}
.course-row h3{grid-column:span 6;font-size:clamp(1.3rem,2.2vw,2rem)}
.course-row .cm{grid-column:span 5;display:flex;gap:26px;justify-content:flex-end;flex-wrap:wrap}
.pill{font-family:var(--ff-m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:6px 12px;border:1px solid var(--hair);border-radius:99px;color:var(--ink2)}
.pill.concept{border-color:var(--terra-t);color:var(--terra-t)}
/* ============ INSTAGRAM ============ */
.ig-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-top:clamp(40px,5vw,64px)}
.ig-tile{position:relative;overflow:hidden;border-radius:2px;aspect-ratio:1/1}
.ig-tile img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.22,1,.36,1)}
.ig-tile:hover img{transform:scale(1.07)}
.ig-tile .cap{position:absolute;inset:0;background:rgba(34,28,23,.62);color:#F1E9DD;display:grid;place-items:center;padding:14px;text-align:center;font-family:var(--ff-m);font-size:11px;letter-spacing:.1em;opacity:0;transition:opacity .4s}
.ig-tile:hover .cap,.ig-tile:focus-within .cap{opacity:1}
/* ============ CLOSING / FOOTER ============ */
.close-band{text-align:left}
.close-band .h2{font-size:clamp(2.6rem,6vw,5.4rem);max-width:14ch}
.ftr{background:#1C1712;color:#B4A898;overflow:hidden}
.ftr-mark{font-family:var(--ff-d);font-size:clamp(6rem,21vw,20rem);line-height:.9;text-align:center;color:transparent;-webkit-text-stroke:1px rgba(241,233,221,.22);user-select:none;padding-top:clamp(40px,6vw,90px);letter-spacing:-.02em}
.ftr-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.6fr;gap:clamp(26px,4vw,60px);padding:clamp(48px,6vw,80px) clamp(20px,4vw,56px);max-width:1360px;margin:0 auto}
.ftr h4{font-family:var(--ff-m);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#7E7264;margin-bottom:20px;font-weight:500}
.ftr a.fl{display:block;font-size:.92rem;color:#CFC3B2;padding:5px 0;transition:color .3s,padding-left .3s}
.ftr a.fl:hover{color:var(--terra-t);padding-left:6px}
.ftr-sig{font-family:var(--ff-d);font-style:italic;font-size:1.5rem;color:#F1E9DD;margin-bottom:14px}
.ftr-bottom{border-top:1px solid rgba(241,233,221,.1);padding:22px clamp(20px,4vw,56px);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--ff-m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;max-width:1360px;margin:0 auto}
.ftr-bottom a:hover{color:var(--terra-t)}
.nl-mini{display:flex;gap:8px}
.nl-mini input{border-color:rgba(241,233,221,.25);color:#F1E9DD}
.nl-mini button{background:var(--terra);color:#1C1712;padding:0 18px;border-radius:var(--rad);font-family:var(--ff-m);font-size:11px;letter-spacing:.12em;text-transform:uppercase;transition:background .3s}
.nl-mini button:hover{background:#F1E9DD}
/* ============ PAGE HEROES (inner) ============ */
.page-hero{padding:calc(var(--hdr) + clamp(50px,8vw,110px)) 0 clamp(40px,5vw,70px);border-bottom:1px solid var(--hair)}
.page-hero h1{font-size:clamp(2.6rem,6.4vw,5.6rem);margin-top:24px;max-width:16ch}
.page-hero .lead{margin-top:26px}
/* about */
.abt-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(20px,3vw,48px)}
.abt-fig{grid-column:1/6}.abt-fig img{width:100%;border-radius:var(--rad)}
.abt-txt{grid-column:7/13}
.chapter{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(20px,3vw,48px);padding:clamp(44px,5vw,70px) 0;border-top:1px solid var(--hair)}
.chapter .cn{grid-column:1/3;font-family:var(--ff-m);font-size:11px;letter-spacing:.2em;color:var(--accent);text-transform:uppercase;padding-top:8px}
.chapter .ct{grid-column:3/9}
.chapter h3{font-size:clamp(1.5rem,2.4vw,2.2rem);margin-bottom:18px}
.chapter p{color:var(--ink2);margin-bottom:1em;max-width:60ch}
.pull{font-family:var(--ff-d);font-style:italic;font-size:clamp(1.7rem,3.4vw,3rem);line-height:1.3;color:var(--accent);max-width:22ch;margin:clamp(48px,6vw,80px) auto;text-align:center}
/* work detail */
.cs-hero{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(20px,3vw,44px);align-items:end;margin:clamp(40px,5vw,70px) 0}
.cs-hero .ph{grid-column:1/9;overflow:hidden;border-radius:var(--rad)}
.cs-hero img{width:100%;aspect-ratio:16/10;object-fit:cover}
.cs-meta{grid-column:9/13;display:grid;gap:16px;align-content:end}
.cs-meta .mrow{border-top:1px solid var(--hair);padding-top:10px;display:grid;grid-template-columns:92px 1fr;gap:10px}
.cs-block{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(20px,3vw,48px);padding:clamp(34px,4vw,54px) 0;border-top:1px solid var(--hair)}
.cs-block .lb{grid-column:1/3;padding-top:6px}
.cs-block .bd{grid-column:3/9;color:var(--ink2)}
.cs-block .bd p{margin-bottom:1em}
.cs-block ul{list-style:none}
.cs-block li{padding:12px 0;border-bottom:1px solid var(--hair);display:flex;gap:14px;align-items:baseline}
.cs-block li::before{content:"—";color:var(--terra-t)}
/* recipe detail */
.rd-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(24px,3.5vw,56px);margin-top:clamp(40px,5vw,64px)}
.rd-left{grid-column:1/6;position:sticky;top:100px;align-self:start}
.rd-left img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--rad)}
.rd-stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--hair);border-radius:var(--rad);margin-top:18px;overflow:hidden}
.rd-stats div{padding:16px;text-align:center;border-right:1px solid var(--hair)}
.rd-stats div:last-child{border-right:none}
.rd-stats b{display:block;font-family:var(--ff-d);font-size:1.5rem;font-weight:500}
.rd-stats span{font-family:var(--ff-m);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink2)}
.rd-right{grid-column:6/13}
.ings{list-style:none;margin:20px 0 40px;border-top:1px solid var(--hair)}
.ings li{border-bottom:1px solid var(--hair);padding:13px 0;display:flex;gap:14px;align-items:baseline;cursor:pointer;transition:opacity .3s}
.ings li .box{width:15px;height:15px;border:1px solid var(--ink2);border-radius:2px;flex:none;position:relative;top:2px;transition:all .3s}
.ings li.done{opacity:.4;text-decoration:line-through}
.ings li.done .box{background:var(--accent);border-color:var(--accent)}
.steps{list-style:none;counter-reset:st}
.steps li{counter-increment:st;display:grid;grid-template-columns:64px 1fr;gap:18px;padding:22px 0;border-bottom:1px solid var(--hair)}
.steps li::before{content:counter(st,decimal-leading-zero);font-family:var(--ff-d);font-size:1.8rem;color:var(--terra-t)}
.steps p{color:var(--ink2);max-width:62ch}
/* ============ COLLABORATE ============ */
.svc-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(30px,5vw,80px);margin-top:clamp(40px,5vw,64px)}
.svc{border-top:1px solid var(--hair);padding:22px 0;display:flex;gap:22px;align-items:baseline}
.svc .n{font-family:var(--ff-m);font-size:11px;color:var(--terra-t);letter-spacing:.16em}
.svc h3{font-size:1.25rem}
.svc p{font-size:.86rem;color:var(--ink2);margin-top:4px}
.proc{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair);margin-top:clamp(40px,5vw,64px);border-radius:var(--rad);overflow:hidden}
.proc div{background:var(--bg);padding:clamp(22px,3vw,36px);transition:background .4s}
.proc div:hover{background:var(--bg2)}
.proc .n{font-family:var(--ff-m);font-size:11px;letter-spacing:.2em;color:var(--accent)}
.proc h3{font-size:1.3rem;margin:14px 0 10px}
.proc p{font-size:.85rem;color:var(--ink2)}
.collab-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(24px,3.5vw,60px)}
.collab-side{grid-column:1/5}
.collab-form{grid-column:5/13}
.form-2col{display:grid;grid-template-columns:1fr 1fr;gap:16px}
/* ============ ADMIN ============ */
.login-wrap{min-height:100svh;display:grid;grid-template-columns:1fr 1fr}
.login-brand{background:#221C17;color:#F1E9DD;padding:clamp(30px,5vw,70px);display:flex;flex-direction:column;justify-content:space-between}
.login-brand .big{font-family:var(--ff-d);font-size:clamp(2rem,3.4vw,3.4rem);line-height:1.25;max-width:16ch}
.login-brand .big em{color:var(--terra-t)}
.login-form{display:grid;place-items:center;padding:40px;background:var(--bg)}
.login-card{width:100%;max-width:400px;display:grid;gap:18px}
.demo-hint{border:1px dashed var(--hair);border-radius:var(--rad);padding:14px 16px;font-family:var(--ff-m);font-size:11.5px;letter-spacing:.06em;line-height:1.9;color:var(--ink2)}
.adm{display:grid;grid-template-columns:240px 1fr;min-height:100svh}
.adm-side{background:#221C17;color:#CFC3B2;padding:26px 0;position:sticky;top:0;height:100svh;overflow-y:auto;display:flex;flex-direction:column}
.adm-side .wm{font-family:var(--ff-d);font-size:22px;color:#F1E9DD;padding:0 24px 22px;border-bottom:1px solid rgba(241,233,221,.1)}
.adm-side .wm em{font-size:11px;color:#7E7264;font-family:var(--ff-m);font-style:normal;letter-spacing:.2em;text-transform:uppercase;display:block;margin-top:4px}
.adm-nav{margin:18px 0;flex:1}
.adm-nav a{display:flex;gap:14px;align-items:baseline;padding:11px 24px;font-size:13px;color:#B4A898;border-left:2px solid transparent;transition:all .25s}
.adm-nav a .nn{font-family:var(--ff-m);font-size:11px;letter-spacing:.14em;color:#6E6255}
.adm-nav a:hover{color:#F1E9DD;background:rgba(241,233,221,.05)}
.adm-nav a.on{color:#F1E9DD;border-left-color:var(--terra-t);background:rgba(241,233,221,.06)}
.adm-user{padding:18px 24px;border-top:1px solid rgba(241,233,221,.1);font-size:12px}
.adm-user .rl{font-family:var(--ff-m);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--terra-t)}
.adm-user .links{display:flex;gap:16px;margin-top:10px;font-family:var(--ff-m);font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.adm-user .links a:hover{color:#F1E9DD}
.adm-main{padding:clamp(24px,3.5vw,48px);background:var(--bg);min-width:0}
.adm-top{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:34px;border-bottom:1px solid var(--hair);padding-bottom:20px}
.adm-top h1{font-size:clamp(1.7rem,2.6vw,2.4rem)}
.adm-top .crumb{font-family:var(--ff-m);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink2);margin-bottom:8px}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:34px}
.stat{border:1px solid var(--hair);border-radius:var(--rad);padding:20px;background:var(--bg2);transition:transform .3s}
.stat:hover{transform:translateY(-3px)}
.stat b{display:block;font-family:var(--ff-d);font-size:2.3rem;font-weight:500;line-height:1}
.stat span{font-family:var(--ff-m);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink2)}
.panel{border:1px solid var(--hair);border-radius:var(--rad);background:var(--bg);margin-bottom:22px}
.panel-h{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px 20px;border-bottom:1px solid var(--hair);flex-wrap:wrap}
.panel-h h2{font-size:1.2rem}
.panel-b{padding:20px}
table.adm-t{width:100%;border-collapse:collapse;font-size:.9rem}
.adm-t th{font-family:var(--ff-m);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink2);text-align:left;padding:10px 12px;border-bottom:1px solid var(--hair);font-weight:500}
.adm-t td{padding:14px 12px;border-bottom:1px solid var(--hair2);vertical-align:middle}
.adm-t tr:hover td{background:var(--hair2)}
.adm-t .ttl{font-family:var(--ff-d);font-size:1.05rem}
.st{font-family:var(--ff-m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:5px 10px;border-radius:99px;display:inline-block}
.st.published{background:color-mix(in srgb,var(--olive) 16%,transparent);color:var(--olive)}
.st.draft{background:color-mix(in srgb,var(--cocoa) 16%,transparent);color:var(--cocoa)}
.st.concept,.st.new{background:color-mix(in srgb,var(--terra) 16%,transparent);color:var(--terra-t)}
.st.archived,.st.completed{background:var(--hair2);color:var(--ink2)}
.st.contacted,.st.negotiating{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
.st.confirmed{background:color-mix(in srgb,var(--olive) 16%,transparent);color:var(--olive)}
.abtn{font-family:var(--ff-m);font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:7px 11px;border:1px solid var(--hair);border-radius:2px;transition:all .25s;color:var(--ink2)}
.abtn:hover{border-color:var(--ink);color:var(--ink)}
.abtn.danger:hover{border-color:#A8442E;color:#A8442E}
.abtn.pri{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.abtn.pri:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.builder-row{display:flex;align-items:center;gap:14px;border:1px solid var(--hair);border-radius:var(--rad);padding:13px 16px;margin-bottom:10px;background:var(--bg);transition:all .25s;flex-wrap:wrap}
.builder-row.dragover{border-color:var(--accent);transform:translateY(2px)}
.builder-row.hidden-sec{opacity:.45}
.builder-row .hnd{cursor:grab;color:var(--ink2);font-size:16px;letter-spacing:-2px}
.builder-row .nm{font-weight:600;font-size:.92rem;flex:1;min-width:120px}
.builder-row .nm em{font-family:var(--ff-m);font-style:normal;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink2);margin-left:10px}
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}
.media-tile{border:1px solid var(--hair);border-radius:var(--rad);overflow:hidden;background:var(--bg2)}
.media-tile img{width:100%;aspect-ratio:4/3;object-fit:cover}
.media-tile .mt{padding:10px 12px;font-size:.78rem}
.preset-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}
.preset{border:1px solid var(--hair);border-radius:var(--rad);overflow:hidden;cursor:pointer;transition:all .3s;text-align:left}
.preset:hover,.preset.on{border-color:var(--accent);transform:translateY(-3px)}
.preset .sw{height:90px;display:flex;align-items:flex-end;padding:12px;gap:6px}
.preset .sw i{width:22px;height:22px;border-radius:50%;border:1px solid rgba(0,0,0,.12)}
.preset .pl{padding:12px 14px;font-family:var(--ff-m);font-size:11px;letter-spacing:.14em;text-transform:uppercase}
/* modal / toast / drawer */
.modal-veil{position:fixed;inset:0;background:rgba(28,23,18,.55);z-index:1200;display:grid;place-items:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .3s}
.modal-veil.open{opacity:1;pointer-events:auto}
.modal-box{background:var(--bg);border-radius:var(--rad);max-width:560px;width:100%;max-height:86svh;overflow:auto;padding:clamp(22px,3vw,36px);transform:translateY(16px);transition:transform .35s}
.modal-veil.open .modal-box{transform:none}
.modal-box.wide{max-width:1080px}
.modal-box h3{font-size:1.5rem;margin-bottom:16px}
.m-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px;flex-wrap:wrap}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,94vw);background:var(--bg);z-index:1250;border-left:1px solid var(--hair);transform:translateX(102%);transition:transform .45s cubic-bezier(.76,0,.24,1);padding:26px;overflow-y:auto}
.drawer.open{transform:none}
#toasts{position:fixed;bottom:22px;right:22px;z-index:2000;display:grid;gap:10px}
.toast{background:#221C17;color:#F1E9DD;padding:14px 20px;border-radius:var(--rad);font-size:.85rem;box-shadow:0 20px 50px -20px rgba(0,0,0,.5);transform:translateX(30px);opacity:0;transition:all .4s cubic-bezier(.22,1,.36,1);border-left:3px solid var(--terra);max-width:340px}
.toast.show{transform:none;opacity:1}
.toast.err{border-left-color:#A8442E}
#veil{position:fixed;inset:0;background:var(--bg);z-index:1100;display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .3s}
#veil.show{opacity:1;pointer-events:auto}
#veil .vm{font-family:var(--ff-d);font-style:italic;font-size:3rem;color:var(--accent)}
.draft-banner{background:var(--terra);color:#221C17;text-align:center;font-family:var(--ff-m);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;padding:9px 14px;position:relative;z-index:901}
.dev-bar{display:flex;gap:8px;justify-content:center}
.frame-wrap{border:1px solid var(--hair);margin:14px auto 0;transition:width .4s;border-radius:var(--rad);overflow:hidden;background:var(--bg)}
.frame-wrap iframe{width:100%;height:68svh;border:0;display:block}
.qa-grid{display:flex;gap:10px;flex-wrap:wrap}
.acc-item{border-top:1px solid var(--hair)}
.acc-item:last-child{border-bottom:1px solid var(--hair)}
.acc-h{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 4px;text-align:left;font-family:var(--ff-d);font-size:1.15rem}
.acc-h .pm{font-family:var(--ff-m);color:var(--terra-t);transition:transform .35s}
.acc-item.open .pm{transform:rotate(45deg)}
.acc-b{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.22,1,.36,1)}
.acc-b>div{padding:0 4px 22px;color:var(--ink2);font-size:.94rem;max-width:66ch}
.timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair);border-radius:var(--rad);overflow:hidden;margin-top:40px}
.timeline div{background:var(--bg);padding:26px}
.timeline .ph-n{font-family:var(--ff-m);font-size:11px;letter-spacing:.2em;color:var(--terra-t)}
.timeline h3{margin:12px 0 8px;font-size:1.2rem}
.timeline p{font-size:.85rem;color:var(--ink2)}
.timeline .live{font-family:var(--ff-m);font-size:11px;letter-spacing:.14em;color:var(--olive);text-transform:uppercase;margin-top:12px;display:block}
.denied{border:1px solid var(--hair);border-radius:var(--rad);padding:60px 30px;text-align:center;max-width:520px;margin:40px auto}
.empty{padding:44px 20px;text-align:center;color:var(--ink2);font-family:var(--ff-m);font-size:11px;letter-spacing:.14em;text-transform:uppercase}
/* ============ RESPONSIVE ============ */
@media(max-width:1060px){
 .hdr-nav{display:none}.menu-btn{display:flex}
 .hero-grid{grid-template-columns:1fr}.hero-copy{grid-column:1/-1;padding-bottom:36px}.hero-imgs{grid-column:1/-1;max-width:560px}
 .hero-tag{left:14px}
 .intro-fig{grid-column:1/12;margin-bottom:12px}.intro-txt{grid-column:1/13}
 .sp7,.sp5,.sp4,.sp8,.sp6{grid-column:span 6}
 .case{grid-template-columns:1fr}.case .ph,.case:nth-of-type(odd) .ph{grid-column:1/-1;order:0}
 .case .txt,.case:nth-of-type(odd) .txt{grid-column:1/-1;padding:0}
 .phil-grid{grid-template-columns:1fr}.phil-sticky{position:static;grid-column:1/-1;margin-bottom:30px}.phil-flow{grid-column:1/-1}
 .ftr-grid{grid-template-columns:1fr 1fr}
 .ig-grid{grid-template-columns:repeat(3,1fr)}
 .svc-grid{grid-template-columns:1fr}
 .proc{grid-template-columns:1fr 1fr}
 .collab-side{grid-column:1/13;margin-bottom:10px}.collab-form{grid-column:1/13}
 .cs-hero .ph{grid-column:1/13}.cs-meta{grid-column:1/13;grid-template-columns:1fr 1fr}
 .rd-grid{grid-template-columns:1fr}.rd-left{position:static;grid-column:1/-1}.rd-right{grid-column:1/-1}
 .chapter .cn{grid-column:1/13}.chapter .ct{grid-column:1/13}
 .pantry-txt{grid-column:1/13}.pantry-fig{grid-column:1/13;margin-top:20px}
 .adm{grid-template-columns:1fr}.adm-side{position:static;height:auto;flex-direction:row;align-items:center;flex-wrap:wrap;padding:14px}
 .adm-side .wm{border:none;padding:0 18px 0 0}.adm-nav{display:flex;flex-wrap:wrap;margin:0}.adm-nav a{border-left:none;border-bottom:2px solid transparent;padding:8px 12px}.adm-nav a.on{border-bottom-color:var(--terra-t)}.adm-user{border:none;padding:8px 14px}
 .login-wrap{grid-template-columns:1fr}.login-brand{min-height:38svh}
 .timeline{grid-template-columns:1fr}
}
@media(max-width:640px){
 .sp7,.sp5,.sp4,.sp8,.sp6{grid-column:span 12}
 .ig-grid{grid-template-columns:repeat(2,1fr)}
 .proc{grid-template-columns:1fr}
 .ftr-grid{grid-template-columns:1fr}
 .form-2col{grid-template-columns:1fr}
 .phil-strip{grid-template-columns:1fr 1fr}.phil-strip .ph:nth-child(3){display:none}
 .cs-meta{grid-template-columns:1fr}
 .hero-fig{aspect-ratio:4/4.4}
 .hero h1{font-size:clamp(2.6rem,11vw,3.6rem)}
 .form.row{flex-direction:column}
 .steps li{grid-template-columns:40px 1fr}
}

/* ============ REFINEMENTS — appetite, polish, usability ============ */
:root{--ease:cubic-bezier(.22,1,.36,1);--shadow:0 30px 60px -32px rgba(41,35,31,.45),0 10px 20px -14px rgba(41,35,31,.18)}
body{font-size:16.5px;text-rendering:optimizeLegibility}
p{text-wrap:pretty}h1,h2,h3{text-wrap:balance}
/* photographs: warm placeholder, fade-in once decoded, gentle grade */
.hero-fig,.wcard .ph,.rcard .ph,.case .ph,.intro-fig .frame,.phil-strip .ph,.ig-tile,.cs-hero .ph,.rd-left,.abt-fig,.pantry-fig,.media-tile,.collab-form{background:linear-gradient(135deg,#E6D8C4,#D9C3A8)}
img[loading]{opacity:0;transition:opacity .9s ease,transform 1.2s var(--ease),filter .6s}
img.ld{opacity:1}
img.broken{opacity:.0}
.wcard img,.rcard img,.case img,.ig-tile img,.hero-fig img,.intro-fig img{filter:saturate(1.06) contrast(1.03)}
.wcard .ph,.rcard .ph,.case .ph,.hero-fig,.intro-fig .frame,.rd-left img,.cs-hero .ph{box-shadow:var(--shadow)}
/* hero collage */
.hero-imgs{position:relative}
.hero-fig{border-radius:calc(var(--rad) + 2px)}
.hero-fig::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(34,28,23,.28));pointer-events:none}
.hero-side{position:absolute;width:38%;aspect-ratio:4/5;left:-22%;top:12%;overflow:hidden;border-radius:var(--rad);border:6px solid var(--bg);box-shadow:var(--shadow);z-index:2}
.hero-side img{width:100%;height:100%;object-fit:cover}
.hero-tag{z-index:3}
.badge{position:absolute;right:-30px;top:-36px;filter:drop-shadow(0 14px 24px rgba(41,35,31,.25));width:118px;height:118px;z-index:3;animation:spin 26s linear infinite}
.badge text{font-family:var(--ff-m);font-size:9.6px;letter-spacing:.2em;text-transform:uppercase;fill:var(--accent)}
.badge circle{fill:var(--terra)}.badge .disc{fill:var(--bg);stroke:var(--hair)}
@keyframes spin{to{transform:rotate(360deg)}}
.steam{position:absolute;left:50%;top:18%;width:120px;height:160px;transform:translateX(-50%);pointer-events:none;z-index:1}
.steam i{position:absolute;bottom:0;width:22px;height:120px;border-radius:50%;background:radial-gradient(ellipse at center,rgba(255,255,255,.42),transparent 70%);filter:blur(8px);opacity:0;animation:steam 5.4s ease-in-out infinite}
.steam i:nth-child(1){left:20px}.steam i:nth-child(2){left:50px;animation-delay:1.6s}.steam i:nth-child(3){left:80px;animation-delay:3.1s}
@keyframes steam{0%{transform:translateY(30px) scaleX(.8);opacity:0}30%{opacity:.85}100%{transform:translateY(-70px) scaleX(1.5) skewX(8deg);opacity:0}}
.scroll-cue{cursor:pointer}.scroll-cue:hover{color:var(--accent)}
/* header: tighter once scrolled */
.hdr{transition:height .4s var(--ease),border-color .4s,box-shadow .4s}
.hdr.scrolled{height:62px;box-shadow:0 10px 30px -24px rgba(41,35,31,.4)}
#progress{position:fixed;top:0;left:0;right:0;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;z-index:950;pointer-events:none}
/* card peeks */
.peek{position:absolute;left:14px;bottom:14px;background:rgba(246,242,234,.94);color:#29231F;font-family:var(--ff-m);font-size:11px;letter-spacing:.16em;text-transform:uppercase;padding:9px 13px;border-radius:2px;transform:translateY(10px);opacity:0;transition:all .45s var(--ease)}
.peek b{font-weight:400;display:inline-block;transition:transform .35s}
.wcard:hover .peek,.rcard:hover .peek,.wcard:focus-visible .peek,.rcard:focus-visible .peek{transform:none;opacity:1}
.wcard:hover .peek b,.rcard:hover .peek b{transform:translateX(4px)}
.wcard:hover img,.rcard:hover img{filter:saturate(1.15) contrast(1.05)}
.rcard:hover .ph,.wcard:hover .ph{box-shadow:0 40px 70px -34px rgba(41,35,31,.55),0 12px 24px -14px rgba(41,35,31,.22)}
.rcard .ph,.wcard .ph{transition:box-shadow .6s var(--ease)}
@media (hover:none){.peek{opacity:1;transform:none}}
/* closing band with photo */
.close-band{overflow:hidden;isolation:isolate}
.close-bg{position:absolute;inset:0;z-index:-1}
.close-bg img{width:100%;height:100%;object-fit:cover;filter:saturate(.8)}
.close-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(104,47,59,.97) 30%,rgba(104,47,59,.78) 60%,rgba(104,47,59,.55))}
/* philosophy strip: softer stagger */
.phil-strip .ph{box-shadow:0 30px 50px -30px rgba(0,0,0,.6)}
/* recipe page tools */
.rd-tools{display:flex;gap:26px;align-items:center;flex-wrap:wrap;margin-top:26px;padding-top:18px;border-top:1px solid var(--hair)}
.rd-tools #ing-count{margin-left:auto}
.ings li:hover{background:var(--hair2)}
.ings li{padding-left:6px;padding-right:6px;border-radius:2px;transition:opacity .3s,background .25s}
.ings li .box::after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid var(--accent-ink);border-width:0 1.5px 1.5px 0;transform:rotate(45deg) scale(0);transition:transform .25s var(--ease)}
.ings li.done .box::after{transform:rotate(45deg) scale(1)}
#method{scroll-margin-top:90px}
/* back to top */
#to-top{position:fixed;right:22px;bottom:22px;width:46px;height:46px;border-radius:50%;background:var(--ink);color:var(--bg);font-size:18px;z-index:880;opacity:0;transform:translateY(12px);pointer-events:none;transition:all .4s var(--ease);box-shadow:var(--shadow)}
#to-top.show{opacity:1;transform:none;pointer-events:auto}
#to-top:hover{background:var(--accent)}
/* form feedback */
input[aria-invalid=true],textarea[aria-invalid=true],select[aria-invalid=true]{border-color:#A8442E;background:color-mix(in srgb,#A8442E 5%,transparent)}
.btn:active{transform:translateY(1px)}
.chip:focus-visible,.btn:focus-visible{outline-offset:4px}
/* touch targets */
@media (pointer:coarse){.chip{padding:12px 18px}.hdr-nav a{padding:10px 0}}
/* mobile */
@media(max-width:420px){.hdr-right .btn{display:none}}
@media(max-width:1060px){.hero-side{left:auto;right:-10px;top:auto;bottom:-30px;width:34%}.badge{right:6px;top:-24px;width:96px;height:96px}.hero-imgs{margin-bottom:40px}}
@media(max-width:640px){.badge{display:none}.ig-mini,.wordmark em{display:none}.hdr-right .btn{white-space:nowrap;padding:10px 14px}.rd-tools #ing-count{margin-left:0}body{font-size:16px}}
@media print{.hdr,.ftr,#to-top,#progress,.mnav,.rd-tools,.btn,#toasts,.ticker{display:none!important}body::after{display:none}.rd-left{position:static}img{opacity:1!important}}
@media(prefers-reduced-motion:reduce){.badge,.steam i{animation:none!important}.steam{display:none}img[loading]{opacity:1}}

/* ============ REELS ============ */
.reel{position:relative;display:block;width:100%;text-align:left;border-radius:6px;overflow:hidden;background:#2C241D;isolation:isolate;cursor:pointer;box-shadow:var(--shadow);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.reel-ph{position:relative;display:block;aspect-ratio:9/16}
.reel-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease),opacity .9s,filter .6s}
.reel-ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,16,12,.0) 45%,rgba(20,16,12,.82));pointer-events:none}
.reel:hover,.reel:focus-visible{transform:translateY(-4px);box-shadow:0 40px 70px -34px rgba(41,35,31,.6)}
.reel:hover img{transform:scale(1.06)}
.reel-play{position:absolute;left:50%;top:44%;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;display:grid;place-items:center;background:rgba(246,242,234,.92);color:#29231F;font-size:15px;padding-left:3px;z-index:2;opacity:0;transform:scale(.8);transition:all .4s var(--ease)}
.reel:hover .reel-play,.reel:focus-visible .reel-play{opacity:1;transform:none}
.reel-dur,.reel-brand{position:absolute;top:10px;z-index:2;font-family:var(--ff-m);font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:5px 8px;border-radius:2px}
.reel-dur{left:10px;background:rgba(20,16,12,.55);color:#F1E9DD;backdrop-filter:blur(4px)}
.rcard .reel-dur{left:auto;right:14px;top:14px}
.reel-brand{right:10px;background:var(--terra);color:#221C17}
.reel-meta{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:14px 14px 13px;color:#F6F2EA;display:grid;gap:4px}
.reel-meta b{font-family:var(--ff-d);font-weight:400;font-size:1.05rem;line-height:1.2}
.reel-meta em{font-style:normal;font-family:var(--ff-m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;opacity:.85}
.reel-row{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-top:clamp(36px,4vw,56px)}
.reel-row.scroll{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:14px;scrollbar-width:thin}
.reel-row.scroll .reel{flex:0 0 clamp(150px,17vw,210px);scroll-snap-align:start}
.reel-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.8vw,24px);margin-top:20px}
.more-wrap{grid-column:1/-1;display:flex;justify-content:center;padding-top:20px}
.reel-tools{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;flex-wrap:wrap;margin-top:clamp(36px,4vw,56px)}
.reel-tools .chips{margin-top:0;max-width:820px}
.chip .cnt{opacity:.55;margin-left:4px}
.reel-search{display:flex;gap:10px;min-width:min(100%,420px)}
.reel-search input{flex:1}.reel-search select{width:auto;min-width:150px}
/* proof band */
.proof{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);margin-top:clamp(28px,3vw,40px)}
.proof>div{padding:22px 18px;border-right:1px solid var(--hair)}
.proof>div:last-child{border-right:none}
.proof b{display:block;font-family:var(--ff-d);font-weight:400;font-size:clamp(2rem,3.4vw,3rem);line-height:1;color:var(--accent);font-variant-numeric:tabular-nums}
.proof span{display:block;margin-top:8px;font-size:.84rem;color:var(--ink2);max-width:24ch}
/* lightbox */
.modal-box.reel-modal{max-width:980px;padding:0;overflow:hidden;background:var(--bg)}
.reel-lb{display:grid;grid-template-columns:minmax(0,400px) 1fr;max-height:88svh}
.lb-media{position:relative;background:#14100C;min-height:560px}
.lb-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(1px) brightness(.85)}
.lb-frame{position:relative;width:100%;height:100%;min-height:560px;border:0;opacity:0;transition:opacity .6s;background:transparent}
.lb-frame.ready{opacity:1}
.lb-info{padding:clamp(20px,2.6vw,32px);overflow-y:auto;max-height:88svh;display:flex;flex-direction:column;gap:14px}
.lb-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.lb-info h3{font-size:clamp(1.6rem,2.6vw,2.2rem)}
.lb-stats{display:flex;gap:18px;flex-wrap:wrap;align-items:center;font-size:.86rem;color:var(--ink2)}
.lb-stats b{color:var(--ink);font-weight:600}
.lb-acts{display:flex;gap:10px;flex-wrap:wrap}
.lb-cap{border-top:1px solid var(--hair);padding-top:14px;font-size:.9rem;color:var(--ink2);line-height:1.7}
.lb-cap p{margin-bottom:.9em}
.tag-h{color:var(--accent)}
.lb-nav{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--hair);padding-top:14px;margin-top:auto}
.lb-nav .abtn[disabled]{opacity:.35;pointer-events:none}
/* recipe page watch button */
.watch{margin-top:18px;width:100%;display:flex;gap:16px;align-items:center;text-align:left;border:1px solid var(--hair);border-radius:var(--rad);padding:16px 18px;background:var(--bg);transition:all .35s var(--ease)}
.watch:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow)}
.watch .wp{width:46px;height:46px;flex:none;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;padding-left:3px}
.watch b{display:block;font-weight:600;font-size:.95rem}.watch em{font-style:normal;font-size:.8rem;color:var(--ink2)}

/* ============ WORK VISUALS (real covers) ============ */
.wv{position:relative;width:100%;aspect-ratio:4/3.4;overflow:hidden;background:#2A211B;isolation:isolate;container-type:size}
.wcard .ph .wv{position:absolute;inset:0;aspect-ratio:auto;height:100%}
.cs-hero .ph .wv{aspect-ratio:16/10}
.wv img.wv-bg{position:absolute!important;inset:-30px!important;width:calc(100% + 60px)!important;height:calc(100% + 60px)!important;object-fit:cover;filter:blur(26px) saturate(1.25) brightness(.62)!important;transform:none!important;aspect-ratio:auto!important}
.wv-fan{position:absolute;inset:0;display:grid;place-items:center}
.wv-fan img{position:absolute!important;height:min(84cqh,78cqw)!important;width:auto!important;aspect-ratio:9/16!important;object-fit:cover;border-radius:8px;box-shadow:0 30px 50px -20px rgba(0,0,0,.6);transition:transform .8s var(--ease)!important;filter:none!important}
.wv.is-photo .wv-fan img{aspect-ratio:4/5!important;height:min(78cqh,54cqw)!important}
.wv-fan .f0{z-index:3;transform:none}
.wv-fan .f1{z-index:2;transform:translateX(-58%) rotate(-7deg) scale(.9)!important}
.wv-fan .f2{z-index:1;transform:translateX(58%) rotate(7deg) scale(.9)!important}
.wcard:hover .wv-fan .f0,.case:hover .wv-fan .f0{transform:translateY(-6px) scale(1.03)!important}
.wcard:hover .wv-fan .f1,.case:hover .wv-fan .f1{transform:translateX(-72%) rotate(-10deg) scale(.9)!important}
.wcard:hover .wv-fan .f2,.case:hover .wv-fan .f2{transform:translateX(72%) rotate(10deg) scale(.9)!important}
.wv-n{position:absolute;right:12px;bottom:12px;z-index:4;font-family:var(--ff-m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#F1E9DD;background:rgba(20,16,12,.55);padding:6px 9px;border-radius:2px;backdrop-filter:blur(4px)}
.wsum{margin-top:8px;font-size:.88rem;color:var(--ink2);max-width:52ch;line-height:1.6}
.reel-row.scroll{-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent);padding-right:8%}
.reel-row.scroll.photos .reel{flex:0 0 clamp(200px,24vw,280px)}
.reel.is-photo .reel-ph{aspect-ratio:4/5}
.reel.is-photo .reel-play{display:none}
.data-line{margin-top:12px;padding-left:14px;border-left:2px solid var(--terra);color:var(--ink)}
/* ============ CHARTS ============ */
.charts{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,40px);margin-top:clamp(36px,4vw,56px)}
.charts.one{grid-template-columns:1fr;margin-top:clamp(28px,3vw,44px)}
.chart{background:var(--bg);border:1px solid var(--hair);border-radius:var(--rad);padding:clamp(18px,2.4vw,28px)}
.chart figcaption b{display:block;font-family:var(--ff-d);font-weight:400;font-size:clamp(1.15rem,1.7vw,1.45rem);line-height:1.25}
.chart figcaption span{display:block;margin-top:6px;font-family:var(--ff-m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink2)}
.vbars{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:10px;height:220px;margin-top:22px;align-items:end;border-bottom:1px solid var(--hair)}
.vb{position:relative;display:grid;grid-template-rows:auto 1fr;height:100%;outline:none}
.vb .val{font-size:.8rem;color:var(--ink);text-align:center;padding-bottom:6px;font-variant-numeric:tabular-nums}
.vb .bar{display:flex;align-items:flex-end;justify-content:center}
.vb i{display:block;width:min(48px,70%);background:color-mix(in srgb,var(--ink2) 34%,transparent);border-radius:4px 4px 0 0;transform-origin:bottom;transition:transform 1s var(--ease),background .3s}
.vb.hi i{background:var(--accent)}
.vb .lab{position:absolute;top:100%;left:0;right:0;text-align:center;margin-top:8px;font-family:var(--ff-m);font-size:11px;letter-spacing:.06em;color:var(--ink2);line-height:1.3}
.vbars{margin-bottom:38px}
.hbars{display:grid;gap:8px;margin-top:22px}
.hb{display:grid;grid-template-columns:minmax(120px,190px) 1fr 64px;align-items:center;gap:14px;outline:none}
.hb .lab{font-size:.86rem;color:var(--ink)}
.hb .bar{height:16px;display:flex;align-items:center}
.hb i{display:block;height:100%;background:color-mix(in srgb,var(--ink2) 34%,transparent);border-radius:0 4px 4px 0;transform-origin:left;transition:transform 1s var(--ease),background .3s}
.hb.hi i{background:var(--accent)}
.hb .val{font-size:.82rem;text-align:right;font-variant-numeric:tabular-nums;color:var(--ink2)}
[data-reveal]:not(.in) .vb i{transform:scaleY(0)}[data-reveal]:not(.in) .hb i{transform:scaleX(0)}
.vb:hover i,.vb:focus-visible i,.hb:hover i,.hb:focus-visible i{background:var(--terra)}
.vb[data-tip]:hover::after,.vb[data-tip]:focus-visible::after,.hb[data-tip]:hover::after,.hb[data-tip]:focus-visible::after{content:attr(data-tip);position:absolute;z-index:5;left:50%;bottom:calc(100% + 6px);transform:translateX(-50%);white-space:nowrap;background:#221C17;color:#F1E9DD;font-size:.75rem;padding:7px 10px;border-radius:3px;pointer-events:none}
.hb{position:relative}.hb[data-tip]:hover::after,.hb[data-tip]:focus-visible::after{left:auto;right:0;transform:none;bottom:calc(100% + 2px)}
.tbl{margin-top:16px}.tbl summary{cursor:pointer;font-family:var(--ff-m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.tbl table{margin-top:10px}
.proof.facts{margin-top:clamp(28px,3vw,44px);background:var(--bg)}
.proof.facts b{font-size:clamp(1.7rem,2.6vw,2.4rem)}
.proof.facts span{max-width:30ch}
@media(max-width:860px){.charts{grid-template-columns:1fr}.hb{grid-template-columns:110px 1fr 52px;gap:10px}.cs-hero .ph .wv{aspect-ratio:4/3.4}}
@media(prefers-reduced-motion:reduce){.vb i,.hb i{transform:none!important}}

/* ============ BRAND SHOWCASE ============ */
.bmark{display:inline-flex;align-items:center;justify-content:center;height:46px;max-width:100%}
.bmark.has-logo img{max-height:100%;max-width:150px;width:auto;object-fit:contain;filter:grayscale(1) contrast(.95);opacity:.8;transition:filter .5s,opacity .5s}
.bmark .wm{font-family:var(--ff-d);font-size:clamp(1.35rem,2vw,1.9rem);letter-spacing:-.01em;color:var(--ink);white-space:nowrap;transition:color .45s}
.bmark .wm.m2{font-family:var(--ff-m);font-size:clamp(.82rem,1.1vw,1rem);letter-spacing:.32em;text-transform:uppercase}
.bmark .wm.it{font-style:italic;font-weight:300}
/* marquee */
.bmarquee{margin-top:clamp(40px,5vw,64px);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.bm-track{display:flex;width:max-content;list-style:none;animation:bmq 46s linear infinite}
.bmarquee:hover .bm-track{animation-play-state:paused}
.bm-track li{padding:26px clamp(28px,3.4vw,56px);display:flex;align-items:center;position:relative}
.bm-track li::after{content:"✦";position:absolute;right:-6px;color:var(--terra-t);font-size:11px;opacity:.7}
.bm-track .bmark .wm{color:var(--ink2);font-size:clamp(1.2rem,1.7vw,1.6rem)}
.bm-track .bmark .wm.m2{font-size:.85rem}
@keyframes bmq{to{transform:translateX(-50%)}}
/* tile grid */
.bgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:clamp(28px,3vw,40px)}
.bt{position:relative;display:grid;grid-template-rows:1fr auto;min-height:190px;padding:22px;border:1px solid var(--hair);border-radius:calc(var(--rad) + 3px);background:var(--bg);overflow:hidden;isolation:isolate;text-align:left;cursor:pointer;transition:border-color .5s,transform .6s var(--ease),box-shadow .6s var(--ease);transition-delay:var(--d)}
.bt-lead{grid-column:span 2;grid-row:span 2;min-height:394px;grid-template-rows:auto 1fr auto auto;gap:14px;background:linear-gradient(160deg,var(--bg) 40%,var(--bg2))}
.bt-tag{font-family:var(--ff-m);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);transition:opacity .4s}
.bt-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;transition:opacity .4s}
.bt-thumbs img{width:100%;aspect-ratio:9/16;max-height:150px;object-fit:cover;border-radius:4px;box-shadow:0 14px 24px -14px rgba(41,35,31,.5)}
.bt:hover .bt-thumbs,.bt:hover .bt-tag,.bt:focus-visible .bt-thumbs,.bt:focus-visible .bt-tag{opacity:0}
@media(max-width:1060px){.bt-thumbs{display:none}}
.bt-cover{position:absolute;inset:0;z-index:-1;opacity:0;transition:opacity .7s var(--ease)}
.bt-cover img{width:100%;height:100%;object-fit:cover;transform:scale(1.12);filter:saturate(1.1);transition:transform 1.4s var(--ease)}
.bt-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,16,12,.55),rgba(20,16,12,.88))}
.bt-mark{display:flex;align-items:center;justify-content:center;transition:transform .6s var(--ease)}
.bt-lead .bmark{height:72px}.bt-lead .bmark .wm{font-size:clamp(2rem,3.6vw,3.2rem)}.bt-lead .bmark .wm.m2{font-size:clamp(1rem,1.6vw,1.4rem)}.bt-lead .bmark.has-logo img{max-width:240px}
.bt-meta{display:flex;justify-content:space-between;align-items:baseline;gap:10px;border-top:1px solid var(--hair);padding-top:12px;font-family:var(--ff-m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink2);transition:color .45s,border-color .45s,opacity .4s}
.bt-meta b{font-weight:500;color:var(--accent);transition:color .45s}
.bt-hover{position:absolute;left:22px;right:22px;bottom:20px;display:grid;gap:4px;color:#F6F2EA;opacity:0;transform:translateY(10px);transition:opacity .5s var(--ease),transform .6s var(--ease)}
.bt-hover em{font-style:normal;font-family:var(--ff-m);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#E2B8A4}
.bt-hover strong{font-family:var(--ff-d);font-weight:400;font-size:1.15rem;line-height:1.2}
.bt-lead .bt-hover strong{font-size:1.6rem}
.bt-hover>span{font-family:var(--ff-m);font-size:11px;letter-spacing:.16em;text-transform:uppercase;margin-top:4px}
.bt:hover,.bt:focus-visible{border-color:transparent;transform:translateY(-4px);box-shadow:0 34px 60px -30px rgba(41,35,31,.55)}
.bt:hover .bt-cover,.bt:focus-visible .bt-cover{opacity:1}
.bt:hover .bt-cover img,.bt:focus-visible .bt-cover img{transform:scale(1.02)}
.bt:hover .bt-mark,.bt:focus-visible .bt-mark{transform:translateY(-26px)}
.bt:hover .bmark .wm,.bt:focus-visible .bmark .wm{color:#F6F2EA}
.bmark.has-logo{transition:background .45s,padding .45s;border-radius:6px}
.bt:hover .bmark.has-logo,.bt:focus-visible .bmark.has-logo{background:rgba(246,242,234,.94);padding:8px 16px;height:auto;box-shadow:0 10px 30px -12px rgba(0,0,0,.5)}
.bt:hover .bmark.has-logo img,.bt:focus-visible .bmark.has-logo img{filter:none;opacity:1;max-height:42px}
.bt:hover .bt-meta,.bt:focus-visible .bt-meta{opacity:0}
.bt:hover .bt-hover,.bt:focus-visible .bt-hover{opacity:1;transform:none}
.bt:not(:has(.bt-cover)):hover .bmark .wm{color:var(--accent)}
.bt:not(:has(.bt-cover)):hover .bt-mark{transform:none}
.bt:not(:has(.bt-cover)):hover .bt-meta{opacity:1}
.b-also{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:18px;margin-top:22px}
.b-also .mono{margin-right:6px}.b-also i{font-style:normal;color:var(--terra-t);font-size:11px}
.bmark.sm{height:30px}.bmark.sm .wm{font-size:1.15rem;color:var(--ink2)}.bmark.sm .wm.m2{font-size:.75rem}.bmark.sm.has-logo img{max-width:110px}
@media (hover:none){.bt .bt-cover{opacity:.0}.bt-hover{display:none}}
@media(max-width:1060px){.bgrid{grid-template-columns:repeat(3,1fr)}.bt-lead{grid-row:span 1;min-height:220px}}
@media(max-width:640px){.bgrid{grid-template-columns:1fr 1fr;gap:10px}.bt-lead{grid-column:span 2}.bt{min-height:150px;padding:16px}.bmark .wm{font-size:1.2rem}.bmark .wm.m2{font-size:.72rem;letter-spacing:.2em}.bt-meta{font-size:8.5px}}
@media(prefers-reduced-motion:reduce){.bm-track{animation:none;flex-wrap:wrap;width:auto;justify-content:center}.bm-track li[aria-hidden]{display:none}}
tr.row-off td{opacity:.45}
.rd-left.is-reel img{aspect-ratio:9/16;max-height:82svh;width:auto;max-width:100%;margin:0 auto;object-fit:cover}
.rd-left.is-reel{text-align:center}
.rcard .ph img[src^="data:"]{object-position:50% 78%}
.lb-x{display:none;position:absolute;top:10px;right:10px;z-index:5;width:40px;height:40px;border-radius:50%;background:rgba(20,16,12,.7);color:#F1E9DD;font-size:15px}
.reel-modal{position:relative}
@media(max-width:760px){.lb-x{display:grid;place-items:center}}
@media(max-width:1060px){.reel-row{grid-template-columns:repeat(3,1fr)}.reel-grid{grid-template-columns:repeat(3,1fr)}.proof{grid-template-columns:1fr 1fr}.proof>div:nth-child(2){border-right:none}.proof>div:nth-child(-n+2){border-bottom:1px solid var(--hair)}}
@media(max-width:760px){.reel-lb{grid-template-columns:1fr;max-height:none}.lb-media{min-height:0;height:min(70svh,560px)}.lb-frame{min-height:0}.lb-info{max-height:none}.modal-box.reel-modal{max-height:92svh;overflow-y:auto}}
@media(max-width:640px){.reel-row,.reel-grid{grid-template-columns:1fr 1fr;gap:10px}.reel-meta b{font-size:.92rem}.reel-search{flex-direction:column}.reel-search select{width:100%}.proof b{font-size:1.8rem}}
@media (hover:none){.reel-play{opacity:.9;transform:none}}

/* ============ REVIEW FIXES (Oct 2026) ============ */
:root{--terra-t:#8F553E}
html[data-theme="espresso"],.sec-dark,.ftr,.mnav{--terra-t:#B87960}
.sec-burg,.close-band{--terra-t:#E2B8A4}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* touch targets — 44px minimum */
.chip,.btn,.abtn,.acc-h,.menu-btn,.nl-mini button,.nl-mini input,.lb-nav .abtn,#to-top{min-height:44px}
.btn.sm{min-height:44px;display:inline-flex;align-items:center}
.chip{display:inline-flex;align-items:center}
.hdr-nav a,.ig-mini,.tlink,.ftr-bottom a{display:inline-flex;align-items:center;min-height:44px}
.ftr a.fl{display:flex;align-items:center;min-height:44px;padding:0}
.menu-btn{min-width:44px}
.skip{min-height:44px;display:inline-flex;align-items:center}
.wordmark{min-height:44px;display:inline-flex;align-items:center}
.abtn{min-width:44px;display:inline-flex;align-items:center;justify-content:center}
.mnav .close{min-height:44px;min-width:44px}
.mnav a.big{min-height:44px;display:flex;align-items:center}
.mnav .foot a,.mnav .foot span{display:inline-flex;align-items:center;min-height:44px}
.lb-x{width:44px!important;height:44px!important}
.consent{min-height:44px;align-items:center}
.consent input{width:22px;height:22px;flex:none}
/* image failure: show the alt text instead of a blank hole */
.img-fail{background:repeating-linear-gradient(135deg,var(--bg2) 0 10px,transparent 10px 20px)!important;position:relative}
.img-fail::after{content:attr(data-fail);position:absolute;left:14px;right:14px;bottom:14px;font-family:var(--ff-m);font-size:11px;letter-spacing:.06em;color:var(--ink2);z-index:2}
/* hero proof line (visible in the first viewport) */
.hero-proof{list-style:none;display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:26px;font-size:.88rem;color:var(--ink2)}
.hero-proof li{display:flex;align-items:center;gap:6px}
.hero-proof b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.hero-proof .vf{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:11px}
a.hero-tag{text-decoration:none}a.hero-tag:hover{color:var(--accent)}
/* intro / about facts */
.intro-quote{margin-top:26px;font-family:var(--ff-d);font-style:italic;font-size:clamp(1.3rem,2vw,1.7rem);color:var(--accent)}
.facts-row{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.facts-row li{font-family:var(--ff-m);font-size:11px;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--hair);border-radius:99px;padding:8px 12px;color:var(--ink2)}
.facts{margin:clamp(40px,5vw,70px) auto 0;max-width:860px;border:1px solid var(--hair);border-radius:calc(var(--rad) + 3px);padding:clamp(22px,3vw,36px);background:var(--bg)}
.facts h3{font-size:1.5rem;margin-bottom:14px}
.facts dl>div{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:12px 0;border-top:1px solid var(--hair)}
.facts dt{font-family:var(--ff-m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink2);padding-top:3px}
.facts dd{font-size:.95rem}.facts dd a{color:var(--accent);border-bottom:1px solid var(--accent)}
/* disclosure pills */
.disc-pill{display:inline-block;margin-top:10px;font-family:var(--ff-m);font-size:11px;letter-spacing:.08em;padding:5px 9px;border-radius:2px;background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent)}
.chip .cnt{opacity:1!important;color:inherit}
.timeline .live{color:#5C6148}
.disc-pill.own{background:color-mix(in srgb,var(--ink2) 9%,transparent);color:var(--ink)}
.ftr h4{color:#B4A898}.ftr .fineprint,.ftr .fineprint a{color:#B4A898}
/* why-Antara proof band */
.why{margin-top:clamp(30px,3.5vw,46px)}
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.why-grid>div{padding:24px 20px;border-right:1px solid var(--hair)}.why-grid>div:last-child{border-right:none}
.why-grid b{display:block;font-family:var(--ff-d);font-weight:400;font-size:clamp(2rem,3.4vw,3rem);line-height:1;color:var(--accent);font-variant-numeric:tabular-nums}
.why-grid span{display:block;margin-top:8px;font-size:.86rem;color:var(--ink2);max-width:26ch}
.why .fineprint{margin-top:10px}
.mk{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin-top:clamp(30px,4vw,50px);padding:clamp(22px,3vw,32px);border-radius:calc(var(--rad) + 3px);background:var(--bg2)}
.mk h3{font-size:1.5rem}.mk p{margin-top:6px;color:var(--ink2);font-size:.95rem;max-width:56ch}
/* services */
.svc-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:clamp(30px,4vw,48px)}
.svc-card{border:1px solid var(--hair);border-radius:calc(var(--rad) + 3px);padding:24px;background:var(--bg);display:flex;flex-direction:column;gap:10px}
.svc-card .n,.pack .n{font-family:var(--ff-m);font-size:11px;letter-spacing:.16em;color:var(--terra-t)}
.svc-card h3{font-size:1.3rem}.svc-card p{font-size:.92rem;color:var(--ink2)}
.svc-card .lt{margin-top:auto;padding-top:12px;border-top:1px solid var(--hair);font-size:.88rem;color:var(--ink)}
.svc-card .lt span{display:block;font-family:var(--ff-m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink2);margin-bottom:2px}
.svc-pack{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:clamp(28px,3vw,40px) 0 clamp(50px,6vw,80px)}
.pack{border:1px solid var(--hair);border-radius:calc(var(--rad) + 3px);padding:clamp(20px,2.6vw,30px);background:var(--bg)}
.pack h3{font-size:1.4rem;margin-top:8px}.pack>p{color:var(--ink2);font-size:.94rem;margin-top:8px}
.pack dl{margin-top:16px}.pack dl>div{display:grid;grid-template-columns:130px 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--hair)}
.pack dt{font-family:var(--ff-m);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink2);padding-top:2px}
.pack dd{font-size:.9rem}.pack dd ul{list-style:none;display:grid;gap:3px}.pack dd li::before{content:"— ";color:var(--terra-t)}
/* coming next + newsletter */
.next-grid{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:14px;margin-top:clamp(28px,3.5vw,44px)}
.next-card{display:flex;flex-direction:column;gap:10px;border:1px solid var(--hair);border-radius:calc(var(--rad) + 3px);padding:24px;background:var(--bg);transition:border-color .3s,transform .4s var(--ease)}
a.next-card:hover{border-color:var(--accent);transform:translateY(-3px)}
.next-card h3{font-size:1.35rem}.next-card p{font-size:.92rem;color:var(--ink2)}
.next-card .pill{align-self:flex-start}.next-card .tlink{margin-top:auto}
.next-card.nl{background:var(--bg2)}
/* case-study evidence */
.ev{list-style:none;display:grid;gap:6px;margin-top:14px;font-size:.9rem;color:var(--ink2)}
.ev li{padding-left:16px;position:relative}.ev li::before{content:"—";position:absolute;left:0;color:var(--terra-t)}
.ev b{color:var(--ink)}
/* recipes */
.allergen{margin:6px 0 34px;padding:12px 14px;border-left:2px solid var(--terra);background:var(--bg2);font-size:.88rem;color:var(--ink2)}
.allergen b{color:var(--ink);font-weight:600}
/* brand tiles: touch equivalent of hover */
.bt-touch{display:none}
@media (hover:none){.bt-touch{display:block;margin-top:8px;font-family:var(--ff-m);font-size:11px;letter-spacing:.06em;color:var(--ink2)}}
/* forms */
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.f-err{display:block;margin-top:6px;font-size:.84rem;color:#9E3A25;font-weight:500}
.sec-burg .f-err,.ftr .f-err{color:#F3B9A6}
.form-status:empty{display:none}
.form-status{margin-top:4px;padding:14px 16px;border-radius:var(--rad);font-size:.9rem;line-height:1.55}
.form-status.warn{background:color-mix(in srgb,var(--terra) 14%,var(--bg));border:1px solid color-mix(in srgb,var(--terra) 40%,transparent)}
.form-status.err{background:#F7E4DE;border:1px solid #D9A493;color:#5A2416}
.form-status a{text-decoration:underline}
.fs-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.brief-copy{white-space:pre-wrap;font-family:var(--ff-m);font-size:12px;background:var(--bg2);padding:14px;border-radius:var(--rad);margin-top:14px;color:var(--ink2)}
.ftr .form-status{color:#F1E9DD;background:rgba(241,233,221,.08);border-color:rgba(241,233,221,.2)}
.ftr .form-status a{color:#F1E9DD}
.success:focus{outline:none}
button[aria-busy=true]{opacity:.7;cursor:progress}
/* privacy prose */
.prose{max-width:720px}.prose h2{font-size:1.45rem;margin:34px 0 10px}.prose p,.prose li{color:var(--ink2);font-size:1rem;line-height:1.75}
.prose ul{padding-left:20px;display:grid;gap:6px}.prose a{color:var(--accent);text-decoration:underline}
/* menu: secondary links */
.mnav-sec{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:26px}
.mnav-sec a{display:inline-flex;align-items:center;min-height:44px;font-family:var(--ff-m);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#B4A898}
.mnav-sec a:hover{color:#F1E9DD}
/* tickers never widen the page */
.ticker,.bmarquee{contain:paint;max-width:100%}
html,body{overflow-x:clip}
/* compact mobile hero: proof inside the first screen */
@media(max-width:640px){
 .ig-mini{display:none!important}
 .ticker{display:none}
 .hero{min-height:auto;padding-top:calc(var(--hdr) + 22px)}
 .hero h1{font-size:clamp(2.3rem,11vw,3.1rem)}
 .hero .sub{margin-top:16px;font-size:1rem}
 .hero-ctas{margin-top:22px}
 .hero-proof{margin-top:18px;font-size:.84rem;gap:6px 16px}
 .hero-side,.badge,.hero-figcap{display:none!important}
 .hero-imgs{margin-top:26px;margin-bottom:10px}
 .hero-fig{aspect-ratio:4/4.2!important;max-height:62svh}
 .hero-fig img{object-position:50% 18%}
 .hero-base{display:none}
 .why-grid{grid-template-columns:1fr 1fr}.why-grid>div:nth-child(2){border-right:none}.why-grid>div:nth-child(-n+2){border-bottom:1px solid var(--hair)}
 .why-grid b{font-size:1.9rem}
 .svc-cards,.svc-pack,.next-grid{grid-template-columns:1fr}
 .pack dl>div,.facts dl>div{grid-template-columns:1fr;gap:4px}
}
@media(min-width:641px) and (max-width:1060px){.svc-cards{grid-template-columns:1fr 1fr}.next-grid{grid-template-columns:1fr 1fr}.next-card.nl{grid-column:span 2}.why-grid{grid-template-columns:1fr 1fr}.why-grid>div:nth-child(2){border-right:none}.why-grid>div:nth-child(-n+2){border-bottom:1px solid var(--hair)}}
@media(max-width:420px){.hdr-right .btn{display:none!important}}
@media print{.mk,.next-grid,.hero-proof{display:none!important}}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 [data-reveal]{opacity:1;transform:none}[data-mask] img{clip-path:none}.lm>span{transform:none}
}
