/* ===================== DESIGN TOKENS ===================== */
:root{
  --bg: #100b06;
  --bg-alt: #1b140c;
  --card-alt: #272119;
  --ink: #1a1512;
  --cream: #f5e4c7;
  --cream-dim: #cbb691;
  --gold: #d9a13a;
  --gold-muted: #be8d3f;
  --ember: #f15726;
  --regent: #da1f27;
  --line: rgba(245,230,199,.14);
  --line-strong: rgba(245,230,199,.34);

  --font-display: "Lilita One", "Anton", sans-serif;
  --font-body: "Inter Tight", "Inter", sans-serif;
  --font-script: "Caveat", cursive;

  --container: 1240px;
  --header-h: 88px;
  --header-h-s: 68px;
}

[data-color="gold"]   { --accent: var(--gold-muted); --accent-bright: var(--gold); }
[data-color="ember"]  { --accent: var(--ember); --accent-bright: var(--ember); }
[data-color="regent"] { --accent: var(--regent); --accent-bright: var(--regent); }

/* ===================== RESET ===================== */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
html.no-scroll, body.no-scroll{ overflow:hidden; height:100%; }
body{
  background:var(--bg);
  color:var(--cream);
  font-family:var(--font-body);
  overflow-x:hidden;
  line-height:1.5;
}
img,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; background:none; border:none; color:inherit; }
h1,h2,h3{ font-family:var(--font-display); font-weight:400; line-height:1.05; letter-spacing:.01em; }
.section-title{
  font-size:clamp(2.6rem,7vw,5rem);
  text-align:center;
  margin-bottom:2.5rem;
  text-transform:uppercase;
}
.outline-text{
  -webkit-text-stroke:1.5px var(--cream);
  color:transparent;
}
.eyebrow{
  display:inline-flex; align-items:center; gap:.6rem;
  font-weight:700; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gold);
}
.eyebrow::before,.eyebrow::after{ content:''; width:22px; height:1px; background:var(--line-strong); }
section{ position:relative; padding:6rem 1.5rem; max-width:var(--container); margin:0 auto; scroll-margin-top:var(--header-h); }

.btn{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.9rem 1.8rem;
  border-radius:999px;
  font-weight:700;
  font-size:.9rem;
  letter-spacing:.02em;
  text-transform:uppercase;
  transition:transform .25s ease, box-shadow .25s ease;
}
.btn-cream{ background:var(--cream); color:var(--ink); }
.btn-dark{ background:var(--ink); color:var(--cream); }
.btn:hover{ transform:translateY(-2px); box-shadow:0 10px 26px rgba(0,0,0,.4); }

/* ===================== PRELOADER ===================== */
.preloader{
  position:fixed; inset:0; z-index:2000;
  background:var(--bg);
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
}
.no-preloader .preloader{ display:none; }
.preloader-ring{
  position:absolute; left:50%; top:50%; border-radius:50%;
  transform:translate(-50%,-50%) scale(0);
  width:120vmax; height:120vmax;
}
.preloader-ring[data-ring="1"]{ background:var(--gold-muted); }
.preloader-ring[data-ring="2"]{ width:90vmax; height:90vmax; background:var(--ember); }
.preloader-ring[data-ring="3"]{ width:60vmax; height:60vmax; background:var(--regent); }
.preloader-ring[data-ring="4"]{ width:32vmax; height:32vmax; background:var(--bg); }
.preloader-core{
  position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; gap:.9rem;
}
.preloader-mark{ width:96px; height:96px; color:var(--cream); opacity:0; transform:scale(.6); }
.preloader-mark svg{ width:100%; height:100%; }
.preloader-word{ display:flex; gap:.05em; font-family:var(--font-display); font-size:clamp(1.6rem,4vw,2.4rem); text-transform:uppercase; color:var(--cream); }
.preloader-word span{ opacity:0; transform:translateY(10px); display:inline-block; }
.preloader-crumbs{ position:absolute; inset:0; z-index:1; pointer-events:none; }
.preloader-crumb{
  position:absolute; width:64px; height:64px; opacity:0; transform:scale(.4) rotate(-12deg);
  color:var(--cream);
}
.preloader-crumb svg{ width:100%; height:100%; filter:drop-shadow(0 8px 18px rgba(0,0,0,.5)); }
.preloader-crumb[data-pos="1"]{ top:22%; left:22%; }
.preloader-crumb[data-pos="2"]{ top:26%; right:20%; }
.preloader-crumb[data-pos="3"]{ bottom:24%; left:18%; }
.preloader-crumb[data-pos="4"]{ bottom:20%; right:24%; }

/* ===================== HEADER ===================== */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  height:var(--header-h);
  display:flex; align-items:center;
  transition:background .3s ease, height .3s ease, border-color .3s ease;
  border-bottom:1px solid transparent;
}
.site-header.is-scrolled{
  background:rgba(16,11,6,.86);
  backdrop-filter:blur(10px);
  height:var(--header-h-s);
  border-color:var(--line);
}
.header-inner{
  width:100%; max-width:var(--container); margin:0 auto;
  padding:0 1.5rem;
  display:flex; align-items:center; justify-content:space-between;
}
.logo{ display:flex; align-items:center; gap:.6rem; color:var(--cream); }
.logo-crown{ width:34px; height:22px; color:var(--gold); }
.logo-full{ display:flex; align-items:center; gap:.6rem; transition:opacity .25s ease; }
.logo-flourish{ display:none; width:64px; height:30px; color:var(--cream-dim); opacity:.7; }
.logo-word{ font-family:var(--font-display); font-size:1.5rem; letter-spacing:.02em; }
.logo-word span{ color:var(--gold); }

