/* ============================================================
   SWEET CHAOS — styles.css
   "Disciplined Riot" — Butter & Riot palette
   ============================================================ */

/* ---------- TOKENS ---------- */
:root{
  /* color */
  --cream:#FFF8EF;
  --butter:#F7E8C9;
  --cocoa:#3B2417;
  --cherry:#E8362D;
  --cherry-deep:#C12A23;
  --violet:#7B4FE0;
  --violet-pale:#EDE5FB;
  --pink:#FFD9E0;
  --chalk:#FFFFFF;

  /* spacing scale (8px base) */
  --s1:8px; --s2:16px; --s3:24px; --s4:40px; --s5:64px; --s6:104px; --s7:168px;
  --gutter:clamp(16px,2vw,32px);
  --margin:clamp(20px,5vw,96px);
  --section-pad:clamp(96px,14vh,200px);
  --maxw:1440px;

  /* type */
  --display:"Fraunces",Georgia,serif;
  --body:"Bricolage Grotesque",system-ui,sans-serif;
  --hand:"Caveat",cursive;

  --shadow:0 12px 32px rgba(59,36,23,0.10);

  --d-micro:0.3s; --d-base:0.7s;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{ -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
body{
  font-family:var(--body);
  background:var(--cream);
  color:var(--cocoa);
  font-size:1.0625rem;
  line-height:1.65;
  overflow-x:hidden;
}
.lenis.lenis-smooth{scroll-behavior:auto!important;}

::selection{background:var(--violet);color:var(--cream);}

img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}

:focus-visible{outline:2px solid var(--violet);outline-offset:3px;border-radius:2px;}

/* ---------- TYPE PRIMITIVES ---------- */
h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.0;
  font-variation-settings:"opsz" 144,"SOFT" 0,"WONK" 1;}
.eyebrow{font-family:var(--body);font-weight:700;font-size:0.875rem;text-transform:uppercase;
  letter-spacing:0.12em;color:var(--cherry);display:inline-block;}
.chaos-word{font-family:var(--display);font-style:italic;font-weight:640;color:var(--cherry);
  display:inline-block;font-variation-settings:"WONK" 1,"SOFT" 30;margin-right:0.1em;}
html.no-js .chaos-word{transform:rotate(-2deg);}

/* ---------- GRAIN ---------- */
.grain{position:fixed;inset:0;z-index:9000;pointer-events:none;opacity:0.06;mix-blend-mode:overlay;
  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='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

/* ---------- ANIM HIDDEN STATES (no FOUC) ---------- */
.anim{visibility:hidden;}
html.no-js .anim{visibility:visible;}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--body);font-weight:600;font-size:0.9375rem;text-transform:uppercase;
  letter-spacing:0.08em;padding:1.1em 1.8em;border-radius:100px;overflow:hidden;
  isolation:isolate;will-change:transform;white-space:nowrap;}
.btn .btn-label{position:relative;display:block;overflow:hidden;height:1.2em;line-height:1.2em;}
.btn .btn-label::after{content:attr(data-label);position:absolute;left:0;top:100%;white-space:nowrap;}
.btn .btn-label{transition:transform var(--d-micro) cubic-bezier(.62,.05,.01,.99);}
.btn:hover .btn-label,.btn:focus-visible .btn-label{transform:translateY(-100%);}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;
  transform:scaleY(0);transform-origin:bottom;transition:transform .35s cubic-bezier(.62,.05,.01,.99);}
.btn-cherry{background:var(--cherry);color:var(--chalk);}
.btn-cherry::before{background:var(--cherry-deep);}
.btn-cherry:hover::before{transform:scaleY(1);}
.btn-cocoa{background:var(--cocoa);color:var(--cream);}
.btn-cocoa::before{background:#2a1a10;}
.btn-cocoa:hover::before{transform:scaleY(1);}
.btn-chalk{background:var(--chalk);color:var(--cherry);}
.btn-chalk::before{background:var(--butter);}
.btn-chalk:hover::before{transform:scaleY(1);}
.btn-lg{font-size:1.0625rem;padding:1.25em 2.4em;}
.btn-sm{font-size:0.8125rem;padding:0.85em 1.3em;}

.btn-ghost{font-family:var(--body);font-weight:600;font-size:0.9375rem;text-transform:uppercase;
  letter-spacing:0.08em;position:relative;padding-bottom:3px;white-space:nowrap;}

/* link two-stage underline */
.link{position:relative;}
.link::after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:2px;
  background:var(--violet);transform:scaleX(0);transform-origin:left;
  transition:transform var(--d-micro) cubic-bezier(.4,0,.2,1);}
.link:hover::after{transform:scaleX(1);}
.link:not(:hover)::after{transform-origin:right;}

/* ============================================================
   GLAZE PLACEHOLDERS
   ============================================================ */
.glaze{position:absolute;inset:0;border-radius:inherit;overflow:hidden;}
.glaze-butter-pink{background:radial-gradient(120% 120% at 30% 20%,var(--butter),var(--pink) 90%);}
.glaze-cream-butter{background:radial-gradient(120% 120% at 70% 30%,var(--cream),var(--butter) 95%);}
.glaze-cocoa-violet{background:radial-gradient(120% 120% at 30% 80%,var(--cocoa),var(--violet) 130%);}
.glaze-pink-cream{background:radial-gradient(120% 120% at 50% 30%,var(--pink),var(--cream) 95%);}
.glaze-cherry{background:radial-gradient(120% 120% at 40% 30%,var(--cherry),var(--cherry-deep) 95%);}

