/* =========================================================================
   Chef Miguel — Private Teppanyaki Catering
   Dark, premium, fire-lit. Near-black warm surfaces, flame-orange accent, gold.
   House style (Soaringwebs): tokens · 3-font · GSAP/Lenis motion · safe degrade.
   ========================================================================= */
:root{
  /* surfaces (dark → darker) */
  --bg:#100d0b; --bg-2:#171210; --paper:#100d0b; --card:#1c1612; --card-2:#241b15;
  /* ink (light text on dark) */
  --cream:#f6efe6; --ink-2:#cdbba8; --dim:#9a8470;
  /* lines / borders */
  --line:#2a2019; --line-2:#3a2c20;
  /* accent (brand gold) + soft + deep */
  --acc:#d4a23c; --acc-deep:#b78a2a; --acc-soft:#2a2010;
  --gold:#e6c463; --gold-soft:#3a2e17;
  /* type — Chef Miguel brand manual: Be Vietnam Pro + Mulish + Damion */
  --serif:"Be Vietnam Pro","Segoe UI",system-ui,sans-serif;
  --sans:"Mulish","Segoe UI",system-ui,sans-serif;
  --mono:"Be Vietnam Pro","Segoe UI",system-ui,sans-serif;
  --script:"Damion","Brush Script MT",cursive;
  --r:14px; --r-lg:22px; --maxw:1200px; --ease:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);font-size:17px;line-height:1.6;color:var(--cream);background:var(--bg);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 26px}
h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:-.015em;margin:0;line-height:1.06}
.mono{font-family:var(--mono);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}

.ph-wrap{position:relative;overflow:hidden;background:var(--card-2)}
.ph{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(1.04) contrast(1.04)}

/* ---------------- buttons ---------------- */
.btn{display:inline-flex;align-items:center;gap:9px;background:var(--acc);color:#17110a;font-weight:700;font-size:15px;
  padding:13px 24px;border-radius:999px;border:0;cursor:pointer;transition:transform .3s var(--ease),background .2s}
