/* Chololoy® — Phase 1 wholesale theme. Shared by Shopify theme + static preview. */
:root{
  --red:#D61F26; --red-deep:#A8151C; --gold:#F5B800; --gold-soft:#FFD95A; --gold-ink:#8F6300;
  --paper:#FFF8EE; --paper-2:#FDEFD6; --ink:#1A120E; --ink-soft:#5b4c42;
  --line:rgba(26,18,14,.16); --line-light:rgba(255,248,238,.22);
  --font-heading:"Fraunces", Georgia, "Times New Roman", serif;
  --font-body:"Work Sans", "Helvetica Neue", Arial, sans-serif;
  --wrap:1320px; --gutter:clamp(20px,4.2vw,64px);
  --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 18px/1.62 var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.2em}
h1 sup,h2 sup{font-size:.38em;vertical-align:top;position:relative;top:.35em;margin-left:.04em}
h1,h2,h3,h4{font-family:var(--font-heading);font-weight:400;margin:0;letter-spacing:-.015em;line-height:1.04;font-variation-settings:"opsz" 96,"SOFT" 30}
p{margin:0 0 1em}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:absolute;left:12px;top:-60px;background:var(--ink);color:var(--paper);padding:10px 14px;z-index:99}
.skip-link:focus{top:12px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}

/* type helpers */
.eyebrow{display:inline-flex;align-items:center;gap:12px;font:600 11.5px/1.2 var(--font-body);letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin:0 0 22px}
.eyebrow::before{content:"";width:30px;height:1px;background:var(--gold)}
.on-dark .eyebrow{color:var(--gold-soft)}
.display{font-size:clamp(44px,6.6vw,98px);line-height:.96;letter-spacing:-.028em;font-variation-settings:"opsz" 144,"SOFT" 40}
.display em,.h2 em,.h3 em{font-style:italic;color:var(--red);font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1}
.on-dark .display em,.on-dark .h2 em{color:var(--gold-soft)}
.h2{font-size:clamp(34px,4.4vw,62px);line-height:1;letter-spacing:-.022em}
.h3{font-size:clamp(24px,2.2vw,31px);line-height:1.12}
.lede{font-size:clamp(18px,1.45vw,21.5px);line-height:1.6;color:var(--ink-soft);max-width:34em}
.on-dark .lede{color:rgba(255,248,238,.82)}
.small{font-size:13.5px;color:var(--ink-soft)}
.num{font-family:var(--font-heading);font-variant-numeric:lining-nums}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:12px;background:var(--red);color:var(--paper);text-decoration:none;font:600 14px/1 var(--font-body);letter-spacing:.06em;text-transform:uppercase;padding:18px 26px;border:1px solid var(--red);border-radius:2px;transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease)}
.btn:hover{background:var(--red-deep);border-color:var(--red-deep)}
.btn svg{transition:transform .35s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn--light{background:var(--paper);color:var(--red-deep);border-color:var(--paper)}
.btn--light:hover{background:var(--gold-soft);border-color:var(--gold-soft);color:var(--ink)}
.link-arrow{display:inline-flex;align-items:center;gap:10px;font:600 14px/1 var(--font-body);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;padding:6px 0;border-bottom:1px solid currentColor}
.link-arrow svg{transition:transform .35s var(--ease)}
.link-arrow:hover svg{transform:translateX(4px)}
.btn-row{display:flex;flex-wrap:wrap;align-items:center;gap:18px 30px;margin-top:38px}

/* announcement + header */
.topbar{background:var(--red-deep);color:var(--gold-soft);font:500 12px/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:38px}
.topbar a{text-decoration:none}
.lang{display:flex;gap:4px;align-items:center}
.lang a{padding:4px 6px;opacity:.6;transition:opacity .2s}
.lang a[aria-current="true"]{opacity:1;border-bottom:1px solid currentColor}
.lang a:hover{opacity:1}
.site-header{position:sticky;top:0;z-index:40;background:rgba(255,248,238,.94);backdrop-filter:saturate(1.2) blur(10px);-webkit-backdrop-filter:saturate(1.2) blur(10px);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s}
.site-header.is-stuck{border-color:var(--line)}
.site-header .wrap{display:flex;align-items:center;gap:32px;min-height:84px}
.logo{display:block;flex:0 0 auto}
.logo img{height:46px;width:auto}
.nav{display:flex;gap:30px;margin-left:auto}
.nav a{font:500 14.5px/1 var(--font-body);text-decoration:none;position:relative;padding:8px 0}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1)}
.site-header .btn{padding:14px 20px;font-size:12.5px}
.menu-toggle{display:none;margin-left:auto;background:none;border:0;padding:10px;cursor:pointer;color:var(--ink)}
.menu-toggle span{display:block;width:24px;height:1.5px;background:currentColor;margin:5px 0;transition:transform .3s}

/* hero */
.hero{position:relative;overflow:hidden}
.hero__grid{display:grid;grid-template-columns:repeat(12,1fr);gap:0 24px;align-items:stretch;min-height:min(78vh,760px)}
.hero__copy{grid-column:1/8;padding:clamp(56px,8vw,120px) 0 clamp(56px,7vw,100px);position:relative;z-index:2}
.hero__copy .lede{margin-top:30px}
.hero__visual{grid-column:8/13;position:relative;margin-right:calc(-1 * var(--gutter) - max(0px,(100vw - var(--wrap))/2))}
.hero__panel{position:absolute;inset:0 0 0 18%;background:var(--red)}
.hero__panel::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 70% at 30% 40%,rgba(255,255,255,.08),transparent 60%)}
.hero__img{position:absolute;left:-6%;top:50%;width:min(88%,470px);transform:translateY(-50%) rotate(-4deg);filter:drop-shadow(0 30px 40px rgba(40,6,6,.35));z-index:2}
.hero__spoon{position:absolute;right:5%;top:9%;width:min(52%,290px);z-index:1;transform:rotate(-24deg);opacity:.96}
.hero__caption{position:absolute;right:calc(var(--gutter) + max(0px,(100vw - var(--wrap))/2));bottom:40px;z-index:3;color:var(--gold-soft);font:500 11.5px/1.5 var(--font-body);letter-spacing:.16em;text-transform:uppercase;text-align:right;max-width:210px}
.hero__caption strong{display:block;font:italic 400 22px/1.15 var(--font-heading);letter-spacing:0;text-transform:none;color:var(--paper);margin-bottom:6px}
.hero__seal{position:absolute;left:0;bottom:clamp(40px,6vw,80px);font:italic 400 15px/1.4 var(--font-heading);color:var(--ink-soft)}

/* stats */
.stats{border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}
.stats__grid{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:34px 28px 32px;border-left:1px solid var(--line)}
.stat:first-child{border-left:0;padding-left:0}
.stat__value{font:400 clamp(40px,4.4vw,64px)/1 var(--font-heading);color:var(--red);letter-spacing:-.03em;font-variation-settings:"opsz" 144}
.stat__value sup{font-size:.42em;vertical-align:top;position:relative;top:.2em;margin-left:2px}
.stat__label{margin-top:12px;font-size:14px;line-height:1.45;color:var(--ink-soft);max-width:17em}

/* sections */
.section{padding:clamp(80px,10vw,148px) 0}
.section--tight{padding:clamp(60px,7vw,100px) 0}
.section--paper2{background:var(--paper-2)}
.section--red{background:var(--red-deep);color:var(--paper)}
.section--ink{background:var(--ink);color:var(--paper)}
.sec-head{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:end;margin-bottom:clamp(44px,5vw,72px)}
.sec-head__title{grid-column:1/8}
.sec-head__aside{grid-column:9/13;color:var(--ink-soft)}
.on-dark .sec-head__aside{color:rgba(255,248,238,.75)}
.sec-num{font:italic 400 15px/1 var(--font-heading);color:var(--gold);display:block;margin-bottom:18px;letter-spacing:.02em}

/* why */
.why{display:grid;grid-template-columns:repeat(12,1fr);gap:24px}
.why__quote{grid-column:1/6;position:sticky;top:120px;align-self:start}
.why__quote blockquote{margin:0;font:italic 300 clamp(34px,3.6vw,54px)/1.06 var(--font-heading);letter-spacing:-.02em;color:var(--red);font-variation-settings:"opsz" 144,"SOFT" 100}
.why__quote cite{display:block;margin-top:26px;font:500 12px/1.4 var(--font-body);letter-spacing:.16em;text-transform:uppercase;font-style:normal;color:var(--ink-soft)}
.why__quote .why__fig{margin-top:44px;display:flex;align-items:baseline;gap:18px;border-top:1px solid var(--line);padding-top:26px}
.why__fig b{font:400 88px/0.9 var(--font-heading);color:var(--ink);letter-spacing:-.04em}
.why__list{grid-column:7/13;display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
.point{padding:30px 0 36px;border-top:1px solid var(--line)}
.point__n{font:500 12px/1 var(--font-body);letter-spacing:.16em;color:var(--gold);margin-bottom:22px;display:block}
.point h3{font-size:25px;margin-bottom:12px}
.point p{font-size:15.5px;color:var(--ink-soft);margin:0}

/* recipe mosaic / cards */
.mosaic{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(18px,2vw,30px)}
.mosaic > :nth-child(1){grid-column:1/7;grid-row:span 2}
.mosaic > :nth-child(2){grid-column:7/10}
.mosaic > :nth-child(3){grid-column:10/13}
.mosaic > :nth-child(4){grid-column:7/10}
.mosaic > :nth-child(5){grid-column:10/13}
.mosaic > :nth-child(1){display:flex;flex-direction:column}
.mosaic > :nth-child(1) .card__media{aspect-ratio:auto;flex:1 1 auto;min-height:420px}
.mosaic > :nth-child(1) .card__title{font-size:clamp(30px,3vw,44px)}
.card{display:block;text-decoration:none;color:inherit}
.card__media{position:relative;overflow:hidden;aspect-ratio:4/3.3;background:var(--paper-2)}
.card__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease),filter .6s}
.card:hover .card__media img{transform:scale(1.045)}
.card__media--plate{background:var(--red)}
.card__media--plate img{object-fit:contain;padding:8% 10%;filter:drop-shadow(0 24px 30px rgba(30,5,5,.35))}
.card__tag--new{background:var(--gold)!important;color:var(--ink)!important}
.card__tag{position:absolute;left:14px;top:14px;background:var(--paper);color:var(--ink);font:600 10.5px/1 var(--font-body);letter-spacing:.16em;text-transform:uppercase;padding:8px 10px}
.card__body{padding-top:18px}
.card__meta{font:500 12px/1.3 var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);display:flex;gap:10px;flex-wrap:wrap}
.card__meta span+span::before{content:"·";margin-right:10px;color:var(--gold)}
.card__title{font-size:25px;margin-top:10px;line-height:1.1;transition:color .3s}
.card:hover .card__title{color:var(--red)}
.recipe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:56px 30px}
.recipe-grid .card:nth-child(3n+2){margin-top:64px}
.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:48px}
.filters button{font:500 13px/1 var(--font-body);letter-spacing:.08em;text-transform:uppercase;background:none;border:1px solid var(--line);color:var(--ink);padding:12px 16px;border-radius:40px;cursor:pointer;transition:all .25s}
.filters button:hover{border-color:var(--ink)}
.filters button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.card[hidden]{display:none}

/* story teaser */
.story{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:center}
.story__media{grid-column:1/6;position:relative}
.arch{border-radius:999px 999px 0 0;overflow:hidden;background:var(--gold-soft);aspect-ratio:4/5.2}
.arch--logo{background:var(--paper);display:grid;place-items:center;aspect-ratio:4/4.6}
.arch--logo img{mix-blend-mode:normal!important;object-fit:contain!important;width:84%!important;height:auto!important;transform:translateY(8%)!important}
.seal{width:150px;height:auto;margin:0 0 18px -8px}
.arch img{width:100%;height:100%;object-fit:cover;object-position:50% 12%;mix-blend-mode:multiply;transform:translateY(6%) scale(1.02)}
.story__badge{position:absolute;right:-10%;bottom:-7%;width:40%;max-width:200px;filter:drop-shadow(0 18px 28px rgba(0,0,0,.35))}
.story__copy{grid-column:7/13}
.story__copy p{color:rgba(255,248,238,.84);max-width:33em}
.story__copy .h2{margin-bottom:30px}
.story__sign{font:italic 400 21px/1.3 var(--font-heading);color:var(--gold-soft);margin:30px 0 0}

/* spec sheet */
.spec{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:start}
.spec__table{grid-column:1/8;margin:0;border-top:1px solid var(--ink)}
.spec__row{display:grid;grid-template-columns:minmax(150px,1fr) 2fr;gap:24px;padding:22px 0;border-bottom:1px solid var(--line);transition:background .3s}
.spec__row dt{font:600 12px/1.5 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);padding-top:4px}
.spec__row dd{margin:0;font:400 21px/1.35 var(--font-heading);letter-spacing:-.005em}
.spec__row dd small{display:block;font:400 14.5px/1.5 var(--font-body);color:var(--ink-soft);margin-top:6px;letter-spacing:0}
.spec__side{grid-column:9/13;position:sticky;top:120px}
.scale-card{background:var(--red);color:var(--paper);padding:36px 34px 38px;position:relative;overflow:hidden}
.scale-card .eyebrow{color:var(--gold-soft)}
.scale-card h3{font-size:30px;margin-bottom:22px}
.scale-card ol{list-style:none;padding:0;margin:0;counter-reset:s}
.scale-card li{counter-increment:s;display:grid;grid-template-columns:34px 1fr;padding:12px 0;border-top:1px solid var(--line-light);font-size:15.5px}
.scale-card li::before{content:counter(s,decimal-leading-zero);font:italic 400 16px/1.5 var(--font-heading);color:var(--gold-soft)}
.scale-card__fig{display:flex;align-items:baseline;gap:12px;margin-bottom:10px}
.scale-card__fig b{font:400 72px/1 var(--font-heading);letter-spacing:-.04em}
.fit{margin-top:30px;padding:26px 0 0;border-top:1px solid var(--line)}
.fit ul{list-style:none;padding:0;margin:14px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.fit li{font-size:13.5px;border:1px solid var(--line);padding:8px 12px;border-radius:40px}

/* videos */
.videos{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:24px}
.video{position:relative;display:block;color:var(--paper);text-decoration:none}
.video__frame{position:relative;aspect-ratio:4/5;overflow:hidden;background:#1a110d}
.video:first-child .video__frame{aspect-ratio:auto;height:100%;min-height:420px}
.video__frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,12,9,0) 35%,rgba(20,12,9,.85) 100%);pointer-events:none}
.video__frame--plate{background:var(--red-deep)}
.video__frame--plate img{object-fit:contain;padding:10%;opacity:.8}
.video__frame img{width:100%;height:100%;object-fit:cover;opacity:.9;filter:saturate(.9);transition:opacity .6s,transform 1.2s var(--ease)}
.video:hover .video__frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,12,9,0) 35%,rgba(20,12,9,.85) 100%);pointer-events:none}
.video__frame--plate{background:var(--red-deep)}
.video__frame--plate img{object-fit:contain;padding:10%;opacity:.8}
.video__frame img{opacity:.7;transform:scale(1.04)}
.video__frame iframe,.video__frame video{position:absolute;inset:0;width:100%;height:100%;border:0}
.video__play{position:absolute;left:24px;bottom:24px;width:58px;height:58px;border-radius:50%;border:1px solid rgba(255,248,238,.7);display:grid;place-items:center;transition:background .3s,border-color .3s}
.video:hover .video__play{background:var(--red);border-color:var(--red)}
.video__info{position:absolute;left:24px;right:24px;bottom:100px}
.video__info h3{font-size:28px}
.video__status{position:absolute;top:20px;left:24px;font:600 10.5px/1 var(--font-body);letter-spacing:.18em;text-transform:uppercase;background:var(--gold);color:var(--ink);padding:8px 10px}