/* ============================================================
   CUSTOM CURSOR
   ============================================================ */
.cursor{position:fixed;top:0;left:0;z-index:9500;pointer-events:none;}
.cursor-dot{position:fixed;width:8px;height:8px;border-radius:50%;background:var(--cocoa);
  transform:translate(-50%,-50%);}
.cursor-ring{position:fixed;width:36px;height:36px;border:1.5px solid var(--cocoa);border-radius:50%;
  transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;
  transition:width .3s,height .3s,background-color .3s,border-color .3s;}
.cursor-label{font-family:var(--body);font-weight:700;font-size:0.6rem;text-transform:uppercase;
  letter-spacing:0.08em;color:var(--cream);opacity:0;white-space:nowrap;transition:opacity .25s;}
body.cursor-active-cta .cursor-ring{width:58px;height:58px;background:rgba(232,54,45,0.15);border-color:var(--cherry);}
body.cursor-active-drag .cursor-ring{width:72px;height:72px;background:var(--cream);border-color:var(--cocoa);}
body.cursor-active-view .cursor-ring{width:64px;height:64px;background:var(--violet);border-color:var(--violet);}
body.cursor-active-drag .cursor-label,
body.cursor-active-view .cursor-label{opacity:1;}
body.cursor-active-view .cursor-label{color:var(--chalk);}
body.cursor-active-drag .cursor-label{color:var(--cocoa);}
@media (hover:none),(pointer:coarse){.cursor{display:none;}}

/* ============================================================
   PRELOADER
   ============================================================ */
.preloader{position:fixed;inset:0;z-index:9800;background:var(--cocoa);color:var(--cream);
  display:flex;flex-direction:column;align-items:center;justify-content:center;}
.preloader-words{display:flex;flex-direction:column;align-items:center;line-height:0.9;}
.pl-sweet{font-family:var(--display);font-weight:900;font-size:clamp(3rem,12vw,9rem);
  font-variation-settings:"WONK" 0,"opsz" 144;}
.pl-chaos{font-family:var(--display);font-weight:900;font-size:clamp(3rem,12vw,9rem);color:var(--cherry);
  font-variation-settings:"WONK" 0,"opsz" 144;}
.preloader-count{position:absolute;bottom:var(--margin);right:var(--margin);
  font-family:var(--body);font-weight:700;font-size:1.5rem;letter-spacing:0.05em;}
.preloader-edge{position:absolute;left:0;bottom:0;width:100%;height:4px;background:var(--cherry);transform:scaleX(0);transform-origin:left;}

/* ============================================================
   NAV
   ============================================================ */
.nav{position:fixed;top:0;left:0;width:100%;z-index:8000;
  display:flex;align-items:center;justify-content:space-between;gap:var(--s3);
  padding:var(--s3) var(--margin);transition:background-color .4s,backdrop-filter .4s;}
.nav.scrolled{background:rgba(247,232,201,0.8);backdrop-filter:blur(8px);}
.nav-logo{position:relative;display:flex;align-items:center;overflow:hidden;
  padding:3px 8px;margin-left:-8px;border-radius:8px;}
.logo-stack{display:flex;flex-direction:column;align-items:flex-start;line-height:1;}
.logo-sweet{font-family:var(--body);font-weight:800;font-size:0.72rem;
  letter-spacing:0.42em;color:var(--cocoa);text-transform:uppercase;}
.logo-chaos{font-family:var(--display);font-style:italic;font-weight:700;font-size:1.25rem;
  letter-spacing:0.04em;color:var(--cherry);font-variation-settings:"WONK" 1,"opsz" 144;
  margin-top:2px;transform:rotate(-1.5deg);}
.logo-ch{display:inline-block;will-change:transform;}
.logo-shine{position:absolute;top:-30%;bottom:-30%;left:0;width:34%;pointer-events:none;
  background:linear-gradient(105deg,transparent 0%,rgba(255,255,255,0.85) 50%,transparent 100%);
  mix-blend-mode:overlay;transform:translateX(-160%) skewX(-18deg);
  animation:logoShine 5.5s ease-in-out infinite;}
@keyframes logoShine{
  0%,68%{transform:translateX(-160%) skewX(-18deg);}
  88%,100%{transform:translateX(420%) skewX(-18deg);}
}
.nav-links{display:flex;gap:var(--s4);}
.nav-links .nav-item{font-family:var(--body);font-weight:600;font-size:0.9375rem;
  text-transform:uppercase;letter-spacing:0.08em;}
/* language switch */
.lang-switch{display:flex;align-items:center;gap:4px;font-family:var(--body);
  font-weight:700;font-size:0.8rem;letter-spacing:0.06em;}
.lang-switch button{padding:3px 5px;color:var(--cocoa);opacity:0.45;border-radius:5px;
  transition:opacity .25s,color .25s;line-height:1;}
.lang-switch button:hover{opacity:0.8;}
.lang-switch button.active{opacity:1;color:var(--cherry);}
.lang-switch .lang-sep{opacity:0.3;}
.mm-lang{margin-top:var(--s4);justify-content:center;font-size:1rem;}
.mm-lang button{color:var(--cocoa);}

.nav-burger{display:none;width:40px;height:40px;flex-direction:column;gap:6px;
  align-items:center;justify-content:center;}