.btn:hover{background:var(--acc-deep);transform:translateY(-2px);color:#17110a}
.btn.dark{background:var(--cream);color:var(--bg)}.btn.dark:hover{background:#fff}
.btn.ghost{background:transparent;color:var(--cream);border:1.5px solid var(--line-2)}
.btn.ghost:hover{background:var(--card);border-color:var(--acc);transform:translateY(-2px)}

/* ---------------- nav ---------------- */
nav{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(12px) saturate(1.3);border-bottom:1px solid transparent;transition:border-color .3s,background .3s}
nav.scrolled{border-bottom-color:var(--line);background:color-mix(in srgb,var(--bg) 94%,transparent)}
nav .row{display:flex;align-items:center;justify-content:space-between;height:120px;gap:20px}
@media(max-width:560px){nav .row{height:84px}}
.logo{display:flex;align-items:baseline;gap:7px;line-height:1}
.logo .kicker{font-family:var(--mono);font-size:10px;letter-spacing:.34em;text-transform:uppercase;color:var(--dim)}
.logo .name{font-family:var(--serif);font-style:italic;font-weight:600;font-size:30px;color:var(--gold)}
.nlinks{display:flex;gap:26px;font-size:14.5px;font-weight:500;color:var(--ink-2)}
.nlinks a{position:relative;padding:4px 0}
.nlinks a::after{content:"";position:absolute;left:0;bottom:-2px;height:1.5px;width:100%;background:var(--acc);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}
.nlinks a:hover::after{transform:scaleX(1);transform-origin:left}
.nlinks a:hover{color:var(--cream)}
.nav-r{display:flex;align-items:center;gap:16px}
@media(max-width:880px){.nlinks{display:none}}

/* ---------------- reveal ---------------- */
.rev{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rev.in{opacity:1;transform:none}

/* ---------------- HERO ---------------- */
.hero{padding:66px 0 52px;position:relative}
.hero::before{content:"";position:absolute;left:50%;top:-10%;width:70vw;height:70vw;max-width:900px;max-height:900px;transform:translateX(-50%);
  background:radial-gradient(circle,rgba(212,162,60,.16),transparent 60%);pointer-events:none;z-index:-1}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center}
.hero .tagline{display:inline-flex;align-items:center;gap:9px;background:var(--acc-soft);color:var(--gold);border:1px solid var(--gold-soft);padding:7px 15px;border-radius:999px;font-size:13px;font-weight:600;margin-bottom:22px}
.hero h1{font-size:clamp(42px,6.6vw,84px);line-height:.98}
.hero h1 .it{font-family:var(--script);font-style:normal;font-weight:400;color:var(--gold);font-size:1.1em;line-height:1}
.hero p.sub{font-size:19px;color:var(--ink-2);max-width:520px;margin:24px 0 0}
.hero .cta{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap}
.hero .trust{display:flex;align-items:center;gap:12px;margin-top:34px;flex-wrap:wrap;font-size:13.5px;color:var(--dim);font-weight:500}
.hero .trust .dot{color:var(--line-2)}
.hero .trust span:first-child{color:var(--gold)}
.hero-art{position:relative;height:540px}
.hero-art .big{position:absolute;inset:0;border-radius:220px 220px 22px 22px;overflow:hidden;box-shadow:0 40px 80px rgba(0,0,0,.55);border:1px solid var(--line)}
.hero-art .chip{position:absolute;background:var(--card);border:1px solid var(--line-2);border-radius:16px;padding:12px 16px;box-shadow:0 18px 40px rgba(0,0,0,.5)}
.hero-art .chip .t{font-size:13px;color:var(--ink-2)}.hero-art .chip .t b{display:block;font-family:var(--serif);font-size:16px;color:var(--cream)}
.hero-art .chip.c1{left:-22px;top:64px;animation:fl 6s ease-in-out infinite}
.hero-art .chip.c2{right:-14px;bottom:84px;animation:fl 6s ease-in-out infinite -3s}
@keyframes fl{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}

/* ---------------- marquee strip ---------------- */
.strip{background:var(--card);color:var(--cream);padding:18px 0;overflow:hidden;white-space:nowrap;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.strip .track{display:inline-flex;will-change:transform}
.strip .item{font-family:var(--serif);font-style:italic;font-size:22px;padding:0 .8em;opacity:.94}
.strip .item::after{content:"●";font-size:.4em;vertical-align:middle;margin-left:.8em;color:var(--acc)}

/* ---------------- section scaffold ---------------- */
section{padding:84px 0}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:44px;flex-wrap:wrap}
.sec-head .l{max-width:660px}
.sec-head h2{font-size:clamp(30px,4.6vw,58px)}
.sec-head p{color:var(--ink-2);font-size:18px;margin:14px 0 0}

/* ---------------- feature / experience ---------------- */
.feature{background:var(--bg-2)}
.feature-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.feature-art{height:500px;border-radius:var(--r-lg);overflow:hidden;box-shadow:0 30px 60px rgba(0,0,0,.5);border:1px solid var(--line)}
.feature h2{font-size:clamp(32px,4.6vw,60px);margin-top:14px}
.feature p{font-size:18px;color:var(--ink-2);margin:18px 0 22px;max-width:500px}
.ticks{list-style:none;padding:0;margin:0 0 28px;display:grid;gap:12px;max-width:520px}
.ticks li{position:relative;padding-left:30px;color:var(--ink-2);font-size:15.5px}
.ticks li::before{content:"";position:absolute;left:0;top:2px;width:18px;height:18px;border-radius:50%;background:var(--acc-soft);border:1px solid var(--acc)}
.ticks li::after{content:"";position:absolute;left:6px;top:7px;width:5px;height:9px;border:solid var(--acc);border-width:0 2px 2px 0;transform:rotate(45deg)}

/* ---------------- occasions ---------------- */
.occ{display:flex;flex-wrap:wrap;gap:14px}
.occ-item{font-family:var(--serif);font-size:clamp(20px,2.4vw,30px);color:var(--cream);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:14px 28px;transition:border-color .3s,color .3s,background .3s}
.occ-item:hover{border-color:var(--acc);color:#fff;background:var(--card-2)}

/* ---------------- packages ---------------- */
.packages{background:var(--bg-2)}
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.pkg{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;transition:transform .35s var(--ease),border-color .3s,box-shadow .35s}
.pkg:hover{transform:translateY(-6px);border-color:var(--line-2);box-shadow:0 24px 50px rgba(0,0,0,.45)}
.pkg .ph-wrap{aspect-ratio:4/3}
.pkg .ph{transition:transform .6s var(--ease)}
.pkg:hover .ph{transform:scale(1.05)}
.pkg-b{padding:24px}
.pkg .guests{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.pkg h3{font-size:25px;margin:7px 0 4px}
.pkg .price{font-family:var(--serif);font-size:22px;color:var(--acc);margin-bottom:10px}
.pkg p{color:var(--ink-2);font-size:15px;margin:0 0 20px}
@media(max-width:880px){.pgrid{grid-template-columns:1fr}}

/* ---------------- scroll text-fill ---------------- */
.fillsec{padding:24vh 0;display:flex;justify-content:center;background:var(--bg)}
.fill{font-family:var(--serif);font-size:clamp(30px,5.4vw,72px);line-height:1.1;max-width:18ch;font-weight:540;text-align:left}
.fill .w{color:var(--line-2);transition:color .12s linear}
.fill .w.lit{color:var(--cream)}
.fill .w.hot{color:var(--acc);font-style:italic}

/* ---------------- menu ---------------- */
.mgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.mcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;transition:transform .35s var(--ease),border-color .3s}
.mcard:hover{transform:translateY(-5px);border-color:var(--gold)}
.mcard .ph-wrap{aspect-ratio:4/3;background:var(--card-2)}
.mcard .ph{object-fit:cover}
.mcard h3{font-family:var(--sans);font-weight:640;font-size:17px;margin:18px 22px 4px}
.mcard .price{font-family:var(--serif);font-size:22px;color:var(--acc);margin:0 22px 20px}
.mcard .price span{font-family:var(--sans);font-size:12.5px;color:var(--dim);font-weight:500}
@media(max-width:880px){.mgrid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.mgrid{grid-template-columns:1fr}}

/* ---------------- gallery (pinned horizontal) ---------------- */
.gallery{background:var(--card);padding:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.gallery.h .rpin{height:100svh;display:flex;align-items:center;overflow-x:auto;overflow-y:hidden}
.gallery .rpin.locked{overflow:hidden}
.rtrack{display:flex;gap:22px;padding:0 6vw;will-change:transform;align-items:center}
.rintro{flex:0 0 auto;width:min(34vw,420px);min-width:280px;display:flex;flex-direction:column;justify-content:center;padding-right:14px}
.rintro h2{font-size:clamp(34px,4.6vw,62px);color:var(--cream);margin-top:12px}
.rintro p{color:var(--ink-2);font-size:17px;margin-top:16px}
.gpanel{flex:0 0 auto;width:min(74vw,520px);height:64vh;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line-2);box-shadow:0 24px 50px rgba(0,0,0,.45)}
.gpanel .ph{height:100%}
@media(max-width:880px){
  .gallery.h .rpin{height:auto;display:block;overflow:visible;padding:14px 0}
  .rtrack{flex-direction:column;padding:0 22px}
  .rintro,.gpanel{width:100%}
  .gpanel{height:62vw}
}

/* ---------------- testimonials ---------------- */
.quotes{background:var(--bg-2)}
.qgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.quote{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:30px}
.quote .stars{color:var(--gold);font-size:16px;letter-spacing:2px}
.quote p{font-family:var(--serif);font-size:20px;line-height:1.42;margin:14px 0 16px;color:var(--cream)}
.quote .who{font-size:13.5px;color:var(--gold);font-weight:600}
@media(max-width:880px){.qgrid{grid-template-columns:1fr}}

/* ---------------- faq ---------------- */
.faq-list{max-width:840px;margin:0 auto}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding:22px 4px;font-family:var(--serif);font-size:20px;color:var(--cream)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item .ic{position:relative;flex:0 0 auto;width:18px;height:18px}
.faq-item .ic::before,.faq-item .ic::after{content:"";position:absolute;background:var(--acc);transition:transform .3s var(--ease)}
.faq-item .ic::before{left:0;top:8px;width:18px;height:2px}
.faq-item .ic::after{left:8px;top:0;width:2px;height:18px}
.faq-item[open] .ic::after{transform:scaleY(0)}
.faq-item .a{color:var(--ink-2);font-size:16px;padding:0 4px 24px;max-width:760px}

/* ---------------- book / CTA ---------------- */
.book{background:linear-gradient(135deg,var(--acc-deep),var(--acc));color:#17110a;text-align:center;position:relative;overflow:hidden}
.book::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% -20%,rgba(255,255,255,.22),transparent 55%);pointer-events:none}
.book h2{color:#17110a;font-size:clamp(32px,5vw,60px);position:relative}
.book p{color:#3a2c0e;font-size:19px;max-width:560px;margin:16px auto 30px;position:relative}
.book-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;position:relative}
.book .btn{background:var(--bg);color:#fff}.book .btn:hover{background:#000}
.book .btn.ghost{background:transparent;border-color:rgba(0,0,0,.4);color:#17110a}
.book .btn.ghost:hover{background:rgba(0,0,0,.08)}

/* ---------------- footer ---------------- */
footer{background:var(--bg-2);color:var(--ink-2);padding:66px 0 34px;border-top:1px solid var(--line)}
.fcols{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px}
.fcols p{font-size:14.5px;margin:14px 0 0;max-width:300px;color:var(--dim)}
.fcol h4{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:0 0 16px}
.fcol a,.fcol .finfo{display:block;color:var(--ink-2);font-size:14.5px;margin-bottom:10px;transition:color .2s}
.fcol a:hover{color:var(--acc)}
.finfo{color:var(--dim)}
.foot-bot{margin-top:48px;padding-top:22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:13px;color:var(--dim)}
.foot-book{color:var(--gold);font-weight:600}
.foot-book:hover{color:var(--acc)}
@media(max-width:880px){.fcols{grid-template-columns:1fr 1fr;gap:30px}}

/* ---------------- responsive ---------------- */
@media(max-width:880px){
  .hero-grid,.feature-grid{grid-template-columns:1fr;gap:32px}
  .hero-art{height:400px;order:-1}
  .feature-art{height:340px}
  .sec-head{flex-direction:column;align-items:flex-start}
}
@media(max-width:560px){
  .wrap{padding:0 18px}
  section{padding:60px 0}
  .fcols{grid-template-columns:1fr}
  .hero-art .chip{display:none}
}

/* ---------------- active nav ---------------- */
.nlinks a.active{color:var(--cream)}
.nlinks a.active::after{transform:scaleX(1);transform-origin:left;background:var(--gold)}

/* ---------------- sub-hero (inner pages) ---------------- */
.subhero{position:relative;overflow:hidden;display:flex;align-items:center;min-height:56vh;padding:92px 0 60px}
.subhero.compact{min-height:48vh;padding:84px 0 48px}
.subhero .wrap{position:relative;z-index:3}
.subhero::before{content:"";position:absolute;left:50%;top:-30%;width:60vw;height:60vw;max-width:760px;max-height:760px;transform:translateX(-50%);
  background:radial-gradient(circle,rgba(212,162,60,.15),transparent 62%);pointer-events:none;z-index:1}

/* shared media layer for photo variants */
.subhero-media{position:absolute;inset:0;z-index:0;overflow:hidden}
.subhero-media img{width:100%;height:100%;object-fit:cover;object-position:right center}

/* WOW 1 — Experience: cinematic photo backdrop */
.subhero.cine .subhero-media img{opacity:.6}
.subhero.cine .subhero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--bg) 14%,rgba(16,13,11,.5) 55%,rgba(16,13,11,.04) 100%),linear-gradient(0deg,var(--bg),transparent 55%)}

/* WOW 2 — Menu: rising gold embers (canvas drawn by app.js) */
.embers{position:absolute;inset:0;z-index:1;pointer-events:none}

/* WOW 3 — Packages: Ken Burns slow-zoom */
.subhero.kenburns .subhero-media img{opacity:.5;animation:kenburns 22s ease-in-out infinite alternate;transform-origin:center}
.subhero.kenburns .subhero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--bg) 12%,rgba(16,13,11,.45) 58%,rgba(40,26,8,.15) 100%),linear-gradient(0deg,var(--bg),transparent 55%)}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.18)}}