/* retail band */
.retail{background:var(--gold-soft);color:var(--ink)}
.retail .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:96px;flex-wrap:wrap;padding-top:22px;padding-bottom:22px}
.retail p{margin:0;font:italic 400 clamp(20px,2vw,26px)/1.25 var(--font-heading)}
.retail span{font:600 11.5px/1 var(--font-body);letter-spacing:.2em;text-transform:uppercase}

/* CTA */
.cta{background:var(--red);color:var(--paper);position:relative;overflow:hidden}
.cta__grid{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:center}
.cta__title{grid-column:1/8}
.cta__aside{grid-column:9/13}
.cta__aside p{color:rgba(255,248,238,.85)}
.cta__mail{display:block;font:400 clamp(22px,2vw,28px)/1.2 var(--font-heading);text-decoration:none;border-bottom:1px solid var(--line-light);padding-bottom:10px;margin:8px 0 26px;word-break:break-all;transition:border-color .3s}
.cta__mail:hover{border-color:var(--gold-soft)}

/* footer */
.footer{background:var(--ink);color:rgba(255,248,238,.78);padding:80px 0 36px;font-size:15px}
.footer__grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:40px}
.footer h4{font:600 11.5px/1 var(--font-body);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:20px}
.footer ul{list-style:none;padding:0;margin:0}
.footer li{margin:0 0 10px}
.footer a{text-decoration:none;transition:color .2s}
.footer a:hover{color:var(--paper)}
.footer__brand img{height:52px;width:auto;margin-bottom:22px}
.footer__brand p{max-width:26em;font:italic 400 19px/1.4 var(--font-heading);color:var(--paper)}
.footer__base{margin-top:64px;padding-top:26px;border-top:1px solid rgba(255,248,238,.14);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;color:rgba(255,248,238,.55)}

/* page hero (inner pages) */
.page-hero{padding:clamp(64px,8vw,120px) 0 clamp(40px,5vw,64px);border-bottom:1px solid var(--line)}
.page-hero__grid{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:end}
.page-hero__grid > :first-child{grid-column:1/9}
.page-hero__grid > :last-child{grid-column:9/13}

/* recipe detail */
.recipe{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;padding:clamp(48px,6vw,90px) 0 clamp(80px,9vw,130px)}
.recipe__media{grid-column:1/7}
.recipe__media figure{margin:0}
.recipe__media .main{aspect-ratio:4/3.2;overflow:hidden;background:var(--paper-2)}
.recipe__media .main img{width:100%;height:100%;object-fit:cover}
.recipe__media .main--plate{background:var(--red)}
.recipe__media .main--plate img{object-fit:contain;padding:6% 12%}
.recipe__media .thumbs{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.recipe__media .thumbs img{aspect-ratio:4/3;object-fit:cover;width:100%}
.recipe__body{grid-column:8/13}
.recipe__head{grid-column:1/13;display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:end;padding-bottom:36px;margin-bottom:12px;border-bottom:1px solid var(--line)}
.recipe__head > div:first-child{grid-column:1/9}
.recipe__facts{grid-column:9/13;display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:18px 0}
.recipe__facts div{border-left:1px solid var(--line);padding:0 0 0 18px}
.recipe__facts b{display:block;font:400 30px/1 var(--font-heading);color:var(--red)}
.recipe__facts span{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}
.recipe h2{font-size:30px;margin:0 0 18px}
.ingredients{list-style:none;padding:0;margin:0 0 44px}
.ingredients li{padding:11px 0;border-bottom:1px solid var(--line);font-size:16px}
.ingredients li.sub{border:0;padding-top:24px;font:600 12px/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.ingredients li.hl{color:var(--red);font-weight:500}
.steps{list-style:none;padding:0;margin:0;counter-reset:st}
.steps li{counter-increment:st;display:grid;grid-template-columns:48px 1fr;padding:0 0 22px;font-size:16px}
.steps li::before{content:counter(st);font:italic 400 28px/1 var(--font-heading);color:var(--gold)}
.note{background:var(--paper-2);border-left:2px solid var(--gold);padding:18px 22px;font-size:15px;margin:10px 0 30px}
.recipe__pdf{margin-top:12px}

/* story page */
.chapter{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:start}
.chapter__label{grid-column:1/4}
.chapter__text{grid-column:5/12;font-size:19px;line-height:1.7}
.chapter__text p:first-child::first-letter{float:left;font:400 5.2em/.82 var(--font-heading);color:var(--red);margin:.06em .1em 0 0}
.ornament{width:min(360px,70%);margin:0 auto;opacity:.95}
.timeline{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.timeline li{padding:30px 30px 36px 0;border-top:1px solid var(--line-light)}
.timeline li:not(:nth-child(3n+1)){padding-left:30px;border-left:1px solid var(--line-light)}
.timeline b{display:block;font:400 42px/1 var(--font-heading);color:var(--gold-soft);margin-bottom:14px;letter-spacing:-.02em}
.timeline p{margin:0;color:rgba(255,248,238,.82);font-size:15.5px}
.portrait-split{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:center}
.portrait-split .arch{grid-column:7/12;grid-row:1}
.portrait-split > div:last-child{grid-column:1/6;grid-row:1}
.states{columns:3;font-size:15px;color:var(--ink-soft);margin:14px 0 0;padding:0;list-style:none}
.states li{padding:3px 0}

/* contact */
.contact{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;padding:clamp(56px,6vw,90px) 0 clamp(80px,9vw,130px)}
.contact__form{grid-column:1/8}
.contact__side{grid-column:9/13}
.field{display:flex;flex-direction:column;gap:8px;margin-bottom:22px}
.field label{font:600 11.5px/1 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}
.field input,.field select,.field textarea{font:400 17px/1.4 var(--font-body);color:var(--ink);background:transparent;border:0;border-bottom:1px solid rgba(26,18,14,.35);padding:12px 0;border-radius:0;transition:border-color .25s;-webkit-appearance:none;appearance:none}
.field select{background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 12px) 55%,calc(100% - 6px) 55%;background-size:6px 6px;background-repeat:no-repeat}
.field textarea{min-height:130px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--red)}
.fields-2{display:grid;grid-template-columns:1fr 1fr;gap:0 30px}
.form-msg{padding:16px 18px;margin-bottom:24px;background:var(--paper-2);border-left:2px solid var(--gold)}
.person{background:var(--ink);color:var(--paper);padding:36px 34px}
.person .eyebrow{color:var(--gold-soft)}
.person h3{font-size:34px;margin-bottom:6px}
.person .small{color:rgba(255,248,238,.65)}
.person dl{margin:26px 0 0}
.person dt{font:600 11px/1 var(--font-body);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-soft);margin-top:20px}
.person dd{margin:8px 0 0;font:400 20px/1.3 var(--font-heading)}
.person dd a{text-decoration:none;border-bottom:1px solid var(--line-light)}
.person dd small{display:block;font:400 13px/1.4 var(--font-body);color:rgba(255,248,238,.6);margin-top:4px}
.reminders{margin-top:28px}
.reminders li{padding:12px 0;border-bottom:1px solid var(--line);font-size:15px;list-style:none}
.reminders ul{padding:0;margin:0}
.faq details{border-bottom:1px solid var(--line);padding:22px 0}
.faq summary{cursor:pointer;list-style:none;font:400 22px/1.3 var(--font-heading);display:flex;justify-content:space-between;gap:20px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--gold);font-size:26px;line-height:1;transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:14px 0 0;color:var(--ink-soft);max-width:44em}

/* rich text (Shopify page content) */
.rte{max-width:44em}
.rte h2{font-size:32px;margin:1.4em 0 .5em}
.rte ul,.rte ol{padding-left:1.2em}


/* v2: bolder home */
.stats--3 .stats__grid{grid-template-columns:repeat(3,1fr)}
.stats--3 .stat{padding:44px 36px 42px}
.stats--3 .stat:first-child{padding-left:0}
.stats--3 .stat__value{font-size:clamp(48px,5.6vw,84px)}
.stats--3 .stat__label{font-size:16px}
.feature{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:center;background:var(--paper-2)}
.feature__media{height:100%;min-height:min(78vh,760px);overflow:hidden}
.feature__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease)}
.feature:hover .feature__media img{transform:scale(1.03)}
.feature__copy{padding:clamp(48px,6vw,110px) clamp(24px,5vw,96px) clamp(48px,6vw,110px) clamp(32px,5vw,88px);max-width:640px}
.feature__copy .h2{margin-bottom:28px}
.feature__dish{margin-top:22px;font:italic 400 18px/1.4 var(--font-heading);color:var(--ink-soft)}
.feature__dish a{color:var(--red)}
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,36px)}
.trio .card__media{aspect-ratio:4/5}
.trio .card__title{font-size:clamp(24px,2.2vw,32px)}
.why__quote{grid-column:1/11!important;position:static!important}
.why__list{grid-column:1/-1!important;grid-template-columns:repeat(3,1fr)!important;gap:0 40px!important;margin-top:48px}
.why .point h3{font-size:clamp(26px,2.4vw,34px)}
.why .point p{font-size:17px;max-width:30em}
.why__quote blockquote{font-size:clamp(40px,4.6vw,68px)}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink);margin-bottom:10px}
.tile{padding:34px 30px 38px 0;border-bottom:1px solid var(--line)}
.tile:not(:nth-child(3n+1)){padding-left:30px;border-left:1px solid var(--line)}
.tile b{display:block;font:400 clamp(44px,4.6vw,68px)/1 var(--font-heading);color:var(--red);letter-spacing:-.03em;font-variation-settings:"opsz" 144}
.tile span{display:block;margin-top:14px;font-size:16px;color:var(--ink-soft);max-width:18em}
.video__info p{color:rgba(255,248,238,.78);margin:8px 0 0;font-size:15px}
.lang button{background:none;border:0;color:inherit;font:inherit;letter-spacing:inherit;cursor:pointer;padding:4px 6px;opacity:.6}
.lang button[aria-current="true"]{opacity:1;border-bottom:1px solid currentColor}
.lang form,.lang{margin:0}
.story .lede{color:rgba(255,248,238,.86)}
@media (max-width:900px){
  .why__list{grid-template-columns:1fr!important;margin-top:8px}
  .stats--3 .stats__grid{grid-template-columns:1fr}
  .stats--3 .stat{padding:26px 0;border-left:0!important;border-top:1px solid var(--line)}
  .stats--3 .stat:first-child{border-top:0}
  .feature{display:block}
  .feature__media{min-height:0;aspect-ratio:4/3.4}
  .feature__copy{padding:48px var(--gutter) 56px}
  .trio{grid-template-columns:1fr;gap:40px}
  .trio .card__media{aspect-ratio:4/3.6}
  .tiles{grid-template-columns:1fr 1fr}
  .tile,.tile:not(:nth-child(3n+1)){padding:26px 14px 28px 0;border-left:0}
  .tile:nth-child(even){padding-left:16px;border-left:1px solid var(--line)}
  .tile b{font-size:40px}.tile span{font-size:14.5px}
}

/* reveal — v1.4: content is ALWAYS visible by default (no JS = no hiding, above the fold never hidden).
   1) Browsers with scroll-driven animations: pure CSS, runs off the scroll position (no JS, no layout work).
   2) Others: theme.js adds .rv-wait ONLY to elements that start below the fold, and .is-in when they arrive. */
@keyframes rv-in{from{opacity:0;translate:0 36px}to{opacity:1;translate:0 0}}
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .js .reveal{animation:rv-in linear both;animation-timeline:view();animation-range:entry 0% entry 85%}
    .js .reveal-d1{animation-range:entry 6% entry 95%}
    .js .reveal-d2{animation-range:entry 12% cover 32%}
    .js .reveal-d3{animation-range:entry 18% cover 36%}
  }
  .rv-wait{opacity:0;translate:0 30px}
  .rv-wait.is-in{opacity:1;translate:0 0;transition:opacity .8s var(--ease),translate 1s cubic-bezier(.16,.84,.2,1)}
  .rv-wait.reveal-d1.is-in{transition-delay:.08s}.rv-wait.reveal-d2.is-in{transition-delay:.16s}.rv-wait.reveal-d3.is-in{transition-delay:.24s}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important;transition-duration:.01ms!important;transition-delay:0s!important}
}

/* responsive */
@media (max-width:1080px){
  .nav{gap:20px}.site-header .btn{display:none}
  .why__list{grid-column:6/13;grid-template-columns:1fr}
}
@media (max-width:900px){
  body{font-size:16.5px}
  .menu-toggle{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;gap:0;background:var(--paper);border-bottom:1px solid var(--line);padding:8px var(--gutter) 24px}
  .nav.is-open{display:flex}
  .nav a{padding:16px 0;border-bottom:1px solid var(--line);font-size:18px}
  .nav a::after{display:none}
  .site-header .wrap{min-height:70px}.logo img{height:38px}
  .topbar .wrap{font-size:10.5px;letter-spacing:.1em}
  .hero__grid{display:block;min-height:0}
  .hero__copy{padding:48px 0 40px}
  .hero__visual{margin:0 calc(-1 * var(--gutter));height:min(96vw,520px)}
  .hero__panel{inset:0 0 0 12%}
  .hero__img{left:2%;width:min(62%,340px)}
  .hero__spoon{width:44%;top:6%}
  .hero__caption{right:var(--gutter);top:auto;bottom:18px;max-width:170px}
  .story__badge{width:130px;right:-4%;bottom:-5%}
  .hero__caption strong{font-size:18px}
  .hero__seal{display:none}
  .stats__grid{grid-template-columns:1fr 1fr}
  .stat{padding:26px 18px}.stat:nth-child(odd){border-left:0;padding-left:0}
  .stat:nth-child(n+3){border-top:1px solid var(--line)}
  .sec-head,.why,.story,.spec,.cta__grid,.page-hero__grid,.recipe,.recipe__head,.chapter,.portrait-split,.contact{display:block}
  .sec-head__aside{margin-top:18px}
  .why__quote{position:static;margin-bottom:40px}
  .why__list{grid-template-columns:1fr}
  .mosaic{grid-template-columns:1fr 1fr;gap:28px 16px}
  .mosaic > *{grid-column:auto!important;grid-row:auto!important}
  .mosaic > :nth-child(1){grid-column:1/-1!important}
  .mosaic .card__title{font-size:19px}
  .recipe-grid{grid-template-columns:1fr 1fr;gap:36px 16px}
  .recipe-grid .card:nth-child(3n+2){margin-top:0}
  .recipe-grid .card:nth-child(even){margin-top:40px}
  .recipe-grid .card__title{font-size:20px}
  .story__media{max-width:420px;margin:0 auto 64px}
  .story__badge{right:-2%}
  .spec__side{position:static;margin-top:44px}
  .spec__row{grid-template-columns:1fr;gap:6px}
  .videos{grid-template-columns:1fr;gap:16px}
  .video:first-child .video__frame{min-height:0;aspect-ratio:4/3}
  .video__frame{aspect-ratio:4/3}
  .cta__aside{margin-top:32px}
  .footer__grid{grid-template-columns:1fr 1fr}
  .footer__brand{grid-column:1/-1}
  .page-hero__grid > :last-child{margin-top:20px}
  .recipe__facts{margin-top:28px}
  .recipe__body{margin-top:44px}
  .chapter__text{margin-top:18px;font-size:17.5px}
  .timeline{grid-template-columns:1fr}
  .timeline li,.timeline li:not(:nth-child(3n+1)){padding:24px 0;border-left:0}
  .portrait-split .arch{max-width:380px;margin:0 auto 40px}
  .contact__side{margin-top:56px}
  .fields-2{grid-template-columns:1fr}
}
@media (max-width:520px){
  .btn-row{gap:18px}
  .btn{width:100%;justify-content:center}
  .recipe-grid,.mosaic{grid-template-columns:1fr}
  .recipe-grid .card:nth-child(even){margin-top:0}
  .mosaic .card__title{font-size:23px}
  .topbar .hide-sm{display:none}
}