.main-nav{ display:flex; align-items:center; gap:2.2rem; font-weight:600; font-size:.92rem; text-transform:uppercase; letter-spacing:.03em; transition:opacity .25s ease, visibility .25s ease; }
.main-nav a{ opacity:.9; transition:opacity .2s, color .2s; }
.main-nav a:hover, .main-nav a.is-active{ opacity:1; color:var(--gold); }
.cart-text{ opacity:.7; }

.header-actions{ display:flex; align-items:center; gap:.7rem; }
.icon-btn{
  width:42px; height:42px; border-radius:999px;
  border:1px solid var(--line-strong);
  display:flex; align-items:center; justify-content:center;
  color:var(--cream); position:relative;
  transition:border-color .2s, background .2s;
}
.icon-btn svg{ width:20px; height:20px; }
.icon-btn:hover{ border-color:var(--gold); }
.cart-badge{
  position:absolute; top:-6px; right:-6px;
  background:var(--ember); color:var(--cream);
  font-size:.65rem; font-weight:700;
  min-width:18px; height:18px; border-radius:999px;
  display:flex; align-items:center; justify-content:center;
  padding:0 4px;
}

/* header scroll-shrink state */
.site-header.is-scrolled .main-nav{ opacity:0; visibility:hidden; }
.site-header.is-scrolled .logo-full{ opacity:0; width:0; overflow:hidden; }
.site-header.is-scrolled .logo-flourish{ display:block; }

@media (max-width:900px){
  .main-nav{ display:none; }
}
@media (max-width:560px){
  .header-inner{ padding:0 1rem; }
  .header-actions{ gap:.5rem; }
  .get-feast-btn{ padding:.65rem 1.1rem; font-size:.78rem; }
  .logo-word{ font-size:1.2rem; }
  .logo-crown{ width:26px; height:18px; }
  .icon-btn{ width:38px; height:38px; }
  .icon-btn svg{ width:17px; height:17px; }
}
@media (max-width:400px){
  .get-feast-btn{ display:none; }
}

/* ===================== OVERLAY PANELS (menu + cart) ===================== */
.overlay-panel{
  position:fixed; top:0; right:0; height:100%;
  width:min(480px,100%);
  background:var(--cream); color:var(--ink);
  z-index:200;
  padding:5rem 3rem 3rem;
  transform:translateX(100%);
  transition:transform .5s cubic-bezier(.77,0,.18,1);
  display:flex; flex-direction:column;
  overflow-y:auto;
}
.overlay-panel.is-open{ transform:translateX(0); }
.overlay-close{
  position:absolute; top:1.8rem; right:1.8rem;
  width:44px; height:44px; border:1px solid var(--ink);
  border-radius:999px; display:flex; align-items:center; justify-content:center;
}
.overlay-close svg{ width:20px; height:20px; }

.overlay-links{ display:flex; flex-direction:column; gap:0; }
.overlay-links a{
  font-family:var(--font-display);
  font-size:clamp(2rem,6vw,3rem);
  text-transform:uppercase;
  padding:1rem 0;
  border-bottom:1px solid rgba(26,21,18,.15);
  transition:padding-left .2s, color .2s;
}
.overlay-links a:hover{ padding-left:.8rem; color:var(--regent); }

.overlay-social{ display:flex; gap:1.5rem; margin-top:2.5rem; border-top:1px solid rgba(26,21,18,.15); padding-top:1.5rem; }
.social-link{ display:flex; align-items:center; gap:.5rem; font-weight:700; font-size:.85rem; text-transform:uppercase; border:1px solid var(--ink); padding:.7rem 1rem; border-radius:8px; }
.social-link svg{ width:18px; height:18px; }

/* cart drawer */
.cart-drawer{ padding-top:5rem; }
.cart-title{ font-size:1.6rem; margin-bottom:1.5rem; }
.cart-items{ flex:1; }
.cart-empty{ opacity:.6; }
.cart-line{ display:flex; justify-content:space-between; align-items:center; padding:.9rem 0; border-bottom:1px solid rgba(26,21,18,.12); }
.cart-line-name{ font-weight:700; }
.cart-line-sub{ font-size:.8rem; opacity:.6; }
.cart-summary{ border-top:1px solid rgba(26,21,18,.2); padding-top:1rem; margin-top:1rem; }
.cart-row{ display:flex; justify-content:space-between; padding:.4rem 0; font-size:.9rem; opacity:.8; }
.cart-total{ font-weight:800; font-size:1.1rem; opacity:1; }
.checkout-btn{ width:100%; justify-content:center; margin-top:1.2rem; }

/* ===================== PHOTO / IMAGE TREATMENT ===================== */
img.photo, video.photo{
  display:block; width:100%; height:100%; object-fit:cover;
  filter:saturate(1.12) contrast(1.08) brightness(.95) sepia(.05);
}

/* ===================== PAGE HERO (about/faq/contact) ===================== */
.page-hero{ padding-top:calc(var(--header-h) + 4rem); padding-bottom:2rem; text-align:center; }
.page-hero h1{ font-size:clamp(2.4rem,6vw,4.4rem); text-transform:uppercase; max-width:920px; margin:0 auto; }
.page-hero p{ margin-top:1.2rem; color:var(--cream-dim); max-width:560px; margin-left:auto; margin-right:auto; font-size:1.05rem; }