/* WOW 4 — Book: animated gold aurora */
.subhero.shimmer .aurora{position:absolute;inset:0;z-index:0;overflow:hidden}
.subhero.shimmer .aurora::before,.subhero.shimmer .aurora::after{content:"";position:absolute;width:70vw;height:70vw;border-radius:50%;filter:blur(70px);opacity:.22}
.subhero.shimmer .aurora::before{background:radial-gradient(circle,#e6c463,transparent 60%);top:-25%;left:-12%;animation:drift1 15s ease-in-out infinite alternate}
.subhero.shimmer .aurora::after{background:radial-gradient(circle,#d4a23c,transparent 60%);bottom:-30%;right:-12%;animation:drift2 19s ease-in-out infinite alternate}
@keyframes drift1{to{transform:translate(18%,12%) scale(1.2)}}
@keyframes drift2{to{transform:translate(-14%,-10%) scale(1.15)}}

/* WOW 5 — Terms: giant script watermark */
.subhero.watermark .wm{position:absolute;right:-1%;bottom:-14%;font-family:var(--script);font-size:30vw;line-height:.8;color:rgba(230,196,99,.06);z-index:0;pointer-events:none;white-space:nowrap;user-select:none}

/* CHOSEN — home-hero style sub-hero (text + framed image) */
.subhero.split .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center;width:100%}
.subhero-art{position:relative;height:430px}
.subhero-art .ph-wrap{position:absolute;inset:0;border-radius:200px 200px 22px 22px;overflow:hidden;box-shadow:0 40px 80px rgba(0,0,0,.55);border:1px solid var(--line)}
.subhero-art .ph{width:100%;height:100%;object-fit:cover}
.subhero-art .chip{position:absolute;background:var(--card);border:1px solid var(--line-2);border-radius:16px;padding:12px 16px;box-shadow:0 18px 40px rgba(0,0,0,.5);z-index:2}
.subhero-art .chip .t{font-size:13px;color:var(--ink-2)}
.subhero-art .chip .t b{display:block;font-family:var(--serif);font-size:16px;color:var(--cream)}
.subhero-art .chip.c1{left:-20px;bottom:54px;animation:fl 6s ease-in-out infinite}
@media(max-width:880px){
  .subhero.split .wrap{grid-template-columns:1fr;gap:28px}
  .subhero-art{height:300px;order:-1}
  .subhero-art .chip{display:none}
}

/* GLOBAL EMBERS — subtle fixed gold-spark layer across the whole site */
#siteEmbers{position:fixed;inset:0;width:100vw;height:100vh;z-index:3;pointer-events:none}

/* ---------------- thank-you page ---------------- */
.thanks{min-height:72vh;display:flex;align-items:center;text-align:center;position:relative;overflow:hidden}
.thanks::before{content:"";position:absolute;left:50%;top:-10%;width:60vw;height:60vw;max-width:760px;max-height:760px;transform:translateX(-50%);
  background:radial-gradient(circle,rgba(212,162,60,.16),transparent 62%);pointer-events:none;z-index:0}
.thanks .inner{max-width:660px;margin:0 auto;padding:70px 0;position:relative;z-index:2}
.thanks .tick{width:78px;height:78px;border-radius:50%;background:var(--acc);color:#17110a;font-size:40px;display:grid;place-items:center;margin:0 auto 26px;box-shadow:0 18px 40px rgba(0,0,0,.45)}
.thanks h1{font-size:clamp(34px,5vw,58px);line-height:1.05}
.thanks h1 .it{font-family:var(--script);font-style:normal;color:var(--gold);font-size:1.1em}
.thanks p{font-size:18px;color:var(--ink-2);max-width:520px;margin:18px auto 0;line-height:1.6}
.thanks .next{display:grid;gap:10px;max-width:430px;margin:28px auto 0;text-align:left}
.thanks .next .row{display:flex;gap:12px;align-items:flex-start;color:var(--ink-2);font-size:15px}
.thanks .next .n{font-family:var(--mono);font-size:11px;color:var(--gold);letter-spacing:.1em;padding-top:2px;flex:0 0 auto}
.thanks .cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:32px}
.subhero .tagline{display:inline-flex;align-items:center;gap:9px;background:var(--acc-soft);color:var(--gold);border:1px solid var(--gold-soft);padding:7px 15px;border-radius:999px;font-size:13px;font-weight:600;margin-bottom:22px}
.subhero h1{font-size:clamp(40px,6.2vw,78px);line-height:.98;max-width:14ch}
.subhero h1 .it{font-family:var(--script);font-style:normal;font-weight:400;color:var(--gold);font-size:1.1em;line-height:1}
.subhero p{font-size:19px;color:var(--ink-2);max-width:620px;margin:24px 0 0}
.subhero .cta{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap}

/* ---------------- how-it-works steps ---------------- */
.steps-sec{background:var(--bg-2)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.step{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px}
.step .num{font-family:var(--serif);font-style:italic;font-size:30px;color:var(--acc)}
.step h3{font-size:21px;margin:10px 0 6px}
.step p{color:var(--ink-2);font-size:14.5px;margin:0}
@media(max-width:880px){.steps{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.steps{grid-template-columns:1fr}}

/* ---------------- package extras ---------------- */
.pkg .ticks{margin:16px 0 22px}
.pkg.featured{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc),0 24px 50px rgba(0,0,0,.45)}
.pkg-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}
.pkg-notes .note{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px}
.pkg-notes .note p{color:var(--ink-2);font-size:14.5px;margin:10px 0 0}
@media(max-width:880px){.pkg-notes{grid-template-columns:1fr}}

/* ---------------- menu extras ---------------- */
.mcard .mdesc{color:var(--ink-2);font-size:14px;margin:0 22px 20px;line-height:1.5}
.menu-note{color:var(--dim);font-size:14.5px;max-width:760px;margin:34px auto 0;text-align:center;line-height:1.6}

/* ---------------- enquiry / form ---------------- */
.enquiry-grid{display:grid;grid-template-columns:1.55fr .85fr;gap:34px;align-items:start}
.form-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:30px}
.fgroup{padding:22px 0;border-top:1px solid var(--line)}
.fgroup:first-of-type{padding-top:0;border-top:0}
.fgroup-h{font-family:var(--serif);font-size:21px;color:var(--cream);margin:0 0 18px}
.fgrid{display:grid;gap:16px}
.fgrid.two{grid-template-columns:1fr 1fr}
.field{display:flex;flex-direction:column;gap:7px}
.field>span{font-size:13px;font-weight:600;color:var(--ink-2)}
.field>span i{color:var(--acc);font-style:normal}
.field input,.field select,.field textarea{
  font-family:var(--sans);font-size:15.5px;color:var(--cream);background:var(--bg-2);
  border:1px solid var(--line-2);border-radius:12px;padding:12px 14px;width:100%;color-scheme:dark;
  transition:border-color .2s,box-shadow .2s}
.field input::placeholder,.field textarea::placeholder{color:var(--dim)}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--acc);box-shadow:0 0 0 3px rgba(212,162,60,.18)}
.field textarea{resize:vertical;min-height:96px}
.field.check{flex-direction:row;align-items:center;gap:11px}
.field.check input{width:18px;height:18px;accent-color:var(--acc);flex:0 0 auto}
.field.check span{font-size:14.5px;color:var(--ink-2)}
.check-group{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.chip-check{position:relative;cursor:pointer}
.chip-check input{position:absolute;opacity:0;pointer-events:none}
.chip-check span{display:inline-block;font-size:14px;color:var(--ink-2);background:var(--bg-2);border:1px solid var(--line-2);border-radius:999px;padding:9px 16px;transition:all .2s}
.chip-check input:checked+span{background:var(--acc-soft);border-color:var(--acc);color:var(--gold)}
.form-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:24px}
.form-note{font-size:13.5px;color:var(--dim)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}