/* Shopify rich text: recipe articles + blocks */
.rte-plain p{margin:0;font-size:17px;color:var(--ink-soft);max-width:30em}
.recipe-content h2{font-size:30px;margin:0 0 18px}
.recipe-content h3{font:600 12px/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:24px 0 4px}
.recipe-content ul{list-style:none;padding:0;margin:0 0 44px}
.recipe-content ul li{padding:11px 0;border-bottom:1px solid var(--line);font-size:16px}
.recipe-content ol{list-style:none;padding:0;margin:0 0 20px;counter-reset:st}
.recipe-content ol li{counter-increment:st;display:grid;grid-template-columns:48px 1fr;padding:0 0 22px;font-size:16px}
.recipe-content ol li::before{content:counter(st);font:italic 400 28px/1 var(--font-heading);color:var(--gold)}
.recipe-content blockquote{background:var(--paper-2);border-left:2px solid var(--gold);padding:18px 22px;font-size:15px;margin:10px 0 30px}
.recipe-content strong{color:var(--red);font-weight:500}
.video__frame--live::after{display:none}
.pagination,.btn-row .page{font-size:15px}

/* ---- Shop (retail demo): header cart, product, collection, cart ---- */
.cart-link{position:relative;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;color:var(--ink);text-decoration:none;border-radius:50%;transition:background .25s}
.cart-link:hover{background:var(--paper-2)}
.cart-link__count{position:absolute;top:2px;right:0;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--red);color:var(--paper);font:600 10.5px/18px var(--font-body);text-align:center}
.crumbs{display:flex;gap:10px;align-items:center;margin-bottom:28px;letter-spacing:.08em;text-transform:uppercase;font-size:11.5px}
.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--red)}
.crumbs span{color:var(--gold)}
.pdp-section{padding-top:clamp(28px,4vw,48px)}
.pdp{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:start}
.pdp__gallery{position:sticky;top:110px}
.pdp__main{background:var(--paper-2);aspect-ratio:1/1;overflow:hidden}
.pdp__slide{margin:0;width:100%;height:100%}
.pdp__slide img{width:100%;height:100%;object-fit:cover}
.pdp__slide--logo{display:flex;align-items:center;justify-content:center}.pdp__slide--logo img{width:60%;height:auto;object-fit:contain}
.pdp__thumbs{display:flex;gap:12px;margin-top:14px}
.pdp__thumb{flex:0 0 84px;height:84px;padding:0;border:1px solid transparent;background:var(--paper-2);cursor:pointer;opacity:.7;transition:opacity .25s,border-color .25s}
.pdp__thumb img{width:100%;height:100%;object-fit:cover}
.pdp__thumb[aria-pressed="true"],.pdp__thumb:hover{opacity:1;border-color:var(--red)}
.pdp__info{padding-top:8px}
.pdp__title{font-size:clamp(38px,4.4vw,64px);margin-bottom:22px}
.pdp__price{display:flex;align-items:baseline;gap:14px;font:400 30px/1 var(--font-heading);color:var(--red);margin:0 0 8px}
.pdp__price s{font-size:20px;color:var(--ink-soft)}
.pdp__note{margin:0 0 6px}
.pdp__form{margin-top:30px;padding-top:28px;border-top:1px solid var(--line)}
.pdp__option{border:0;padding:0;margin:0 0 26px}
.pdp__option legend{font:600 11.5px/1 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:14px;padding:0}
.pills{display:flex;flex-wrap:wrap;gap:10px}
.pill{position:relative;cursor:pointer}
.pill input{position:absolute;opacity:0;inset:0;cursor:pointer}
.pill span{display:inline-flex;align-items:center;min-height:50px;padding:0 22px;border:1px solid rgba(26,18,14,.28);font:500 15px/1 var(--font-body);transition:border-color .2s,background .2s,color .2s}
.pill:hover span{border-color:var(--ink)}
.pill input:checked+span{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.pill input:focus-visible+span{outline:2px solid var(--gold);outline-offset:3px}
.pill input:disabled+span{opacity:.4;text-decoration:line-through}
.pdp__buy{display:flex;gap:12px;align-items:stretch}
.qty{display:inline-flex;align-items:stretch;border:1px solid rgba(26,18,14,.28)}
.qty button{width:44px;background:none;border:0;font:400 20px/1 var(--font-body);cursor:pointer;color:var(--ink)}
.qty button:hover{color:var(--red)}
.qty input{width:48px;text-align:center;border:0;background:transparent;font:500 16px/1 var(--font-body);color:var(--ink);-moz-appearance:textfield;appearance:textfield}
.qty input::-webkit-outer-spin-button,.qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.pdp__atc{flex:1;justify-content:center}
.pdp__atc[disabled]{opacity:.45;cursor:not-allowed}
.pdp__desc{margin-top:34px}
.pdp__points{list-style:none;padding:0;margin:30px 0 0;border-top:1px solid var(--line)}
.pdp__points li{display:grid;grid-template-columns:minmax(120px,.8fr) 1.6fr;gap:18px;padding:16px 0;border-bottom:1px solid var(--line)}
.pdp__points b{font:400 20px/1.2 var(--font-heading);color:var(--red)}
.pdp__points span{font-size:15.5px;color:var(--ink-soft)}
.pdp__wholesale{margin-top:34px;padding:24px 26px;background:var(--paper-2);border-left:3px solid var(--gold)}
.pdp__wholesale p{margin:0 0 12px;font-size:15.5px}
.page-hero--compact{padding:clamp(48px,6vw,88px) 0 clamp(28px,4vw,44px)}
.page-hero--compact .lede{max-width:640px;margin-top:18px}
.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:48px 28px}
.pcard{display:block;text-decoration:none;color:inherit}
.pcard__media{aspect-ratio:1/1;background:var(--paper-2);overflow:hidden}
.pcard__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.pcard:hover .pcard__media img{transform:scale(1.04)}
.pcard__body{padding-top:20px}
.pcard__title{font-size:27px;line-height:1.1;transition:color .3s}
.pcard:hover .pcard__title{color:var(--red)}
.pcard__meta{margin:8px 0 0;text-transform:uppercase;letter-spacing:.12em;font-size:12px}
.pcard__price{font:400 22px/1 var(--font-heading);color:var(--red);margin:14px 0 18px}
.pagination{margin-top:48px;text-align:center}
.cart-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:44px;flex-wrap:wrap}
.cart-head .display{font-size:clamp(44px,5.6vw,80px)}
.cart{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:clamp(32px,5vw,72px);align-items:start}
.cart__row{display:grid;grid-template-columns:1fr 150px 120px;gap:20px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}
.cart__row--head{padding:0 0 14px;text-transform:uppercase;letter-spacing:.14em;font-size:11.5px}
.cart__row--head span:last-child,.cart__line-total{text-align:right}
.cart__item{display:flex;gap:18px;align-items:center}
.cart__img{flex:0 0 96px;height:96px;background:var(--paper-2);overflow:hidden}
.cart__img img{width:100%;height:100%;object-fit:cover}
.cart__title{font:400 22px/1.15 var(--font-heading);text-decoration:none}
.cart__title:hover{color:var(--red)}
.cart__item p{margin:4px 0 0}
.cart__qty{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.cart__qty .qty input{width:64px;height:44px}
.cart__remove{color:var(--ink-soft)}
.cart__line-total{font:400 20px/1 var(--font-heading)}
.cart__summary{position:sticky;top:110px;background:var(--paper-2);padding:32px 30px}
.cart__subtotal{display:flex;justify-content:space-between;align-items:baseline;font:400 24px/1.2 var(--font-heading);margin-bottom:8px}
.cart__subtotal b{font-weight:400;color:var(--red)}
.cart__checkout{width:100%;justify-content:center;margin-top:18px}
.cart__update{display:block;margin:14px auto 0;background:none;border:0;text-decoration:underline;cursor:pointer;color:var(--ink-soft)}
.cart__wholesale{margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}
.cart__wholesale p{margin:0 0 10px}
.cart-empty{padding:40px 0 80px}
.cart-empty .lede{margin-bottom:28px}
@media (max-width:900px){
  .cart-link{margin-left:auto}
  .cart-link~.menu-toggle{margin-left:0}
  .pdp{display:block}
  .pdp__gallery{position:static;margin:0 calc(-1 * var(--gutter)) 32px}
  .pdp__thumbs{padding:0 var(--gutter)}
  .product-grid{grid-template-columns:1fr 1fr;gap:36px 16px}
  .pcard__title{font-size:21px}
  .cart{display:block}
  .cart__summary{position:static;margin-top:36px}
  .cart__row{grid-template-columns:1fr auto;gap:14px}
  .cart__row--head{display:none}
  .cart__qty{grid-column:1;flex-direction:row;align-items:center;gap:16px;padding-left:114px}
  .cart__line-total{grid-column:2;grid-row:2}
}
@media (max-width:520px){
  .product-grid{grid-template-columns:1fr}
  .pdp__buy{flex-wrap:wrap}.pdp__buy .qty{flex:0 0 auto}.pdp__atc{flex:1 1 auto;width:auto}
  .pdp__points li{grid-template-columns:1fr;gap:4px}
  .cart__img{flex-basis:72px;height:72px}
  .cart__qty{padding-left:90px}
}
.cart-section{padding-top:clamp(40px,5vw,72px)}
.pdp__title sup,.pcard__title sup,.cart__title sup{font-size:.42em;vertical-align:top;position:relative;top:.3em;margin-left:.03em}
/* 2026 polish: cross-page view transitions, scroll-linked progress, micro-interactions */
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.28s;animation-timing-function:var(--ease)}
.site-header{view-transition-name:site-header}
@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}
@supports (animation-timeline:scroll()){
  @media (prefers-reduced-motion:no-preference){
    .template-article main::before{content:"";position:fixed;left:0;top:0;height:3px;width:100%;background:var(--gold);transform-origin:0 50%;transform:scaleX(0);z-index:60;animation:read-progress linear both;animation-timeline:scroll(root)}
    @keyframes read-progress{to{transform:scaleX(1)}}
    .hero__img,.feature__media img{animation:drift linear both;animation-timeline:view();animation-range:entry 0% exit 100%}
    @keyframes drift{from{translate:0 18px}to{translate:0 -18px}}
  }
}
.pdp__atc{position:relative;transition:background .3s,border-color .3s,transform .15s}
.pdp__atc:active{transform:scale(.985)}
.pdp__atc.is-busy{opacity:.75}
.pdp__atc.is-added{background:var(--ink);border-color:var(--ink)}
.pdp__status{min-height:1.4em;margin:10px 0 0}
.pdp__status a{color:var(--red);font-weight:600}
[data-price-value]{display:inline-block;transition:opacity .2s}
.cart-link.is-bump .cart-link__count{animation:bump .5s var(--ease)}
@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.45)}100%{transform:scale(1)}}
.recipe-search{max-width:560px;margin:0 0 26px}
.recipe-search__label{display:block;font:600 11.5px/1 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:10px}
.recipe-search input{width:100%;font:400 20px/1.3 var(--font-heading);color:var(--ink);background:transparent;border:0;border-bottom:1px solid rgba(26,18,14,.35);padding:12px 0;border-radius:0;-webkit-appearance:none;appearance:none}
.recipe-search input:focus{outline:0;border-color:var(--red)}
.recipe-search input::placeholder{color:rgba(26,18,14,.4)}
.recipe-search p{margin:14px 0 0}
@media (max-width:900px){
  .template-product .pdp__buy{position:sticky;bottom:0;z-index:30;background:var(--paper);padding:12px 0;margin:0;box-shadow:0 -1px 0 var(--line)}
}
.product-feature{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:center}
.product-feature__media{display:block;aspect-ratio:1/1;background:var(--paper-2);overflow:hidden}
.product-feature__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.product-feature__media:hover img{transform:scale(1.03)}
.product-feature .h2 sup{font-size:.42em;vertical-align:top;position:relative;top:.3em}
.size-list{list-style:none;padding:0;margin:28px 0 32px;border-top:1px solid var(--line)}
.size-list a{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);text-decoration:none;transition:color .25s,padding .25s}
.size-list a:hover{color:var(--red);padding-left:6px}
.size-list b{font:400 20px/1 var(--font-heading);color:var(--red)}
@media (max-width:900px){.product-feature{display:block}.product-feature__media{margin:0 calc(-1 * var(--gutter)) 32px}}

/* ==== v1.2 kinetic layer ==== */
main{overflow-x:clip}
/* paper-grain texture on the red surfaces (SVG noise, ~0.4 KB, no image request) */
.hero__panel::before,.section--red::before,.cta::before,.marquee::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.22;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.6 -.3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.section--red{position:relative}
.section--red>.wrap,.cta>.wrap{position:relative;z-index:1}

/* split-word headline */
.reveal[data-split].is-split{animation:none;opacity:1;translate:none}
.w{display:inline-block;overflow:hidden;vertical-align:top;padding:.06em .08em .14em 0;margin:-.06em -.08em -.14em 0}
.w__i{display:inline-block}
.kinetic .is-split:not(.is-in):not([data-split="scrub"]) .w__i{transform:translateY(112%)}
.kinetic .is-split.is-in:not([data-split="scrub"]) .w__i{animation:word-up 1.05s cubic-bezier(.16,.84,.2,1) both;animation-delay:calc(var(--i) * 55ms + .1s)}
@keyframes word-up{from{transform:translateY(112%) rotate(5deg)}to{transform:none}}
/* scroll-lit quote */
[data-split="scrub"] .w{overflow:visible}
.kinetic [data-split="scrub"] .w__i{opacity:.16;transition:opacity .45s var(--ease),color .45s}
.kinetic [data-split="scrub"] .w.is-lit .w__i{opacity:1}

/* hero signature: the spoonful */
.hero--kinetic .hero__plate{position:absolute;inset:0;z-index:2;transform-origin:32% 50%}
.hero__dust{position:absolute;right:11%;top:11%;width:70px;height:30px;z-index:3;pointer-events:none;display:none}
.hero__dust i{position:absolute;left:calc(var(--x) * 1px);top:0;width:var(--s,4px);height:var(--s,4px);border-radius:50%;background:#E8452C;opacity:0}
.hero__dust i:nth-child(3n){background:var(--gold-soft)}
.hero__dust i:nth-child(4n){background:#A8151C}
.hero__dust i:nth-child(1){--x:6;--s:5px;--dx:-40px;animation-delay:.0s}
.hero__dust i:nth-child(2){--x:18;--s:3px;--dx:-70px;animation-delay:.4s}
.hero__dust i:nth-child(3){--x:30;--s:4px;--dx:-30px;animation-delay:.9s}
.hero__dust i:nth-child(4){--x:10;--s:3px;--dx:-90px;animation-delay:1.3s}
.hero__dust i:nth-child(5){--x:40;--s:5px;--dx:-55px;animation-delay:1.7s}
.hero__dust i:nth-child(6){--x:24;--s:2px;--dx:-20px;animation-delay:2.1s}
.hero__dust i:nth-child(7){--x:50;--s:4px;--dx:-80px;animation-delay:2.4s}
.hero__dust i:nth-child(8){--x:14;--s:3px;--dx:-45px;animation-delay:2.8s}
.hero__dust i:nth-child(9){--x:36;--s:4px;--dx:-100px;animation-delay:3.1s}
.hero__dust i:nth-child(10){--x:2;--s:2px;--dx:-35px;animation-delay:3.5s}
.hero__dust i:nth-child(11){--x:44;--s:3px;--dx:-65px;animation-delay:3.9s}
.hero__dust i:nth-child(12){--x:28;--s:5px;--dx:-85px;animation-delay:4.3s}
@keyframes dust{0%{opacity:0;transform:translate(0,0) scale(1)}12%{opacity:.95}100%{opacity:0;transform:translate(var(--dx),230px) scale(.5)}}
@media (prefers-reduced-motion:no-preference){
  .js .hero__dust{display:block}
  .js .hero__dust i{animation-name:dust;animation-duration:4.8s;animation-iteration-count:infinite;animation-timing-function:cubic-bezier(.3,.1,.6,1)}
  .js .hero--kinetic .hero__panel{animation:panel-in 1.1s cubic-bezier(.7,0,.2,1) both}
  .js .hero--kinetic .hero__plate{animation:plate-in 1.4s cubic-bezier(.16,.84,.2,1) .1s both}
  .js .hero--kinetic .hero__spoon{animation:spoon-in 1.1s cubic-bezier(.16,.84,.2,1) .6s both}
  .js .hero--kinetic .hero__caption{animation:fade-up .9s var(--ease) 1s both}
  .js .hero__title em{background:linear-gradient(var(--gold),var(--gold)) 0 94%/0% .07em no-repeat;animation:ink-line 1.2s cubic-bezier(.65,0,.25,1) .45s forwards}
  @keyframes ink-line{to{background-size:100% .07em}}
  @keyframes panel-in{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0)}}
  /* transform only — the plate is painted (and counted for LCP) from the first frame */
  @keyframes plate-in{from{scale:.86;rotate:-26deg}to{scale:1;rotate:0deg}}
  @keyframes spoon-in{from{opacity:0;translate:60px -40px}to{opacity:.96;translate:0 0}}
  @keyframes fade-up{from{opacity:0;translate:0 14px}to{opacity:1;translate:0 0}}
}
@supports (animation-timeline:scroll()){
  @media (prefers-reduced-motion:no-preference){
    .hero--kinetic .hero__img{animation:plate-spin linear both;animation-timeline:scroll(root);animation-range:0 90vh}
    @keyframes plate-spin{to{rotate:48deg;translate:0 -30px}}
    .hero--kinetic .display{animation:hero-drift linear both;animation-timeline:scroll(root);animation-range:0 80vh}
    @keyframes hero-drift{to{translate:0 -60px;opacity:.35}}
    /* feature image opens from a pill-shaped mask */
    .feature__media{animation:mask-open linear both;animation-timeline:view();animation-range:entry 0% cover 42%}
    .feature__media img{animation:img-settle linear both;animation-timeline:view();animation-range:entry 0% exit 100%}
    @keyframes mask-open{from{clip-path:inset(10% 22% 10% 4% round 999px)}to{clip-path:inset(0 0 0 0 round 0)}}
    @keyframes img-settle{from{scale:1.25}to{scale:1}}
    /* rotating seal ring + giant CTA word follow scroll */
    .story__ring{animation:ring-spin linear both;animation-timeline:scroll(root)}
    @keyframes ring-spin{to{rotate:720deg}}
    .cta__band{animation:band-slide linear both;animation-timeline:view();animation-range:cover 0% cover 100%}
    @keyframes band-slide{from{transform:translate(4%,-50%)}to{transform:translate(-34%,-50%)}}
  }
}