.nav-burger span{display:block;width:24px;height:2px;background:var(--cocoa);transition:transform .3s,opacity .3s;}
.nav-burger.open span:nth-child(1){transform:translateY(4px) rotate(45deg);}
.nav-burger.open span:nth-child(2){transform:translateY(-4px) rotate(-45deg);}

.mobile-menu{position:fixed;inset:0;z-index:7900;background:var(--butter);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  clip-path:inset(0 0 100% 0);transition:clip-path .5s cubic-bezier(.62,.05,.01,.99);pointer-events:none;}
.mobile-menu.open{clip-path:inset(0 0 0% 0);pointer-events:auto;}
.mobile-menu nav{display:flex;flex-direction:column;gap:var(--s3);text-align:center;}
.mm-link{font-family:var(--display);font-weight:600;font-size:clamp(2rem,9vw,3.5rem);}
.mm-handle{font-style:italic;color:var(--cherry);font-size:clamp(1.5rem,6vw,2.2rem);}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;min-height:100vh;padding:calc(var(--margin) + 60px) var(--margin) var(--s5);
  display:flex;flex-direction:column;justify-content:center;background:var(--butter);overflow:hidden;}
.hero-inner{max-width:var(--maxw);margin:0 auto;width:100%;
  display:grid;grid-template-columns:1.1fr 0.9fr;gap:var(--s5);align-items:center;}
.hero-h1{font-size:clamp(2.6rem,min(8.2vw,10vh),8rem);font-weight:640;line-height:1.02;letter-spacing:-0.02em;
  font-variation-settings:"opsz" 144,"SOFT" 0,"WONK" 1;}
.hl-mask{display:block;overflow:hidden;padding:0.04em 0;}
.hl-line{display:block;will-change:transform;}
.hero-sub{font-size:clamp(1.1rem,1.6vw,1.375rem);max-width:46ch;margin-top:var(--s4);line-height:1.5;}
.hero-cta-row{display:flex;align-items:center;gap:var(--s4);margin-top:var(--s4);flex-wrap:wrap;}
.hero-media-wrap{position:relative;}
.hero-media{position:relative;aspect-ratio:4/5;max-height:68vh;border-radius:24px;overflow:hidden;}
/* transparent cake cutout sits on a soft brand gradient (warm glow layered behind it) + drop shadow */
.hero-photo-wrap{overflow:hidden;
  background:radial-gradient(46% 40% at 50% 52%,rgba(232,54,45,0.17),transparent 72%),
    radial-gradient(110% 86% at 50% 34%,var(--pink) 0%,var(--butter) 50%,var(--cream) 100%);}
.hero-photo{width:100%;height:100%;object-fit:contain;object-position:50% 56%;display:block;
  padding:5% 5% 0;
  filter:saturate(1.08) contrast(1.03) drop-shadow(0 26px 30px rgba(123,27,18,0.28));}
.ring-text{position:absolute;right:-30px;bottom:-30px;width:140px;height:140px;
  animation:spin 22s linear infinite;}
.ring-text svg{width:100%;height:100%;}
.ring-text text{font-family:var(--body);font-weight:700;font-size:13px;letter-spacing:1px;
  text-transform:uppercase;fill:var(--cocoa);}
@keyframes spin{to{transform:rotate(360deg);}}
.floaty{position:absolute;border-radius:50%;will-change:transform;}

/* ---- premium cherry field (3 depth layers) ---- */
.cherry-field{position:absolute;inset:0;pointer-events:none;}
.cherry-layer{position:absolute;inset:0;will-change:transform;}
.cherry-back,.cherry-mid{z-index:0;}
.cherry-sandwich{z-index:1;}
.cherry-front{z-index:3;}
.hero-copy{position:relative;z-index:2;}
.cherry-item{position:absolute;display:block;width:var(--w,80px);
  top:var(--t,auto);left:var(--l,auto);bottom:var(--b,auto);right:var(--r,auto);
  transform:rotate(var(--rot,0deg));will-change:transform;}
.cherry-asset{display:block;width:100%;height:auto;overflow:visible;
  filter:drop-shadow(0 18px 24px rgba(123,27,18,0.25));}
.cherry-back .cherry-item{opacity:0.5;}
.cherry-back .cherry-asset{filter:blur(3px) drop-shadow(0 10px 14px rgba(123,27,18,0.18));}
.cherry-mid .cherry-item{opacity:0.8;}
.cherry-mid .cherry-asset{filter:blur(1px) drop-shadow(0 14px 18px rgba(123,27,18,0.22));}
.ch-leaf{transform-box:fill-box;transform-origin:10% 80%;}
.sticker-mini{width:auto;height:auto;border-radius:50%;background:var(--cocoa);color:var(--cream);
  font-family:var(--body);font-weight:700;font-size:0.9rem;letter-spacing:0.05em;
  width:58px;height:58px;display:flex;align-items:center;justify-content:center;
  border:1.5px solid var(--cream);top:10px;right:20px;transform:rotate(-10deg);}

.trust-strip{max-width:var(--maxw);margin:var(--s5) auto 0;width:100%;
  display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;
  font-family:var(--body);font-weight:600;font-size:0.8125rem;text-transform:uppercase;
  letter-spacing:0.08em;color:var(--cocoa);opacity:0.75;}
.trust-strip .dot{color:var(--cherry);}
.scroll-cue{position:absolute;bottom:var(--s3);left:50%;transform:translateX(-50%);
  font-family:var(--hand);font-size:clamp(1.2rem,4vw,1.5rem);color:var(--cocoa);opacity:0.8;
  white-space:nowrap;}