/* success state */
.form-success{background:var(--card);border:1px solid var(--acc);border-radius:var(--r-lg);padding:40px;text-align:center}
.form-success .tick{width:56px;height:56px;border-radius:50%;background:var(--acc);color:#fff;font-size:28px;display:grid;place-items:center;margin:0 auto 18px}
.form-success h3{font-size:26px;color:var(--cream)}
.form-success p{color:var(--ink-2);font-size:16px;max-width:440px;margin:12px auto 24px}

/* aside */
.enquiry-aside{display:flex;flex-direction:column;gap:16px;position:sticky;top:96px}
.aside-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:24px}
.aside-card.subtle{background:transparent}
.aside-card h3{font-size:20px;color:var(--cream);margin:8px 0 14px}
.aside-card p{color:var(--ink-2);font-size:14px;margin:10px 0 0;line-height:1.6}
.aside-line{display:block;font-size:14.5px;color:var(--ink-2);padding:9px 0;border-top:1px solid var(--line)}
.aside-line:first-of-type{border-top:0}
.aside-line b{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin-bottom:3px;font-weight:500}
a.aside-line:hover{color:var(--acc)}
@media(max-width:880px){
  .enquiry-grid{grid-template-columns:1fr}
  .enquiry-aside{position:static}
  .fgrid.two{grid-template-columns:1fr}
}