/* velocity marquee strip */
.marquee{position:relative;z-index:4;overflow:hidden;background:var(--red-deep);color:var(--paper);padding:clamp(14px,1.7vw,24px) 0;border-block:1px solid rgba(255,217,90,.28)}
.marquee--gold{background:var(--gold-soft);color:var(--ink)}
.marquee--ink{background:var(--ink)}
.marquee--tilt{rotate:-1.6deg;margin:-14px -2vw -6px;box-shadow:0 18px 40px -20px rgba(60,10,10,.55)}
.marquee__track{display:flex;width:max-content;will-change:transform}
.marquee__group{display:flex;align-items:center;flex-shrink:0;transform:skewX(var(--skew,0deg));transition:transform .2s linear}
.marquee__item{font:italic 400 clamp(34px,5.2vw,78px)/1.05 var(--font-heading);letter-spacing:-.02em;white-space:nowrap;font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1}
.marquee__item--outline{font-style:normal;color:transparent;-webkit-text-stroke:1px var(--gold-soft);font-variation-settings:"opsz" 144}
.marquee--gold .marquee__item--outline{-webkit-text-stroke-color:var(--red)}
.marquee__star{width:clamp(16px,1.8vw,26px);height:auto;margin:0 clamp(18px,2.4vw,40px);fill:var(--gold);flex-shrink:0}
@media (prefers-reduced-motion:no-preference){.kinetic .marquee__star{animation:star 6s linear infinite}@keyframes star{to{rotate:360deg}}}
@supports not (-webkit-text-stroke:1px black){.marquee__item--outline{color:var(--gold-soft)}}

/* odometer stats */
.odo{display:inline-flex;vertical-align:top}
.odo__d{display:inline-block;height:1em;overflow:hidden}
.odo__s{display:flex;flex-direction:column;transform:translateY(0)}
.odo__s span{display:block;height:1em;line-height:1}
.is-in .odo__s{transform:translateY(calc(var(--d) * -1em));transition:transform 1.9s cubic-bezier(.16,.9,.16,1) calc(var(--i) * .13s + .15s)}

/* story ring badge */
.story__ring{position:absolute;right:-4%;top:-6%;width:clamp(116px,12.5vw,184px);height:auto;z-index:2;filter:drop-shadow(0 14px 24px rgba(0,0,0,.3))}
.story__ring text{font:600 13.2px/1 var(--font-body);letter-spacing:.2em;text-transform:uppercase;fill:var(--red-deep)}

/* giant outline word behind CTA */
.cta__band{position:absolute;left:0;top:50%;transform:translate(0,-50%);display:flex;gap:.18em;white-space:nowrap;font:italic 400 clamp(150px,24vw,400px)/.9 var(--font-heading);letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1px rgba(255,217,90,.26);pointer-events:none;z-index:0;user-select:none}

/* cursor label + magnetic buttons (fine pointers only, set up by JS) */
.cursor-label{position:fixed;left:0;top:0;z-index:95;width:104px;height:104px;margin:-52px 0 0 -52px;border-radius:50%;background:var(--gold);color:var(--ink);display:grid;place-items:center;padding:14px;text-align:center;font:600 11px/1.25 var(--font-body);letter-spacing:.16em;text-transform:uppercase;pointer-events:none;scale:0;transition:scale .4s cubic-bezier(.16,.84,.2,1);mix-blend-mode:normal}
.cursor-label.is-on{scale:1}
.is-magnetic{transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),translate .35s cubic-bezier(.16,.84,.2,1)}
.card[data-cursor]:hover .card__media img{transform:scale(1.06)}

@media (max-width:900px){
  .marquee--tilt{rotate:-2.4deg;margin:-10px -4vw -2px}
  .story__ring{right:2%;top:-4%;width:108px}
  /* recipe trio becomes a swipeable rail */
  .trio{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:78%;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(-1 * var(--gutter));padding:0 var(--gutter) 8px;scrollbar-width:none;overscroll-behavior-x:contain}
  .trio::-webkit-scrollbar{display:none}
  .trio>*{scroll-snap-align:start}
  .cta__band{font-size:clamp(120px,38vw,220px)}
}
@media (prefers-reduced-motion:reduce){.marquee--tilt{rotate:0deg;margin:0}.hero__dust{display:none}}

/* scroll story: family STORY carousel + spoon pour (v1.5) */
.ritual{background:var(--ink);color:var(--paper);position:relative;--pour:0}
.ritual__stage{padding:clamp(72px,9vw,130px) 0;overflow:hidden}
.ritual__grid{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:center}
.ritual__copy{grid-column:1/7;position:relative;z-index:2;min-width:0}
.ritual .sec-num{color:var(--gold)}
.ritual__title-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin:10px 0 8px}
.ritual__heading{margin:0;max-width:14em;color:var(--paper);font-size:clamp(28px,3.4vw,44px)}
.ritual__heading em{color:var(--gold-soft);font-style:italic}
.ritual__hint{margin:0 0 18px;color:rgba(255,248,238,.62);font-size:15px;max-width:34em}
.ritual__nav{display:flex;align-items:center;gap:12px;flex:none}
.ritual__btn{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--gold);background:transparent;color:var(--gold-soft);font-size:18px;cursor:pointer;transition:background .3s,color .3s,border-color .3s,transform .25s}
.ritual__btn:hover{background:var(--red);color:var(--paper);border-color:var(--red)}
.ritual__btn:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.ritual__count{font-size:16px;color:rgba(255,248,238,.55);min-width:3.5em;text-align:center}
.ritual__count b{color:var(--gold);font-weight:600}
.ritual__track{display:grid;grid-auto-flow:column;grid-auto-columns:100%;gap:0;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;margin:0;padding:2px 0 6px}
.ritual__track::-webkit-scrollbar{display:none}
.ritual__slide{scroll-snap-align:start;scroll-snap-stop:always;margin:0;display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:clamp(18px,2.4vw,28px);align-items:start;padding:clamp(14px,1.8vw,22px) 0;border-top:1px solid var(--line-light);opacity:.4;transition:opacity .5s var(--ease)}
.ritual__slide.is-on{opacity:1}
.ritual__slide-media{min-width:0;aspect-ratio:4/5;border-radius:2px;overflow:hidden;background:rgba(255,248,238,.06);display:grid;place-items:center;width:100%;max-width:320px}
.ritual__slide-media img{width:100%;height:100%;object-fit:cover;display:block}
.ritual__slide--beat .ritual__slide-media img{object-fit:contain;padding:10%}
.ritual__slide-media--photo img,.ritual__photo{object-fit:cover}
.ritual__slide-copy{min-width:0;padding-top:2px}
.ritual__n{display:block;font:500 12px/1 var(--font-body);letter-spacing:.18em;color:var(--gold);margin-bottom:10px}
.ritual__eyebrow{display:inline-block;margin-bottom:8px;font:600 11px/1.4 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-soft)}
.ritual__t{margin:0 0 12px;font:400 clamp(28px,3.6vw,52px)/1.05 var(--font-heading);letter-spacing:-.025em;font-variation-settings:"opsz" 144;color:var(--paper);max-width:14em}
.ritual__slide:nth-child(2) .ritual__t{font-style:italic;color:var(--gold-soft);font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1}
.ritual__body{color:rgba(255,248,238,.72);font-size:clamp(15px,1.15vw,17px);line-height:1.55;max-width:32em}
.ritual__body p{margin:0 0 .65em}
.ritual__body p:last-child{margin-bottom:0}
.ritual__foot{margin:16px 0 0;font:italic 400 clamp(17px,1.4vw,21px)/1.35 var(--font-heading);color:rgba(255,248,238,.7)}
.ritual__bar,.ritual__dots{display:flex;gap:8px;margin-top:22px;max-width:360px;height:auto;background:transparent}
.ritual__dots span{display:block;height:3px;width:26px;background:var(--line-light);transition:background .4s,width .4s var(--ease)}
.ritual__dots span.is-on{background:var(--gold);width:56px}
.ritual__cta{margin-top:28px}
.ritual__cta .btn--light{box-shadow:none}
/* v1.5.0 (Eduardo): spoon only — no white plate/bowl, no halo disc. The spoon tips and pours powder over the banner. */
.ritual__visual{grid-column:7/13;position:relative;aspect-ratio:1/1;width:min(100%,560px);justify-self:center;--fall:300px;pointer-events:none}
.ritual__arm{position:absolute;left:4%;top:24%;width:88%;z-index:3;transform-origin:6% 55%;rotate:var(--spoon-rot);transition:rotate .6s cubic-bezier(.2,.8,.2,1),translate .6s cubic-bezier(.2,.8,.2,1);will-change:transform}
.ritual__spoon{display:block;width:100%;height:auto;filter:drop-shadow(0 18px 20px rgba(0,0,0,.5))}
/* emitter sits on the spoon head and counter-rotates so the powder always falls straight down */
.ritual__pour{display:block;position:absolute;right:5%;top:40%;width:64px;height:10px;opacity:0;rotate:calc(-1 * var(--spoon-rot));transform-origin:50% 0;pointer-events:none}
.ritual__pour i{position:absolute;left:calc(var(--x) * 1px);top:0;width:var(--s,5px);height:var(--s,5px);border-radius:50%;background:#E8452C;opacity:0}
.ritual__pour i:nth-child(3n){background:var(--gold-soft)}
.ritual__pour i:nth-child(4n){background:#A8151C}
.ritual__pour i:nth-child(1){--x:4;--s:5px;--dx:-14px;--d:0ms}
.ritual__pour i:nth-child(2){--x:14;--s:3px;--dx:-30px;--d:60ms}
.ritual__pour i:nth-child(3){--x:24;--s:4px;--dx:8px;--d:110ms}
.ritual__pour i:nth-child(4){--x:34;--s:3px;--dx:-22px;--d:170ms}
.ritual__pour i:nth-child(5){--x:44;--s:5px;--dx:14px;--d:220ms}
.ritual__pour i:nth-child(6){--x:54;--s:2px;--dx:-40px;--d:280ms}
.ritual__pour i:nth-child(7){--x:10;--s:4px;--dx:20px;--d:330ms}
.ritual__pour i:nth-child(8){--x:20;--s:3px;--dx:-8px;--d:380ms}
.ritual__pour i:nth-child(9){--x:30;--s:5px;--dx:-34px;--d:430ms}
.ritual__pour i:nth-child(10){--x:40;--s:2px;--dx:26px;--d:480ms}
.ritual__pour i:nth-child(11){--x:50;--s:4px;--dx:-18px;--d:540ms}
.ritual__pour i:nth-child(12){--x:8;--s:3px;--dx:4px;--d:590ms}
.ritual__pour i:nth-child(13){--x:28;--s:2px;--dx:-26px;--d:640ms}
.ritual__pour i:nth-child(14){--x:46;--s:3px;--dx:12px;--d:700ms}
.ritual__pour i:nth-child(15){--x:16;--s:4px;--dx:-10px;--d:90ms}
.ritual__pour i:nth-child(16){--x:36;--s:3px;--dx:18px;--d:150ms}
.ritual__pour i:nth-child(17){--x:6;--s:2px;--dx:-28px;--d:200ms}
.ritual__pour i:nth-child(18){--x:52;--s:4px;--dx:6px;--d:260ms}
.ritual__pour i:nth-child(19){--x:22;--s:3px;--dx:-16px;--d:310ms}
.ritual__pour i:nth-child(20){--x:42;--s:5px;--dx:-36px;--d:360ms}
.ritual__pour i:nth-child(21){--x:12;--s:2px;--dx:22px;--d:420ms}
.ritual__pour i:nth-child(22){--x:32;--s:4px;--dx:-4px;--d:470ms}
.ritual__pour i:nth-child(23){--x:58;--s:3px;--dx:-24px;--d:520ms}
.ritual__pour i:nth-child(24){--x:18;--s:4px;--dx:10px;--d:600ms}
/* soft powder puff where the stream fades — blurred, no edges (never reads as a plate) */
.ritual__haze{position:absolute;right:6%;top:calc(30% + var(--fall) * .8);width:40%;height:12%;z-index:2;border-radius:50%;background:radial-gradient(closest-side,rgba(232,69,44,.32),rgba(214,31,38,.1) 60%,transparent);filter:blur(18px);opacity:0;pointer-events:none}
/* pour on swipe-right */
.ritual{--spoon-rot:-16deg}
.ritual.is-pouring{--spoon-rot:14deg}
.ritual.is-pouring .ritual__arm{translate:0 2%}
.ritual.is-pouring .ritual__pour{opacity:1}
.ritual.is-pouring .ritual__pour i{animation:pour-burst 1.15s cubic-bezier(.3,.6,.4,1) both;animation-delay:calc(180ms + var(--d))}
.ritual.is-pouring .ritual__haze{animation:pour-haze 1.6s ease-out .45s both}
@keyframes pour-burst{
  0%{transform:translate(0,0) scale(1);opacity:0}
  10%{opacity:1}
  75%{opacity:.85}
  100%{transform:translate(var(--dx,0),var(--fall,300px)) scale(.5);opacity:0}
}
@keyframes pour-haze{0%{opacity:0;transform:scale(.6)}35%{opacity:.9}100%{opacity:0;transform:scale(1.25)}}
@media (max-width:900px){
  .ritual__stage{padding:clamp(48px,9vw,72px) 0 clamp(56px,10vw,80px)}
  .ritual__grid{grid-template-columns:1fr;gap:8px}
  .ritual__copy{grid-column:1/-1;order:2}
  /* short strip above the copy: spoon never overlaps text, powder stays inside the strip */
  .ritual{--spoon-rot:-10deg}
  .ritual.is-pouring{--spoon-rot:7deg}
  .ritual__visual{grid-column:1/-1;order:1;width:100%;max-width:520px;aspect-ratio:auto;height:clamp(180px,44vw,250px);overflow:hidden;--fall:clamp(96px,24vw,140px)}
  .ritual__arm{left:6%;top:26%;width:min(80%,420px)}
  .ritual__haze{top:auto;bottom:4%;height:28%}
  .ritual__t{font-size:clamp(26px,7.2vw,38px)}
  /* phones/tablets: large photo above copy (was 96px thumb = old compact look) */
  .ritual__slide{grid-template-columns:1fr;gap:16px;padding:16px 0 4px}
  .ritual__slide-media{aspect-ratio:5/4;width:100%;max-height:min(52vh,420px)}
  .ritual__slide-media--photo img,.ritual__photo{object-position:50% 28%}
  .ritual__slide--beat .ritual__slide-media img{padding:6%}
  .ritual__nav{width:100%;justify-content:space-between}
  .ritual__heading{font-size:clamp(26px,7vw,36px);max-width:none}
  .ritual__hint{font-size:14.5px}
  .ritual__eyebrow{font-size:12px}
  .ritual__body{font-size:16px;max-width:none}
  .ritual__dots{max-width:none}
  .ritual__dots span{height:4px}
}
@media (max-width:640px){
  .ritual__visual{height:clamp(170px,50vw,210px)}
  .ritual__arm{left:4%;top:24%;width:86%}
  .ritual__slide-media{max-height:min(58vh,440px)}
  .ritual__t{font-size:clamp(28px,8.4vw,36px);max-width:none}
  .ritual__foot{font-size:17px}
  .ritual__cta .btn{width:100%;justify-content:center}
}
@media (prefers-reduced-motion:reduce){
  .ritual__arm{transition:none}
  .ritual.is-pouring .ritual__pour i,.ritual.is-pouring .ritual__haze{animation:none}
  .ritual.is-pouring{--spoon-rot:var(--spoon-rest,-12deg)}
}
/* v1.5.0 · Our Story / family stewards — big photo column (Eduardo) */
.family-split{display:grid;grid-template-columns:repeat(12,1fr);gap:24px clamp(24px,3vw,48px);align-items:center}
.family-split__media{grid-column:6/13;grid-row:1;min-width:0;position:relative;overflow:hidden;border-radius:2px;background:var(--paper-3,rgba(0,0,0,.04));box-shadow:0 40px 80px -40px rgba(40,10,0,.35)}
.family-split__media img,.family-split__img{display:block;width:100%;height:auto;aspect-ratio:4/5;max-height:min(90vh,940px);object-fit:cover;object-position:50% 30%}
.family-split__copy{grid-column:1/6;grid-row:1;min-width:0}
.family-split__h{margin-bottom:26px}
@media (max-width:900px){
  .family-split{display:block}
  .family-split__media{margin:0 calc(-1 * var(--gutter) / 2) 36px}
  .family-split__media img,.family-split__img{aspect-ratio:4/5;max-height:82vh}
  .family-split__h{margin-bottom:18px}
}
@media (max-width:640px){
  .family-split__media{margin:0 calc(-1 * var(--gutter)) 30px;border-radius:0;box-shadow:none}
  .family-split__media img,.family-split__img{aspect-ratio:3/4;max-height:86vh}
}

/* odometer: each column is sized to its final digit */
.odo__d{position:relative}
.odo__ph{visibility:hidden}
.odo__s{position:absolute;left:50%;top:0;translate:-50% 0;align-items:center}

/* ==== v1.3 award pass ==== */
:root{interpolate-size:allow-keywords}
/* page transitions: a soft paper wipe between pages */
@media (prefers-reduced-motion:no-preference){
  ::view-transition-old(root){animation:vt-out .32s var(--ease) both}
  ::view-transition-new(root){animation:vt-in .5s var(--ease) both}
  @keyframes vt-out{to{opacity:0;transform:translateY(-12px)}}
  @keyframes vt-in{from{clip-path:inset(100% 0 0 0);transform:translateY(24px)}to{clip-path:inset(0 0 0 0);transform:none}}
}
/* global scroll progress (every page) */
@supports (animation-timeline:scroll()){
  @media (prefers-reduced-motion:no-preference){
    body::after{content:"";position:fixed;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--red),var(--gold));transform-origin:0 50%;transform:scaleX(0);z-index:70;pointer-events:none;animation:read-progress linear both;animation-timeline:scroll(root)}
  }
}
/* filter chips: counts + staggered pop */
.filters__n{font-size:10px;margin-left:6px;opacity:.6;top:-.4em;position:relative;font-variant-numeric:tabular-nums}
.is-pop{animation:pop .55s var(--ease) both;animation-delay:calc(var(--k,0) * 45ms)}
@keyframes pop{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}

