/* MenuCortex wow concept — warm culinary palette, vanilla CSS */
:root{
  --cream:#fdfbf7; --cream2:#faf6ec; --cream3:#f3ecdc;
  --char:#211e19; --char2:#2b2822; --char3:#3a362e;
  --sage:#7d8c6a; --sage-d:#525d47; --sage-l:#dde2cd;
  --copper:#c08552; --copper-d:#8a5a32; --copper-l:#eecfae;
  --terra:#c2704e;
  --font-d:Georgia,"Times New Roman",serif;
  --font-s:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--char);font-family:var(--font-s);
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
::selection{background:var(--copper-l);color:var(--char)}
a{color:inherit}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
h1,h2,.brand,.ent-word{font-family:var(--font-d);font-weight:400}
h2{font-size:clamp(28px,6.4vw,44px);line-height:1.15;margin:10px 0 14px;letter-spacing:-.01em}
h2.light{color:var(--cream)}
.kicker{text-transform:uppercase;letter-spacing:.22em;font-size:11px;font-weight:700;color:var(--copper-d);margin-bottom:6px}
.kicker-sage{color:var(--sage-d)}
.lede{font-size:clamp(16px,4.4vw,20px);line-height:1.6;color:rgba(253,251,247,.62)}
.lede-sm{font-size:clamp(15px,4vw,18px);line-height:1.65;color:#6b655a;max-width:640px}
.dim{color:rgba(253,251,247,.6)}
.fine{font-size:12.5px;color:#8a8478;line-height:1.6}
section{position:relative}

/* ---------- buttons ---------- */
.btn{display:inline-block;padding:14px 26px;border-radius:12px;font-weight:600;font-size:15px;
  text-decoration:none;transition:transform .25s,box-shadow .25s,background .25s;white-space:nowrap}
.btn-copper{background:linear-gradient(135deg,var(--copper),var(--terra));color:#fff;
  box-shadow:0 10px 26px rgba(192,133,82,.38)}
.btn-copper:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(192,133,82,.46)}
.btn-ghost{border:1px solid rgba(253,251,247,.25);color:rgba(253,251,247,.85)}
.btn-ghost:hover{background:rgba(253,251,247,.07)}
.btn-lg{padding:16px 40px;font-size:17px}

/* ---------- entrance: cloche lift ---------- */
#entrance{position:fixed;inset:0;z-index:100;background:var(--cream);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  transition:transform .55s cubic-bezier(.7,0,.3,1) .15s, opacity .45s ease .35s}
#entrance.lift{transform:translateY(-100%);opacity:0;pointer-events:none}
.ent-cloche{position:relative;width:210px;height:170px;transition:transform .5s ease,opacity .4s ease}
#entrance.lift .ent-cloche{transform:translateY(-46px) scale(.94);opacity:0}
.ent-dome{position:absolute;left:15px;right:15px;bottom:44px;height:110px;border-radius:50% 50% 8px 8px / 100% 100% 8px 8px;
  background:linear-gradient(160deg,#d9a76f,var(--copper) 60%,var(--copper-d));
  box-shadow:inset -14px -10px 26px rgba(0,0,0,.22), inset 12px 8px 22px rgba(255,255,255,.28)}
.ent-knob{position:absolute;left:50%;top:6px;transform:translateX(-50%);width:26px;height:26px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#e9c79b,var(--copper-d));box-shadow:0 3px 8px rgba(0,0,0,.25)}
.ent-plate{position:absolute;left:0;right:0;bottom:30px;height:14px;border-radius:50%;
  background:linear-gradient(180deg,#fff,var(--cream3));box-shadow:0 10px 24px rgba(33,30,25,.18)}
.ent-steam{display:flex;gap:18px;justify-content:center;margin-bottom:2px;height:34px}
.ent-steam span{width:5px;height:30px;border-radius:4px;background:linear-gradient(180deg,transparent,var(--sage));opacity:0;
  animation:steam 1s ease-in-out infinite}
.ent-steam span:nth-child(2){animation-delay:.22s}.ent-steam span:nth-child(3){animation-delay:.44s}
@keyframes steam{0%{opacity:0;transform:translateY(8px) scaleY(.6)}40%{opacity:.85}100%{opacity:0;transform:translateY(-8px) scaleY(1)}}
.ent-word{font-size:34px;color:var(--char);letter-spacing:.01em}
.ent-sub{font-size:13px;color:#8a8478;letter-spacing:.14em;text-transform:uppercase}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;
  background:rgba(33,30,25,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(253,251,247,.08)}
.nav-inner{max-width:1080px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;justify-content:space-between}
.brand{font-size:23px;color:var(--cream)}
.nav-links{display:flex;align-items:center;gap:8px}
.nav-signin{color:rgba(253,251,247,.7);text-decoration:none;font-size:14px;padding:10px 12px}
.nav-signin:hover{color:var(--cream)}
.nav .btn{padding:10px 18px;font-size:14px}

/* ---------- hero ---------- */
.hero{min-height:100svh;background:radial-gradient(120% 90% at 50% 0%,#2e2a23 0%,var(--char) 55%,#191611 100%);
  color:var(--cream);display:flex;align-items:center;justify-content:center;overflow:hidden;padding:110px 0 60px}
.hero-inner{position:relative;text-align:center;max-width:860px;padding:0 22px;z-index:2}
.blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;pointer-events:none;animation:drift 14s ease-in-out infinite alternate}
.blob-a{width:420px;height:420px;left:-120px;top:-100px;background:rgba(192,133,82,.22)}
.blob-b{width:380px;height:380px;right:-110px;top:12%;background:rgba(125,140,106,.18);animation-delay:-6s}
.blob-c{width:400px;height:400px;left:-130px;bottom:-120px;background:rgba(192,133,82,.14);animation-delay:-9s}
.blob-d{width:460px;height:460px;left:50%;top:-160px;transform:translateX(-50%);background:rgba(192,133,82,.16)}
@keyframes drift{from{transform:translate(0,0) scale(1)}to{transform:translate(40px,30px) scale(1.12)}}
.pills{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:8px}
.pill{display:inline-flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  border:1px solid rgba(253,251,247,.16);background:rgba(253,251,247,.05);color:rgba(253,251,247,.8);
  border-radius:999px;padding:8px 16px}
.pill-sage{border-color:rgba(125,140,106,.4);background:rgba(125,140,106,.12);color:#cfd8bd}
.dot{width:7px;height:7px;border-radius:50%;background:var(--copper-l)}
.leaf{font-style:normal;color:var(--sage-l)}
.hero h1{font-size:clamp(38px,10vw,72px);line-height:1.08;margin:22px 0 18px;letter-spacing:-.015em}
.shimmer{background:linear-gradient(100deg,var(--copper-l) 20%,#fff 45%,var(--copper-l) 70%);
  background-size:220% auto;-webkit-background-clip:text;background-clip:text;color:transparent;
  animation:shimmer 3.6s linear infinite}
@keyframes shimmer{to{background-position:220% center}}
.cta-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:30px}
.hero .fine{color:rgba(253,251,247,.42);margin-top:20px}
.scroll-cue{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);width:24px;height:40px;
  border:1.5px solid rgba(253,251,247,.3);border-radius:14px;z-index:2}
.scroll-cue span{display:block;width:4px;height:9px;margin:8px auto 0;border-radius:3px;background:var(--copper-l);
  animation:cue 1.8s ease-in-out infinite}
@keyframes cue{0%,100%{transform:translateY(0);opacity:1}50%{transform:translateY(10px);opacity:.3}}

/* ---------- reveal system ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.3,1)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}.reveal.d4{transition-delay:.32s}

/* ---------- draft: pinned scroll-assembled board ---------- */
.draft{background:linear-gradient(180deg,#191611 0%,var(--char) 30%,#26211b 100%);color:var(--cream);
  height:280vh;position:relative}
.draft-stick{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;justify-content:center;
  overflow:hidden;padding:80px 20px 20px}
.draft-copy{text-align:center;max-width:680px;margin:0 auto 8px;z-index:3;position:relative}
.draft-copy .lede-sm{color:rgba(253,251,247,.6);margin:0 auto}
.board-wrap{position:relative;flex:1;perspective:1100px;max-width:900px;width:100%;margin:0 auto;min-height:0}
.board{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(18deg)}
.dish{position:absolute;width:44%;max-width:300px;background:rgba(20,17,13,.82);border:1px solid rgba(253,251,247,.12);
  border-radius:14px;padding:14px 16px;backdrop-filter:blur(8px);box-shadow:0 22px 50px rgba(0,0,0,.45);
  /* start scattered (JS sets --p 0→1); without JS this rule is inert via .nojs guard below */
  transform:translate(calc(var(--sx,0px)*(1 - var(--p,1))),calc(var(--sy,0px)*(1 - var(--p,1))))
    rotate(calc(var(--sr,0deg)*(1 - var(--p,1)))) translateZ(calc((1 - var(--p,1))*140px));
  opacity:calc(.25 + .75*var(--p,1))}
.dish:nth-child(1){left:2%;top:2%}
.dish:nth-child(2){right:2%;top:8%}
.dish:nth-child(3){left:6%;top:44%}
.dish:nth-child(4){right:4%;top:50%}
.dish:nth-child(5){left:28%;top:76%}
.dish .day{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--copper-l);margin-bottom:5px}
.dish h3{font-family:var(--font-d);font-weight:400;font-size:16.5px;line-height:1.3}
.dish .detail{font-size:13px;color:rgba(253,251,247,.5);margin-top:2px}
.dish .tag{display:inline-block;margin-top:9px;font-size:10.5px;border:1px solid rgba(253,251,247,.18);
  color:rgba(253,251,247,.55);border-radius:999px;padding:3px 10px}
.dish .tag-new{border-color:rgba(192,133,82,.55);color:var(--copper-l)}
.board-checks{position:relative;z-index:3;text-align:center;margin-top:6px;font-size:13.5px;color:rgba(253,251,247,.7);
  opacity:0;transform:translateY(14px);transition:opacity .6s,transform .6s}
.board-checks.show{opacity:1;transform:none}
.board-checks .tick{color:#a9bd93;font-weight:700}
.board-checks .sample-note{margin-top:8px;font-size:11.5px;color:rgba(253,251,247,.38)}

/* ---------- workflow (cream) ---------- */
.workflow{padding:90px 0;background:var(--cream)}
.steps{list-style:none;display:grid;gap:16px;margin-top:38px;grid-template-columns:1fr}
@media(min-width:640px){.steps{grid-template-columns:1fr 1fr}}
@media(min-width:960px){.steps{grid-template-columns:1fr 1fr 1fr}}
.step{background:#fff;border:1px solid var(--cream3);border-radius:16px;padding:24px;position:relative;
  transition:transform .3s,box-shadow .3s}
.step:hover{transform:translateY(-5px);box-shadow:0 18px 40px rgba(33,30,25,.1)}
.step-n{position:absolute;top:18px;right:20px;font-family:var(--font-d);font-size:30px;color:var(--cream3);line-height:1}
.step h3{font-size:17px;margin:4px 0 8px;font-weight:650}
.step p{font-size:14px;line-height:1.65;color:#6b655a}

/* ---------- sous-chef (charcoal) ---------- */
.sous{background:radial-gradient(110% 80% at 50% 100%,#2c2721 0%,var(--char) 60%,#171410 100%);
  color:var(--cream);padding:100px 0;overflow:hidden}
.sous .lede-sm{margin-bottom:36px}
.sous-grid{display:grid;gap:16px;grid-template-columns:1fr}
@media(min-width:700px){.sous-grid{grid-template-columns:1fr 1fr}}
.sous-card{background:rgba(253,251,247,.05);border:1px solid rgba(253,251,247,.1);border-radius:16px;
  padding:24px;backdrop-filter:blur(6px);transition:transform .35s,border-color .35s}
.sous-card:hover{transform:translateY(-6px) rotate(-.4deg);border-color:rgba(192,133,82,.4)}
.sc-ic{display:inline-block;font-size:20px;color:var(--copper-l);margin-bottom:10px}
.sous-card h3{font-size:17px;margin-bottom:8px;font-weight:650}
.sous-card p{font-size:14px;line-height:1.65;color:rgba(253,251,247,.6)}
.chat-demo{margin-top:28px;max-width:560px;background:rgba(0,0,0,.32);border:1px solid rgba(253,251,247,.1);
  border-radius:16px;padding:20px 22px}
.chat-you{display:inline-block;background:linear-gradient(135deg,var(--copper),var(--terra));color:#fff;
  border-radius:14px 14px 4px 14px;padding:10px 16px;font-size:14.5px;margin-bottom:12px}
.chat-ai{font-size:14.5px;line-height:1.6;color:rgba(253,251,247,.75)}
.chat-ai .tick{color:#a9bd93;font-weight:700}

/* ---------- GLP-1 (sage light) ---------- */
.glp{padding:90px 0;background:linear-gradient(180deg,var(--cream) 0%,#f4f1e6 100%)}
.glp-card{background:#fff;border:1px solid var(--sage-l);border-radius:22px;padding:clamp(26px,6vw,52px);
  box-shadow:0 24px 60px rgba(82,93,71,.1)}
.glp-card .lede-sm{margin:4px 0 28px;max-width:640px}
.glp-list{list-style:none;display:grid;gap:18px;margin-bottom:26px}
@media(min-width:700px){.glp-list{grid-template-columns:1fr 1fr;gap:20px 34px}}
.glp-list li{display:flex;gap:13px;align-items:flex-start}
.chk{flex:none;width:26px;height:26px;border-radius:50%;background:rgba(82,93,71,.12);color:var(--sage-d);
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;margin-top:1px}
.glp-list p{font-size:14.5px;line-height:1.6;color:#4c473e}
.glp-list strong{color:var(--char)}

/* ---------- safety (deep sage) ---------- */
.safety{padding:90px 0;background:linear-gradient(150deg,#3f4a35,var(--sage-d) 60%,#454f39)}
.safety-card{background:rgba(253,251,247,.07);border:1px solid rgba(253,251,247,.14);border-radius:22px;
  padding:clamp(26px,6vw,48px);display:flex;gap:22px;align-items:flex-start;color:var(--cream);
  backdrop-filter:blur(8px);box-shadow:0 24px 60px rgba(0,0,0,.25)}
.shield{font-size:40px;line-height:1;color:var(--copper-l);flex:none}
.safety-card h2{color:var(--cream);margin-top:0}
.safety-card p{font-size:clamp(15px,4vw,17.5px);line-height:1.7;color:rgba(253,251,247,.82)}
.guard-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.guard{font-size:12.5px;letter-spacing:.06em;border:1px solid rgba(253,251,247,.22);color:rgba(253,251,247,.85);
  border-radius:999px;padding:9px 16px;background:rgba(0,0,0,.14)}

/* ---------- finale ---------- */
.finale{padding:110px 0;background:var(--cream);overflow:hidden;text-align:center}
.finale .btn{margin:26px 0 16px}
.center{text-align:center}
.center .lede-sm{margin:0 auto}

/* ---------- footer ---------- */
.foot{border-top:1px solid var(--cream3);padding:26px 0 16px;background:var(--cream)}
.foot-inner{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:13px;color:#8a8478}
.foot-inner strong{color:var(--char);font-family:var(--font-d);font-weight:400;font-size:15px}
.concept{text-align:center;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:#a89f8d;margin-top:14px}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  #entrance{display:none}
  .reveal{opacity:1;transform:none;transition:none}
  .blob,.scroll-cue span,.shimmer,.ent-steam span{animation:none}
  .board-checks{opacity:1;transform:none}
  .sous-grid .sous-card.reveal{transform:none}
  .vf-check{opacity:1;transform:none;animation:none}
  .vw-dot,.vw-dot.fav::after,.vl-card.new{animation:none}
  .chat-you,.chat-ai{opacity:1;transform:none;animation:none}
  .chat-you .type{max-width:none;animation:none}
  .draft{height:auto}
  .draft-stick{position:static;height:auto}
  .board{position:static;transform:none;display:grid;gap:12px;grid-template-columns:1fr}
  .dish{position:static;width:auto;max-width:none;transform:none;opacity:1}
  html{scroll-behavior:auto}
}

/* ---------- hero shimmer: slow readable glow (was 3.6s, too fast) ---------- */
.shimmer{animation-duration:9s}

/* ---------- sous-chef: deck-fan entry + animated vignettes ---------- */
.sous-grid{perspective:1400px}
.sous-grid .sous-card.reveal{transform:translateY(64px) rotateX(26deg) scale(.93);transform-origin:50% 100%;
  transition:transform .8s cubic-bezier(.2,.7,.3,1),opacity .8s ease,border-color .35s}
.sous-grid .sous-card.reveal.in{transform:none}
.sc-viz{margin:18px 0 14px;min-height:66px}
/* card 1 — client file checklist */
.vf-row{display:flex;align-items:center;gap:9px;margin-bottom:9px}
.vf-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--sage-l);opacity:.8}
.vf-line{height:8px;border-radius:4px;background:rgba(253,251,247,.13)}
.w50{width:50%}.w60{width:60%}.w70{width:70%}
.vf-check{flex:none;width:17px;height:17px;border-radius:50%;background:rgba(125,140,106,.28);
  display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(.3)}
.vf-check::after{content:"\2713";font-size:11px;font-weight:700;color:#b9cba4}
.sous-card.in .vf-check{animation:vfpop .45s cubic-bezier(.2,.9,.3,1.5) forwards}
.sous-card.in .vf-row:nth-child(2) .vf-check{animation-delay:.45s}
@keyframes vfpop{to{opacity:1;transform:scale(1)}}
.vf-locktag{margin-left:auto;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--copper-l);
  border:1px solid rgba(192,133,82,.55);border-radius:999px;padding:3px 10px;white-space:nowrap}
/* card 2 — learning weeks */
.viz-weeks{display:flex;gap:11px;align-items:center;padding:14px 2px}
.vw-dot{flex:none;width:24px;height:24px;border-radius:50%;border:1.5px solid rgba(253,251,247,.28);position:relative}
.sous-card.in .vw-dot{animation:vwpulse 3.4s ease-in-out infinite}
.sous-card.in .vw-dot:nth-child(2){animation-delay:.28s}
.sous-card.in .vw-dot:nth-child(3){animation-delay:.56s}
.sous-card.in .vw-dot:nth-child(4){animation-delay:.84s}
.sous-card.in .vw-dot:nth-child(5){animation-delay:1.12s}
.sous-card.in .vw-dot:nth-child(6){animation-delay:1.4s}
@keyframes vwpulse{0%,100%{background:transparent}14%{background:rgba(125,140,106,.4)}28%{background:transparent}}
.vw-dot.skip{border-color:rgba(194,112,78,.65);opacity:.55}
.vw-dot.skip::after{content:"";position:absolute;left:3px;right:3px;top:50%;height:1.5px;background:var(--terra);transform:rotate(-45deg)}
.vw-dot.fav{border-color:var(--copper-l)}
.vw-dot.fav::after{content:"\2605";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:11px;color:var(--copper-l)}
.sous-card.in .vw-dot.fav::after{animation:vwstar 3.4s ease-in-out 1.4s infinite}
@keyframes vwstar{0%,100%{transform:scale(.5);opacity:.35}12%{transform:scale(1.25);opacity:1}24%{transform:scale(1);opacity:1}}
/* card 3 — library first */
.viz-lib{display:flex;gap:8px;padding:4px 0}
.vl-card{flex:1;background:rgba(253,251,247,.06);border:1px solid rgba(253,251,247,.15);border-radius:10px;
  padding:12px 6px;font-size:10.5px;line-height:1.35;color:rgba(253,251,247,.66);text-align:center;
  position:relative;overflow:hidden}
.vl-card.new{border-color:rgba(192,133,82,.6)}
.vl-stamp{position:absolute;top:7px;right:-16px;transform:rotate(38deg);font-style:normal;
  background:linear-gradient(135deg,var(--copper),var(--terra));color:#fff;font-size:8px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;padding:2px 18px}
.sous-card.in .vl-card.new{animation:libglow 2.8s ease-in-out infinite}
@keyframes libglow{0%,100%{box-shadow:0 0 0 rgba(192,133,82,0)}50%{box-shadow:0 0 20px rgba(192,133,82,.5)}}
/* card 4 — chat demo: bubble pops, text types, reply slides in */
.chat-you{transform:scale(.5);opacity:0;transform-origin:100% 100%}
.chat-demo.in .chat-you{animation:chatpop .45s cubic-bezier(.2,.9,.3,1.45) .3s forwards}
@keyframes chatpop{to{transform:scale(1);opacity:1}}
.chat-you .type{display:inline-block;overflow:hidden;white-space:nowrap;vertical-align:bottom;max-width:0}
.chat-demo.in .chat-you .type{animation:typing 1.1s steps(24,end) .8s forwards}
@keyframes typing{to{max-width:26ch}}
.chat-ai{opacity:0;transform:translateY(12px)}
.chat-demo.in .chat-ai{animation:chatup .55s ease 2.1s forwards}
@keyframes chatup{to{opacity:1;transform:none}}
