:root {
  --night: #100713;
  --night-2: #1c0b22;
  --purple: #642078;
  --purple-2: #9f3fc4;
  --gold: #ffb52b;
  --gold-2: #ffd66b;
  --cream: #fff4e5;
  --white: #fffdf9;
  --muted: #b5a7b8;
  --line: rgba(255,255,255,.16);
  --radius: 26px;
  --ease: cubic-bezier(.2,.82,.2,1);
  --scroll: 0;
  color-scheme: dark;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; background: var(--night); }
body { margin: 0; overflow-x: hidden; background: var(--night); color: var(--white); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
.js body.is-loading { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, a { font: inherit; touch-action: manipulation; }
button { color: inherit; }
img { display: block; max-width: 100%; }
::selection { background: var(--gold); color: var(--night); }
:focus-visible { outline: 3px solid var(--gold-2); outline-offset: 4px; }

.skip-link { position: fixed; z-index: 1000; top: 10px; left: 10px; padding: 10px 14px; background: var(--gold); color: var(--night); transform: translateY(-150%); }
.skip-link:focus { transform: none; }
.scroll-progress { position: fixed; z-index: 500; inset: 0 0 auto; height: 3px; pointer-events: none; }
.scroll-progress span { display: block; width: 100%; height: 100%; background: var(--gold); box-shadow: 0 0 18px rgba(255,181,43,.8); transform: scaleX(0); transform-origin: left; will-change: transform; }

.loader { position: fixed; z-index: 999; inset: 0; padding: max(28px,4vw); display: none; grid-template-columns: 1fr auto; grid-template-rows: 1fr auto; align-items: end; gap: 24px; background: var(--night); transition: transform 1s var(--ease), visibility 1s; }
.js .loader { display: grid; }
.loader::before { content: ""; position: absolute; width: 55vw; aspect-ratio: 1; left: 50%; top: 50%; border: 1px solid rgba(255,181,43,.28); border-radius: 50%; transform: translate(-50%,-50%) scale(.65); animation: loader-ring 1.6s var(--ease) both; }
.loader-word { position: relative; z-index: 1; display: flex; flex-direction: column; font-size: clamp(66px,13vw,210px); font-weight: 1000; line-height: .72; letter-spacing: -.09em; text-transform: uppercase; }
.loader-word span { color: var(--purple-2); }
.loader-word strong { color: var(--cream); }
.loader-meter { position: relative; z-index: 1; grid-column: 1; height: 2px; background: rgba(255,255,255,.18); }
.loader-meter i { display: block; width: 0; height: 100%; background: var(--gold); animation: load-meter 1.35s var(--ease) forwards; }
.loader output { position: relative; z-index: 1; grid-column: 2; grid-row: 2; color: var(--gold); font-size: 22px; font-weight: 900; font-variant-numeric: tabular-nums; }
body.is-ready .loader { transform: translateY(-105%); visibility: hidden; }

.cursor { position: fixed; z-index: 800; left: 0; top: 0; width: 74px; height: 74px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; background: rgba(100,32,120,.55); backdrop-filter: blur(8px); pointer-events: none; opacity: 0; transform: translate3d(-50%,-50%,0) scale(.65); transition: opacity .2s, transform .25s var(--ease), width .25s, height .25s, background .25s; }
.cursor.visible { opacity: 1; transform: translate3d(-50%,-50%,0) scale(1); }
.cursor.active { width: 96px; height: 96px; background: var(--gold); color: var(--night); }
.cursor span { font-size: 10px; font-weight: 1000; letter-spacing: .12em; }

.site-header { position: fixed; z-index: 400; top: 16px; left: 50%; width: min(1220px,calc(100% - 32px)); min-height: 82px; padding: 4px 8px 4px 15px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border: 1px solid rgba(255,255,255,.14); border-radius: 22px; background: rgba(16,7,19,.72); backdrop-filter: blur(18px) saturate(145%); transform: translateX(-50%); transition: top .3s, background .3s, box-shadow .3s; }
.site-header.scrolled { top: 7px; background: rgba(16,7,19,.94); box-shadow: 0 18px 60px rgba(0,0,0,.35); }
.site-header nav { display: flex; align-items: center; gap: 30px; }
.site-header nav a { position: relative; min-height: 44px; display: grid; place-items: center; color: #ded3e1; font-size: 12px; font-weight: 800; }
.site-header nav a::after { content: ""; position: absolute; inset: auto 0 3px; height: 2px; background: var(--gold); transform: scaleX(0); transition: transform .25s; }
.site-header nav a:hover::after { transform: scaleX(1); }
.nav-cta { min-height: 60px; padding: 0 22px; display: inline-flex; align-items: center; gap: 25px; border-radius: 16px; background: var(--gold); color: var(--night); font-size: 12px; font-weight: 1000; }
.nav-cta b { font-size: 18px; }

.exact-logo { position: relative; display: block; flex: none; }
.exact-logo img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 9px 18px rgba(0,0,0,.3)); }
.exact-logo--header { width: 118px; aspect-ratio: 900 / 799; }
.exact-logo--final { width: min(300px,82vw); aspect-ratio: 900 / 799; margin: 0 auto -18px; }
.exact-logo--footer { width: 155px; aspect-ratio: 900 / 799; }

.hero { position: relative; min-height: 100svh; padding: 128px max(5vw,28px) 60px; display: grid; grid-template-columns: 1.03fr .97fr; align-items: center; overflow: hidden; isolation: isolate; }
.hero::before { content: ""; position: absolute; z-index: -5; inset: 0; background: radial-gradient(circle at 80% 44%, rgba(137,49,161,.34), transparent 31%), var(--night); }
.spark-canvas { position: absolute; z-index: -1; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.hero-orbit { position: absolute; z-index: -2; border: 1px solid rgba(255,181,43,.32); border-radius: 50%; pointer-events: none; }
.hero-orbit--one { width: 72vw; aspect-ratio: 1; right: -26vw; top: -8vw; animation: orbit-spin 22s linear infinite; }
.hero-orbit--two { width: 45vw; aspect-ratio: 1; right: -7vw; top: 20%; border-style: dashed; animation: orbit-spin 16s linear infinite reverse; }
.hero-copy { position: relative; z-index: 4; max-width: 850px; }
.eyebrow { margin: 0; display: inline-flex; align-items: center; gap: 10px; color: #e8ddeb; font-size: 11px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.status-dot { width: 9px; height: 9px; display: inline-block; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 7px rgba(255,181,43,.12), 0 0 22px var(--gold); animation: status-pulse 2s infinite; }
.hero h1 { margin: 30px 0 28px; font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-size: clamp(88px,11.5vw,188px); font-weight: 900; line-height: .69; letter-spacing: -.055em; text-transform: uppercase; }
.title-line { display: block; overflow: hidden; }
.title-line i { display: block; font-style: normal; }
.is-loading .title-line i { transform: translateY(115%); }
.is-ready .title-line i { transform: translateY(115%); animation: title-in 1s var(--ease) forwards; }
.is-ready .title-line:nth-child(2) i { animation-delay: .1s; }
.is-ready .title-line:nth-child(3) i { animation-delay: .18s; }
.title-line--outline { color: transparent; -webkit-text-stroke: 2px var(--cream); }
.title-line--gold { position: absolute; left: 92%; top: 42%; color: var(--gold); font-size: .9em; transform: rotate(8deg); }
.hero-lede { max-width: 610px; margin: 0; color: #cbbfd0; font-size: clamp(15px,1.35vw,20px); line-height: 1.6; }
.hero-actions { margin-top: 30px; display: flex; flex-wrap: wrap; gap: 10px; }
.pill { min-height: 56px; padding: 0 22px; display: inline-flex; align-items: center; justify-content: space-between; gap: 28px; border: 1px solid transparent; border-radius: 999px; font-size: 12px; font-weight: 1000; transition: color .25s, background .25s, border-color .25s; }
.pill b { font-size: 18px; }
.pill--gold { background: var(--gold); color: var(--night); }
.pill--gold:hover { background: var(--cream); }
.pill--ghost { border-color: rgba(255,255,255,.26); background: rgba(255,255,255,.04); }
.pill--ghost:hover { border-color: var(--cream); background: var(--cream); color: var(--night); }
.hero-proof { margin-top: 27px; display: flex; align-items: center; gap: 10px; }
.hero-proof strong { font-size: 25px; }
.hero-proof small { color: var(--muted); }
.hero-proof--locations span { color: var(--gold); font-size: 10px; font-weight: 1000; letter-spacing: .14em; }
.hero-proof--locations small { padding-left: 10px; border-left: 1px solid rgba(255,255,255,.2); font-size: 10px; font-weight: 800; letter-spacing: .08em; }
.stars, .google-score span { color: var(--gold); letter-spacing: 2px; }
.hero-stage { position: relative; z-index: 2; width: min(44vw,590px); height: min(79vh,850px); justify-self: end; perspective: 1000px; transform-style: preserve-3d; }
.poster-halo { position: absolute; inset: 12% -12% 8% 0; border-radius: 50%; background: var(--purple); filter: blur(110px); opacity: .55; }
.hero-poster { position: absolute; inset: 0; margin: 0; overflow: visible; border: 0; background: transparent; filter: drop-shadow(0 42px 42px rgba(0,0,0,.5)); transform: rotateY(var(--tilt-x,0deg)) rotateX(var(--tilt-y,0deg)) translate3d(0,calc(var(--scroll) * -36px),0); transition: transform .25s ease-out; }
.hero-poster::after { content: ""; position: absolute; inset: 0; background: linear-gradient(115deg,transparent 28%,rgba(255,255,255,.16) 45%,transparent 62%); transform: translateX(-130%); animation: poster-shine 5s 1.8s infinite; }
.hero-poster img { width: 100%; height: 100%; object-fit: contain; animation: bowl-float 5s ease-in-out infinite alternate; }
.price-badge { position: absolute; z-index: 4; left: -72px; bottom: 8%; width: 160px; aspect-ratio: 1; display: grid; place-content: center; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; background: var(--gold); color: var(--night); text-align: center; box-shadow: 0 18px 60px rgba(0,0,0,.35); transform: rotate(-8deg); }
.price-badge small { font-size: 10px; font-weight: 1000; letter-spacing: .12em; }
.price-badge strong { font-size: 54px; line-height: .9; letter-spacing: -.08em; }
.price-badge sup { font-size: 22px; }
.crunch-seal { position: absolute; z-index: 4; right: -42px; top: 11%; width: 124px; aspect-ratio: 1; display: grid; place-items: center; border: 1px solid rgba(255,181,43,.5); border-radius: 50%; background: rgba(16,7,19,.75); animation: seal-spin 16s linear infinite; }
.crunch-seal span { max-width: 80px; color: var(--gold); font-size: 9px; font-weight: 900; line-height: 1.4; text-align: center; letter-spacing: .13em; }
.hero-scroll { position: absolute; z-index: 5; left: max(5vw,28px); bottom: 28px; display: flex; align-items: center; gap: 14px; color: #776c7c; font-size: 9px; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.hero-scroll i { width: 70px; height: 1px; overflow: hidden; background: #4f4554; }
.hero-scroll i::after { content: ""; display: block; width: 100%; height: 100%; background: var(--gold); animation: scroll-line 2s infinite; }

.marquee { position: relative; z-index: 8; overflow: hidden; border-block: 2px solid var(--night); background: var(--gold); color: var(--night); }
.marquee-track { width: max-content; padding: 18px 0; display: flex; align-items: center; gap: 24px; animation: marquee 22s linear infinite; }
.marquee span { font-family: Impact, sans-serif; font-size: clamp(23px,2.4vw,38px); letter-spacing: -.02em; }

.section-label { margin: 0 0 22px; color: var(--purple-2); font-size: 11px; font-weight: 1000; letter-spacing: .15em; text-transform: uppercase; }
.signature { min-height: 132vh; padding: 120px max(5vw,32px); display: grid; grid-template-columns: .86fr 1.14fr; gap: 7vw; background: var(--cream); color: var(--night); }
.signature-copy { padding-top: 9vh; }
.signature h2, .menu-heading h2, .formula-copy h2, .evidence-head h2, .locations-head h2 { margin: 0; font-family: Impact, sans-serif; font-size: clamp(64px,7.5vw,122px); font-weight: 900; line-height: .78; letter-spacing: -.045em; text-transform: uppercase; }
h2 em { color: var(--purple); font-style: normal; }
.signature-copy > p:not(.section-label) { max-width: 560px; margin: 34px 0; font-size: 18px; line-height: 1.65; }
.ingredient-list { margin: 50px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 9px; list-style: none; }
.ingredient-list li { padding: 10px 14px; border: 1px solid rgba(16,7,19,.25); border-radius: 999px; font-size: 11px; font-weight: 900; text-transform: uppercase; }
.signature-visual { position: relative; min-height: 96vh; }
.sticky-bowl { position: sticky; top: 8vh; height: 78vh; overflow: hidden; border-radius: 38px; background: radial-gradient(circle at 50% 45%,#7d3291 0 20%,#2a1031 60%,#100713 100%); box-shadow: 0 30px 80px rgba(30,10,35,.22); transform: rotate(calc((var(--scroll) - .45) * 4deg)); }
.sticky-bowl::before { content: ""; position: absolute; inset: 8%; border: 1px solid rgba(255,181,43,.35); border-radius: 50%; animation: orbit-spin 18s linear infinite; }
.sticky-bowl img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: contain; transform: scale(.94); filter: drop-shadow(0 35px 30px rgba(0,0,0,.38)); }
.scan-line { position: absolute; inset: -20% 0 auto; height: 36%; background: linear-gradient(transparent,rgba(255,181,43,.22),transparent); animation: scan 4s linear infinite; }
.signature-price { position: absolute; z-index: 2; left: -55px; bottom: 12vh; padding: 20px 26px; display: flex; flex-direction: column; border-radius: 18px; background: var(--purple); color: white; transform: rotate(-6deg); }
.signature-price span { font-size: 9px; font-weight: 900; letter-spacing: .14em; }
.signature-price strong { font-size: 48px; line-height: 1; }

.menu-section { padding: 120px max(4vw,24px); background: var(--night); }
.menu-heading { max-width: 1100px; margin: 0 auto 64px; }
.menu-heading > p:last-child { max-width: 530px; margin: 30px 0 0 auto; color: var(--muted); font-size: 17px; line-height: 1.6; }
.menu-shell { max-width: 1320px; margin: auto; padding: 14px; border: 1px solid rgba(255,255,255,.15); border-radius: 36px; background: #170b1b; box-shadow: 0 40px 110px rgba(0,0,0,.35); }
.menu-interface { min-width: 0; padding: 6px; display: flex; flex-direction: column; }
.menu-status { min-height: 54px; padding: 0 15px; display: flex; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 14px; color: var(--muted); font-size: 10px; letter-spacing: .08em; }
.menu-status output { margin-left: auto; padding: 8px 12px; border-radius: 9px; background: var(--purple); color: var(--gold); font-weight: 900; }
.menu-tabs { margin: 18px 0; display: flex; gap: 7px; overflow-x: auto; scrollbar-width: none; }
.menu-tabs::-webkit-scrollbar { display: none; }
.menu-tabs button { min-height: 46px; flex: 0 0 auto; padding: 0 16px; border: 1px solid var(--line); border-radius: 12px; background: transparent; color: var(--muted); cursor: pointer; font-size: 11px; font-weight: 900; transition: .25s; }
.menu-tabs button:hover, .menu-tabs button.active { border-color: var(--gold); background: var(--gold); color: var(--night); }
.menu-panel { min-width: 0; }
.crousty-stage { --flavor: #ffb52b; --flavor-rgb: 255,181,43; --menu-x: 0px; --menu-y: 0px; position: relative; min-height: 680px; display: grid; grid-template-columns: 1.12fr .88fr; grid-template-rows: 1fr auto; overflow: hidden; border: 1px solid rgba(255,255,255,.12); border-radius: 26px; isolation: isolate; background: radial-gradient(circle at 27% 42%,rgba(var(--flavor-rgb),.23),transparent 31%),linear-gradient(135deg,#0b050d 0%,#1d0b23 60%,#110713 100%); transition: background .55s ease; }
.crousty-stage[hidden], .menu-grid[hidden] { display: none !important; }
.crousty-stage[data-flavor="boursin"] { --flavor: #f3dfb1; --flavor-rgb: 243,223,177; }
.crousty-stage[data-flavor="bbq"] { --flavor: #d65a45; --flavor-rgb: 214,90,69; }
.crousty-stage[data-flavor="curry"] { --flavor: #f3a91e; --flavor-rgb: 243,169,30; }
.crousty-stage[data-flavor="chili"] { --flavor: #ef3e32; --flavor-rgb: 239,62,50; }
.stage-noise { position: absolute; z-index: -1; inset: 0; opacity: .17; pointer-events: none; background-image: radial-gradient(circle at 20% 30%,#fff 0 1px,transparent 1.5px),radial-gradient(circle at 78% 62%,var(--flavor) 0 1px,transparent 1.8px); background-size: 41px 41px,67px 67px; mask-image: linear-gradient(to bottom,black,transparent 82%); }
.stage-word { position: absolute; z-index: -1; top: 46%; left: -1.5%; margin: 0; color: transparent; -webkit-text-stroke: 1px rgba(var(--flavor-rgb),.25); font-size: clamp(110px,16vw,245px); font-weight: 1000; letter-spacing: -.085em; line-height: .72; transform: translateY(-50%); white-space: nowrap; transition: color .4s, transform .4s var(--ease); }
.stage-index { position: absolute; z-index: 5; top: 30px; left: 32px; display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 10px; font-weight: 900; letter-spacing: .12em; }
.stage-index span:first-child { color: var(--flavor); font-size: 19px; }
.stage-index i { width: 42px; height: 1px; background: rgba(255,255,255,.22); }
.stage-visual { position: relative; z-index: 2; min-width: 0; min-height: 520px; display: grid; place-items: center; transform: translate3d(var(--menu-x),var(--menu-y),0); transition: transform .45s var(--ease); }
.stage-visual::after { content: ""; position: absolute; width: 58%; height: 10%; left: 21%; bottom: 12%; border-radius: 50%; background: rgba(0,0,0,.75); filter: blur(24px); transform: scaleX(.85); }
.stage-visual img { position: relative; z-index: 2; width: min(118%,780px); max-width: none; height: auto; object-fit: contain; filter: drop-shadow(0 38px 36px rgba(0,0,0,.45)); }
.stage-orbit { position: absolute; z-index: 1; width: min(38vw,470px); aspect-ratio: 1; border: 1px solid rgba(var(--flavor-rgb),.52); border-radius: 50%; box-shadow: 0 0 0 42px rgba(var(--flavor-rgb),.035),0 0 0 112px rgba(var(--flavor-rgb),.025); animation: orbit-spin 18s linear infinite; }
.stage-orbit::before, .stage-orbit::after { content: ""; position: absolute; width: 9px; aspect-ratio: 1; border-radius: 50%; background: var(--flavor); box-shadow: 0 0 22px var(--flavor); }
.stage-orbit::before { top: 10%; left: 17%; }
.stage-orbit::after { right: 5%; bottom: 25%; }
.stage-copy { position: relative; z-index: 4; align-self: center; padding: 70px 58px 70px 12px; }
.stage-eyebrow { margin: 0 0 20px; color: var(--flavor); font-size: 10px; font-weight: 1000; letter-spacing: .14em; }
.stage-copy h3 { margin: 0; font-size: clamp(68px,7vw,118px); letter-spacing: -.07em; line-height: .8; text-wrap: balance; }
.stage-copy > p:not(.stage-eyebrow) { max-width: 470px; margin: 30px 0 34px; color: #c8bdcb; font-size: 14px; line-height: 1.7; }
.stage-price { display: flex; align-items: end; gap: 15px; }
.stage-price strong { color: var(--flavor); font-size: clamp(48px,5vw,78px); line-height: .8; letter-spacing: -.07em; }
.stage-price span { padding-bottom: 5px; color: #8f8193; font-size: 9px; font-weight: 1000; letter-spacing: .13em; }
.flavor-dock { position: relative; z-index: 7; grid-column: 1 / -1; padding: 10px; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; border-top: 1px solid rgba(255,255,255,.1); background: rgba(10,4,12,.82); backdrop-filter: blur(18px); }
.flavor-button { position: relative; min-width: 0; min-height: 82px; padding: 8px 12px 8px 8px; display: grid; grid-template-columns: 70px 1fr; align-items: center; gap: 8px; overflow: hidden; border: 1px solid transparent; border-radius: 15px; background: transparent; color: white; text-align: left; cursor: pointer; transition: border-color .25s,background .25s,transform .25s var(--ease); }
.flavor-button::after { content: ""; position: absolute; right: 12px; bottom: 0; left: 12px; height: 2px; background: var(--flavor); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease); }
.flavor-button:hover { background: rgba(255,255,255,.045); transform: translateY(-2px); }
.flavor-button.active { border-color: rgba(var(--flavor-rgb),.45); background: rgba(var(--flavor-rgb),.09); }
.flavor-button.active::after { transform: scaleX(1); }
.flavor-thumb { width: 70px; height: 62px; display: grid; place-items: center; overflow: hidden; border-radius: 11px; background: rgba(255,255,255,.035); }
.flavor-thumb img { width: 118%; max-width: none; filter: drop-shadow(0 8px 9px rgba(0,0,0,.35)); }
.flavor-button b, .flavor-button small { display: block; }
.flavor-button b { overflow: hidden; font-size: 13px; text-overflow: ellipsis; }
.flavor-button small { margin-top: 5px; color: var(--flavor); font-size: 11px; font-weight: 900; }
.flavor-hint { display: none; }
.crousty-stage.is-switching .stage-visual img { animation: product-swap .64s var(--ease); will-change: transform,opacity; }
.crousty-stage.is-switching .stage-word { animation: word-swap .64s var(--ease); }
.crousty-stage.is-switching .stage-price strong { animation: price-roll .52s var(--ease); }
.menu-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.menu-item { min-height: 152px; padding: 22px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 18px; border: 1px solid var(--line); border-radius: 18px; background: #221028; opacity: 0; transform: translateY(14px) scale(.98); animation: item-in .55s var(--ease) forwards; animation-delay: calc(var(--i) * 55ms); transition: transform .3s var(--ease),border-color .3s,background .3s; }
.menu-item:hover { z-index: 2; border-color: var(--purple-2); background: #2a1232; transform: translateY(-5px); }
.menu-item__index { width: 40px; aspect-ratio: 1; display: grid; place-items: center; border: 1px solid rgba(255,181,43,.34); border-radius: 50%; color: var(--gold); font-size: 10px; font-weight: 1000; }
.menu-item__copy { min-width: 0; }
.menu-item h3 { margin: 0; font-size: clamp(20px,2vw,30px); letter-spacing: -.04em; }
.menu-item strong { color: var(--gold); font-size: 23px; letter-spacing: -.04em; white-space: nowrap; }
.menu-item p { margin: 7px 0 8px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.menu-item small { color: #766a7a; font-size: 9px; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.menu-source { margin: auto 0 0; padding-top: 18px; color: #a99eac; font-size: 10px; }

.formulas { padding: 120px max(5vw,32px); display: grid; grid-template-columns: .82fr 1.18fr; align-items: center; gap: 8vw; background: var(--purple); }
.formula-visual { position: relative; width: min(100%,650px); height: min(74vh,720px); min-height: 620px; overflow: hidden; border: 1px solid rgba(255,255,255,.22); border-radius: 36px; isolation: isolate; background: radial-gradient(circle at 50% 42%,rgba(255,181,43,.27),transparent 35%),linear-gradient(145deg,#110714,#2a0e35 58%,#160819); box-shadow: 0 38px 90px rgba(16,7,19,.4); transform: rotate(-1.5deg); }
.formula-visual::before { content: ""; position: absolute; z-index: -1; inset: 0; opacity: .22; background-image: radial-gradient(circle,#ffb52b 0 1px,transparent 1.5px); background-size: 42px 42px; mask-image: linear-gradient(to bottom,black,transparent 72%); }
.formula-ghost { position: absolute; z-index: -1; top: 14%; left: -4%; color: transparent; -webkit-text-stroke: 1px rgba(255,181,43,.27); font-size: clamp(80px,10vw,150px); font-weight: 1000; letter-spacing: -.08em; line-height: .8; }
.formula-halo { position: absolute; z-index: -1; top: 18%; left: 50%; width: 64%; aspect-ratio: 1; border: 1px solid rgba(255,181,43,.55); border-radius: 50%; box-shadow: 0 0 0 55px rgba(255,181,43,.035),0 0 0 125px rgba(255,181,43,.022); transform: translateX(-50%); animation: orbit-spin 20s linear infinite; }
.formula-visual > img { position: absolute; z-index: 2; top: 15%; left: 50%; width: 118%; max-width: none; height: auto; filter: drop-shadow(0 38px 32px rgba(0,0,0,.5)); transform: translateX(-50%); transition: transform .8s var(--ease); }
.formula-visual:hover > img { transform: translateX(-50%) translateY(-8px) rotate(1deg) scale(1.025); }
.formula-badge { position: absolute; z-index: 4; top: 28px; right: 26px; width: 142px; aspect-ratio: 1; padding: 22px; display: flex; flex-direction: column; justify-content: center; border-radius: 50%; background: var(--gold); color: var(--night); box-shadow: 0 16px 35px rgba(0,0,0,.3); transform: rotate(7deg); }
.formula-badge small, .formula-badge span { font-size: 8px; font-weight: 1000; letter-spacing: .1em; }
.formula-badge strong { margin: 3px 0; font-size: 40px; line-height: .9; letter-spacing: -.06em; }
.formula-equation { position: absolute; z-index: 5; right: 18px; bottom: 18px; left: 18px; min-height: 88px; padding: 14px 18px; display: flex; align-items: center; justify-content: center; gap: 9px; border: 1px solid rgba(255,255,255,.18); border-radius: 20px; background: rgba(12,5,15,.84); backdrop-filter: blur(18px); }
.formula-equation span { font-size: 9px; font-weight: 1000; letter-spacing: .08em; text-align: center; }
.formula-equation b { color: var(--gold); font-size: 22px; }
.formula-copy h2 em { color: var(--gold); }
.formula-copy .section-label { color: var(--gold); }
.formula-card { margin-top: 14px; padding: 22px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 20px; border: 1px solid rgba(255,255,255,.22); border-radius: 20px; background: rgba(16,7,19,.28); transition: transform .3s var(--ease), background .3s; }
.formula-card:hover { background: rgba(16,7,19,.48); transform: translateX(8px); }
.formula-card > span { width: 42px; aspect-ratio: 1; display: grid; place-items: center; border-radius: 50%; background: var(--gold); color: var(--night); font-size: 11px; font-weight: 1000; }
.formula-card h3 { margin: 0; font-size: 23px; }
.formula-card p { margin: 6px 0 0; color: #dacde0; font-size: 12px; line-height: 1.45; }
.formula-card strong { color: var(--gold); font-size: 25px; white-space: nowrap; }

.evidence { position: relative; padding: 120px max(5vw,32px) 140px; overflow: hidden; background: var(--cream); color: var(--night); }
.evidence::before { content: "CROUSTY"; position: absolute; right: -2vw; top: 16px; color: rgba(100,32,120,.055); font-family: Impact,sans-serif; font-size: 20vw; line-height: .8; letter-spacing: -.06em; pointer-events: none; }
.evidence-head { position: relative; z-index: 2; max-width: 1280px; margin: auto; display: grid; grid-template-columns: 1.15fr .85fr; align-items: end; gap: 70px; }
.evidence-head .section-label { grid-column: 1 / -1; }
.evidence-head h2 { font-size: clamp(68px,8vw,122px); }
.evidence-head h2 em { color: var(--purple); }
.evidence-head > p:last-child { max-width: 490px; margin: 0 0 8px; justify-self: end; font-size: 17px; line-height: 1.65; }
.campaign-grid { position: relative; z-index: 2; max-width: 1280px; margin: 60px auto 0; display: grid; grid-template-columns: repeat(14,minmax(0,1fr)); grid-template-rows: repeat(2,285px); gap: 14px; }
.campaign-card { position: relative; min-width: 0; overflow: hidden; border-radius: 28px; background: var(--night); color: white; isolation: isolate; box-shadow: 0 20px 50px rgba(36,16,29,.16); transition: transform .45s var(--ease),box-shadow .45s var(--ease); }
.campaign-card::before { content: ""; position: absolute; z-index: 1; inset: 0; background: linear-gradient(180deg,rgba(10,3,12,.05),rgba(10,3,12,.3)); pointer-events: none; }
.campaign-card::after { content: ""; position: absolute; z-index: 5; inset: 0; border: 1px solid rgba(255,255,255,.16); border-radius: inherit; pointer-events: none; }
.campaign-card:hover { transform: translateY(-6px); box-shadow: 0 32px 74px rgba(36,16,29,.25); }
.campaign-card__bg { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease),filter 1s var(--ease); }
.campaign-card:hover .campaign-card__bg { transform: scale(1.035); filter: saturate(1.08) contrast(1.03); }
.campaign-card__contact-shadow { position: absolute; z-index: 1; bottom: 19.5%; height: 7%; border-radius: 50%; background: radial-gradient(ellipse at center,rgba(28,8,20,.68) 0%,rgba(28,8,20,.46) 44%,rgba(28,8,20,0) 76%); filter: blur(4px); opacity: .82; pointer-events: none; transform: translateX(-50%) scaleX(1); transition: transform .8s var(--ease),opacity .8s var(--ease); }
.campaign-card__bowl { position: absolute; z-index: 2; height: auto; filter: drop-shadow(0 28px 28px rgba(0,0,0,.5)); transition: transform .8s var(--ease),filter .8s var(--ease); }
.campaign-card:hover .campaign-card__bowl { transform: translateY(-9px) scale(1.025); filter: drop-shadow(0 38px 35px rgba(0,0,0,.58)); }
.campaign-card:hover .campaign-card__contact-shadow { transform: translateX(-50%) scaleX(.88); opacity: .62; }
.campaign-card--classic { grid-column: 1 / 9; grid-row: 1 / 3; }
.campaign-card--classic::before { background: linear-gradient(90deg,rgba(16,5,20,.8) 0 39%,rgba(16,5,20,.1) 70%),linear-gradient(0deg,rgba(16,5,20,.55),transparent 45%); }
.campaign-card--classic .campaign-card__bowl { right: -3%; bottom: 3%; width: 66%; }
.campaign-card__copy { position: absolute; z-index: 3; top: 0; bottom: 0; left: 0; width: 44%; padding: 42px 0 42px 42px; display: flex; flex-direction: column; align-items: flex-start; }
.campaign-card__copy small, .campaign-card__tag small { color: var(--gold); font-size: 9px; font-weight: 1000; letter-spacing: .14em; }
.campaign-card__copy h3 { margin: auto 0 0; font-family: Impact,sans-serif; font-size: clamp(70px,7vw,106px); font-weight: 400; line-height: .82; letter-spacing: -.045em; text-transform: uppercase; }
.campaign-card__copy p { max-width: 270px; margin: 20px 0 28px; color: #eadfed; font-size: 13px; line-height: 1.55; }
.campaign-card__copy div { display: flex; align-items: flex-end; gap: 12px; }
.campaign-card__copy div strong { color: var(--gold); font-size: 38px; line-height: .8; }
.campaign-card__copy div span { color: #c6b9c9; font-size: 8px; font-weight: 1000; letter-spacing: .12em; }
.campaign-card--boursin { grid-column: 9 / 15; grid-row: 1; }
.campaign-card--curry { grid-column: 9 / 12; grid-row: 2; }
.campaign-card--chili { grid-column: 12 / 15; grid-row: 2; }
.campaign-card--boursin .campaign-card__contact-shadow { left: 54%; width: 36%; }
.campaign-card--curry .campaign-card__contact-shadow, .campaign-card--chili .campaign-card__contact-shadow { left: 50%; width: 62%; }
.campaign-card--boursin .campaign-card__bowl { right: auto; bottom: 21.5%; left: 54%; width: 56%; transform: translateX(-50%); }
.campaign-card--curry .campaign-card__bowl, .campaign-card--chili .campaign-card__bowl { right: auto; bottom: 21%; left: 50%; width: 92%; transform: translateX(-50%); }
.campaign-card--boursin:hover .campaign-card__bowl, .campaign-card--curry:hover .campaign-card__bowl, .campaign-card--chili:hover .campaign-card__bowl { transform: translateX(-50%) translateY(-9px) scale(1.025); }
.campaign-card__tag { position: absolute; z-index: 3; top: 22px; right: 22px; left: 22px; display: grid; grid-template-columns: 1fr auto; align-items: start; gap: 3px 15px; }
.campaign-card__tag h3 { grid-column: 1; margin: 0; font-family: Impact,sans-serif; font-size: clamp(35px,3.2vw,53px); font-weight: 400; line-height: .9; letter-spacing: -.035em; text-transform: uppercase; }
.campaign-card__tag strong { grid-column: 2; grid-row: 1 / 3; align-self: end; color: var(--gold); font-size: 25px; }
.campaign-card--curry .campaign-card__tag, .campaign-card--chili .campaign-card__tag { top: 17px; right: 17px; left: 17px; }
.campaign-card--curry .campaign-card__tag h3, .campaign-card--chili .campaign-card__tag h3 { font-size: clamp(27px,2.2vw,37px); }
.campaign-card--curry .campaign-card__tag strong, .campaign-card--chili .campaign-card__tag strong { font-size: 20px; }

.locations { position: relative; padding: 96px max(4vw,24px) 120px; overflow: hidden; background: radial-gradient(circle at 78% 8%,rgba(100,32,120,.24),transparent 31%),var(--night); }
.locations-head { position: relative; z-index: 2; max-width: 1180px; margin: 0 auto 56px; display: grid; grid-template-columns: 1.15fr .85fr; align-items: end; gap: 60px; color: var(--cream); }
.locations-head h2 { font-size: clamp(58px,6.6vw,112px); }
.locations-head .section-label { grid-column: 1 / -1; }
.locations-head h2 em { color: var(--gold); }
.locations-head > p:last-child { max-width: 470px; margin: 0 0 8px; justify-self: end; font-size: 17px; line-height: 1.65; }
.locations-shell { position: relative; z-index: 2; max-width: 1180px; margin: auto; padding: 12px; display: grid; grid-template-columns: minmax(0,.78fr) minmax(0,1.22fr); gap: 12px; border: 1px solid rgba(255,255,255,.14); border-radius: 38px; background: #160919; box-shadow: 0 45px 120px rgba(0,0,0,.38); }
.locations-visual { position: sticky; top: 104px; min-width: 0; height: 600px; margin: 0; overflow: hidden; border-radius: 27px; background: #09040b; }
.restaurant-set { width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; filter: saturate(.94) contrast(1.04); }
.restaurant-wall-logo { position: absolute; z-index: 2; top: 24%; left: 50%; width: min(52%,290px); height: auto; transform: translate(-50%,-50%); filter: drop-shadow(0 0 14px rgba(255,255,255,.28)) drop-shadow(0 18px 28px rgba(0,0,0,.55)); }
.locations-visual::after { content: ""; position: absolute; z-index: 1; inset: 0; background: linear-gradient(180deg,rgba(16,7,19,.04) 38%,rgba(16,7,19,.88)); pointer-events: none; }
.locations-visual figcaption { position: absolute; z-index: 3; right: 25px; bottom: 24px; left: 25px; display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; }
.locations-visual figcaption span { color: var(--gold); font-size: 9px; font-weight: 1000; letter-spacing: .14em; }
.locations-visual figcaption strong { font-size: 15px; letter-spacing: .04em; text-align: right; }
.locations-list { min-width: 0; display: grid; gap: 10px; }
.location-card { position: relative; min-height: 292px; padding: clamp(28px,3vw,42px); display: grid; grid-template-columns: auto minmax(0,1fr); gap: clamp(20px,2.8vw,38px); overflow: hidden; border-radius: 27px; background: #231029; }
.location-card--capelette { background: #190b1d; }
.location-card::before { content: ""; position: absolute; inset: 0 auto auto 0; width: 100%; height: 3px; background: var(--gold); transform: scaleX(.18); transform-origin: left; transition: transform .55s var(--ease); }
.location-card:hover::before { transform: scaleX(1); }
.location-card__index { color: transparent; font-family: Impact,sans-serif; font-size: clamp(48px,4.5vw,66px); line-height: .8; -webkit-text-stroke: 1px rgba(255,181,43,.55); }
.location-card__body { min-width: 0; }
.location-card__area { margin: 0 0 8px; color: var(--gold); font-size: 9px; font-weight: 1000; letter-spacing: .16em; }
.location-card h3 { margin: 0; font-family: Impact,sans-serif; font-size: clamp(40px,3.4vw,56px); font-weight: 400; line-height: .86; letter-spacing: -.03em; text-transform: uppercase; }
.location-card__rating { margin: 20px 0 16px; display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px; }
.location-card__rating strong { color: var(--gold); font-size: 28px; line-height: 1; }
.location-card__rating span { color: var(--gold); font-size: 10px; letter-spacing: .04em; }
.location-card__rating small { color: #c6bac9; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.location-card address, .location-card__hours { margin: 0; color: #f3ebf5; font-size: 13px; font-style: normal; line-height: 1.55; }
.location-card__hours { margin-top: 8px; color: #c6bac9; }
.location-card__status { margin: 12px 0 0; color: var(--gold); font-size: 10px; font-weight: 900; }
.location-card__status::before { content: ""; width: 7px; height: 7px; margin-right: 8px; display: inline-block; border-radius: 50%; background: var(--gold); box-shadow: 0 0 12px rgba(255,181,43,.8); }
.location-card__status[data-state="closed"] { color: #e88a9a; }
.location-card__status[data-state="closed"]::before { background: #d84b65; box-shadow: 0 0 12px rgba(216,75,101,.7); }
.location-card__actions { margin-top: 22px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.location-card__actions .pill { min-height: 46px; width: auto; padding: 0 15px; gap: 18px; }
.location-card__actions .text-link { min-height: 44px; padding: 0 7px; display: inline-flex; align-items: center; color: #d9cddd; font-size: 9px; font-weight: 900; text-decoration: underline; text-underline-offset: 5px; }

.finale { position: relative; min-height: max(100svh,900px); padding: 110px 24px 80px; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; overflow: hidden; text-align: center; background: var(--night); }
.finale::before { content: ""; position: absolute; width: 70vw; aspect-ratio: 1; border-radius: 50%; background: var(--purple); filter: blur(150px); opacity: .28; }
.finale > * { position: relative; z-index: 2; }
.finale-rings { position: absolute; z-index: 1; inset: 0; display: grid; place-items: center; }
.finale-rings i { position: absolute; width: min(80vw,900px); aspect-ratio: 1; border: 1px solid rgba(255,181,43,.16); border-radius: 50%; animation: finale-ring 5s ease-in-out infinite alternate; }
.finale-rings i:nth-child(2) { width: min(60vw,680px); animation-delay: -1s; }
.finale-rings i:nth-child(3) { width: min(42vw,480px); animation-delay: -2s; }
.finale > p { color: var(--gold); font-size: 10px; font-weight: 1000; letter-spacing: .2em; }
.finale h2 { margin: 16px 0 38px; font-family: Impact,sans-serif; font-size: clamp(90px,14vw,210px); line-height: .69; letter-spacing: -.055em; text-transform: uppercase; }
.finale h2 em { color: var(--gold); }

footer { padding: 45px max(5vw,30px) 30px; display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 36px; border-top: 1px solid var(--line); background: #09040b; }
.footer-locations { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.footer-locations address { min-width: 0; display: flex; flex-direction: column; gap: 5px; font-style: normal; }
.footer-locations strong { color: var(--gold); font-size: 11px; text-transform: uppercase; }
.footer-locations span { color: var(--muted); font-size: 10px; }
.footer-locations a { width: fit-content; min-height: 44px; display: inline-flex; align-items: center; font-size: 10px; font-weight: 900; }
footer > nav { display: flex; gap: 18px; }
footer > nav a { min-height: 44px; display: grid; place-items: center; font-size: 10px; font-weight: 900; }
footer > small { grid-column: 1 / -1; padding-top: 20px; border-top: 1px solid var(--line); color: #9b909e; font-size: 9px; }
.mobile-bar { display: none; }

html.js [data-reveal], html.js [data-split] { opacity: 0; transform: translateY(28px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
html.js [data-reveal].visible, html.js [data-split].visible { opacity: 1; transform: none; }

@keyframes load-meter { to { width: 100%; } }
@keyframes loader-ring { to { transform: translate(-50%,-50%) scale(1); opacity: .2; } }
@keyframes title-in { to { transform: translateY(0); } }
@keyframes orbit-spin { to { transform: rotate(360deg); } }
@keyframes seal-spin { to { transform: rotate(360deg); } }
@keyframes poster-shine { 0%,58% { transform: translateX(-130%); } 88%,100% { transform: translateX(130%); } }
@keyframes status-pulse { 50% { box-shadow: 0 0 0 11px rgba(255,181,43,0),0 0 28px var(--gold); } }
@keyframes scroll-line { 0% { transform: translateX(-100%); } 60%,100% { transform: translateX(100%); } }
@keyframes marquee { to { transform: translateX(-50%); } }
@keyframes scan { from { transform: translateY(-20%); } to { transform: translateY(430%); } }
@keyframes item-in { to { opacity: 1; transform: none; } }
@keyframes photo-beam { to { transform: translateX(260%) rotate(-18deg); opacity: .6; } }
@keyframes finale-ring { to { transform: scale(1.08); opacity: .35; } }
@keyframes bowl-float { to { transform: translateY(-16px) rotate(1.3deg); } }
@keyframes product-swap { 0% { opacity: 0; transform: translateY(34px) scale(.88) rotate(-3deg); clip-path: inset(100% 0 0); } 62% { opacity: 1; transform: translateY(-7px) scale(1.025) rotate(.8deg); clip-path: inset(0); } 100% { opacity: 1; transform: none; clip-path: inset(0); } }
@keyframes word-swap { 0% { opacity: 0; transform: translate(-45px,-50%); } 100% { opacity: 1; transform: translate(0,-50%); } }
@keyframes price-roll { 0% { opacity: 0; transform: translateY(22px); } 100% { opacity: 1; transform: none; } }

@media (max-width: 1000px) {
  .site-header nav { display: none; }
  .hero { min-height: 920px; grid-template-columns: 1fr; align-items: start; }
  .hero-copy { padding-top: 30px; }
  .hero h1 { font-size: clamp(88px,17vw,150px); }
  .hero-stage { position: absolute; z-index: 0; width: 68vw; height: 600px; right: -4vw; bottom: 20px; opacity: .72; }
  .hero-copy { z-index: 5; }
  .hero::after { content: ""; position: absolute; z-index: 1; inset: 0; background: linear-gradient(180deg,var(--night) 0 33%,rgba(16,7,19,.18) 60%,var(--night) 100%); pointer-events: none; }
  .hero-copy, .hero-scroll { position: relative; z-index: 3; }
  .signature { min-height: auto; grid-template-columns: 1fr; }
  .signature-copy { padding-top: 0; }
  .signature-visual { min-height: 620px; }
  .sticky-bowl { height: 580px; }
  .crousty-stage { min-height: auto; grid-template-columns: 1fr; grid-template-rows: auto; }
  .stage-visual { min-height: 460px; }
  .stage-visual img { width: min(105%,720px); }
  .stage-orbit { width: min(65vw,470px); }
  .stage-word { top: 260px; font-size: 22vw; }
  .stage-copy { padding: 0 50px 48px; }
  .flavor-dock { grid-template-columns: repeat(5,minmax(180px,1fr)); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .flavor-dock::-webkit-scrollbar { display: none; }
  .flavor-button { scroll-snap-align: start; }
  .formulas { grid-template-columns: 1fr; }
  .formula-visual { width: 100%; min-height: 0; height: 550px; }
  .evidence-head { grid-template-columns: 1fr; gap: 30px; }
  .evidence-head > p:last-child { justify-self: start; }
  .campaign-grid { grid-template-columns: 1fr 1fr; grid-template-rows: 480px 310px 250px; }
  .campaign-card--classic { grid-column: 1 / -1; grid-row: 1; }
  .campaign-card--classic .campaign-card__bowl { width: 58%; }
  .campaign-card--boursin { grid-column: 1 / -1; grid-row: 2; }
  .campaign-card--boursin .campaign-card__bowl { bottom: 21%; left: 54%; width: 50%; }
  .campaign-card--curry { grid-column: 1; grid-row: 3; }
  .campaign-card--chili { grid-column: 2; grid-row: 3; }
  .campaign-card--curry .campaign-card__bowl, .campaign-card--chili .campaign-card__bowl { bottom: 20%; width: 76%; }
  .locations-head { grid-template-columns: 1fr; gap: 26px; }
  .locations-head > p:last-child { justify-self: start; }
  .locations-shell { grid-template-columns: 1fr; }
  .locations-visual { position: relative; top: auto; height: 360px; }
  .locations-list { grid-template-columns: 1fr 1fr; }
  .location-card { grid-template-columns: 1fr; }
  .location-card__index { position: absolute; top: 26px; right: 28px; }
  .finale { min-height: 860px; padding-top: 110px; }
  footer { grid-template-columns: auto 1fr; }
  footer > nav { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
  :root { --radius: 20px; }
  .cursor { display: none; }
  .loader { padding: 24px; }
  .loader-word { font-size: 20vw; }
  .site-header { width: calc(100% - 20px); min-height: 66px; top: max(8px,env(safe-area-inset-top)); padding-left: 12px; border-radius: 18px; backdrop-filter: blur(8px) saturate(125%); }
  .site-header.scrolled { top: max(5px,env(safe-area-inset-top)); }
  .exact-logo--header { width: 76px; }
  .nav-cta { min-height: 48px; padding-inline: 15px; gap: 9px; }
  .nav-cta span { font-size: 10px; }
  .hero { min-height: 820px; padding: 100px 16px 64px; }
  .hero h1 { margin: 22px 0 22px; font-size: clamp(68px,20vw,82px); line-height: .72; }
  .title-line--gold { left: 84%; top: 40%; }
  .hero-lede { font-size: 14px; }
  .hero-actions { margin-top: 24px; flex-direction: column; align-items: stretch; }
  .pill { min-height: 52px; padding-inline: 19px; }
  .pill { width: 100%; }
  .hero-stage { width: 104vw; height: 520px; right: -13vw; bottom: 4px; opacity: .62; }
  .hero-poster { border-radius: 25px; }
  .price-badge { left: 15vw; bottom: 7%; width: 102px; }
  .price-badge strong { font-size: 36px; }
  .crunch-seal { display: none; }
  .hero-proof { margin-top: 20px; color: white; }
  .hero-scroll { display: none; }
  .marquee-track { padding-block: 10px; }
  .marquee span { font-size: 22px; }
  .signature, .menu-section, .formulas { padding: 78px 16px; }
  .signature h2, .menu-heading h2, .formula-copy h2, .evidence-head h2, .locations-head h2 { font-size: clamp(52px,15.5vw,64px); }
  .signature-copy > p:not(.section-label), .menu-heading > p:last-child { font-size: 15px; }
  .signature-copy > p:not(.section-label) { margin: 26px 0; }
  .ingredient-list { margin-top: 30px; }
  .signature-visual { min-height: 470px; }
  .sticky-bowl { position: relative; top: auto; height: 440px; border-radius: 24px; transform: none; }
  .signature-price { left: -4px; bottom: 10px; padding: 16px 20px; }
  .signature-price strong { font-size: 40px; }
  .menu-heading { margin-bottom: 36px; }
  .menu-shell { padding: 7px; border-radius: 24px; }
  .menu-interface { padding: 0; }
  .menu-status { min-height: 46px; padding-inline: 11px; }
  .menu-status output { font-size: 9px; }
  .menu-tabs { margin: 12px 0; flex-wrap: nowrap; scroll-snap-type: x proximity; }
  .menu-tabs button { min-height: 44px; flex: 0 0 auto; padding-inline: 15px; scroll-snap-align: start; }
  .crousty-stage { border-radius: 19px; }
  .stage-index { top: 20px; left: 20px; }
  .stage-visual { min-height: 315px; padding-top: 28px; }
  .stage-visual img { width: 112%; }
  .stage-visual::after { bottom: 7%; }
  .stage-orbit { width: 62vw; }
  .stage-word { top: 164px; font-size: 23vw; }
  .stage-copy { padding: 0 18px 24px; }
  .stage-eyebrow { margin-bottom: 13px; }
  .stage-copy h3 { font-size: clamp(50px,15.5vw,64px); }
  .stage-copy > p:not(.stage-eyebrow) { margin: 16px 0 22px; font-size: 12px; }
  .stage-price strong { font-size: 48px; }
  .flavor-dock { padding: 7px; grid-template-columns: repeat(5,140px); }
  .flavor-hint { position: relative; z-index: 7; grid-column: 1 / -1; margin: 0; padding: 10px 12px 14px; display: block; border-top: 1px solid rgba(255,255,255,.08); background: rgba(10,4,12,.9); color: var(--gold); font-size: 8px; font-weight: 1000; letter-spacing: .12em; text-align: center; }
  .flavor-button { min-height: 68px; grid-template-columns: 50px 1fr; }
  .flavor-thumb { width: 50px; height: 48px; }
  .menu-grid { grid-template-columns: 1fr; }
  .menu-item { min-height: 122px; padding: 16px 14px; grid-template-columns: auto 1fr auto; gap: 11px; }
  .menu-item__index { width: 34px; }
  .menu-item h3 { font-size: 21px; }
  .menu-item strong { font-size: 20px; }
  .formulas { gap: 36px; }
  .formula-copy { order: -1; }
  .formula-visual { min-height: 0; height: 460px; border-radius: 24px; transform: none; }
  .formula-visual > img { top: 15%; width: 122%; }
  .formula-badge { top: 16px; right: 14px; width: 102px; padding: 15px; }
  .formula-badge strong { font-size: 29px; }
  .formula-equation { right: 10px; bottom: 10px; left: 10px; padding-inline: 10px; gap: 6px; }
  .formula-equation span { font-size: 8px; }
  .formula-card { margin-top: 10px; padding: 16px; gap: 14px; }
  .formula-card { grid-template-columns: auto 1fr; }
  .formula-card strong { grid-column: 2; }
  .formula-card h3 { font-size: 20px; }
  .formula-card p { font-size: 11px; }
  .evidence { padding: 80px 16px 96px; }
  .evidence::before { top: 55px; font-size: 35vw; }
  .evidence-head { grid-template-columns: 1fr; gap: 20px; }
  .evidence-head > p:last-child { justify-self: start; font-size: 15px; }
  .campaign-grid { margin-top: 36px; grid-template-columns: 1fr; grid-template-rows: none; gap: 10px; }
  .campaign-card { border-radius: 21px; }
  .campaign-card--classic, .campaign-card--boursin, .campaign-card--curry, .campaign-card--chili { grid-column: 1; grid-row: auto; }
  .campaign-card--classic { height: 475px; }
  .campaign-card--classic::before { background: linear-gradient(180deg,rgba(16,5,20,.62) 0 38%,rgba(16,5,20,.08) 68%),linear-gradient(0deg,rgba(16,5,20,.55),transparent 45%); }
  .campaign-card__copy { width: 100%; height: 100%; padding: 23px 21px; }
  .campaign-card__copy h3 { margin-top: 40px; font-size: 64px; }
  .campaign-card__copy p { width: 78%; margin-top: 13px; font-size: 12px; }
  .campaign-card__copy div { margin-top: 0; }
  .campaign-card--classic .campaign-card__bowl { right: -8%; bottom: 0; width: 98%; }
  .campaign-card--boursin, .campaign-card--curry, .campaign-card--chili { height: 285px; }
  .campaign-card__contact-shadow { bottom: 18%; }
  .campaign-card--boursin .campaign-card__contact-shadow { left: 54%; width: 42%; }
  .campaign-card--curry .campaign-card__contact-shadow, .campaign-card--chili .campaign-card__contact-shadow { width: 58%; }
  .campaign-card--boursin .campaign-card__bowl { bottom: 21%; left: 54%; width: 82%; }
  .campaign-card--curry .campaign-card__bowl, .campaign-card--chili .campaign-card__bowl { bottom: 20%; left: 50%; width: 82%; }
  .campaign-card__tag { top: 18px; right: 18px; left: 18px; }
  .campaign-card__tag h3, .campaign-card--curry .campaign-card__tag h3, .campaign-card--chili .campaign-card__tag h3 { font-size: 40px; }
  .campaign-card__tag strong, .campaign-card--curry .campaign-card__tag strong, .campaign-card--chili .campaign-card__tag strong { font-size: 23px; }
  .locations { padding: 76px 12px 88px; }
  .locations-head { padding-inline: 4px; margin-bottom: 32px; }
  .locations-head h2 { font-size: clamp(50px,14vw,60px); }
  .locations-head > p:last-child { font-size: 15px; }
  .locations-shell { padding: 0; gap: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
  .locations-visual { display: none; }
  .restaurant-wall-logo { top: 25%; width: min(58%,230px); }
  .locations-visual figcaption { right: 16px; bottom: 15px; left: 16px; }
  .locations-visual figcaption strong { max-width: 160px; font-size: 12px; }
  .locations-list { grid-template-columns: 1fr; gap: 10px; }
  .location-card { min-height: 0; padding: 26px 18px; border-radius: 20px; }
  .location-card__index { top: 22px; right: 18px; font-size: 52px; }
  .location-card h3 { padding-right: 50px; font-size: clamp(40px,12vw,50px); }
  .location-card__rating { padding-right: 54px; }
  .location-card__rating { margin: 16px 0 13px; }
  .location-card__actions { margin-top: 18px; display: grid; grid-template-columns: 1fr 1fr; }
  .location-card__actions .pill, .location-card__actions .text-link { width: 100%; min-height: 46px; justify-content: center; }
  .location-card__actions .text-link { grid-column: 1 / -1; }
  .finale { min-height: 720px; padding: 88px 16px 110px; }
  .exact-logo--final { width: 230px; margin-bottom: -12px; }
  .finale h2 { margin-bottom: 30px; font-size: clamp(78px,22vw,96px); }
  footer { padding: 36px 18px calc(102px + env(safe-area-inset-bottom)); grid-template-columns: 1fr; justify-items: start; }
  .exact-logo--footer { width: 130px; }
  .footer-locations { grid-template-columns: 1fr; gap: 18px; }
  footer > nav { grid-column: 1; flex-wrap: wrap; }
  .mobile-bar { position: fixed; z-index: 450; right: 8px; bottom: max(8px,env(safe-area-inset-bottom)); left: 8px; min-height: 66px; padding: 8px 8px 8px 13px; display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 7px; border: 1px solid var(--line); border-radius: 16px; background: rgba(16,7,19,.97); backdrop-filter: blur(8px); box-shadow: 0 15px 40px rgba(0,0,0,.5); }
  .mobile-bar span { display: flex; flex-direction: column; }
  .mobile-bar b { font-size: 10px; }
  .mobile-bar small { color: var(--muted); font-size: 9px; }
  .mobile-bar > a { min-height: 44px; padding: 10px 12px; display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: 10px; font-size: 10px; font-weight: 900; }
  .mobile-bar .mobile-bar-menu { border-color: var(--gold); background: var(--gold); color: var(--night); }
}

@media (pointer: coarse) {
  .cursor { display: none; }
  .hero-orbit, .hero-poster::after, .sticky-bowl::before, .scan-line, .stage-orbit, .formula-halo, .photo-sweep, .finale-rings i, .crunch-seal { animation: none; }
  .hero-poster, .sticky-bowl { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .cursor, .spark-canvas { display: none !important; }
  .hero-poster, .sticky-bowl { transform: none !important; }
  html.js [data-reveal], html.js [data-split] { opacity: 1; transform: none; }
}