/* pairing grid */
.pairing__chips{margin-bottom:28px}
.pairing__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.pair[hidden]{display:none}
.pair__inner{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;background:var(--red-deep);color:var(--paper);text-decoration:none;border-radius:2px;isolation:isolate}
.pair__media,.pair__media img{position:absolute;inset:0;width:100%;height:100%}
.pair__media img{object-fit:cover;transition:transform 1s var(--ease),filter .6s var(--ease)}
.pair__media img.pair__logo{object-fit:contain;padding:18%;background:var(--red)}
.pair__inner::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,18,14,0) 45%,rgba(26,18,14,.78));z-index:1;transition:opacity .5s}
.pair__cap{position:absolute;left:18px;right:18px;bottom:18px;z-index:2;transition:transform .5s var(--ease),opacity .4s}
.pair__cat{display:block;font:600 10.5px/1 var(--font-body);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:8px}
.pair__title{display:block;font:400 clamp(21px,1.8vw,27px)/1.08 var(--font-heading)}
.pair__back{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:12px;padding:26px;background:var(--red);clip-path:circle(0% at 85% 12%);transition:clip-path .7s var(--ease)}
.pair__amt{font:400 clamp(40px,3.8vw,60px)/.95 var(--font-heading);color:var(--gold-soft);letter-spacing:-.03em}
.pair__tip{font-size:15px;line-height:1.45;color:rgba(255,248,238,.88)}
.pair__go{margin-top:6px;font:600 12px/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:4px}
.pair__inner:hover .pair__back,.pair__inner:focus-visible .pair__back,.pair__inner.is-flip .pair__back{clip-path:circle(150% at 85% 12%)}
.pair__inner:hover img{transform:scale(1.08) rotate(.6deg)}
.pairing__grid .pair:nth-child(4n+2){margin-top:34px}.pairing__grid .pair:nth-child(4n+4){margin-top:-22px}

/* shop by size */
.sizes__switch{display:inline-flex;margin-top:22px;border:1px solid var(--ink);border-radius:999px;padding:4px;gap:2px}
.sizes__switch button{font:600 12px/1 var(--font-body);letter-spacing:.1em;text-transform:uppercase;background:none;border:0;border-radius:999px;padding:11px 16px;color:var(--ink);cursor:pointer;transition:background .3s,color .3s}
.sizes__switch button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.sizes__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch}
.size{position:relative;display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);padding:34px 30px 30px;transition:transform .5s var(--ease),box-shadow .5s var(--ease),opacity .45s,filter .45s}
.size:hover{transform:translateY(-6px);box-shadow:0 26px 50px -30px rgba(168,21,28,.45)}
.size--featured{background:var(--red);color:var(--paper);border-color:var(--red)}
.size--featured .size__for,.size--featured dt{color:var(--gold-soft)}
.size--featured .size__name,.size--featured .size__weight{color:var(--paper)}
.size--featured .btn{background:var(--paper);color:var(--red-deep);border-color:var(--paper)}
.size.is-dim{opacity:.32;filter:grayscale(.8);transform:scale(.98)}
.size__badge{position:absolute;top:-13px;right:22px;background:var(--gold);color:var(--ink);font:600 10.5px/1 var(--font-body);letter-spacing:.16em;text-transform:uppercase;padding:8px 11px}
.size__for{font:600 11px/1.2 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--red);margin:0 0 18px}
.size__name{font-size:clamp(30px,2.8vw,42px);color:var(--ink)}
.size__weight{font-size:17px;color:var(--ink-soft);margin:6px 0 22px}
.size--featured .size__weight{opacity:.8}
.size__meter{height:6px;background:rgba(26,18,14,.1);border-radius:6px;overflow:hidden;margin-bottom:22px}
.size--featured .size__meter{background:rgba(255,248,238,.2)}
.size__meter span{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--gold),var(--red));transform-origin:0 50%;transform:scaleX(var(--v,.5));transition:transform 1.4s var(--ease) .2s}
.size--featured .size__meter span{background:var(--gold-soft)}
.js .size.reveal:not(.is-in) .size__meter span{transform:scaleX(0)}
.size__facts{margin:0 0 26px;flex:1}
.size__facts div{display:grid;grid-template-columns:90px 1fr;gap:12px;padding:11px 0;border-top:1px solid var(--line);font-size:15.5px}
.size--featured .size__facts div{border-color:var(--line-light)}
.size__facts dt{font:600 10.5px/1.6 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.size__facts dd{margin:0}
.size__cta{align-self:flex-start}
.sizes__note{margin:26px 0 0}

/* testimonials */
.quotes{overflow:hidden}
.quotes__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:44px}
.quotes__head .sec-num{width:100%}
.quotes__nav{display:flex;align-items:center;gap:16px}
.quotes__btn{width:54px;height:54px;border-radius:50%;border:1px solid var(--line-light);background:transparent;color:var(--paper);font-size:20px;cursor:pointer;transition:background .3s,color .3s,border-color .3s}
.quotes__btn:hover{background:var(--paper);color:var(--red-deep);border-color:var(--paper)}
.quotes__count{font-size:18px;color:rgba(255,248,238,.7);min-width:3.5em;text-align:center}
.quotes__count b{color:var(--gold-soft);font-weight:400}
.quotes__track{display:grid;grid-auto-flow:column;grid-auto-columns:min(78%,860px);gap:28px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:6px;overscroll-behavior-x:contain}
.quotes__track::-webkit-scrollbar{display:none}
.quote{scroll-snap-align:start;margin:0;padding:clamp(28px,4vw,56px);border:1px solid var(--line-light);position:relative;opacity:.45;transition:opacity .6s var(--ease)}
.quote.is-on{opacity:1}
.quote__flag{display:inline-block;margin-bottom:20px;background:var(--gold);color:var(--ink);font:600 10.5px/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;padding:7px 10px}
.quote__text{margin:0 0 30px;font:400 clamp(26px,2.9vw,44px)/1.14 var(--font-heading);letter-spacing:-.015em;font-variation-settings:"opsz" 144,"SOFT" 60}
.quote__who{display:flex;align-items:center;gap:16px}
.quote__who b{display:block;font-weight:600}
.quote__who small{display:block;color:rgba(255,248,238,.7);font-size:14px}
.quote__avatar{width:54px;height:54px;border-radius:50%;object-fit:cover;flex:none}
.quote__avatar--initial{display:grid;place-items:center;background:var(--gold-soft);color:var(--red-deep);font:400 24px/1 var(--font-heading)}
.quotes__dots{display:flex;gap:8px;margin-top:28px}
.quotes__dots span{height:3px;width:26px;background:var(--line-light);transition:background .4s,width .4s var(--ease)}
.quotes__dots span.is-on{background:var(--gold-soft);width:56px}

/* sample request + newsletter */
.samples__grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:start}
.samples__kit{position:relative;padding:clamp(30px,4vw,56px);background:var(--paper-2);border:1px solid var(--line)}
.samples__stamp{position:absolute;right:clamp(18px,3vw,40px);top:clamp(18px,3vw,40px);width:clamp(70px,8vw,110px);opacity:.9;transform:rotate(-8deg)}
.samples__kit .h2{max-width:11em;margin:6px 0 20px}
.samples__text{color:var(--ink-soft);max-width:34em}
.samples__steps{list-style:none;counter-reset:st;padding:0;margin:26px 0 32px;display:grid;gap:0}
.samples__steps li{counter-increment:st;display:grid;grid-template-columns:44px 1fr;column-gap:8px;padding:14px 0;border-top:1px solid var(--line)}
.samples__steps li::before{content:counter(st,decimal-leading-zero);grid-row:span 2;font:400 22px/1 var(--font-heading);color:var(--gold)}
.samples__steps b{font-weight:600}
.samples__steps span{color:var(--ink-soft);font-size:15.5px}
.samples__news{padding-top:clamp(10px,2vw,30px)}
.samples__news .h3{margin-bottom:14px}
.samples__news p{color:var(--ink-soft)}
.newsletter{margin:22px 0 12px}
.newsletter__row{display:flex;border-bottom:1px solid var(--ink)}
.newsletter__row input{flex:1;min-width:0;border:0;background:transparent;font:400 20px/1.3 var(--font-heading);color:inherit;padding:14px 0;border-radius:0}
.newsletter__row input:focus{outline:0}
.newsletter__row input::placeholder{color:currentColor;opacity:.45}
.newsletter__row .btn{padding:14px 18px}
.newsletter__ok{font:italic 400 20px/1.4 var(--font-heading);color:var(--red)}
.newsletter--footer .newsletter__row{border-color:rgba(255,248,238,.4)}
.newsletter--footer .newsletter__row input{font-size:17px;color:var(--paper)}
.newsletter--footer button{background:none;border:0;color:var(--gold-soft);font-size:22px;cursor:pointer;padding:0 4px;transition:transform .3s var(--ease)}
.newsletter--footer button:hover{transform:translateX(4px)}
.newsletter--footer .newsletter__ok{color:var(--gold-soft)}
.footer__small{font-size:14px;color:rgba(255,248,238,.6);margin:0 0 6px}

/* FAQ: numbered, smooth open */
.faq summary{align-items:baseline}
.faq__n{font-size:14px;color:var(--gold);min-width:2.4em;flex:none}
.faq__q{flex:1}
.faq summary:hover .faq__q{color:var(--red)}
.faq__a{padding-left:2.4em}
.faq__a p{margin:14px 0 0;color:var(--ink-soft);max-width:44em}
.faq details::details-content{block-size:0;overflow:hidden;transition:block-size .45s var(--ease),content-visibility .45s allow-discrete}
.faq details[open]::details-content{block-size:auto}
.faq__intro{margin:14px 0 22px;max-width:22em}
.chapter__text.faq p:first-child::first-letter{float:none;font:inherit;color:inherit;margin:0}

/* product tabs + sticky bar */
.ptabs{margin:34px 0 8px;border-top:1px solid var(--line)}
.ptabs__list{position:relative;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--line)}
.ptabs__list::-webkit-scrollbar{display:none}
.ptabs__list button{flex:none;background:none;border:0;padding:16px 14px 14px;font:600 12px/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);cursor:pointer;transition:color .25s}
.ptabs__list button:first-of-type{padding-left:0}
.ptabs__list button[aria-selected="true"],.ptabs__list button:hover{color:var(--red)}
.ptabs__ink{position:absolute;left:0;bottom:-1px;height:2px;width:0;background:var(--red);transition:transform .45s var(--ease),width .45s var(--ease)}
.ptabs__panel{padding:20px 0 4px;font-size:16px;animation:pop .45s var(--ease) both}
.ptabs__flag{display:inline-block;background:var(--gold-soft);color:var(--ink);font:600 10.5px/1.3 var(--font-body);letter-spacing:.12em;text-transform:uppercase;padding:7px 10px}
.sticky-atc{position:fixed;left:0;right:0;bottom:0;z-index:55;background:rgba(255,248,238,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);transform:translateY(110%);transition:transform .5s var(--ease)}
.sticky-atc.is-on{transform:none}
.sticky-atc__in{display:flex;align-items:center;gap:16px;padding-top:12px;padding-bottom:12px}
.sticky-atc__thumb img{width:52px;height:52px;object-fit:cover;background:var(--paper-2)}
.sticky-atc__txt{flex:1;min-width:0;display:flex;flex-direction:column}
.sticky-atc__txt b{font:400 20px/1.1 var(--font-heading);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sticky-atc__txt span{font-size:14px;color:var(--ink-soft)}
.sticky-atc__btn{padding:15px 22px}

/* footer: 5 columns, giant wordmark, back to top */
.footer__grid{grid-template-columns:1.7fr 1fr 1fr 1.2fr 1.3fr}
.footer__mark{margin:56px 0 0;overflow:hidden;line-height:1;padding-bottom:.02em;user-select:none}
.footer__mark span{display:block;padding-bottom:.16em;font:400 clamp(72px,17vw,280px)/.9 var(--font-heading);letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1px rgba(255,217,90,.35);white-space:nowrap;font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1;background:linear-gradient(90deg,var(--gold-soft),var(--gold-soft)) 0 0/0% 100% no-repeat;-webkit-background-clip:text;background-clip:text}
@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.footer__mark span{animation:mark-fill linear both;animation-timeline:view();animation-range:entry 10% cover 55%}@keyframes mark-fill{to{background-size:100% 100%}}}}
.footer__top{color:var(--gold-soft);font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:12px}