/* ============================================================
   TICKER
   ============================================================ */
.ticker{overflow:hidden;width:100%;padding:var(--s3) 0;white-space:nowrap;}
.ticker-dark{background:var(--cocoa);color:var(--cream);}
.ticker-light{background:var(--butter);color:var(--cherry);}
.ticker-track{display:inline-flex;will-change:transform;}
.ticker-item{font-family:var(--display);font-weight:600;font-size:clamp(2rem,5vw,4rem);
  padding-right:0.4em;font-variation-settings:"WONK" 1;}
.ticker-light .ticker-item:nth-child(even){-webkit-text-stroke:1.5px var(--cherry);color:transparent;}
.ticker-dark .ticker-item:nth-child(even){-webkit-text-stroke:1.5px var(--cream);color:transparent;}
.ticker-item i{font-style:normal;color:var(--cherry);padding:0 0.15em;}
.ticker-dark .ticker-item i{color:var(--cherry);}

/* ============================================================
   MANIFESTO (cocoa dark section)
   ============================================================ */
.manifesto{position:relative;background:var(--cocoa);color:var(--cream);
  min-height:100vh;display:flex;align-items:center;overflow:hidden;}
.manifesto .dust{position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(circle,rgba(255,255,255,0.5) 1px,transparent 1.4px);
  background-size:60px 60px;opacity:0.18;will-change:transform;}
.manifesto-inner{max-width:1100px;margin:0 auto;padding:clamp(var(--s5),9vh,var(--section-pad)) var(--margin);text-align:center;}
.manifesto-text{font-family:var(--display);font-weight:340;
  font-size:clamp(1.6rem,min(4.2vw,4.6vh),3.4rem);line-height:1.25;font-variation-settings:"WONK" 0,"SOFT" 40;}
.manifesto-text .word{display:inline-block;}
.manifesto-final{font-family:var(--display);font-weight:600;
  font-size:clamp(2.2rem,5vw,4.5rem);line-height:1.05;margin-top:var(--s5);}
.manifesto-final .chaos-word{color:var(--cherry);}
.manifesto-sign{display:inline-block;font-family:var(--hand);font-size:1.8rem;color:var(--pink);
  margin-top:var(--s3);transform:rotate(-3deg);}

/* ============================================================
   ABOUT
   ============================================================ */
.about{background:var(--cream);padding:var(--section-pad) 0;}
.about-head{max-width:var(--maxw);margin:0 auto;padding:0 var(--margin);position:relative;}
.about-head .eyebrow{margin-bottom:var(--s3);}
.about-h2{font-size:clamp(2.4rem,6vw,5.5rem);font-weight:600;line-height:1.0;max-width:16ch;}
.about-scribble{display:block;width:clamp(180px,22vw,320px);height:auto;margin-top:var(--s2);margin-left:0.2em;}

.about-body{max-width:var(--maxw);margin:var(--s6) auto 0;padding:0 var(--margin);
  display:grid;grid-template-columns:1fr 0.82fr;gap:clamp(var(--s4),6vw,var(--s7));align-items:start;}
.about-prose p{max-width:54ch;margin-bottom:var(--s3);}
.about-prose .lead{font-family:var(--display);font-weight:560;font-size:clamp(1.5rem,2.6vw,2.4rem);
  line-height:1.18;max-width:18ch;margin-bottom:var(--s3);font-variation-settings:"WONK" 0,"SOFT" 30;}
.about-prose .lead + .lead{margin-bottom:var(--s4);}
.about-prose p:nth-of-type(3){margin-top:var(--s2);}
.about-prose em{font-family:var(--display);font-style:italic;font-weight:600;color:var(--cherry);}
.reveal-group{visibility:visible;}

.about-visuals{position:relative;position:sticky;top:14vh;display:flex;flex-direction:column;gap:0;}
.about-half{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:5/4;}
.about-half .glaze{transition:filter .4s,transform .4s;}
.about-photo{width:100%;height:100%;object-fit:cover;object-position:50% 32%;display:block;}
/* gym shot is a full-body portrait — center her (head + flex) in the landscape frame */
.about-gym .about-photo{object-position:50% 46%;}
.about-bake{width:78%;align-self:flex-start;z-index:2;box-shadow:var(--shadow);aspect-ratio:4/5;}
.about-gym{width:72%;align-self:flex-end;margin-top:-12%;z-index:1;box-shadow:var(--shadow);}
.img-cap{position:absolute;left:14px;bottom:12px;font-family:var(--hand);font-size:1.25rem;
  color:var(--cocoa);background:rgba(255,248,239,0.85);padding:0.05em 0.5em;border-radius:6px;
  transform:rotate(-2deg);}
.img-cap-light{color:var(--cream);background:rgba(59,36,23,0.55);}
.about-visuals .sticker-polish{position:absolute;top:-18px;right:-8px;z-index:3;text-align:center;
  line-height:1.05;}

.sticker{font-family:var(--body);font-weight:700;font-size:0.8rem;text-transform:uppercase;
  letter-spacing:0.06em;padding:0.6em 0.9em;border-radius:8px;border:1.5px solid var(--cocoa);
  transform:rotate(-8deg);display:inline-block;}
.sticker-polish{background:var(--cherry);color:var(--chalk);border-color:var(--cocoa);
  box-shadow:3px 3px 0 var(--cocoa);}