/* ===================== HERO ===================== */
.hero{ padding-top:calc(var(--header-h) + 3rem); text-align:center; min-height:100vh; position:relative; overflow:hidden; }
.hero-bg{ position:absolute; inset:0; z-index:0; }
.hero-bg img, .hero-bg video{ object-position:center 30%; opacity:.5; }
.hero-bg::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(16,11,6,.55) 0%, rgba(16,11,6,.45) 45%, var(--bg) 96%);
}
.hero > *:not(.hero-bg){ position:relative; z-index:1; }
.hero-headline{
  font-size:clamp(2.6rem,7.4vw,5.6rem);
  text-transform:uppercase;
  max-width:1040px; margin:0 auto 2.4rem;
  text-shadow:0 4px 24px rgba(0,0,0,.6);
}
.hero-headline .split-word{ display:inline-block; white-space:nowrap; }
.hero-headline .split-word + .split-word{ margin-left:.28em; }
.hero-headline .split-char{ display:inline-block; will-change:transform,opacity; }
.hero-headline .w-outline .split-char{ -webkit-text-stroke:1.5px var(--cream); color:transparent; }
.hero-headline .w-accent .split-char{ color:var(--gold); }

.product-carousel{ position:relative; display:flex; align-items:center; justify-content:center; margin-top:1rem; }
.product-carousel::before{
  content:''; position:absolute; top:50%; left:0; right:0;
  border-top:1px dashed var(--line-strong); z-index:0;
}
.product-carousel > *{ position:relative; z-index:1; }
.product-carousel > .arrow{ z-index:3; }
.product-track{ position:relative; width:100%; max-width:760px; height:460px; }
.product-slide{
  position:absolute; inset:0;
  display:flex; flex-direction:column; align-items:center; justify-content:flex-start;
  opacity:0; pointer-events:none;
  transform:scale(.94);
  transition:opacity .5s ease, transform .5s ease;
}
.product-slide.is-active{ opacity:1; pointer-events:auto; transform:scale(1); }
.product-meta{
  width:100%; display:flex; justify-content:space-between; align-items:center;
  padding-bottom:1rem; border-bottom:1px dashed var(--line-strong);
  font-weight:700; font-size:.85rem; letter-spacing:.05em; text-transform:uppercase;
}
.product-visual{ position:relative; margin-top:3rem; width:100%; display:flex; justify-content:center; }
.product-orb{
  position:absolute; inset:0; margin:auto;
  width:300px; height:300px; max-width:80vw; aspect-ratio:1/1; border-radius:50%;
  background:var(--accent, var(--gold-muted));
  opacity:.4; filter:blur(34px);
}
.product-photo{
  position:relative; width:300px; height:300px; max-width:78vw; aspect-ratio:1/1;
  flex-shrink:0; z-index:1;
}
.product-photo img.photo{
  object-fit:contain; filter:drop-shadow(0 22px 46px rgba(0,0,0,.5));
}
.product-crown-badge{
  position:absolute; top:-14px; left:50%; transform:translateX(-50%);
  width:64px; height:40px; color:var(--gold); z-index:2;
  background:var(--bg); padding:6px 12px; border-radius:999px;
  filter:drop-shadow(0 4px 10px rgba(0,0,0,.6));
}
.hero-cta{ position:relative; display:flex; justify-content:center; margin-top:2.2rem; padding-top:1.6rem; }
.hero-cta::before{
  content:''; position:absolute; top:0; left:0; right:0;
  border-top:1px dashed var(--line-strong);
}

.product-prop{
  position:absolute; z-index:2;
  filter:drop-shadow(0 14px 26px rgba(0,0,0,.45));
}
.hero-ready .product-prop{ transition:transform .3s cubic-bezier(.34,1.56,.64,1); }
.product-prop svg{ width:100%; height:100%; display:block; }
.product-prop img{ width:100%; height:100%; display:block; object-fit:contain; }
.product-prop.prop-1{ width:210px; height:210px; left:-8%; bottom:-4%; }
.product-prop.prop-2{ width:130px; height:130px; right:-6%; top:0%; }
.product-prop .prop-face{ position:absolute; inset:0; }
.product-prop .mouth-open{ display:none; }
.product-prop .mouth-closed{ opacity:1; }
.product-visual:hover .product-prop.prop-1{ transform:scale(1.08) rotate(-5deg); }
.product-visual:hover .product-prop.prop-2{ transform:scale(1.1) rotate(5deg); }
.product-visual:hover .product-prop .crumb-tooltip{ opacity:1; transform:translate(-50%,0) scale(1) rotate(var(--tip-r,-4deg)); }
@media (max-width:760px){
  .product-prop{ display:none; }
}

.arrow{
  width:56px; height:56px; border-radius:999px;
  background:var(--cream); color:var(--ink);
  display:flex; align-items:center; justify-content:center;
  font-size:1.3rem; flex-shrink:0;
  transition:transform .2s ease, background .2s ease;
}
.arrow:hover{ transform:scale(1.08); background:var(--gold); }