@media (max-width:1080px){.footer__grid{grid-template-columns:1fr 1fr 1fr}.footer__brand{grid-column:1/-1}.pairing__grid{grid-template-columns:repeat(3,1fr)}.pairing__grid .pair{margin-top:0!important}}
@media (max-width:900px){
  .sizes__grid{grid-template-columns:1fr;gap:26px}
  .samples__grid{grid-template-columns:1fr}
  .quotes__track{grid-auto-columns:88%}
  .quotes__nav{width:100%;justify-content:space-between}
  .sticky-atc{display:none}
}
@media (max-width:640px){
  .pairing__grid{grid-template-columns:repeat(2,1fr);gap:12px}
  .pair__back{padding:16px;gap:8px}.pair__tip{font-size:13px}.pair__cap{left:12px;right:12px;bottom:12px}
  .footer__grid{grid-template-columns:1fr 1fr}
  .footer__grid > :last-child{grid-column:1/-1}
  .size{padding:30px 22px 24px}
  .samples__stamp{width:62px}
  .samples__kit .h2{padding-right:60px}
}
@media (prefers-reduced-motion:reduce){.pair__back{transition:none}.is-pop{animation:none}.ptabs__panel{animation:none}.faq details::details-content{transition:none}}

/* ==== v1.4 — performance + "butter" motion pass ==== */
/* header: slides out of the way while reading, back on the first scroll up (transform only → no layout shift) */
.site-header{transition:border-color .3s,box-shadow .3s,transform .45s cubic-bezier(.2,.7,.2,1)}
.site-header.is-hidden{transform:translateY(-100%)}
.site-header:focus-within{transform:none}
@media (max-width:900px){.site-header{background:var(--paper);backdrop-filter:none;-webkit-backdrop-filter:none}}
/* buttons: press feedback + a soft sheen on hover (pointer devices) */
.btn{position:relative;overflow:hidden;isolation:isolate}
.btn::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.18) 50%,transparent 70%);translate:-120% 0;transition:translate .7s cubic-bezier(.2,.7,.2,1)}
@media (hover:hover){.btn:hover::after{translate:120% 0}}
.btn:active,.link-arrow:active{scale:.97}
.btn,.link-arrow{transition:background .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease),scale .18s var(--ease),translate .35s cubic-bezier(.16,.84,.2,1)}
.link-arrow{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;border-bottom-color:color-mix(in srgb,currentColor 35%,transparent);transition:background-size .45s var(--ease),scale .18s var(--ease),translate .35s cubic-bezier(.16,.84,.2,1)}
.link-arrow:hover{background-size:100% 1px}
/* cards: the media tilts (JS, pointer: fine only) and eases back */
.card__media,.pcard__media{transition:transform .6s cubic-bezier(.2,.7,.2,1);will-change:auto}
.card:hover .card__media{box-shadow:0 22px 40px -28px rgba(40,6,6,.45)}
/* add to cart: label swaps with a pop, qty number bumps */
.pdp__atc.is-added{animation:atc-pop .45s cubic-bezier(.2,1.6,.4,1)}
@keyframes atc-pop{0%{scale:1}40%{scale:1.04}100%{scale:1}}
.qty input.is-bump{animation:qty-bump .3s var(--ease)}
@keyframes qty-bump{0%{translate:0 0}40%{translate:0 -3px}100%{translate:0 0}}
/* v1.4 video slots (only rendered when a real video exists) */
.video__meta{padding:16px 2px 0}
.video__meta h3{font-size:24px}
.video__meta p{color:rgba(255,248,238,.78);margin:6px 0 0;font-size:15px}
/* missing client data: impossible to miss, easy to find (turn off in Theme settings → Content) */
.data-flag{display:inline-block;background:#ffe08a;color:#3b2a00;font:600 12px/1.35 var(--font-body);letter-spacing:.06em;padding:6px 10px;border-radius:2px}
.pdp__price--pending{font-size:inherit}
/* policy pages (Settings → Policies render inside the theme layout) */
.shopify-policy__container{max-width:760px!important;margin:0 auto;padding:clamp(48px,6vw,96px) var(--gutter)}
.shopify-policy__title h1{font:400 clamp(36px,4.6vw,60px)/1.05 var(--font-heading);margin-bottom:28px}
.shopify-policy__body{font-size:17px;line-height:1.7}
.shopify-policy__body h2,.shopify-policy__body h3{margin:1.6em 0 .5em;font-size:26px}
/* footer legal row + form privacy note */
.footer__legal{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0;padding:0;list-style:none}
.footer__legal a{text-decoration:none;opacity:.8}.footer__legal a:hover{opacity:1;text-decoration:underline}
.form-privacy{font-size:13px;line-height:1.5;opacity:.8;margin:10px 0 0}
.form-privacy a{color:inherit}
/* contrast (a11y): the inactive language button was below 4.5:1 */
.lang button{opacity:.82}
/* hero accent: the underline is drawn by CSS; in reduced motion it is simply there */
@media (prefers-reduced-motion:reduce){.hero__title em{background:linear-gradient(var(--gold),var(--gold)) 0 94%/100% .07em no-repeat}}
/* v1.4 perf: skip layout/paint of off-screen sections until they approach the viewport (fonts/images inside them are not fetched early either). */
main>.shopify-section:nth-child(n+3),footer.footer{content-visibility:auto;contain-intrinsic-size:auto 120px}
/* Empty section shells (testimonials/videos off) must not reserve a big placeholder */
main>.shopify-section:not(:has(> :not(style):not(script))){content-visibility:visible;contain-intrinsic-size:auto 0;min-height:0;height:auto;padding:0;margin:0}
/* Mobile: keep story spoon + family photo sections fully laid out (120px intrinsic made P/K photo look like a missing/tiny thumb until late scroll) */
main>.shopify-section:has(.ritual),
main>.shopify-section:has(.family-split),
main>.shopify-section:has(.family-sec),
main>.shopify-section:has(.story-carousel){
  content-visibility:visible;
  contain-intrinsic-size:auto none;
}

/* v1.5 unify */
.filters button[aria-pressed="true"]{background:var(--red);color:var(--paper);border-color:var(--red)}
.filters button:hover{border-color:var(--gold);color:var(--red)}
.card__tag{background:var(--paper);color:var(--ink);border:1px solid var(--gold-soft)}
.card__tag--new{background:var(--gold)!important;color:var(--ink)!important;border-color:var(--gold)!important}
.recipe-grid .card,.mosaic .card,.pairing .card{color:var(--ink)}
.badge,.tag-label{background:var(--gold);color:var(--ink)}
.btn{box-shadow:0 1px 0 rgba(0,0,0,.04)}
.family-slot{background:linear-gradient(160deg,var(--paper-2),var(--gold-soft));border:1px dashed var(--gold);aspect-ratio:4/3;display:grid;place-items:center;text-align:center;padding:28px;color:var(--ink-soft)}
.family-slot__label{font:600 12px/1.4 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.family-slot__hint{margin-top:12px;font:italic 400 18px/1.35 var(--font-heading);color:var(--ink);max-width:18em}
.story-video{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(28px,5vw,72px);align-items:center}
.story-video__frame{position:relative;background:var(--ink);aspect-ratio:16/11;overflow:hidden}
.story-video__frame video,.story-video__frame img{width:100%;height:100%;object-fit:cover;display:block}
.story-video__frame video{background:#000}
.story-video__poster-only{position:absolute;inset:0;display:grid;place-items:center;background:rgba(26,18,14,.35);color:var(--paper);font:600 12px/1 var(--font-body);letter-spacing:.18em;text-transform:uppercase}
@media (max-width:820px){.story-video{grid-template-columns:1fr}}

/* v1.5 home story carousel — scroll-snap, mirrors quotes__[data-slider] */
.story-carousel{overflow:hidden}
.story-carousel__head{margin-bottom:28px}
.story-carousel__title-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px}
.story-carousel__title-row .h2{margin:0;max-width:14em}
.story-carousel__hint{margin:14px 0 0;color:var(--ink-soft);font-size:15.5px;max-width:36em}
.story-carousel__nav{display:flex;align-items:center;gap:14px;flex:none}
.story-carousel__btn{width:52px;height:52px;border-radius:50%;border:1.5px solid var(--gold);background:var(--paper);color:var(--red);font-size:20px;cursor:pointer;transition:background .3s,color .3s,border-color .3s,transform .25s}
.story-carousel__btn:hover{background:var(--red);color:var(--paper);border-color:var(--red)}
.story-carousel__btn:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.story-carousel__count{font-size:17px;color:var(--ink-soft);min-width:3.5em;text-align:center}
.story-carousel__count b{color:var(--red);font-weight:600}
.story-carousel__track{display:grid;grid-auto-flow:column;grid-auto-columns:min(86%,920px);gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:4px 2px 10px;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.story-carousel__track::-webkit-scrollbar{display:none}
.story-carousel__slide{scroll-snap-align:start;margin:0;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(18px,3vw,36px);align-items:center;padding:clamp(18px,2.5vw,28px);background:var(--paper);border:1px solid var(--line);border-bottom:3px solid var(--gold);opacity:.55;transition:opacity .55s var(--ease),border-color .35s}
.story-carousel__slide.is-on{opacity:1;border-bottom-color:var(--red)}
.story-carousel__media{min-width:0;border-radius:2px;overflow:hidden;background:var(--paper-2);aspect-ratio:4/3;display:grid;place-items:center}
.story-carousel__media img{width:100%;height:100%;object-fit:cover;display:block}
.story-carousel__media--photo img{object-fit:cover}
.story-carousel__slide--beat .story-carousel__media img{object-fit:contain;padding:8%}
.story-carousel__copy{min-width:0;padding:4px 4px 4px 0}
.story-carousel__eyebrow{display:inline-block;margin-bottom:10px;font:600 11px/1.4 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-ink)}
.story-carousel__copy .h3{margin:0 0 14px;max-width:12em}
.story-carousel__text{color:var(--ink-soft);font-size:16px;line-height:1.55;max-width:32em}
.story-carousel__text p{margin:0 0 .7em}
.story-carousel__text p:last-child{margin-bottom:0}
.story-carousel__note{margin:16px 0 0;font:italic 400 15px/1.4 var(--font-heading);color:var(--ink-soft)}
.story-carousel__dots{display:flex;gap:8px;margin-top:22px}
.story-carousel__dots span{height:3px;width:26px;background:var(--line);transition:background .4s,width .4s var(--ease)}
.story-carousel__dots span.is-on{background:var(--red);width:56px}
@media (max-width:900px){
  .story-carousel__track{grid-auto-columns:92%;margin-inline:calc(-1 * var(--gutter));padding-inline:var(--gutter)}
  .story-carousel__slide{grid-template-columns:1fr;gap:16px;padding:16px}
  .story-carousel__nav{width:100%;justify-content:space-between}
  .story-carousel__media{aspect-ratio:16/11}
}
@media (max-width:640px){
  .story-carousel__hint{font-size:14.5px}
  .story-carousel__btn{width:46px;height:46px}
}


/* ==== v1.5 vivid uniform palette (red #D61F26 · deep #A8151C · gold #F5B800 · soft gold #FFD95A · paper #FFF8EE) ==== */
/* gold text on light backgrounds uses --gold-ink (AA ≥4.5:1); bright gold stays for fills, rules, and dark sections */
.sec-num,.point__n,.ingredients li.sub,.steps li::before,.recipe-content h3,.recipe-content ol li::before,.crumbs span,.faq summary::after,.faq__n,.samples__steps li::before,.card__meta span+span::before{color:var(--gold-ink)}
.on-dark .sec-num,.on-dark .point__n,.on-dark .faq__n,.on-dark .steps li::before,.on-dark .samples__steps li::before,.on-dark .card__meta span+span::before,.ritual .sec-num,.section--red .sec-num,.section--ink .sec-num{color:var(--gold)}
/* accents: bolder gold rules and red underlines */
.eyebrow::before{height:2px;background:var(--gold)}
.nav a::after{height:2px}
.nav a:hover,.nav a[aria-current="page"]{color:var(--red)}
.site-header.is-stuck{box-shadow:0 2px 0 var(--gold)}
.topbar{background:var(--red);color:var(--paper)}
.topbar a{color:var(--gold-soft)}
/* buttons + CTAs: vivid red, deep-red hover, gold focus ring */
.btn{background:var(--red);border-color:var(--red);color:#fff;box-shadow:0 6px 18px -10px rgba(214,31,38,.7)}
.btn:hover{background:var(--red-deep);border-color:var(--red-deep);color:#fff}
.btn--light{background:var(--gold);border-color:var(--gold);color:var(--ink);box-shadow:0 6px 18px -10px rgba(0,0,0,.45)}
.btn--light:hover{background:var(--gold-soft);border-color:var(--gold-soft);color:var(--ink)}
.btn:focus-visible,.link-arrow:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.link-arrow{color:var(--red)}
.on-dark .link-arrow{color:var(--gold-soft)}
.cta{background:var(--red)}
.section--red{background:var(--red-deep)}
.section--red .btn,.cta .btn{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.section--red .btn:hover,.cta .btn:hover{background:var(--gold-soft);border-color:var(--gold-soft);color:var(--ink)}
/* cards (home mosaic, recipes, blog, products, pairings): same frame, same hover */
.card__media,.pcard__media{border-bottom:3px solid var(--gold)}
.card__media--plate{background:var(--red)}
.card:hover .card__media,.pcard:hover .pcard__media{border-bottom-color:var(--red)}
.card__title,.pcard__title{color:var(--ink)}
.card:hover .card__title,.pcard:hover .pcard__title{color:var(--red)}
.card__tag{border-color:var(--gold)}
.card__tag--new,.badge,.tag-label,.size__badge,.quote__flag,.video__status{background:var(--gold)!important;color:var(--ink)!important}
.pcard__price,.stat__value{color:var(--red)}
.pair__back{background:var(--red)}
.size--featured{background:var(--red);border-color:var(--red)}
/* recipe pages: gold rules, red numbers for headings */
.note,.recipe-content blockquote,.form-msg{border-left-width:4px;border-left-color:var(--gold)}
.pdp__wholesale{border-left:4px solid var(--gold)}
.marquee{border-block-color:var(--gold)}
.marquee--gold{background:var(--gold);color:var(--ink)}
.filters button[aria-pressed="true"]{background:var(--red);color:#fff;border-color:var(--red)}
.filters button:hover{border-color:var(--gold);color:var(--red)}
::selection{background:var(--gold);color:var(--ink)}
.retail .link-arrow{color:var(--red-deep)}

/* ───────── v1.6 · Recipe video reel (sections/recipe-videos.liquid) + recipe-page video ───────── */
.rv{--rv-w:clamp(236px,21vw,312px);--rv-gap:clamp(14px,1.6vw,24px);--rv-r:6px;--rv-pad:max(var(--gutter),calc((100vw - var(--wrap))/2 + var(--gutter)));overflow:hidden;position:relative}
.rv--red{background:var(--red-deep);color:var(--paper)}
.rv--red::before{content:"";position:absolute;inset:0;background:radial-gradient(90% 60% at 85% 0%,rgba(255,217,90,.14),transparent 60%),radial-gradient(70% 50% at 0% 100%,rgba(0,0,0,.22),transparent 70%);pointer-events:none}
.rv--ink{background:var(--ink);color:var(--paper)}
.rv--paper{background:var(--paper)}
.rv .wrap{position:relative}
.rv__head{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:end;margin-bottom:clamp(36px,4.4vw,60px)}
.rv__title{grid-column:1/8}
.rv__h{font-size:clamp(40px,5.6vw,84px);line-height:.95;letter-spacing:-.03em}
.rv__aside{grid-column:9/13}
.rv__aside p{margin:0;color:rgba(255,248,238,.8);font-size:16.5px}
.rv--paper .rv__aside p{color:var(--ink-soft)}
.rv__nav{display:flex;align-items:center;gap:10px;margin-top:26px}
.rv__nav[hidden]{display:none}
.rv__count{font:400 15px/1 var(--font-heading);font-variant-numeric:lining-nums tabular-nums;margin-right:auto;opacity:.85}
.rv__count b{font-weight:400;font-size:26px;color:var(--gold-soft)}
.rv--paper .rv__count b{color:var(--red)}
.rv__arrow{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:transparent;color:inherit;border:1px solid currentColor;cursor:pointer;opacity:.9;transition:background .3s var(--ease),color .3s var(--ease),border-color .3s,opacity .3s}
.rv__arrow:hover{background:var(--paper);color:var(--red-deep);border-color:var(--paper)}
.rv--paper .rv__arrow:hover{background:var(--red);color:var(--paper);border-color:var(--red)}
.rv__arrow:disabled{opacity:.3;pointer-events:none}
.rv__track{position:relative;list-style:none;margin:0;display:grid;grid-auto-flow:column;grid-auto-columns:var(--rv-w);gap:var(--rv-gap);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--rv-pad);padding:6px var(--rv-pad) 10px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.rv__track::-webkit-scrollbar{display:none}
.rv__item{scroll-snap-align:start;min-width:0}
.rv-card{position:relative;color:var(--paper)}
.rv-card__media{position:relative;aspect-ratio:9/16;border-radius:var(--rv-r);overflow:hidden;background:#2a1712;isolation:isolate;transform:translateZ(0);box-shadow:0 18px 40px -22px rgba(0,0,0,.55);transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.rv-card__poster,.rv-card__preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease),opacity .5s var(--ease)}
.rv-card__preview{opacity:0;background:transparent}
.rv-card.is-playing .rv-card__preview{opacity:1}
.rv-card__shade{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(20,10,8,.42) 0%,rgba(20,10,8,0) 20%,rgba(20,10,8,0) 42%,rgba(20,10,8,.5) 58%,rgba(20,10,8,.86) 72%,rgba(20,10,8,.95) 100%)}
.rv-card__title,.rv-card__meta{text-shadow:0 1px 14px rgba(0,0,0,.45)}
.rv-card__num{position:absolute;z-index:2;left:16px;top:12px;font:italic 300 40px/1 var(--font-heading);letter-spacing:-.02em;color:var(--gold-soft);font-variation-settings:"opsz" 144,"SOFT" 100}
.rv-card__dur{position:absolute;z-index:2;right:12px;top:14px;font:600 11px/1 var(--font-body);letter-spacing:.12em;padding:7px 9px;border-radius:999px;background:rgba(20,10,8,.5);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.rv-card__open{position:absolute;inset:0;z-index:3;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:pointer;color:var(--paper)}
.rv-card__open:focus-visible{outline:2px solid var(--gold);outline-offset:-4px;border-radius:var(--rv-r)}
.rv-card__play{position:absolute;left:50%;top:44%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;display:grid;place-items:center;background:rgba(255,248,238,.16);border:1px solid rgba(255,248,238,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:transform .45s var(--ease),background .35s,border-color .35s,opacity .35s}
.rv-card__play svg{margin-left:3px}
.rv-card.is-playing .rv-card__play{opacity:0}
.rv-card__body{position:absolute;z-index:4;left:18px;right:18px;bottom:18px;pointer-events:none}
.rv-card__meta{margin:0 0 8px;font:600 10.5px/1.3 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-soft)}
.rv-card__title{font:400 clamp(22px,1.9vw,28px)/1.05 var(--font-heading);letter-spacing:-.015em;text-wrap:balance;margin:0 0 14px}
.rv-card__link{pointer-events:auto;display:inline-flex;align-items:center;gap:9px;font:600 11.5px/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--paper);padding:6px 0;border-bottom:1px solid rgba(255,217,90,.7)}
.rv-card__link svg{transition:transform .35s var(--ease)}
.rv-card__link:hover{color:var(--gold-soft)}
.rv-card__link:hover svg{transform:translateX(4px)}
@media (hover:hover){
  .rv-card:hover .rv-card__media{transform:translateY(-6px);box-shadow:0 28px 50px -24px rgba(0,0,0,.7)}
  .rv-card:hover .rv-card__poster,.rv-card:hover .rv-card__preview{transform:scale(1.045)}
  .rv-card:hover .rv-card__play,.rv-card__open:focus-visible .rv-card__play{opacity:1;transform:scale(1.08);background:var(--red);border-color:var(--red)}
}
.rv__foot{display:flex;align-items:center;gap:20px;margin-top:clamp(22px,2.6vw,34px)}
.rv__progress{flex:1;height:2px;background:rgba(255,248,238,.22);border-radius:2px;overflow:hidden}
.rv--paper .rv__progress{background:var(--line)}
.rv__progress span{display:block;height:100%;width:100%;background:var(--gold);transform-origin:left;transform:scaleX(.1);transition:transform .25s linear}
.rv__hint{display:none;margin:0;font:600 11px/1 var(--font-body);letter-spacing:.16em;text-transform:uppercase;opacity:.85;transition:opacity .5s}
.rv__hint span{display:inline-block}
.rv__hint.is-gone{opacity:0}
@media (max-width:900px){
  .rv__head{display:block}
  .rv__aside{margin-top:18px}
  .rv__nav{display:none!important}
}
@media (max-width:700px){
  .rv{--rv-w:min(74vw,340px);--rv-gap:12px}
  .rv__track{scroll-snap-type:x mandatory;scroll-padding-inline:calc((100vw - var(--rv-w))/2);padding-inline:calc((100vw - var(--rv-w))/2)}
  .rv__item{scroll-snap-align:center;scroll-snap-stop:always}
  .rv-card__play{opacity:.9}
  .rv__hint{display:block}
  .rv-card__title{font-size:26px}
}
/* Reel feel on phones: cards ease up to full size as they reach the centre (compositor-only, no JS) */
@supports (animation-timeline:view()){
  @media (max-width:700px) and (prefers-reduced-motion:no-preference){
    .rv-card__media{animation:rv-focus linear both;animation-timeline:view(inline);animation-range:cover 0% cover 100%}
    @keyframes rv-focus{0%,100%{transform:scale(.9);filter:brightness(.7)}35%,65%{transform:scale(1);filter:none}}
  }
}
@media (prefers-reduced-motion:no-preference){
  .rv__hint span{animation:rv-nudge 1.6s var(--ease) infinite}
  @keyframes rv-nudge{0%,100%{transform:none}50%{transform:translateX(6px)}}
}
/* modal player — native <dialog>; fullscreen on phones */
.rv-modal{padding:0;border:0;background:transparent;color:var(--paper);max-width:none;max-height:none;width:100%;height:100%;inset:0;margin:0;overflow:hidden}
.rv-modal::backdrop{background:rgba(14,8,6,.9);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.rv-modal[open]{display:grid;place-items:center}
.rv-modal__stage{position:relative;height:min(90vh,920px);height:min(90dvh,920px);aspect-ratio:9/16;max-width:94vw;border-radius:10px;overflow:hidden;background:#000;box-shadow:0 40px 120px -30px rgba(0,0,0,.8);opacity:0;transform:translateY(18px) scale(.97);transition:opacity .35s var(--ease),transform .45s var(--ease)}
.rv-modal.is-open .rv-modal__stage{opacity:1;transform:none}
.rv-modal__video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000}
.rv-modal__bar{position:absolute;left:0;right:0;top:0;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 70px 40px 22px;background:linear-gradient(180deg,rgba(0,0,0,.7),rgba(0,0,0,0));pointer-events:none}
.rv-modal__bar>*{pointer-events:auto}
.rv-modal__meta{margin:0 0 6px;font:600 10.5px/1.3 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-soft)}
.rv-modal__title{font:400 clamp(22px,2.2vw,30px)/1.05 var(--font-heading)}
.rv-modal__cta{display:none}
.rv-modal__close{position:absolute;z-index:3;right:14px;top:14px;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;border:0;background:rgba(255,248,238,.14);color:var(--paper);cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:background .3s}
.rv-modal__close:hover{background:var(--red)}
.rv-modal__step{position:fixed;top:50%;z-index:3;width:56px;height:56px;margin-top:-28px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,248,238,.5);background:transparent;color:var(--paper);cursor:pointer;transition:background .3s,border-color .3s}
.rv-modal__step:hover{background:var(--red);border-color:var(--red)}
.rv-modal__step--prev{left:max(16px,calc(50vw - min(90vh,920px)*9/32 - 96px))}
.rv-modal__step--next{right:max(16px,calc(50vw - min(90vh,920px)*9/32 - 96px))}
.rv-modal__step[hidden]{display:none}
@media (min-width:701px){
  .rv-modal__cta{display:inline-flex;position:fixed;left:50%;bottom:calc((100dvh - min(90dvh,920px))/2 - 58px);transform:translateX(-50%);padding:13px 18px;font-size:12px;white-space:nowrap}
  .rv-modal__stage{overflow:visible}
  .rv-modal__video{border-radius:10px}
  .rv-modal__bar{border-radius:10px 10px 0 0}
  .rv-modal__stage{height:min(84dvh,880px)}
  .rv-modal__cta{bottom:calc((100dvh - min(84dvh,880px))/2 - 60px)}
}
@media (max-width:700px){
  .rv-modal__stage{height:100%;width:100%;max-width:none;aspect-ratio:auto;border-radius:0}
  .rv-modal__step{display:none}
  .rv-modal__bar{top:auto;bottom:0;flex-direction:column;align-items:stretch;padding:60px 20px calc(70px + env(safe-area-inset-bottom));background:linear-gradient(0deg,rgba(0,0,0,.82),rgba(0,0,0,0))}
  .rv-modal__cta{display:inline-flex;align-self:flex-start;padding:13px 18px;font-size:12px}
  .rv-modal__close{top:calc(12px + env(safe-area-inset-top))}
}
html.rv-lock{overflow:hidden}
@media (prefers-reduced-motion:reduce){
  .rv-card__media,.rv-card__poster,.rv-card__preview,.rv-modal__stage{transition:none!important}
  .rv-card:hover .rv-card__media{transform:none}
  .rv-card:hover .rv-card__poster{transform:none}
}

/* recipe page: the dish's own video (snippets/recipe-video.liquid) */
.recipe-video{margin:clamp(22px,2.6vw,34px) 0 0;display:grid;grid-template-columns:minmax(0,300px) 1fr;gap:clamp(18px,2.4vw,32px);align-items:end}
.recipe-video__frame{position:relative;aspect-ratio:var(--rvid-ar,9/16);border-radius:6px;overflow:hidden;background:var(--ink);max-height:78vh}
.recipe-video__frame img,.recipe-video__frame video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.recipe-video__frame video{object-fit:contain;background:#000}
.recipe-video__frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,10,8,0) 55%,rgba(20,10,8,.6));pointer-events:none;transition:opacity .4s}
.recipe-video__frame.is-live::after{opacity:0}
.recipe-video__btn{position:absolute;inset:0;z-index:2;border:0;padding:0;background:transparent;cursor:pointer;color:var(--paper)}
.recipe-video__btn span{position:absolute;left:18px;bottom:18px;width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:var(--red);transition:transform .4s var(--ease),background .3s}
.recipe-video__btn:hover span{transform:scale(1.08);background:var(--red-deep)}
.recipe-video__btn svg{margin-left:3px}
.recipe-video__btn:focus-visible{outline:2px solid var(--gold);outline-offset:-4px}
.recipe-video__copy .eyebrow{margin-bottom:12px}
.recipe-video__copy h2{font-size:clamp(26px,2.4vw,34px);margin:0 0 10px}
.recipe-video__copy p{margin:0;font-size:15px;color:var(--ink-soft)}
.recipe-video--wide{grid-template-columns:1fr}
.recipe-video--wide .recipe-video__frame{--rvid-ar:4/3}
@media (max-width:900px){.recipe-video{grid-template-columns:minmax(0,220px) 1fr}.recipe-video--wide{grid-template-columns:1fr}}
@media (max-width:520px){.recipe-video{grid-template-columns:42% 1fr;gap:16px}.recipe-video__btn span{left:12px;bottom:12px;width:48px;height:48px}.recipe-video--wide{grid-template-columns:1fr}.recipe-video__copy h2{font-size:24px}}

/* ───────── v2 · premium layer (cinematic hero, editorial type, numbered chapters, reels, legacy, buy path) ─────────
   Everything below only restyles/extends v1.6 markup or styles the new v2 sections. Motion: transform/opacity only,
   gated on prefers-reduced-motion:no-preference. */
:root{--hdr:84px;--ink-2:#120a07}
/* editorial type — bigger, tighter, more contrast between roman and italic */
.h2{font-size:clamp(40px,5.4vw,88px);line-height:.95;letter-spacing:-.034em;font-variation-settings:"opsz" 144,"SOFT" 30;text-wrap:balance}
.h2 em,.display em{letter-spacing:-.02em}
.rv__h{font-size:clamp(44px,6.4vw,104px)}
.lede{text-wrap:pretty}
.btn{border-radius:999px;padding:18px 28px}
.site-header .btn{border-radius:999px}
.btn--gold{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.btn--gold:hover{background:var(--gold-soft);border-color:var(--gold-soft);color:var(--ink)}

/* numbered chapters — theme.js turns "07 — Label" into <b>07</b><span>Label</span> */
.sec-num.is-numbered{display:flex;align-items:flex-end;gap:18px;font:600 11.5px/1.2 var(--font-body);letter-spacing:.22em;text-transform:uppercase;margin-bottom:clamp(20px,2.4vw,32px);color:var(--ink-soft)}
.sec-num.is-numbered b{font:italic 300 clamp(52px,6vw,96px)/.78 var(--font-heading);letter-spacing:-.05em;color:var(--red);font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1;text-transform:none}
.sec-num.is-numbered span{display:flex;align-items:center;gap:14px;padding-bottom:.45em}
.sec-num.is-numbered span::before{content:"";width:44px;height:1px;background:currentColor;opacity:.5}
.on-dark .sec-num.is-numbered,.section--red .sec-num.is-numbered,.section--ink .sec-num.is-numbered,.ritual .sec-num.is-numbered{color:rgba(255,248,238,.78)}
.on-dark .sec-num.is-numbered b,.section--red .sec-num.is-numbered b,.section--ink .sec-num.is-numbered b,.ritual .sec-num.is-numbered b{color:var(--gold-soft)}

/* cinematic hero */
.cine{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:min(100svh,960px);background:var(--ink-2);color:var(--paper);overflow:hidden}
.cine__media{position:absolute;inset:0;z-index:-1}
.cine__media picture{display:contents}
.cine__poster,.cine__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cine__video{opacity:0;transition:opacity 1.4s var(--ease)}
.cine.is-playing .cine__video{opacity:1}
.cine__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,10,7,.62) 0%,rgba(18,10,7,.1) 24%,rgba(18,10,7,.18) 48%,rgba(18,10,7,.82) 78%,rgba(18,10,7,.97) 100%),linear-gradient(90deg,rgba(18,10,7,.72) 0%,rgba(18,10,7,.18) 58%,transparent 80%)}
.cine__grain{position:absolute;inset:0;background:radial-gradient(120% 80% at 70% 30%,transparent 50%,rgba(0,0,0,.35));pointer-events:none}
.cine__wrap{position:relative;width:100%;padding-top:calc(var(--hdr) + 80px);padding-bottom:clamp(22px,3vw,36px)}
.cine__copy{max-width:min(1060px,92%)}
.cine__eyebrow{color:var(--gold-soft)}
.cine__title{font-family:var(--font-heading);font-weight:400;font-size:clamp(50px,8.2vw,148px);line-height:.88;letter-spacing:-.045em;font-variation-settings:"opsz" 144,"SOFT" 20;text-wrap:balance;margin:0}
.cine__line{display:block}
.cine__line--accent{font-style:italic;color:var(--gold-soft);font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1;letter-spacing:-.03em}
.cine__lede{max-width:33em;margin-top:clamp(20px,2.4vw,32px);font-size:clamp(17px,1.35vw,21px);line-height:1.6;color:rgba(255,248,238,.88)}
.cine__lede p{margin:0}
.cine__ctas{margin-top:clamp(26px,3vw,40px)}
.cine .link-arrow{color:var(--paper)}
.cine__foot{display:flex;align-items:center;gap:22px;margin-top:clamp(40px,6vw,88px);padding-top:18px;border-top:1px solid var(--line-light);font:600 11px/1.3 var(--font-body);letter-spacing:.18em;text-transform:uppercase;color:rgba(255,248,238,.8)}
.cine__caption{display:flex;align-items:center;gap:12px;margin:0;min-width:0}
.cine__dot{flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 0 4px rgba(214,31,38,.28)}
.cine__toggle{margin-left:auto;background:transparent;color:inherit;border:1px solid var(--line-light);border-radius:999px;padding:10px 16px;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;transition:background .3s,border-color .3s}
.cine__toggle:hover{background:rgba(255,248,238,.1);border-color:rgba(255,248,238,.5)}
.cine__toggle[aria-pressed="true"] .cine__toggle-pause,.cine__toggle[aria-pressed="false"] .cine__toggle-play{display:none}
.cine__scroll{display:flex;align-items:center;gap:12px;text-decoration:none}
.cine__toggle[hidden]+.cine__scroll{margin-left:auto}
.cine__scroll i{position:relative;width:1px;height:34px;background:rgba(255,248,238,.3);overflow:hidden}
.cine__scroll i::after{content:"";position:absolute;left:0;top:0;width:1px;height:12px;background:var(--gold)}
@media (min-width:901px){
  /* header floats over the film until the page scrolls */
  .template-index .site-header:not(.is-stuck){background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;color:var(--paper)}
  .template-index .site-header:not(.is-stuck) .nav a::after{background:var(--gold)}
  .template-index .site-header:not(.is-stuck) .btn{background:transparent;border-color:rgba(255,248,238,.6);color:var(--paper)}
  .template-index .site-header:not(.is-stuck) .btn:hover{background:var(--paper);color:var(--red-deep)}
  .template-index main>.shopify-section:first-child .cine{margin-top:calc(-1 * var(--hdr))}
}
@media (max-width:767px){
  .cine{display:block;min-height:0}
  .cine__media{bottom:auto;height:125vw}
  .cine__shade{background:linear-gradient(180deg,rgba(18,10,7,.25) 0%,rgba(18,10,7,0) 30%,rgba(18,10,7,.55) 62%,var(--ink-2) 100%)}
  .cine__wrap{padding-top:78vw}
  .cine__title{font-size:clamp(42px,12.4vw,64px)}
  .cine__foot{flex-wrap:wrap;gap:14px 18px}
  .cine__caption{flex:1 0 100%;line-height:1.5}
  .cine__toggle{margin-left:0}
}
@media (prefers-reduced-motion:no-preference){
  .cine__line{animation:cine-up 1.1s cubic-bezier(.16,.84,.2,1) both}
  .cine__line--accent{animation-delay:.12s}
  .cine__lede,.cine__ctas,.cine__foot{animation:cine-fade 1s .35s var(--ease) both}
  .cine__dot{animation:cine-pulse 2.4s ease-in-out infinite}
  .cine__scroll i::after{animation:cine-scroll 2.2s cubic-bezier(.6,0,.2,1) infinite}
  .cine__poster{animation:cine-zoom 14s ease-out both}
}
@keyframes cine-up{from{transform:translateY(.45em)}to{transform:none}}
@keyframes cine-fade{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes cine-pulse{50%{box-shadow:0 0 0 9px rgba(214,31,38,0)}}
@keyframes cine-scroll{0%{transform:translateY(-14px)}100%{transform:translateY(36px)}}
@keyframes cine-zoom{from{transform:scale(1.06)}to{transform:scale(1)}}

/* reels — bigger cards, centred snap on phones */
.rv{--rv-w:clamp(262px,25vw,380px);--rv-r:14px}
.rv-card__media{box-shadow:0 30px 60px -30px rgba(0,0,0,.7)}
@media (hover:hover){.rv-card:hover .rv-card__media{transform:translateY(-6px) scale(1.015)}}
@media (max-width:767px){
  .rv{--rv-w:76vw;--rv-gap:12px}
  .rv__track{scroll-snap-type:x mandatory;scroll-padding-inline:12vw;padding-inline:12vw}
  .rv__item{scroll-snap-align:center;scroll-snap-stop:always}
  @supports (animation-timeline:view(inline)){@media (prefers-reduced-motion:no-preference){
    .rv__item .rv-card__media{animation:rv-focus linear both;animation-timeline:view(inline);animation-range:cover 0% cover 100%}
  }}
}
@keyframes rv-focus{0%,100%{transform:scale(.9);filter:brightness(.72)}35%,65%{transform:scale(1);filter:none}}

/* recipe cards — hover video preview (desktop), image push-in */
.card__media img{transition:transform 1.4s cubic-bezier(.16,.84,.2,1)}
@media (hover:hover){.card:hover .card__media img{transform:scale(1.045)}}
.card__media{border-radius:10px}
.card__preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .45s var(--ease);z-index:1;pointer-events:none}
.card.is-previewing .card__preview{opacity:1}
.card--has-video .card__media::after{content:"▶ Watch";position:absolute;z-index:2;right:12px;bottom:12px;font:600 10.5px/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--paper);background:rgba(20,10,8,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:8px 11px;border-radius:999px;transition:opacity .3s}
.card.is-previewing .card__media::after{opacity:0}
.card__title{transition:color .3s}
.card:hover .card__title{color:var(--red)}

/* story — Victor's legacy */
.legacy{position:relative;background:var(--ink-2);color:var(--paper);padding:clamp(88px,11vw,170px) 0;overflow:hidden}
.legacy::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 50% at 18% 30%,rgba(214,31,38,.32),transparent 70%),radial-gradient(50% 40% at 90% 90%,rgba(245,184,0,.12),transparent 70%);pointer-events:none}
.legacy__grid{position:relative;display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(28px,3vw,48px);align-items:center}
.legacy__photos{grid-column:1/7;position:relative;padding-bottom:12%}
.legacy__victor{margin:0;width:72%;border-radius:999px 999px 14px 14px;overflow:hidden;box-shadow:0 50px 90px -40px rgba(0,0,0,.85)}
.legacy__victor img{width:100%;aspect-ratio:550/760;object-fit:cover;object-position:50% 12%;filter:sepia(.25) contrast(1.04)}
.legacy__family{position:absolute;right:0;bottom:0;width:46%;margin:0;border-radius:14px;overflow:hidden;border:6px solid var(--ink-2);box-shadow:0 40px 70px -30px rgba(0,0,0,.9);rotate:2.5deg}
.legacy__family img{width:100%;aspect-ratio:720/860;object-fit:cover;object-position:50% 20%}
.legacy figcaption{position:absolute;left:14px;bottom:12px;font:600 10.5px/1.2 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--paper);text-shadow:0 1px 10px rgba(0,0,0,.7)}
.legacy__victor{position:relative}
.legacy__victor figcaption{left:50%;transform:translateX(-50%);white-space:nowrap;bottom:18px}
.legacy__copy{grid-column:7/13}
.legacy__h{font-family:var(--font-heading);font-weight:400;font-size:clamp(44px,5.4vw,90px);line-height:.94;letter-spacing:-.035em;margin:0 0 28px;text-wrap:balance}
.legacy__h em{font-style:italic;color:var(--gold-soft);font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1}
.legacy__text{font-size:clamp(17px,1.3vw,20px);line-height:1.7;color:rgba(255,248,238,.84);max-width:34em}
.legacy__line{list-style:none;margin:36px 0 0;padding:0;display:grid;gap:0;border-top:1px solid var(--line-light)}
.legacy__line li{display:grid;grid-template-columns:7.5em 1fr;gap:18px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--line-light)}
.legacy__line b{font:italic 400 24px/1 var(--font-heading);color:var(--gold-soft);font-variation-settings:"opsz" 144,"SOFT" 100}
.legacy__line span{font-size:16px;color:rgba(255,248,238,.86)}
.legacy__sign{margin:28px 0 0;font:italic 400 clamp(20px,1.7vw,26px)/1.35 var(--font-heading);color:var(--paper)}
@media (max-width:900px){
  .legacy__photos,.legacy__copy{grid-column:1/-1}
  .legacy__photos{max-width:520px;margin:0 auto 12px;width:100%}
}
@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){
  .legacy__victor img{animation:legacy-drift linear both;animation-timeline:view();animation-range:cover}
  .legacy__family{animation:legacy-float linear both;animation-timeline:view();animation-range:cover}
}}
@keyframes legacy-drift{from{transform:scale(1.12) translateY(-3%)}to{transform:scale(1.02) translateY(3%)}}
@keyframes legacy-float{from{translate:0 40px}to{translate:0 -40px}}