.about-rules{position:relative;background:var(--cocoa);color:var(--cream);
  width:min(100% - var(--margin)*2, var(--maxw));
  margin:var(--s6) auto 0;border-radius:28px;padding:clamp(var(--s4),5vw,var(--s5));overflow:hidden;}
.about-rules::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(circle,rgba(255,248,239,0.45) 1px,transparent 1.4px);
  background-size:56px 56px;opacity:0.12;}
.rules-title{position:relative;font-family:var(--display);font-size:clamp(1.8rem,3vw,2.6rem);
  margin-bottom:var(--s4);font-variation-settings:"WONK" 1;}
.rules-title::after{content:"✦";color:var(--cherry);margin-left:0.35em;font-size:0.7em;
  display:inline-block;vertical-align:0.15em;}
.rules-list{position:relative;list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4);}
.rules-list li{display:flex;flex-direction:column;gap:var(--s2);padding:var(--s3) var(--s3) var(--s4);
  border-radius:18px;line-height:1.45;font-size:1.0625rem;color:var(--cocoa);
  box-shadow:5px 5px 0 rgba(0,0,0,0.3);transition:box-shadow .3s cubic-bezier(.62,.05,.01,.99);}
.rules-list li:hover{box-shadow:9px 9px 0 rgba(0,0,0,0.3);}
.rules-list li:nth-child(1){background:var(--butter);}
.rules-list li:nth-child(2){background:var(--pink);}
.rules-list li:nth-child(3){background:var(--violet-pale);}
.rules-list li span:last-child{font-family:var(--display);font-weight:560;font-size:1.2rem;
  line-height:1.35;font-variation-settings:"WONK" 0,"SOFT" 30;}
.rule-no{font-family:var(--display);font-weight:700;font-size:2.4rem;line-height:1;
  color:transparent;-webkit-text-stroke:1.5px var(--cherry);font-variation-settings:"WONK" 1;}

.pull-quote{max-width:1100px;margin:var(--s7) auto 0;padding:0 var(--margin);text-align:center;position:relative;}
.cherry-spot{position:absolute;right:4%;top:-28px;width:clamp(60px,7vw,92px);display:block;
  transform:rotate(12deg);}
.pq-mark{display:block;font-family:var(--display);font-weight:700;font-size:clamp(5rem,12vw,11rem);
  line-height:0.6;color:var(--cherry);opacity:0.9;margin-bottom:0.1em;font-variation-settings:"WONK" 1;}
.pull-quote-text{font-family:var(--display);font-weight:600;
  font-size:clamp(2rem,5.5vw,4.5rem);line-height:1.05;}
.pull-quote cite{display:block;font-family:var(--hand);font-size:1.6rem;font-style:normal;
  color:var(--cocoa);opacity:0.75;margin-top:var(--s4);transform:rotate(-2deg);}
.about-cta-row{text-align:center;margin-top:var(--s5);}

/* ============================================================
   LINEUP (horizontal gallery)
   ============================================================ */
.lineup{background:var(--cream);padding-top:var(--section-pad);}
.lineup-head{max-width:var(--maxw);margin:0 auto;padding:0 var(--margin);}
.lineup-h2{font-size:clamp(2.5rem,6vw,5.5rem);font-weight:600;margin:var(--s2) 0;}
.lineup-intro{font-size:clamp(1.1rem,1.6vw,1.375rem);max-width:50ch;opacity:0.85;}

.menu-track{display:flex;width:max-content;will-change:transform;padding:var(--s5) 0;
  cursor:grab;user-select:none;-webkit-user-select:none;}
.menu-panel{position:relative;width:78vw;max-width:780px;height:74vh;flex-shrink:0;
  margin:0 var(--gutter);border-radius:28px;overflow:hidden;
  display:grid;grid-template-rows:1fr auto;padding:var(--s4);}
.tint-butter{background:var(--butter);}
.tint-violet{background:var(--violet-pale);}
.tint-pink{background:var(--pink);}
.panel-num{position:absolute;top:var(--s4);left:var(--s4);font-family:var(--body);font-weight:700;
  text-transform:uppercase;letter-spacing:0.12em;color:var(--cherry);font-size:0.875rem;z-index:3;}
.panel-media{position:relative;border-radius:20px;overflow:hidden;margin-bottom:var(--s3);
  display:flex;align-items:center;justify-content:center;}
.panel-media .bigtype{position:relative;z-index:2;font-family:var(--display);font-weight:700;
  font-size:clamp(2.5rem,7vw,6rem);-webkit-text-stroke:1.5px var(--cocoa);color:transparent;
  font-variation-settings:"WONK" 1;text-align:center;will-change:transform;}
.panel-signature .panel-media .bigtype{-webkit-text-stroke-color:var(--cream);}
.panel-info{display:flex;flex-direction:column;gap:var(--s2);}
.panel-name{font-size:clamp(1.75rem,3.5vw,3rem);font-weight:560;font-variation-settings:"WONK" 1,"opsz" 90;}
.panel-desc{max-width:48ch;line-height:1.5;}
.panel-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-top:var(--s1);}
.price{font-family:var(--body);font-weight:800;font-size:1.6rem;}
.bite-label{position:absolute;top:var(--s4);right:var(--s4);font-family:var(--hand);font-size:1.4rem;
  color:var(--cherry);opacity:0;transform:rotate(-4deg);transition:opacity .3s;z-index:3;}