/* ---------------- video section ---------------- */
.videosec{background:var(--bg)}
.video-frame{position:relative;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 60px rgba(0,0,0,.5);aspect-ratio:16/9;background:#000}
.video-frame video{width:100%;height:100%;object-fit:cover;display:block}
.video-sound{position:absolute;bottom:16px;right:16px;background:rgba(16,13,11,.7);color:#fff;border:1px solid rgba(255,255,255,.25);
  backdrop-filter:blur(8px);font-family:var(--sans);font-weight:600;font-size:13px;padding:9px 16px;border-radius:999px;cursor:pointer;transition:background .2s}
.video-sound:hover{background:var(--acc)}
@media(max-width:560px){.video-frame{aspect-ratio:4/5}}

/* ---------------- set menus (expandable) ---------------- */
.setmenu{display:grid;grid-template-columns:.92fr 1.08fr;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;margin-bottom:22px}
.setmenu .ph-wrap{min-height:340px}
.setmenu .ph{transition:transform .6s var(--ease)}
.setmenu:hover .ph{transform:scale(1.04)}
.setmenu .sm-b{padding:34px;display:flex;flex-direction:column;justify-content:center}
.setmenu .sm-b .mono{color:var(--gold)}
.setmenu h3{font-size:clamp(26px,3vw,40px);margin:8px 0 0}
.sm-tag{color:var(--ink-2);font-size:16px;margin:12px 0 16px;max-width:46ch;line-height:1.6}
.setmenu .price{font-family:var(--serif);font-size:21px;color:var(--acc)}
.sm-details{border-top:1px solid var(--line);margin-top:18px}
.sm-details summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:16px 0 6px;font-family:var(--mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.sm-details summary::-webkit-details-marker{display:none}
.sm-details .ic{position:relative;flex:0 0 auto;width:16px;height:16px}
.sm-details .ic::before,.sm-details .ic::after{content:"";position:absolute;background:var(--acc);transition:transform .3s var(--ease)}
.sm-details .ic::before{left:0;top:7px;width:16px;height:2px}
.sm-details .ic::after{left:7px;top:0;width:2px;height:16px}
.sm-details[open] .ic::after{transform:scaleY(0)}
.sm-list{padding:8px 0 6px;display:grid;gap:13px}
.sm-course{display:grid;grid-template-columns:120px 1fr;gap:14px;align-items:baseline}
.sm-course b{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
.sm-course span{color:var(--ink-2);font-size:15px}
@media(max-width:760px){
  .setmenu{grid-template-columns:1fr}
  .setmenu .ph-wrap{min-height:230px}
  .setmenu .sm-b{padding:26px}
  .sm-course{grid-template-columns:1fr;gap:2px}
}

/* ---------------- omakase experience cards ---------------- */
.menugrid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.expcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;
  transition:transform .35s var(--ease),border-color .3s,box-shadow .35s}
.expcard:hover{transform:translateY(-5px);border-color:var(--line-2);box-shadow:0 24px 50px rgba(0,0,0,.45)}
.expcard .ph-wrap{aspect-ratio:16/10;background:#0c0a08}
.expcard .ph{object-fit:cover;will-change:transform;transition:transform .6s var(--ease)}
.expcard:hover .ph{transform:scale(1.05)}
.expcard .reveal-mask{background:var(--card)}
.exp-b{padding:26px;flex:1;display:flex;flex-direction:column}
.expcard .mono{color:var(--gold)}
.expcard h3{font-size:22px;margin:8px 0 6px;color:var(--cream);line-height:1.15}
.expcard .price{font-family:var(--serif);font-size:23px;color:var(--acc);margin-bottom:12px}
.expcard .price span{font-family:var(--sans);font-size:12.5px;color:var(--dim);font-weight:500}
.expcard p{color:var(--ink-2);font-size:14.5px;line-height:1.6;margin:0}
@media(max-width:760px){.menugrid{grid-template-columns:1fr}}

/* ---------------- sides ---------------- */
.sides{background:var(--bg-2)}
.sides-price{font-family:var(--serif);font-size:30px;color:var(--acc);text-align:right;white-space:nowrap}
.sides-price span{font-family:var(--sans);font-size:13px;color:var(--dim);display:block;font-weight:500}
.sgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.side{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;transition:border-color .3s}
.side:hover{border-color:var(--gold)}
.side h3{font-size:20px;color:var(--cream);display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.side .jp{font-size:14px;color:var(--gold);font-weight:400}
.side p{color:var(--ink-2);font-size:14.5px;margin:8px 0 0;line-height:1.6}
@media(max-width:760px){.sgrid{grid-template-columns:1fr}}

/* ---------------- form add-ons ---------------- */
.addons{margin-top:18px}
.addons-label{display:block;font-size:13px;font-weight:600;color:var(--ink-2);margin-bottom:10px}
.addons-label i{color:var(--dim);font-style:normal;font-weight:500}

/* ---------------- footer links ---------------- */
.foot-links{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.foot-links a{color:var(--dim);transition:color .2s}
.foot-links a:hover{color:var(--acc)}
.foot-links a.foot-book{color:var(--gold)}

/* ---------------- legal / terms ---------------- */
.legal-wrap{max-width:820px;margin:0 auto}
.legal-item{padding:26px 0;border-top:1px solid var(--line)}
.legal-item:first-child{border-top:0;padding-top:0}
.legal-item h2{font-size:clamp(22px,3vw,30px);color:var(--cream)}
.legal-item p{color:var(--ink-2);font-size:16px;margin:12px 0 0;line-height:1.7}
.legal-item p a{color:var(--gold)}
.legal-contact{margin-top:36px;padding:30px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);text-align:center}
.legal-contact p{color:var(--ink-2);margin:0 0 18px}
.legal-contact p a{color:var(--gold)}

/* ---------------- logo image ---------------- */
.logo img{height:90px;width:auto;display:block}
.fcols .logo img{height:96px}
@media(max-width:560px){.logo img{height:60px}.fcols .logo img{height:80px}}

/* ---------------- socials ---------------- */
.socials{display:flex;gap:10px;margin-top:18px}
.socials a{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--ink-2);
  background:var(--card);border:1px solid var(--line-2);border-radius:999px;padding:8px 15px;transition:all .2s}
.socials a:hover{border-color:var(--acc);color:var(--cream)}
.socials a svg{width:15px;height:15px}

/* ---------------- meet the chef ---------------- */
.meet{background:var(--bg-2)}
.meet .feature-art{height:540px}
.meet .sig{font-family:var(--script);font-style:normal;font-size:36px;color:var(--gold);margin-top:18px}

/* ---------------- word animation ---------------- */
.anim-words .w{display:inline-block;will-change:transform,opacity}
.gsap-ready .anim-words .w{opacity:0;transform:translateY(16px)}

/* ======================= MOTION (cinematic) ======================= */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
.btn,[data-magnetic]{will-change:transform}

/* kinetic headline reveal */
.line-mask{display:block;overflow:hidden}
.gsap-ready .line-in{display:block;transform:translateY(112%)}
.gsap-ready .fade{opacity:0;transform:translateY(26px)}

/* image mask-reveal + parallax */
.reveal-mask{position:absolute;inset:0;background:var(--card);z-index:3;transform-origin:bottom;will-change:transform}
.feature .reveal-mask{background:var(--bg-2)}
.mcard .reveal-mask{background:#fff}
.pkg .ph,.feature-art .ph,.mcard .ph{will-change:transform}

@media (prefers-reduced-motion: reduce){
  *{animation:none!important}
  .rev,.fade{opacity:1!important;transform:none!important}
  .gsap-ready .line-in{transform:none!important}
  .reveal-mask{display:none}
  .fill .w{color:var(--cream)!important}
}