/* recipe → buy path */
.buy-path{background:var(--red-deep);color:var(--paper);padding:clamp(70px,8vw,120px) 0;position:relative;overflow:hidden}
.buy-path::before{content:"";position:absolute;inset:0;background:radial-gradient(70% 60% at 100% 0%,rgba(255,217,90,.16),transparent 60%);pointer-events:none}
.buy-path__grid{position:relative;display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:clamp(18px,2vw,28px);align-items:stretch}
.buy-path__h{font-family:var(--font-heading);font-weight:400;font-size:clamp(38px,4.4vw,70px);line-height:.95;letter-spacing:-.03em;margin:0 0 18px}
.buy-path__h em{font-style:italic;color:var(--gold-soft)}
.buy-path__intro p{color:rgba(255,248,238,.84);max-width:26em;margin:0}
.buy-card{position:relative;display:flex;flex-direction:column;gap:12px;padding:clamp(24px,2.4vw,36px);border-radius:16px;background:rgba(255,248,238,.08);border:1px solid var(--line-light);text-decoration:none;color:var(--paper);transition:transform .5s var(--ease),background .4s,border-color .4s}
.buy-card:hover{transform:translateY(-6px);background:rgba(255,248,238,.14);border-color:rgba(255,248,238,.5)}
.buy-card--gold{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.buy-card--gold:hover{background:var(--gold-soft);border-color:var(--gold-soft)}
.buy-card__k{font:italic 300 46px/1 var(--font-heading);color:var(--gold-soft);letter-spacing:-.04em}
.buy-card--gold .buy-card__k{color:var(--red-deep)}
.buy-card h3{font-size:clamp(26px,2.2vw,34px);line-height:1.05}
.buy-card p{margin:0;font-size:16px;opacity:.88;flex:1}
.buy-card .link-arrow{align-self:flex-start;margin-top:8px}
@media (max-width:900px){.buy-path__grid{grid-template-columns:1fr}}
.buy-bar{position:fixed;z-index:45;left:10px;right:10px;bottom:10px;display:flex;gap:8px;padding:8px;border-radius:999px;background:rgba(18,10,7,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 18px 40px -18px rgba(0,0,0,.6);transform:translateY(140%);transition:transform .45s var(--ease)}
.buy-bar.is-on{transform:none}
.buy-bar[hidden]{display:none}
.buy-bar__a{flex:1;text-align:center;text-decoration:none;font:600 12px/1 var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--paper);padding:14px 10px;border-radius:999px;border:1px solid var(--line-light)}
.buy-bar__a--gold{background:var(--gold);border-color:var(--gold);color:var(--ink)}
@media (min-width:901px){.buy-bar{display:none!important}}
.legacy__victor::after{content:"";position:absolute;inset:auto 0 0 0;height:34%;background:linear-gradient(180deg,transparent,rgba(18,10,7,.78));pointer-events:none}
.legacy__victor figcaption{z-index:1}
.legacy__family::after{content:"";position:absolute;inset:auto 0 0 0;height:30%;background:linear-gradient(180deg,transparent,rgba(18,10,7,.7));pointer-events:none}
.legacy__family figcaption{z-index:1}
@media (max-width:900px){.legacy__victor figcaption{left:16px;transform:none;bottom:16px;max-width:48%;white-space:normal;text-align:left}}

/* ===== v3 · conversion pass ===== */
.cine__note{margin:18px 0 0;font:500 13px/1.5 var(--font-body);letter-spacing:.04em;opacity:.85;max-width:62ch}
.lead-bar .buy-bar__a{font-size:13px}
#ContactForm{scroll-margin-top:110px}

/* ==== mobile fail-safe (blank-page fix) ====
   html.rv-safe is set when JS errors out, theme.js never runs, or a reveal leaves visible text at 0 opacity.
   It switches every entrance/scroll animation off and shows the content as designed at rest. */
html.rv-safe .reveal,html.rv-safe .rv-wait{animation:none!important;opacity:1!important;translate:none!important;transition:none!important}
html.rv-safe .cine__line,html.rv-safe .cine__lede,html.rv-safe .cine__ctas,html.rv-safe .cine__foot,
html.rv-safe .hero__panel,html.rv-safe .hero__plate,html.rv-safe .hero__spoon,html.rv-safe .hero__caption,
html.rv-safe .hero__img,html.rv-safe .display,html.rv-safe .feature__media,html.rv-safe .feature__media img,
html.rv-safe .footer__mark span{animation:none!important;opacity:1!important}
html.rv-safe .feature__media{clip-path:none!important}
html.rv-safe .w__i{animation:none!important;transform:none!important;opacity:1!important}
html.rv-safe .size__meter span{transform:scaleX(var(--v,.5))!important}
/* browsers without native <dialog> (iOS < 15.4) must not render the closed video player inline */
dialog.rv-modal:not([open]){display:none}
/* language switch (flags) */
.lang-sw{display:inline-flex;align-items:center;gap:10px;margin-left:4px}
.nav .lang-sw a{position:relative;display:inline-block;width:30px;height:20px;padding:0;border:0;font-size:0;line-height:0;border-radius:3px;box-shadow:0 0 0 1px rgba(26,18,14,.28);opacity:.62;transition:opacity .2s,box-shadow .2s}
.nav .lang-sw a::before{content:"";position:absolute;inset:-12px -5px}
.nav .lang-sw a::after{display:none}
.nav .lang-sw a svg{display:block;width:100%;height:100%;border-radius:3px}
.nav .lang-sw a:hover,.nav .lang-sw a:focus-visible{opacity:1}
.nav .lang-sw a[aria-current="true"]{opacity:1;box-shadow:0 0 0 2px var(--gold),0 0 0 3px rgba(26,18,14,.35)}
.site-header:not(.is-stuck) .nav .lang-sw a{box-shadow:0 0 0 1px rgba(255,248,238,.55)}
.site-header:not(.is-stuck) .nav .lang-sw a[aria-current="true"]{box-shadow:0 0 0 2px var(--gold)}
@media (max-width:900px){
  .nav .lang-sw{gap:18px;padding:20px 0 2px;margin-left:0}
  .nav .lang-sw a{width:42px;height:28px}
  .site-header:not(.is-stuck) .nav .lang-sw a{box-shadow:0 0 0 1px rgba(26,18,14,.28)}
  .site-header:not(.is-stuck) .nav .lang-sw a[aria-current="true"]{box-shadow:0 0 0 2px var(--gold),0 0 0 3px rgba(26,18,14,.35)}
}

.footer__credit{margin:14px 0 0;font-size:12px;line-height:1.5;color:rgba(255,248,238,.45)}.footer__credit a{color:inherit;text-decoration:underline;text-underline-offset:2px}.footer__credit a:hover{color:rgba(255,248,238,.8)}