.menu-panel:hover .bite-label{opacity:1;}
/* signature panel: real transparent cake cutout on a hero-style warm glow */
.glaze-signature{background:
  radial-gradient(46% 40% at 50% 52%,rgba(232,54,45,0.17),transparent 72%),
  radial-gradient(120% 92% at 50% 32%,var(--pink) 0%,var(--butter) 52%,var(--cream) 100%);}
.panel-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:50% 52%;
  padding:7% 7% 5%;z-index:2;pointer-events:none;
  filter:saturate(1.05) contrast(1.02) drop-shadow(0 24px 28px rgba(123,27,18,0.28));}
.menu-panel:hover .panel-photo{transform:scale(1.03);transition:transform .5s cubic-bezier(.62,.05,.01,.99);}
.menu-panel .panel-media.has-photo .bigtype{z-index:1;-webkit-text-stroke-color:var(--cocoa);opacity:0.75;}

.lineup-progress{max-width:var(--maxw);margin:0 auto;padding:0 var(--margin) var(--s4);
  display:flex;align-items:center;gap:var(--s3);}
.lineup-drizzle{flex:1;height:3px;background:rgba(59,36,23,0.12);border-radius:2px;overflow:hidden;}
.lineup-drizzle-fill{display:block;height:100%;width:100%;background:var(--cherry);
  transform:scaleX(0);transform-origin:left;}
.lineup-counter{font-family:var(--body);font-weight:700;letter-spacing:0.08em;font-size:0.9rem;}

.lineup-foot{max-width:var(--maxw);margin:0 auto;padding:0 var(--margin) var(--section-pad);
  display:flex;align-items:center;justify-content:space-between;gap:var(--s4);flex-wrap:wrap;}
.scarcity{font-family:var(--hand);font-size:1.6rem;color:var(--cocoa);max-width:30ch;transform:rotate(-1.5deg);}

/* ============================================================
   CRAFT
   ============================================================ */
.craft{background:var(--butter);}
/* sized against viewport HEIGHT too, so the pinned set-piece always fits short monitors */
.craft-pin{min-height:100vh;display:flex;flex-direction:column;justify-content:center;
  padding:clamp(var(--s4),5vh,var(--s5)) var(--margin);overflow:hidden;}
.craft-head{max-width:var(--maxw);margin:0 auto clamp(var(--s3),4vh,var(--s5));width:100%;}
.craft-h2{font-size:clamp(2rem,min(6vw,7vh),5rem);font-weight:600;margin:var(--s2) 0;}
.craft-intro{font-size:clamp(1.05rem,1.6vw,1.375rem);max-width:50ch;opacity:0.85;}
.craft-stage{position:relative;max-width:var(--maxw);margin:0 auto;width:100%;
  display:grid;grid-template-columns:1fr 1fr;gap:var(--s5);align-items:center;min-height:auto;}
.craft-bignum{position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-start;
  pointer-events:none;z-index:0;will-change:transform;}
.cbn{position:absolute;font-family:var(--display);font-weight:700;font-size:clamp(12rem,30vw,28rem);
  -webkit-text-stroke:2px rgba(59,36,23,0.12);color:transparent;line-height:1;left:-2vw;opacity:0;
  font-variation-settings:"WONK" 1;}
.craft-plate-wrap{position:relative;width:min(42vh,100%);aspect-ratio:1/1;margin:0 auto;
  border-radius:28px;overflow:visible;}
.craft-plate{position:absolute;inset:0;border-radius:28px;overflow:hidden;opacity:0;}
.craft-plate.cp-0{opacity:1;}
.craft-drizzle{position:absolute;top:-10%;left:50%;transform:translateX(-50%);height:120%;width:40%;
  pointer-events:none;z-index:4;}
.craft-steps{position:relative;min-height:clamp(220px,30vh,340px);}
.craft-step{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;opacity:0;}
.craft-step.cs-0{opacity:1;}
.step-eyebrow{font-family:var(--body);font-weight:700;text-transform:uppercase;letter-spacing:0.12em;
  color:var(--cherry);font-size:0.875rem;margin-bottom:var(--s2);}
.step-title{font-family:var(--display);font-weight:600;font-size:clamp(1.8rem,min(4.5vw,5vh),3.4rem);
  margin-bottom:clamp(var(--s2),2.5vh,var(--s3));font-variation-settings:"WONK" 1;}
.craft-step p{font-size:clamp(1.1rem,1.6vw,1.375rem);max-width:42ch;line-height:1.5;}
.craft-closing{background:var(--butter);padding:var(--section-pad) var(--margin);text-align:center;}
.craft-closing-text{font-family:var(--display);font-weight:600;font-size:clamp(2.2rem,6vw,5rem);line-height:1.05;}

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.testimonials{background:var(--cream);padding:var(--section-pad) var(--margin);}
.testi-head{max-width:var(--maxw);margin:0 auto var(--s6);}
.testi-h2{font-size:clamp(2.2rem,5.5vw,5rem);font-weight:600;margin-top:var(--s2);max-width:18ch;}
.testi-stack{max-width:980px;margin:0 auto;}
.testi-card{position:sticky;top:14vh;border-radius:28px;padding:clamp(var(--s4),6vw,var(--s6));
  margin-bottom:var(--s5);will-change:transform;box-shadow:var(--shadow);}
.testi-card:nth-child(odd){transform:rotate(-1.5deg);}
.testi-card:nth-child(even){transform:rotate(1.5deg);}
.testi-quote{font-family:var(--display);font-weight:560;font-size:clamp(1.5rem,3vw,2.4rem);
  line-height:1.25;font-variation-settings:"WONK" 0,"SOFT" 30;}