/* ===================== INTRO STATEMENT ===================== */
.intro-statement{ text-align:center; padding-top:4rem; padding-bottom:4rem; position:relative; z-index:1; }
.intro-text{
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(1.7rem,4.2vw,3.1rem); line-height:1.28;
  max-width:920px; margin:0 auto; color:var(--cream);
  position:relative; z-index:2;
}
.intro-text .iword{ display:inline-block; }
.intro-text .iword.script{
  font-family:var(--font-script); font-weight:700; color:var(--gold);
  font-size:1.18em; transform:rotate(var(--r,-3deg)); margin:0 .05em;
}
.inline-icon{ display:inline-flex; vertical-align:-.12em; width:1.05em; height:1.05em; margin:0 .12em; }
.inline-icon.icon-splat{ color:var(--regent); width:1em; height:1em; }
.inline-icon.icon-chef{ color:var(--cream-dim); }

/* ---- persistent floating ingredient layer (spans intro + value-stack) ---- */
.floating-ingredients{ position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.intro-crumb{
  position:absolute; width:150px; height:150px; overflow:visible;
  filter:drop-shadow(0 16px 30px rgba(0,0,0,.5)) blur(.3px);
  opacity:.95;
}
.intro-crumb img, .intro-crumb svg{ width:100%; height:100%; object-fit:contain; }
.intro-crumb{ pointer-events:auto; }
.crumb-face{ position:absolute; inset:0; pointer-events:none; z-index:2; }
.crumb-face .mouth-open{ display:none; }
.crumb-face .mouth-closed{ opacity:1; }
.intro-crumb{ transition:scale .4s cubic-bezier(.34,1.56,.64,1); scale:1; }
.intro-crumb:hover{ scale:1.2; animation:crumbWiggle .8s ease-in-out infinite; }

.crumb-tooltip{
  position:absolute; left:50%; top:-14%; z-index:3;
  transform:translate(-50%,4px) scale(.6) rotate(var(--tip-r,-4deg));
  background:var(--cream); color:var(--ink);
  font-family:var(--font-display); font-weight:400; font-size:.85rem;
  letter-spacing:.02em; white-space:nowrap;
  padding:.3em .7em; border-radius:999px 999px 999px 4px;
  box-shadow:0 8px 18px rgba(0,0,0,.4);
  opacity:0; pointer-events:none;
  transition:opacity .2s ease, transform .3s cubic-bezier(.34,1.7,.64,1);
}
.intro-crumb:hover .crumb-tooltip{ opacity:1; transform:translate(-50%,0) scale(1) rotate(var(--tip-r,-4deg)); }
@keyframes crumbWiggle{
  0%,100%{ rotate:-7deg; }
  50%{ rotate:7deg; }
}
.intro-crumb.c1{ top:-8%; left:2%; transform:rotate(-8deg); }
.intro-crumb.c2{ top:6%; right:3%; width:120px; height:120px; transform:rotate(10deg); }
.intro-crumb.c3{ bottom:0%; left:12%; width:112px; height:112px; transform:rotate(6deg); }
.intro-crumb.c4{ bottom:4%; right:8%; transform:rotate(-6deg); }

.floating-ingredients--tall{ opacity:.9; }
.floating-ingredients--tall .intro-crumb{ opacity:.6; filter:drop-shadow(0 16px 30px rgba(0,0,0,.5)) blur(.6px); }
.floating-ingredients--tall .vc1{ width:170px; height:170px; top:3%; left:2%; }
.floating-ingredients--tall .vc2{ width:130px; height:130px; top:15%; right:4%; }
.floating-ingredients--tall .vc3{ width:145px; height:145px; top:37%; left:4%; }
.floating-ingredients--tall .vc4{ width:155px; height:155px; top:55%; right:2%; }
.floating-ingredients--tall .vc5{ width:125px; height:125px; top:75%; left:8%; }

@media (max-width:760px){ .floating-ingredients{ display:none; } }

/* ===================== VALUE STACK (stacking card scroll reveal) ===================== */
.value-stack{ padding-top:2rem; padding-bottom:2rem; }
.value-pin{ display:flex; flex-direction:column; align-items:center; gap:0; width:100%; max-width:620px; margin:0 auto; position:relative; z-index:1; }
.value-bars{ width:100%; display:flex; flex-direction:column; }
.value-bar{
  width:100%; text-align:center;
  padding:.95rem 1rem;
  font-family:var(--font-display);
  font-size:clamp(1rem,2.4vw,1.45rem);
  text-transform:uppercase;
  background:var(--cream-dim); color:var(--ink);
  display:flex; justify-content:space-between; align-items:center;
  border-bottom:1px solid rgba(26,21,18,.15);
  will-change:transform, opacity;
}
.value-bar.is-current{ box-shadow:0 14px 30px rgba(0,0,0,.35); position:relative; z-index:5; }
.value-bar:nth-child(1){ background:#a89572; }
.value-bar:nth-child(2){ background:#c2ac81; }
.value-bar:nth-child(3){ background:#dcc79a; }
.value-bar:nth-child(4){ background:var(--cream); border-bottom:none; }
.value-panel{
  width:100%; background:var(--bg-alt);
  border:1px solid var(--line); border-top:none;
  padding:2.2rem 2rem; text-align:center;
  min-height:190px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
}
.value-detail{ display:none; max-width:480px; }
.value-detail.is-active{ display:flex; flex-direction:column; align-items:center; gap:1.2rem; }
.value-icon{ width:48px; height:48px; color:var(--gold); }
.value-detail p{ font-size:1.1rem; color:var(--cream-dim); }

/* ===================== CHOOSE YOUR CROWN ===================== */
.weapon-section{ padding-top:3rem; padding-bottom:2rem; }
.weapon-heading{ text-align:center; margin-bottom:2.5rem; }
.weapon-heading h2{ font-size:clamp(2.6rem,8vw,5.4rem); text-transform:uppercase; }
.weapon-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-radius:18px; overflow:hidden; }
.weapon-card{
  background:var(--accent, var(--gold-muted));
  min-height:480px; padding:2.4rem 1.8rem 2rem;
  display:flex; flex-direction:column; align-items:center; text-align:center;
  position:relative; overflow:hidden;
}
.weapon-card h3{ color:var(--ink); font-size:clamp(1.5rem,2.6vw,2rem); text-transform:uppercase; line-height:1.1; }
.weapon-tagline{
  color:rgba(26,21,18,.65); font-weight:600; font-size:.85rem; margin-top:.5rem;
  transition:opacity .3s ease, transform .3s ease;
}
.weapon-photo{ flex:1; width:100%; display:flex; align-items:center; justify-content:center; margin:1.4rem 0; position:relative; }
.weapon-photo img{
  width:82%; aspect-ratio:1/1; object-fit:contain;
  filter:drop-shadow(0 16px 34px rgba(0,0,0,.4));
  position:relative; z-index:1;
}
.weapon-crown-mark{
  position:absolute; inset:0; margin:auto; width:62%; height:62%;
  color:rgba(26,21,18,.16); z-index:0;
  transition:opacity .4s ease, transform .4s ease;
}
.weapon-crumb{
  position:absolute; width:30%; z-index:2;
  filter:drop-shadow(0 8px 14px rgba(0,0,0,.35));
  transition:opacity .35s ease, transform .35s ease;
}
.weapon-crumb img{ width:100%; height:100%; display:block; object-fit:contain; }
.weapon-crumb.wc-1{ left:2%; top:22%; }
.weapon-crumb.wc-2{ right:2%; bottom:14%; }
.weapon-buttons{
  width:100%; display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center;
  transition:opacity .3s ease, transform .3s ease;
}
.weapon-buttons .btn{ flex:1; min-width:160px; justify-content:center; white-space:nowrap; }
.weapon-buttons .add-cart-btn{ background:var(--ink); color:var(--cream); }
.btn-outline-dark{ border:1.5px solid var(--ink); color:var(--ink); background:transparent; }
.btn-outline-dark:hover{ background:var(--ink); color:var(--cream); }

/* Hover-reveal choreography — only on real mouse pointers; touch devices keep everything visible */
@media (hover:hover) and (pointer:fine){
  .weapon-tagline{ opacity:0; transform:translateY(-6px); }
  .weapon-crown-mark{ opacity:0; transform:scale(.8); }
  .weapon-crumb{ opacity:0; }
  .weapon-crumb.wc-1{ transform:translateX(-16px) rotate(-12deg); }
  .weapon-crumb.wc-2{ transform:translateX(16px) rotate(12deg); }
  .weapon-buttons{ opacity:0; transform:translateY(10px); }

  .weapon-card:hover .weapon-tagline,
  .weapon-card:focus-within .weapon-tagline{ opacity:1; transform:translateY(0); }
  .weapon-card:hover .weapon-crown-mark,
  .weapon-card:focus-within .weapon-crown-mark{ opacity:1; transform:scale(1); }
  .weapon-card:hover .weapon-crumb,
  .weapon-card:focus-within .weapon-crumb{ opacity:1; }
  .weapon-card:hover .weapon-crumb.wc-1,
  .weapon-card:focus-within .weapon-crumb.wc-1{ transform:translateX(0) rotate(-6deg); animation:weaponCrumbWiggle1 1s ease-in-out .35s infinite; }
  .weapon-card:hover .weapon-crumb.wc-2,
  .weapon-card:focus-within .weapon-crumb.wc-2{ transform:translateX(0) rotate(6deg); animation:weaponCrumbWiggle2 1s ease-in-out .35s infinite; }
  @keyframes weaponCrumbWiggle1{
    0%,100%{ transform:translateX(0) rotate(-6deg) scale(1); }
    50%{ transform:translateX(0) rotate(4deg) scale(1.08); }
  }
  @keyframes weaponCrumbWiggle2{
    0%,100%{ transform:translateX(0) rotate(6deg) scale(1); }
    50%{ transform:translateX(0) rotate(-4deg) scale(1.08); }
  }
  .weapon-card:hover .weapon-buttons,
  .weapon-card:focus-within .weapon-buttons{ opacity:1; transform:translateY(0); }
  .weapon-card:hover .weapon-crumb .crumb-tooltip,
  .weapon-card:focus-within .weapon-crumb .crumb-tooltip{ opacity:1; transform:translate(-50%,0) scale(1) rotate(var(--tip-r,-4deg)); }
}

/* ===================== ACHIEVEMENT (compact, used inside hscroll panel 3) ===================== */
.achievement-award{ display:flex; align-items:center; justify-content:center; gap:1.6rem; flex-wrap:wrap; margin-top:1.5rem; }
.award-photo{
  width:88px; height:126px; border-radius:12px; overflow:hidden;
  border:2px solid var(--line); box-shadow:0 14px 34px rgba(0,0,0,.45);
}
.award-medal{
  width:150px; height:150px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #e9c25f, #a8781f 75%);
  border:3px solid var(--cream);
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  color:#2a1c0c; padding:.8rem; gap:.25rem;
  box-shadow:0 10px 30px rgba(0,0,0,.4);
}
.award-medal span{ font-size:.52rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.award-medal strong{ font-family:var(--font-display); font-size:.9rem; line-height:1.1; }
.award-medal.small{ width:118px; height:118px; padding:.5rem; }
.award-medal.small strong{ font-size:.68rem; }
.award-medal.small span{ font-size:.42rem; }

/* ===================== HORIZONTAL SCROLL-HIJACK ===================== */
.hscroll-wrap{ height:100vh; padding:0; max-width:none; }
.hscroll-track{
  position:relative; height:100vh;
  display:flex; align-items:center;
  width:max-content;
  padding:0 8vw;
  gap:6vw;
}
.hscroll-track::before{
  content:''; position:absolute; left:0; right:0; top:50%;
  border-top:2px dashed var(--line-strong); z-index:-1;
}
.hscroll-panel{ width:82vw; max-width:620px; flex-shrink:0; }
.hscroll-num{
  display:block; font-family:var(--font-display);
  font-size:clamp(5rem,13vw,8.5rem);
  -webkit-text-stroke:2px var(--cream); color:transparent;
  line-height:1;
}
.solo-bar{
  display:inline-flex; gap:.6rem;
  background:var(--cream); color:var(--ink);
  padding:.9rem 1.6rem; border-radius:8px;
  font-family:var(--font-display); text-transform:uppercase;
  font-size:1.1rem; margin:1.3rem 0;
}
.hscroll-panel p{ font-size:1.2rem; color:var(--cream-dim); max-width:520px; }
.hscroll-mascot{ width:min(26vw,240px); flex-shrink:0; color:var(--cream); }
.hscroll-mascot svg{ filter:drop-shadow(0 16px 30px rgba(0,0,0,.5)); }
.mascot-img{ width:100%; display:block; filter:drop-shadow(0 16px 30px rgba(0,0,0,.6)); }
.hscroll-final .achievement-award{ margin-top:1rem; }

/* ===================== FEAST / COMBO ===================== */
.feast{ display:grid; grid-template-columns:1fr 1fr; gap:0; padding:6rem 0; max-width:none; align-items:stretch; border-radius:0; }
.feast-photo{
  min-height:520px; position:relative; overflow:hidden;
  background:var(--accent, var(--gold-muted));
}
.feast-photo .feast-food{
  position:absolute; inset:0; width:100%; height:100%; object-fit:contain;
  object-position:center 62%;
  padding:6%;
  filter:drop-shadow(0 30px 60px rgba(0,0,0,.5));
  transition:opacity .3s ease;
}
.feast-photo::after{
  content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:radial-gradient(circle at 50% 55%, transparent 40%, rgba(0,0,0,.25) 100%);
}
.feast-panel{ padding:3rem 4vw; display:flex; flex-direction:column; }
.feast-toggle{ display:flex; gap:0; margin-bottom:2rem; align-self:flex-end; }
.pack-toggle{
  font-weight:700; text-transform:uppercase; font-size:.85rem;
  padding:.6rem 1.2rem; border-radius:999px; border:1px solid var(--line-strong);
  opacity:.5; margin-left:-1px;
}
.pack-toggle.is-active{ opacity:1; border-color:var(--gold); color:var(--gold); }

.combo-carousel{ flex:1; display:flex; align-items:center; gap:1.5rem; }
.combo-track{ position:relative; flex:1; min-height:340px; }
.combo-card{
  position:absolute; inset:0;
  background:var(--accent, var(--gold-muted));
  border-radius:18px;
  padding:2.5rem 2rem;
  display:flex; flex-direction:column; justify-content:space-between;
  opacity:0; pointer-events:none; transform:translateX(30px);
  transition:opacity .45s ease, transform .45s ease;
}
.combo-card.is-active{ opacity:1; pointer-events:auto; transform:translateX(0); }
.combo-card h3{ font-size:clamp(1.6rem,3vw,2.2rem); text-transform:uppercase; color:var(--ink); }
.combo-includes{
  font-weight:700; font-size:.85rem; letter-spacing:.02em;
  color:rgba(26,21,18,.7); margin:1.5rem 0;
}
.combo-buy{ display:flex; justify-content:flex-start; }
.combo-buy .btn{ background:var(--ink); color:var(--cream); }

/* ===================== DRINKS ===================== */
.drinks-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }
.drink-card{
  background:var(--bg-alt); border:1px solid var(--line); border-radius:18px;
  padding:2.5rem 1.5rem; text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:.8rem;
  transition:transform .3s ease, border-color .3s ease;
}
.drink-card:hover{ transform:translateY(-6px); border-color:var(--gold); }
.drink-photo{
  width:140px; height:170px; border-radius:16px; overflow:hidden; margin-bottom:.5rem;
  box-shadow:0 16px 36px rgba(0,0,0,.5);
}
.drink-card h3{ font-size:1.2rem; text-transform:uppercase; }
.drink-card p{ font-size:.9rem; color:var(--cream-dim); }
.drink-price{ font-weight:800; color:var(--gold); font-size:1.1rem; }

/* ===================== REVIEWS MARQUEE ===================== */
.reviews{ overflow:hidden; padding-left:0; padding-right:0; max-width:none; }
.reviews .section-title{ padding:0 1.5rem; }
.reviews-viewport{ overflow:hidden; width:100%; }
.reviews-track{ display:flex; gap:1.5rem; width:max-content; padding:0 1.5rem; }
.review-card{
  width:340px; flex-shrink:0;
  background:
    repeating-linear-gradient(135deg, rgba(245,230,199,.05) 0 2px, transparent 2px 24px),
    var(--card-alt);
  border:1px solid var(--line); border-radius:4px 4px 0 0;
  overflow:hidden; padding:2.5rem 1.8rem 2rem;
  display:flex; flex-direction:column; gap:1rem;
}
.review-tab{
  align-self:flex-start; background:var(--cream); color:var(--ink);
  font-weight:800; font-size:.85rem; padding:.6rem 1rem; border-radius:6px;
  margin:-2.5rem -1.8rem 0; padding-left:1.8rem;
}
.quote-mark{ font-family:var(--font-display); font-size:2.5rem; color:var(--gold); line-height:.6; -webkit-text-stroke:1px var(--gold); }
.review-headline{ font-family:var(--font-display); text-transform:uppercase; font-size:1.25rem; line-height:1.2; }
.review-body{ color:var(--cream-dim); font-size:.9rem; }

/* ===================== KITCHEN GRID (About page) ===================== */
.kitchen-grid{ max-width:none; padding:0; display:grid; grid-template-columns:repeat(3,1fr); }
.kitchen-panel{
  min-height:340px; background:var(--accent,var(--bg-alt));
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.2rem;
  position:relative; overflow:hidden;
}
.kitchen-art{ position:absolute; inset:0; z-index:0; }
.kitchen-art-dim{ opacity:.4; }
.kitchen-panel::after{
  content:''; position:absolute; inset:0; z-index:0;
  background:linear-gradient(180deg, rgba(0,0,0,.1) 0%, rgba(0,0,0,.6) 100%);
}
.kitchen-panel > *:not(.kitchen-art){ position:relative; z-index:1; }
.kitchen-label{
  font-family:var(--font-display); text-transform:uppercase; font-size:1.1rem;
  background:rgba(0,0,0,.35); padding:.6rem 1.2rem; border-radius:999px;
}

/* ===================== BRAND VIDEO (About page) ===================== */
.brand-video{ text-align:center; }
.video-frame{
  position:relative; height:60vh; min-height:420px; border-radius:18px; overflow:hidden;
  background:linear-gradient(160deg,#241a12,#0f0b08);
  display:flex; align-items:center; justify-content:center; flex-direction:column; gap:1.5rem;
  border:1px solid var(--line);
}
.brand-video-el{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.video-scrim{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(15,11,8,.25) 0%, rgba(15,11,8,.8) 100%);
}
.play-btn, .video-caption{ position:relative; z-index:1; }
.play-btn{
  width:90px; height:90px; border-radius:50%; border:2px solid var(--cream);
  display:flex; align-items:center; justify-content:center;
  transition:transform .3s ease, background .3s ease;
}
.play-btn svg{ width:30px; height:30px; color:var(--cream); margin-left:4px; }
.play-btn:hover{ transform:scale(1.1); background:var(--gold); border-color:var(--gold); }
.video-caption{ text-transform:uppercase; letter-spacing:.1em; font-weight:700; color:var(--cream-dim); font-size:.85rem; }

/* ===================== ABOUT PAGE EXTRAS ===================== */
.about-lede{ text-align:center; max-width:760px; margin:0 auto; padding-bottom:2rem; }
.about-seal{ width:160px; margin:0 auto 1.5rem; filter:drop-shadow(0 14px 26px rgba(0,0,0,.5)); }
.about-lede p{ font-size:clamp(1.1rem,2.2vw,1.4rem); color:var(--cream-dim); }
.founder{ display:grid; grid-template-columns:1fr 1.2fr; gap:3.5rem; align-items:center; padding-top:2rem; }
.founder-photo{ border-radius:20px; overflow:hidden; min-height:420px; box-shadow:0 24px 60px rgba(0,0,0,.5); }
.founder-copy h2{ font-size:clamp(1.8rem,3.4vw,2.6rem); text-transform:uppercase; margin-bottom:1.2rem; }
.founder-copy p{ color:var(--cream-dim); font-size:1.02rem; margin-bottom:1rem; }
.founder-copy p:last-child{ margin-bottom:0; }

.pill-row{ display:flex; flex-wrap:wrap; gap:.8rem; justify-content:center; padding-top:1rem; padding-bottom:1rem; }
.pill{
  border:1px solid var(--line-strong); border-radius:999px; padding:.7rem 1.4rem;
  font-weight:700; font-size:.85rem; text-transform:uppercase; letter-spacing:.02em; color:var(--cream-dim);
}

.bold-statement{ text-align:center; padding:3rem 1.5rem; }
.bold-statement h2{ font-size:clamp(3rem,10vw,7rem); text-transform:uppercase; line-height:.98; }

.badge-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; text-align:center; }
.badge-item{ display:flex; flex-direction:column; align-items:center; gap:.8rem; padding:1.5rem 1rem; border:1px solid var(--line); border-radius:16px; }
.badge-item svg{ width:36px; height:36px; color:var(--gold); }
.badge-item span{ font-family:var(--font-display); text-transform:uppercase; font-size:.95rem; }

/* ===================== FAQ PAGE ===================== */
.faq-list{ max-width:760px; margin:0 auto; display:flex; flex-direction:column; gap:1rem; }
.faq-item{ border:1px solid var(--line); border-radius:14px; overflow:hidden; background:var(--bg-alt); }
.faq-q{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:1.3rem 1.6rem; text-align:left; font-weight:700; font-size:1.05rem;
}
.faq-q .faq-plus{ flex-shrink:0; width:22px; height:22px; position:relative; }
.faq-q .faq-plus::before,.faq-q .faq-plus::after{ content:''; position:absolute; background:var(--gold); border-radius:2px; transition:transform .3s ease; }
.faq-q .faq-plus::before{ width:100%; height:2px; top:50%; left:0; transform:translateY(-50%); }
.faq-q .faq-plus::after{ width:2px; height:100%; left:50%; top:0; transform:translateX(-50%); }
.faq-item.is-open .faq-plus::after{ transform:translateX(-50%) rotate(90deg); opacity:0; }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .35s ease; }
.faq-a p{ padding:0 1.6rem 1.4rem; color:var(--cream-dim); font-size:.98rem; }
.faq-item.is-open .faq-a{ max-height:240px; }

/* ===================== CONTACT PAGE ===================== */
.contact-grid{ display:grid; grid-template-columns:1fr 1.3fr; gap:3rem; align-items:start; }
.contact-info{ display:flex; flex-direction:column; gap:1.6rem; }
.contact-info h3{ font-size:1.4rem; text-transform:uppercase; margin-bottom:.4rem; }
.contact-info a, .contact-info p{ color:var(--cream-dim); }
.contact-form{ display:flex; flex-direction:column; gap:1.1rem; }
.field{ display:flex; flex-direction:column; gap:.5rem; }
.field label{ font-size:.8rem; text-transform:uppercase; letter-spacing:.05em; color:var(--cream-dim); font-weight:700; }
.field input, .field textarea{
  background:var(--bg-alt); border:1px solid var(--line-strong); border-radius:10px;
  padding:.9rem 1rem; color:var(--cream); font-family:inherit; font-size:.98rem;
}
.field input:focus, .field textarea:focus{ outline:none; border-color:var(--gold); }
.field textarea{ resize:vertical; min-height:130px; }
.contact-form .btn{ align-self:flex-start; margin-top:.4rem; }
.form-note{ font-size:.85rem; color:var(--gold); opacity:0; transition:opacity .3s ease; }
.form-note.is-shown{ opacity:1; }

/* ===================== FOOTER ===================== */
.site-footer{ background:var(--bg-alt); border-top:1px solid var(--line); padding:5rem 1.5rem 2rem; }
.footer-top{
  max-width:var(--container); margin:0 auto;
  display:grid; grid-template-columns:1.2fr .7fr .7fr 1.3fr .6fr; gap:2.5rem;
  padding-bottom:3rem; border-bottom:1px solid var(--line);
  align-items:start;
}
.footer-brand p{ margin-top:1rem; color:var(--cream-dim); max-width:300px; font-size:.95rem; }
.footer-col{ display:flex; flex-direction:column; gap:.9rem; }
.footer-col h4{ text-transform:uppercase; font-size:.85rem; letter-spacing:.08em; color:var(--gold); margin-bottom:.2rem; }
.footer-col a{ color:var(--cream-dim); font-size:.95rem; transition:color .2s; border-bottom:1px dashed transparent; }
.footer-col a:hover{ color:var(--cream); }
.footer-newsletter h4{ font-size:clamp(1.4rem,2.4vw,1.8rem); text-transform:uppercase; font-family:var(--font-display); color:var(--cream); margin-bottom:.5rem; }
.footer-newsletter p{ color:var(--cream-dim); font-size:.92rem; margin-bottom:1.2rem; }
.newsletter-form{ display:flex; align-items:center; border:1px solid var(--line-strong); border-radius:999px; padding:.4rem .4rem .4rem 1.2rem; max-width:380px; }
.newsletter-form input{ flex:1; background:none; border:none; color:var(--cream); font-family:inherit; font-size:.95rem; }
.newsletter-form input:focus{ outline:none; }
.newsletter-form button{
  width:42px; height:42px; border-radius:50%; background:var(--gold); color:var(--ink);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  transition:transform .2s ease;
}
.newsletter-form button:hover{ transform:scale(1.08); }
.newsletter-form button svg{ width:18px; height:18px; }
.newsletter-note{ font-size:.78rem; margin-top:.7rem; color:var(--gold); opacity:0; }
.newsletter-note.is-shown{ opacity:1; }
.footer-social{ display:flex; flex-direction:column; gap:.8rem; }
.footer-social a{
  width:46px; height:46px; border:1px solid var(--line-strong); border-radius:10px;
  display:flex; align-items:center; justify-content:center; color:var(--cream-dim);
  transition:color .2s, border-color .2s;
}
.footer-social a:hover{ color:var(--gold); border-color:var(--gold); }
.footer-social a svg{ width:20px; height:20px; }
.footer-bottom{ max-width:var(--container); margin:0 auto; padding-top:1.5rem; font-size:.8rem; color:var(--cream-dim); text-align:center; }

/* ===================== RESPONSIVE ===================== */
@media (max-width:860px){
  .feast{ grid-template-columns:1fr; }
  .feast-photo{ min-height:320px; }
  .drinks-grid, .weapon-grid, .kitchen-grid{ grid-template-columns:1fr; }
  .weapon-grid{ border-radius:14px; }
  .footer-top{ grid-template-columns:1fr 1fr; }
  .achievement-award{ gap:1rem; }
  .founder{ grid-template-columns:1fr; }
  .founder-photo{ min-height:280px; }
  .badge-row{ grid-template-columns:1fr 1fr; }
  .contact-grid{ grid-template-columns:1fr; }
}