.testi-card cite{display:block;font-family:var(--hand);font-size:1.5rem;font-style:normal;
  margin-top:var(--s3);color:var(--cocoa);opacity:0.8;}
.press-strip{max-width:var(--maxw);margin:var(--s6) auto 0;display:flex;flex-wrap:wrap;gap:var(--s2);
  justify-content:center;font-family:var(--display);font-style:italic;font-size:clamp(1.1rem,2vw,1.6rem);
  color:var(--cocoa);opacity:0.7;}
.press-strip .dot{color:var(--cherry);}

/* ============================================================
   INSTAGRAM
   ============================================================ */
.insta{background:var(--cream);padding:var(--section-pad) var(--margin);}
.insta-head{max-width:var(--maxw);margin:0 auto var(--s5);}
.insta-h2{font-size:clamp(2.5rem,6vw,5.5rem);font-weight:600;margin:var(--s2) 0;}
.insta-body{font-size:clamp(1.1rem,1.6vw,1.375rem);max-width:60ch;opacity:0.85;}
.insta-grid{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s2);}
.ig-tile{position:relative;aspect-ratio:1/1;border-radius:18px;overflow:hidden;will-change:transform;
  transition:transform .35s cubic-bezier(.4,0,.2,1);}
.ig-tile .glaze{transition:transform .4s;}
.ig-tile:hover{transform:translateY(-6px) scale(1.03);}
.ig-tile:hover .glaze{transform:scale(1.08);}
/* real photos in the feed grid: full-bleed cover OR transparent cutout on the glaze */
.ig-photo{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;
  transition:transform .4s cubic-bezier(.4,0,.2,1);}
.ig-photo.cover{object-fit:cover;}
.ig-photo.cutout{object-fit:contain;padding:9%;
  filter:saturate(1.05) drop-shadow(0 16px 20px rgba(123,27,18,0.26));}
.ig-tile:hover .ig-photo{transform:scale(1.06);}
.insta-foot{max-width:var(--maxw);margin:var(--s5) auto 0;display:flex;align-items:center;
  justify-content:space-between;gap:var(--s4);flex-wrap:wrap;}
.insta-handle{font-family:var(--display);font-weight:600;font-style:italic;color:var(--cherry);
  font-size:clamp(2rem,5vw,4rem);font-variation-settings:"WONK" 1;}

/* ============================================================
   ORDER / CTA
   ============================================================ */
.order{position:relative;background:var(--cherry);color:var(--cream);
  padding:var(--section-pad) var(--margin);overflow:hidden;}
.sprinkle-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;}
.order-hero{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;text-align:center;}
.order-h2{font-size:clamp(3rem,10vw,9rem);font-weight:640;line-height:0.95;letter-spacing:-0.01em;
  font-variation-settings:"opsz" 144,"WONK" 1;}
.order-h2 .chaos-word{color:var(--chalk);font-variation-settings:"WONK" 1,"SOFT" 30;}
.order-body{font-size:clamp(1.2rem,2vw,1.6rem);max-width:40ch;margin:var(--s4) auto;}
.order-main-cta{margin-top:var(--s2);}
.order-arrow{position:absolute;right:18%;bottom:-60px;width:120px;height:80px;}
.order-tiles{position:relative;z-index:2;max-width:var(--maxw);margin:var(--s7) auto 0;
  display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s3);}
.order-tile{background:rgba(255,248,239,0.1);border:1.5px solid rgba(255,248,239,0.3);
  border-radius:20px;padding:var(--s4);backdrop-filter:blur(2px);}
.order-tile h3{font-family:var(--display);font-size:clamp(1.6rem,2.5vw,2.2rem);color:var(--chalk);
  margin-bottom:var(--s2);font-variation-settings:"WONK" 1;}
.order-tile p{margin-bottom:var(--s3);opacity:0.92;}
.tile-link{font-family:var(--body);font-weight:600;text-transform:uppercase;letter-spacing:0.08em;
  font-size:0.9rem;color:var(--chalk);}
.tile-link::after{background:var(--chalk);}
.order-hours{position:relative;z-index:2;max-width:var(--maxw);margin:var(--s5) auto 0;text-align:center;
  font-family:var(--body);font-weight:700;text-transform:uppercase;letter-spacing:0.06em;font-size:0.95rem;}
.newsletter{position:relative;z-index:2;max-width:560px;margin:var(--s6) auto 0;text-align:center;}
.news-title{font-family:var(--display);font-size:clamp(2rem,4vw,3rem);color:var(--chalk);
  font-variation-settings:"WONK" 1;}
.news-body{margin:var(--s2) 0 var(--s4);}
.news-form{display:flex;gap:var(--s2);flex-wrap:wrap;justify-content:center;}
.news-input{flex:1;min-width:240px;padding:1.1em 1.4em;border-radius:100px;border:1.5px solid var(--cream);
  background:rgba(255,248,239,0.12);color:var(--cream);font-family:var(--body);font-size:1rem;}
.news-input::placeholder{color:rgba(255,248,239,0.6);}
.news-input.error{border-color:var(--violet);background:rgba(123,79,224,0.18);}
.news-success{margin-top:var(--s3);font-family:var(--hand);font-size:1.6rem;color:var(--chalk);}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{background:var(--cocoa);color:var(--cream);padding:var(--section-pad) var(--margin) var(--s4);overflow:hidden;}
.footer-tagline{max-width:var(--maxw);margin:0 auto;font-family:var(--display);
  font-size:clamp(1.4rem,2.5vw,2.2rem);line-height:1.3;max-width:40ch;font-variation-settings:"WONK" 0,"SOFT" 30;}
.footer-cols{max-width:var(--maxw);margin:var(--s5) auto 0;display:flex;flex-wrap:wrap;gap:var(--s4);
  font-family:var(--body);font-weight:600;text-transform:uppercase;letter-spacing:0.08em;font-size:0.9rem;}
.footer-cols .link::after{background:var(--cherry);}
.footer-wordmark{margin:var(--s6) auto var(--s4);display:flex;flex-direction:column;line-height:0.82;
  will-change:transform;}
.footer-wordmark span{font-family:var(--display);font-weight:700;font-size:clamp(4rem,21vw,20rem);
  font-variation-settings:"WONK" 1;}
.footer-wordmark span:last-child{color:var(--cherry);}
.footer-loc{max-width:var(--maxw);margin:0 auto var(--s5);font-family:var(--body);font-weight:700;
  text-transform:uppercase;letter-spacing:0.14em;font-size:0.8rem;opacity:0.7;}
.footer-loc span{color:var(--cherry);}
.footer-legal{max-width:var(--maxw);margin:0 auto;display:flex;justify-content:space-between;
  gap:var(--s3);flex-wrap:wrap;font-size:0.875rem;opacity:0.7;}
.footer-dot{display:inline;color:var(--cherry);font-weight:900;}
.footer-credit{font-family:var(--hand);font-size:1.2rem;opacity:1;}

/* ============================================================
   BACK TO TOP / COOKIE
   ============================================================ */
.back-top{position:fixed;bottom:var(--s3);right:var(--s3);z-index:7000;
  font-family:var(--body);font-weight:600;font-size:0.8rem;text-transform:uppercase;letter-spacing:0.06em;
  background:var(--cocoa);color:var(--cream);padding:0.8em 1.2em;border-radius:100px;
  opacity:0;transform:translateY(20px);transition:opacity .4s,transform .4s;pointer-events:none;}
.back-top.show{opacity:1;transform:translateY(0);pointer-events:auto;}

.cookie-banner{position:fixed;bottom:var(--s3);left:var(--s3);z-index:7100;max-width:380px;
  background:var(--cocoa);color:var(--cream);border-radius:18px;padding:var(--s3);
  display:flex;flex-direction:column;gap:var(--s2);box-shadow:var(--shadow);
  transform:translateY(140%);transition:transform .5s cubic-bezier(.62,.05,.01,.99);}
.cookie-banner.show{transform:translateY(0);}
.cookie-btns{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;}
.cookie-banner .btn-ghost{font-size:0.8125rem;}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1023px){
  .cherry-front .cherry-item:nth-child(2){display:none;}
  /* keep the big sandwich cherry up by the headline corner, off the CTAs */
  .cherry-sandwich .cherry-item{top:8%;left:auto;right:-4%;width:104px;}
  .cherry-mid .cherry-item:nth-child(2){display:none;}
  .nav-links{display:none;}
  .nav-burger{display:flex;}
  .nav > .btn-cherry{display:none;}
  .hero-inner{grid-template-columns:1fr;gap:var(--s4);}
  .hero-media{max-width:420px;}
  .about-body{grid-template-columns:1fr;gap:var(--s5);}
  .about-visuals{position:relative;top:auto;order:-1;flex-direction:row;gap:var(--s2);}
  .about-bake,.about-gym{width:50%;margin-top:0;align-self:auto;}
  .about-gym{margin-top:var(--s5);}
  .rules-list{grid-template-columns:1fr;gap:var(--s3);}
  /* craft becomes a clean stacked list on mobile (the pinned set-piece collapses on phones) */
  .craft-pin{min-height:auto;display:block;padding:var(--section-pad) var(--margin);overflow:visible;}
  .craft-head{margin-bottom:var(--s4);}
  .craft-stage{grid-template-columns:1fr;gap:0;min-height:auto;}
  .craft-bignum,.craft-plate-wrap{display:none;}
  .craft-steps{position:relative;min-height:auto;display:flex;flex-direction:column;gap:var(--s5);}
  .craft-step{position:relative;inset:auto;opacity:1;padding-left:var(--s3);
    border-left:3px solid var(--cherry);}
  .craft-closing{padding-top:var(--s5);}
  .order-tiles{grid-template-columns:1fr;}
  .menu-track{width:auto;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;padding:var(--s4) var(--margin);}
  .menu-panel{width:85vw;height:auto;scroll-snap-align:center;}
  .menu-panel .panel-media{min-height:240px;}
}
@media (max-width:640px){
  .insta-grid{grid-template-columns:repeat(2,1fr);}
  .cherry-item{width:calc(var(--w,80px)*0.55);}
  .cherry-back .cherry-item:nth-child(n+3){display:none;}
  .about-visuals{flex-direction:column;}
  .about-bake,.about-gym{width:100%;}
  .about-gym{margin-top:0;}
  .footer-legal{flex-direction:column;}
}

/* ============================================================
   REDUCED MOTION
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  *{animation-duration:0.01ms!important;animation-iteration-count:1!important;
    transition-duration:0.01ms!important;}
  .anim{visibility:visible;}
  .ring-text{animation:none;}
  .cursor{display:none;}
}
