/* ── COSMIC BUILDERS v2 · THE DESCENT ─────────────────────── */
:root{
  color-scheme:dark;
  --void:#040208;
  --ink:#e9f0fb;
  --ink-dim:rgba(222,232,248,.66);
  --ink-faint:rgba(200,212,232,.38);
  --ember:#ff9c5a;
  --ember-deep:#e84500;
  --nebula:#8b5cf6;
  --ice:#22d3ee;
  --fd:'Marcellus',serif;
  --fu:'Space Grotesk',sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{background:var(--void);color:var(--ink);scrollbar-width:thin;scrollbar-color:rgba(139,92,246,.35) transparent}
body{
  font-family:var(--fu);font-weight:300;background:var(--void);
  overflow-x:hidden;overscroll-behavior-y:none;
}
a{color:inherit;text-decoration:none}
::selection{background:rgba(255,156,90,.3)}

/* the sky itself */
#cosmos{position:fixed;inset:0;width:100%;height:100%;z-index:0;display:block}

/* the intro: the old fire, breathing under the new stars */
#intro-veil{
  position:fixed;inset:0;width:100%;height:100%;object-fit:cover;
  z-index:1;pointer-events:none;
  mix-blend-mode:screen;opacity:.85;
  transition:opacity 1.4s var(--ease);
}
#intro-veil.faded{opacity:0}

/* ── VEIL NAV ─────────────────────────────────────────────── */
.veil-nav{
  position:fixed;top:0;left:0;right:0;z-index:40;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.4rem clamp(1.25rem,4vw,3rem);
  pointer-events:none;
}
.veil-nav>*{pointer-events:auto}
.wordmark{
  font-family:var(--fd);font-size:.95rem;letter-spacing:.34em;
  color:var(--ink-dim);transition:color .4s;
}
.wordmark:hover{color:var(--ember)}
.depth-gauge{
  list-style:none;display:flex;gap:.85rem;align-items:center;
}
.depth-gauge li{
  width:5px;height:5px;border-radius:50%;
  background:var(--ink-faint);
  transition:all .6s var(--ease);
}
.depth-gauge li.lit{
  background:var(--ember);
  box-shadow:0 0 10px rgba(255,156,90,.8),0 0 22px rgba(255,156,90,.35);
  transform:scale(1.5);
}
.nav-cta{
  font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-dim);padding:.55rem 1.15rem;border-radius:100px;
  border:1px solid rgba(255,156,90,.35);
  transition:color .35s,border-color .35s,box-shadow .35s;
}
.nav-cta:hover{
  color:var(--ember);border-color:var(--ember);
  box-shadow:0 0 18px rgba(255,156,90,.25);
}

/* ── WAYPOINTS ────────────────────────────────────────────── */
#descent{position:relative;z-index:10}
.waypoint{
  min-height:200vh;            /* scroll runway per waypoint */
  display:flex;align-items:flex-start;justify-content:center;
}
.waypoint .copy{
  position:sticky;top:0;min-height:100vh;
  display:flex;flex-direction:column;justify-content:center;
  max-width:46rem;padding:0 clamp(1.25rem,5vw,3rem);
  opacity:0;transform:translateY(30px);
  transition:opacity 1s var(--ease),transform 1s var(--ease);
}
.waypoint.live .copy{opacity:1;transform:none}

.kicker{
  font-size:.72rem;letter-spacing:.42em;text-transform:uppercase;
  color:var(--ember);margin-bottom:1.4rem;
}
h1,h2{
  font-family:var(--fd);font-weight:400;line-height:1.04;
  text-wrap:balance;
}
h1{font-size:clamp(3.4rem,10vw,7.5rem);letter-spacing:.02em}
h2{font-size:clamp(2.3rem,6vw,4.6rem)}
h1,h2{
  background:linear-gradient(170deg,#f4f8ff 20%,#bcd0ee 55%,#8fa7cc 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  text-shadow:0 0 70px rgba(139,92,246,.18);
}
.lede{
  margin-top:1.6rem;font-size:clamp(1.05rem,1.7vw,1.3rem);
  line-height:1.65;color:var(--ink-dim);max-width:34rem;
}
.hero-pills{
  margin-top:2.4rem;display:flex;gap:.7rem;flex-wrap:wrap;justify-content:center;
}
.hero-pills a{
  font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;
  padding:.6rem 1.3rem;border-radius:100px;color:var(--ink-dim);
  border:1px solid rgba(139,92,246,.35);
  background:rgba(8,5,16,.45);backdrop-filter:blur(6px);
  transition:color .3s,border-color .3s,box-shadow .3s,transform .25s var(--ease);
}
.hero-pills a:hover{
  color:var(--ice);border-color:var(--ice);transform:translateY(-2px);
  box-shadow:0 0 18px rgba(34,211,238,.25);
}
.hero-pills a:first-child{border-color:rgba(255,156,90,.45);color:var(--ink)}
.hero-pills a:first-child:hover{color:var(--ember);border-color:var(--ember);box-shadow:0 0 18px rgba(255,156,90,.3)}
/* the booth — the one pill that burns */
.hero-pills a.pill-booth{
  color:#1a0800;font-weight:500;border-color:transparent;
  background:linear-gradient(160deg,#ffd700,#ff9f00 45%,#ff6500);
  box-shadow:0 0 20px rgba(232,69,0,.4);
}
.hero-pills a.pill-booth:hover{
  color:#1a0800;border-color:transparent;transform:translateY(-2px);
  box-shadow:0 0 32px rgba(232,69,0,.65);
}
.hint{
  margin-top:4.5rem;font-size:.72rem;letter-spacing:.38em;
  text-transform:uppercase;color:var(--ink-faint);
  animation:hintFloat 3.2s ease-in-out infinite;
}
@keyframes hintFloat{0%,100%{transform:translateY(0);opacity:.5}50%{transform:translateY(8px);opacity:1}}

/* arrival centered */
#arrival .copy{align-items:center;text-align:center;max-width:none}

/* ── CONSTELLATION ────────────────────────────────────────── */
.stars{list-style:none;margin-top:2.6rem;display:flex;flex-direction:column;gap:1.15rem}
.stars li{
  display:flex;align-items:baseline;gap:1.2rem;
  opacity:0;transform:translateX(-18px);
  transition:opacity .8s var(--ease),transform .8s var(--ease);
}
.waypoint.live .stars li{opacity:1;transform:none}
.waypoint.live .stars li:nth-child(1){transition-delay:.15s}
.waypoint.live .stars li:nth-child(2){transition-delay:.3s}
.waypoint.live .stars li:nth-child(3){transition-delay:.45s}
.waypoint.live .stars li:nth-child(4){transition-delay:.6s}
.waypoint.live .stars li:nth-child(5){transition-delay:.75s}
.star-name{
  font-family:var(--fd);font-size:clamp(1.25rem,2.4vw,1.7rem);
  color:var(--ink);white-space:nowrap;position:relative;padding-left:1.5rem;
}
.star-name::before{
  content:"";position:absolute;left:0;top:50%;width:7px;height:7px;
  border-radius:50%;transform:translateY(-50%);
  background:var(--ice);
  box-shadow:0 0 10px var(--ice),0 0 24px rgba(34,211,238,.45);
}
.stars li:nth-child(odd) .star-name::before{background:var(--nebula);box-shadow:0 0 10px var(--nebula),0 0 24px rgba(139,92,246,.45)}
.star-line{color:var(--ink-faint);font-size:.95rem;line-height:1.5}

/* ── WORLDS ───────────────────────────────────────────────── */
.world-keys{list-style:none;margin-top:2.4rem;display:flex;flex-direction:column;gap:.4rem}
.world-keys a{
  display:flex;align-items:baseline;gap:1rem;padding:.7rem 0;
  font-family:var(--fd);font-size:clamp(1.2rem,2.2vw,1.55rem);
  color:var(--ink-dim);border-bottom:1px solid rgba(255,255,255,.07);
  transition:color .35s,padding-left .35s var(--ease);
}
.world-keys a span{
  font-family:var(--fu);font-size:.85rem;color:var(--ink-faint);
  letter-spacing:.04em;
}
.world-keys a:hover{color:var(--ember);padding-left:.6rem}

/* ── FORGE ────────────────────────────────────────────────── */
#forge .copy{align-items:center;text-align:center;max-width:none}
#forge h2,#forge .lede,#forge .kicker{
  text-shadow:0 2px 18px rgba(4,2,8,.95),0 0 44px rgba(4,2,8,.8);
}
#forge .kicker{color:#ffd9b8}
#forge .lede{color:var(--ink)}
.btn-ghost{background:rgba(4,2,8,.45);backdrop-filter:blur(4px)}
.forge-actions{margin-top:2.8rem;display:flex;gap:1.1rem;flex-wrap:wrap;justify-content:center}
.btn-fire{
  font-family:var(--fd);font-size:1rem;letter-spacing:.12em;
  padding:1.05rem 2.6rem;border-radius:100px;color:#1a0800;
  background:linear-gradient(160deg,#ffd700 0%,#ff9f00 35%,#ff6500 70%,#e84500 100%);
  box-shadow:0 0 30px rgba(232,69,0,.45),0 0 80px rgba(232,69,0,.18);
  transition:transform .35s var(--ease),box-shadow .35s;
}
.btn-fire:hover{
  transform:translateY(-3px);
  box-shadow:0 0 45px rgba(232,69,0,.65),0 0 120px rgba(232,69,0,.3);
}
.btn-ghost{
  font-size:.85rem;letter-spacing:.16em;text-transform:uppercase;
  padding:1.05rem 2rem;border-radius:100px;color:var(--ink-dim);
  border:1px solid rgba(255,255,255,.16);
  transition:color .35s,border-color .35s;
}
.btn-ghost:hover{color:var(--ink);border-color:rgba(255,156,90,.5)}

/* ── PLANETARIUM LABELS ───────────────────────────────────── */
#sky-labels{position:fixed;inset:0;z-index:5;pointer-events:none}
.sky-label{
  position:absolute;left:0;top:0;
  transform:translate(-50%,-140%);
  text-align:center;opacity:0;
  transition:opacity .6s var(--ease);
  will-change:transform,opacity;
}
.sky-label .star-true{
  display:block;font-family:var(--fd);font-size:.95rem;
  letter-spacing:.22em;color:var(--ink);
  text-shadow:0 0 14px rgba(190,210,255,.6);
}
.sky-label .star-proj{
  display:block;font-size:.68rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-faint);margin-top:.2rem;
}

/* ── THE THEATER ──────────────────────────────────────────── */
.film-cells{
  margin-top:2.4rem;display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem;
  max-width:38rem;
}
.film-cells figure{position:relative}
.film-cells figure:nth-child(2){transform:translateY(1.4rem)}
.film-cells figure:nth-child(3){transform:translateY(-.5rem)}
.film-cells video{
  width:100%;aspect-ratio:16/10;object-fit:cover;display:block;
  border-radius:14px;
  box-shadow:0 0 28px rgba(139,92,246,.28),0 14px 40px rgba(0,0,0,.5);
  border:1px solid rgba(139,92,246,.25);
  transition:transform .4s var(--ease),box-shadow .4s;
}
.film-cells figure:hover video{
  transform:scale(1.03);
  box-shadow:0 0 44px rgba(139,92,246,.45),0 18px 48px rgba(0,0,0,.6);
}
.film-cells figcaption{
  margin-top:.55rem;font-size:.7rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--ink-faint);
}
.channel-strip{margin-top:3rem}
.channel-strip[hidden]{display:none}
.channel-kicker{
  font-size:.7rem;letter-spacing:.34em;text-transform:uppercase;
  color:var(--ember);margin-bottom:1rem;
}
.channel-thumbs{display:flex;gap:.9rem;flex-wrap:wrap}
.channel-thumbs a{display:block;max-width:11.5rem}
.channel-thumbs img{
  width:100%;aspect-ratio:16/9;object-fit:cover;display:block;
  border-radius:10px;border:1px solid rgba(255,156,90,.25);
  box-shadow:0 8px 24px rgba(0,0,0,.45);
  transition:transform .35s var(--ease),border-color .35s;
}
.channel-thumbs a:hover img{transform:translateY(-3px);border-color:var(--ember)}
.channel-thumbs span{
  display:block;margin-top:.4rem;font-size:.72rem;line-height:1.4;
  color:var(--ink-faint);
}
.channel-link{margin-top:1.4rem;display:inline-block}

/* ── UNIVERSE GATE ────────────────────────────────────────── */
.gate-doors{margin-top:2.6rem;display:flex;gap:1rem;flex-wrap:wrap}
#gate .btn-ghost{border-color:rgba(34,211,238,.35)}
#gate .btn-ghost:hover{color:var(--ice);border-color:var(--ice);box-shadow:0 0 18px rgba(34,211,238,.2)}

/* ── STELLAR ──────────────────────────────────────────────── */
.stellar{
  position:fixed;right:clamp(1rem,3vw,2.4rem);bottom:clamp(1rem,3vw,2rem);
  z-index:50;display:flex;align-items:center;gap:.8rem;
  max-width:19rem;
}
.stellar-orb{
  flex:0 0 auto;width:14px;height:14px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#bfe9ff 0%,var(--ice) 45%,var(--nebula) 100%);
  box-shadow:0 0 14px rgba(34,211,238,.8),0 0 40px rgba(139,92,246,.5);
  animation:orbBreathe 4s ease-in-out infinite;
}
@keyframes orbBreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.25)}}
#stellar-line{
  font-size:.8rem;line-height:1.5;color:var(--ink-faint);
  text-align:right;transition:opacity .5s;
}
.stellar.swapping #stellar-line{opacity:0}

/* ── STELLAR CHAT ─────────────────────────────────────────── */
.stellar{flex-direction:column;align-items:flex-end;gap:.7rem}
.stellar-toggle{
  display:flex;align-items:center;gap:.8rem;cursor:pointer;
  background:none;border:none;padding:.3rem;font:inherit;color:inherit;
  text-align:right;
}
.stellar-toggle:hover .stellar-orb{transform:scale(1.3)}
.stellar-chat{
  width:min(21rem,calc(100vw - 2rem));
  background:rgba(5,3,12,.92);backdrop-filter:blur(16px);
  border:1px solid rgba(34,211,238,.3);border-radius:18px;
  overflow:hidden;display:flex;flex-direction:column;
  box-shadow:0 18px 60px rgba(0,0,0,.6),0 0 40px rgba(139,92,246,.18);
  animation:cardRise .4s var(--ease);
}
.stellar-chat[hidden]{display:none}
@keyframes cardRise{from{opacity:0;transform:translateY(14px)}to{opacity:1}}
.stellar-chat header{
  display:flex;align-items:center;gap:.6rem;
  padding:.8rem 1rem;border-bottom:1px solid rgba(255,255,255,.08);
}
.stellar-chat header strong{
  font-family:var(--fd);font-weight:400;letter-spacing:.2em;font-size:.9rem;
}
.stellar-orb.small{width:10px;height:10px}
#chat-close{
  margin-left:auto;background:none;border:none;color:var(--ink-faint);
  font-size:1.2rem;cursor:pointer;line-height:1;padding:.2rem .4rem;
}
#chat-close:hover{color:var(--ember)}
.chat-log{
  max-height:42vh;min-height:6rem;overflow-y:auto;
  padding:1rem;display:flex;flex-direction:column;gap:.7rem;
  scrollbar-width:thin;
}
.chat-log .msg{
  max-width:85%;padding:.6rem .9rem;border-radius:14px;
  font-size:.86rem;line-height:1.55;
}
.chat-log .me{
  align-self:flex-end;background:rgba(139,92,246,.22);
  border:1px solid rgba(139,92,246,.3);color:var(--ink);
}
.chat-log .ai{
  align-self:flex-start;background:rgba(34,211,238,.1);
  border:1px solid rgba(34,211,238,.2);color:var(--ink-dim);
}
.chat-log .ai.thinking::after{content:"…";animation:hintFloat 1.2s infinite}
#chat-form{
  display:flex;border-top:1px solid rgba(255,255,255,.08);
}
#chat-input{
  flex:1;background:none;border:none;outline:none;
  padding:.85rem 1rem;color:var(--ink);font:inherit;font-size:.88rem;
}
#chat-input::placeholder{color:var(--ink-faint)}
#chat-form button{
  background:none;border:none;color:var(--ice);font-size:1.1rem;
  padding:0 1.1rem;cursor:pointer;transition:color .3s;
}
#chat-form button:hover{color:var(--ember)}

/* ── FOOTER ───────────────────────────────────────────────── */
.deep-footer{
  position:relative;z-index:10;text-align:center;
  padding:3rem 1.5rem 4rem;font-size:.78rem;color:var(--ink-faint);
  letter-spacing:.06em;
}
.deep-footer a{color:var(--ink-dim);border-bottom:1px solid rgba(255,156,90,.35)}
.deep-footer a:hover{color:var(--ember)}

/* ── SMALL SCREENS ────────────────────────────────────────── */
@media(max-width:640px){
  .depth-gauge{display:none}
  .waypoint{min-height:170vh}
  /* copy holds the top of the phone; the universe owns the lower half */
  .waypoint .copy{justify-content:flex-start;padding-top:14vh}
  #arrival .copy,#forge .copy{justify-content:center;padding-top:0}
  .stars{margin-top:1.8rem;gap:.9rem}
  .stars li{flex-direction:column;gap:.2rem}
  .star-line{font-size:.85rem}
  .world-keys a{font-size:1.1rem;gap:.6rem;flex-wrap:wrap}
  .world-keys a span{font-size:.75rem}
  .gate-doors{flex-direction:column;align-items:flex-start}
  .forge-actions{flex-direction:column;align-items:center}
  .hint{margin-top:3rem}
  .veil-nav{padding:1rem 1.1rem}
  .wordmark{font-size:.78rem;letter-spacing:.26em}
  .nav-cta{font-size:.68rem;padding:.45rem .85rem}
  .stellar{max-width:11.5rem}
  #stellar-line{font-size:.72rem}
  .deep-footer{padding-bottom:7rem}
  .film-cells{gap:.8rem;margin-top:1.6rem}
  .film-cells figure:nth-child(2),.film-cells figure:nth-child(3){transform:none}
  .channel-thumbs a{max-width:9rem}
  #intro-veil{opacity:.7}
}

/* ── NO-WEBGL FALLBACK: a hand-painted CSS sky ───────────── */
body.no-webgl::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(1.5px 1.5px at 12% 18%,#fff 50%,transparent 51%),
    radial-gradient(1px 1px at 28% 64%,#dde8ff 50%,transparent 51%),
    radial-gradient(2px 2px at 41% 32%,#ffe9d2 50%,transparent 51%),
    radial-gradient(1px 1px at 55% 78%,#fff 50%,transparent 51%),
    radial-gradient(1.5px 1.5px at 67% 12%,#bfd2ff 50%,transparent 51%),
    radial-gradient(1px 1px at 74% 49%,#fff 50%,transparent 51%),
    radial-gradient(2px 2px at 83% 71%,#dde8ff 50%,transparent 51%),
    radial-gradient(1px 1px at 91% 27%,#ffe9d2 50%,transparent 51%),
    radial-gradient(1.5px 1.5px at 18% 87%,#bfd2ff 50%,transparent 51%),
    radial-gradient(1px 1px at 48% 8%,#fff 50%,transparent 51%),
    radial-gradient(ellipse 60% 45% at 70% 35%,rgba(139,92,246,.16),transparent 70%),
    radial-gradient(ellipse 50% 40% at 25% 70%,rgba(34,211,238,.10),transparent 70%),
    var(--void);
}
body.no-webgl .waypoint{min-height:120vh}

/* ── REDUCED MOTION ───────────────────────────────────────── */
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition-duration:.01ms!important}
  .waypoint{min-height:100vh}
  .waypoint .copy{opacity:1;transform:none;position:static}
  .waypoint .stars li{opacity:1;transform:none}
}

/* ── BUILD & PRICE (the forge) ────────────────────────────── */
.builder{
  position:relative;width:min(72rem,calc(100vw - 2rem));margin:2.4rem auto 0;
  left:50%;transform:translateX(-50%);
  text-align:left;padding:1.6rem 1.5rem 1.4rem;border-radius:20px;
  background:linear-gradient(180deg,rgba(12,7,22,.92),rgba(6,3,12,.92));
  backdrop-filter:blur(18px);
  border:1px solid rgba(139,92,246,.32);
  box-shadow:0 24px 70px rgba(0,0,0,.6),0 0 50px rgba(139,92,246,.16),inset 0 1px 0 rgba(255,255,255,.05);
  animation:cardRise .45s var(--ease);
}
.builder[hidden]{display:none}
.builder-x{
  position:absolute;top:.7rem;right:.85rem;background:none;border:none;
  color:var(--ink-faint);font-size:1.4rem;line-height:1;cursor:pointer;padding:.2rem .35rem;
  transition:color .25s,transform .25s;
}
.builder-x:hover{color:var(--ember);transform:rotate(90deg)}

.builder-rail{
  display:flex;gap:.4rem;list-style:none;margin:0 0 1.5rem;padding:0;
  font-family:var(--fd);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;
}
.builder-rail li{
  flex:1;text-align:center;padding-bottom:.55rem;color:var(--ink-faint);
  border-bottom:2px solid rgba(255,255,255,.08);transition:color .35s,border-color .35s;
}
.builder-rail li.on{color:var(--ember);border-bottom-color:var(--ember)}
.builder-rail li.done{color:var(--ice);border-bottom-color:rgba(34,211,238,.5)}

.bstep{display:flex;flex-direction:column;gap:.9rem;animation:cardRise .35s var(--ease)}
.bstep[hidden]{display:none}
.bstep-k{font-family:var(--fd);font-size:1.05rem;color:var(--ink);margin:0;letter-spacing:.01em}
.bstep-k .opt{font-family:var(--fu);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin-left:.4rem}

.builder textarea,.builder input[type=text],.builder input[type=email]{
  width:100%;background:rgba(255,255,255,.04);color:var(--ink);
  border:1px solid rgba(255,255,255,.12);border-radius:12px;
  padding:.8rem .95rem;font:inherit;font-size:.92rem;outline:none;
  transition:border-color .3s,box-shadow .3s,background .3s;resize:vertical;
}
.builder textarea::placeholder,.builder input::placeholder{color:var(--ink-faint)}
.builder textarea:focus,.builder input:focus{
  border-color:var(--ice);background:rgba(34,211,238,.06);
  box-shadow:0 0 0 3px rgba(34,211,238,.12);
}
.builder .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

.chip-row{display:flex;flex-wrap:wrap;gap:.5rem}
.chip-row button{
  font-family:var(--fu);font-size:.78rem;letter-spacing:.02em;color:var(--ink-dim);
  padding:.5rem .95rem;border-radius:100px;cursor:pointer;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.14);
  transition:color .25s,border-color .25s,background .25s,transform .2s var(--ease);
}
.chip-row button:hover{color:var(--ink);border-color:rgba(255,156,90,.5);transform:translateY(-1px)}
.chip-row button.sel,.chip-row.toggles button[aria-pressed=true]{
  color:#1a0800;border-color:transparent;font-weight:500;
  background:linear-gradient(150deg,#ffd06a,#ff8a3c);
  box-shadow:0 4px 18px rgba(232,69,0,.3);
}
.chip-row.toggles button[aria-pressed=true]{background:linear-gradient(150deg,#bfa6ff,#8b5cf6);color:#fff;box-shadow:0 4px 18px rgba(139,92,246,.35)}

.scale-cards{display:grid;gap:.6rem}
.scale-cards button{
  display:flex;flex-direction:column;gap:.2rem;text-align:left;cursor:pointer;
  padding:.85rem 1rem;border-radius:14px;
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.12);
  transition:border-color .25s,background .25s,transform .2s var(--ease),box-shadow .25s;
}
.scale-cards button:hover{transform:translateY(-2px);border-color:rgba(34,211,238,.45)}
.scale-cards button span{font-family:var(--fd);font-size:1.05rem;color:var(--ink)}
.scale-cards button em{font-style:normal;font-size:.76rem;color:var(--ink-faint);letter-spacing:.02em}
.scale-cards button[aria-checked=true]{
  border-color:var(--ember);background:rgba(255,156,90,.08);
  box-shadow:0 0 0 1px var(--ember),0 8px 26px rgba(232,69,0,.22);
}
.scale-cards button[aria-checked=true] span{color:var(--ember)}

.bstep-nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:.4rem}
.bstep-nav span{flex:0}
.bnext,.bback,#book-btn{
  font-family:var(--fd);letter-spacing:.1em;border-radius:100px;cursor:pointer;
  padding:.7rem 1.5rem;font-size:.9rem;transition:transform .3s var(--ease),box-shadow .3s,color .3s,border-color .3s;
}
.bnext,#b-quote-btn{
  color:#1a0800;border:none;
  background:linear-gradient(160deg,#ffd700,#ff9f00 40%,#ff6500 75%,#e84500);
  box-shadow:0 0 24px rgba(232,69,0,.4);
}
.bnext:hover{transform:translateY(-2px);box-shadow:0 0 36px rgba(232,69,0,.6)}
.bback{background:none;color:var(--ink-faint);border:1px solid rgba(255,255,255,.16)}
.bback:hover{color:var(--ink);border-color:rgba(255,156,90,.5)}
.bstep-err{color:#ff8a78;font-size:.8rem;margin:0}
.bstep-err[hidden]{display:none}

/* quote step — stellar streams here */
.quote-head{display:flex;align-items:center;gap:.55rem}
.quote-head strong{font-family:var(--fd);font-weight:400;letter-spacing:.2em;font-size:.95rem;color:var(--ink)}
.quote-sub{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}
.quote-log{
  display:flex;flex-direction:column;gap:.7rem;max-height:34vh;overflow-y:auto;
  padding:.3rem .1rem;scrollbar-width:thin;
}
.quote-log .msg{max-width:90%;padding:.65rem .9rem;border-radius:14px;font-size:.88rem;line-height:1.55}
.quote-log .ai{align-self:flex-start;background:rgba(34,211,238,.1);border:1px solid rgba(34,211,238,.2);color:var(--ink)}
.quote-log .me{align-self:flex-end;background:rgba(139,92,246,.2);border:1px solid rgba(139,92,246,.32);color:var(--ink)}
.quote-log .ai.thinking::after{content:"…";animation:hintFloat 1.2s infinite}
.quote-form{display:flex;border:1px solid rgba(255,255,255,.12);border-radius:12px;overflow:hidden;background:rgba(255,255,255,.04)}
.quote-form[hidden]{display:none}
#quote-input{flex:1;background:none;border:none;outline:none;padding:.75rem .95rem;color:var(--ink);font:inherit;font-size:.9rem}
#quote-input::placeholder{color:var(--ink-faint)}
.quote-form button{background:none;border:none;color:var(--ice);font-size:1.1rem;padding:0 1.1rem;cursor:pointer;transition:color .3s}
.quote-form button:hover{color:var(--ember)}
.quote-actions{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}
.quote-actions[hidden]{display:none}
#book-btn{color:#1a0800;border:none;background:linear-gradient(160deg,#ffd700,#ff9f00 40%,#ff6500 75%,#e84500);box-shadow:0 0 24px rgba(232,69,0,.4)}
#book-btn:hover{transform:translateY(-2px);box-shadow:0 0 36px rgba(232,69,0,.6)}
.quote-done{font-size:.9rem;line-height:1.6;color:var(--ice);margin:0}
.quote-done[hidden]{display:none}

@media(max-width:640px){
  .builder{padding:1.3rem 1.1rem 1.2rem;margin-top:1.8rem}
  .builder-rail{font-size:.52rem;gap:.25rem}
  .bstep-nav{flex-wrap:wrap}
}

/* ── THE BUILD BAY · two panels, real-deal atmosphere ─────── */
.bay{display:grid;gap:1.6rem}
@media(min-width:1000px){
  .bay{grid-template-columns:minmax(0,26rem) minmax(0,1fr);align-items:start}
}
.bay-top{display:flex;align-items:center;gap:1rem}
.bay-top .builder-rail{flex:1;margin:0 0 1.2rem}
.bay-save{display:flex;gap:.45rem;margin-bottom:1.2rem}
.bay-save-btn{
  font-family:var(--fu);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-faint);background:rgba(255,255,255,.04);cursor:pointer;
  border:1px solid rgba(255,255,255,.14);border-radius:100px;padding:.45rem .85rem;
  transition:color .25s,border-color .25s;
}
.bay-save-btn:hover{color:var(--ice);border-color:var(--ice)}
.bay-vault{margin:-.4rem 0 1.2rem;padding:1rem;border:1px solid rgba(34,211,238,.3);border-radius:14px;background:rgba(34,211,238,.05)}
.bay-vault[hidden]{display:none}
.vault-row{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.7rem}
.vault-row input{flex:1;min-width:8rem}
#vault-pin{max-width:7.5rem;letter-spacing:.35em;text-align:center}
.bay-brag{
  margin:0;font-size:.86rem;line-height:1.5;color:var(--ember);
  border-left:2px solid var(--ember);padding-left:.8rem;
}
.addon-groups{display:flex;flex-direction:column;gap:.55rem;max-height:19rem;overflow-y:auto;scrollbar-width:thin;padding-right:.3rem}
.addon-h{margin:.35rem 0 0;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-faint)}

/* ── LIVE MOCKUP ──────────────────────────────────────────── */
.bay-preview{position:sticky;top:1.5rem;display:none}
@media(min-width:1000px){.bay-preview{display:block}}
.preview-k{margin:0 0 .6rem;font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-faint);text-align:center}
.mock-frame{
  border:1px solid rgba(139,92,246,.35);border-radius:14px;overflow:hidden;
  background:#0b0817;box-shadow:0 24px 60px rgba(0,0,0,.55),0 0 40px rgba(139,92,246,.14);
}
.mock-chrome{
  display:flex;align-items:center;gap:.4rem;padding:.5rem .7rem;
  background:rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.08);
}
.mock-chrome span{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.18)}
.mock-chrome span:first-child{background:rgba(255,110,90,.6)}
.mock-chrome span:nth-child(2){background:rgba(255,200,90,.55)}
.mock-chrome span:nth-child(3){background:rgba(120,230,140,.55)}
.mock-chrome i{
  flex:1;font-style:normal;font-size:.62rem;letter-spacing:.08em;color:var(--ink-faint);
  background:rgba(255,255,255,.05);border-radius:6px;padding:.28rem .7rem;margin-left:.4rem;
}
.mock-page{position:relative;padding:0 0 0;max-height:29rem;overflow-y:auto;scrollbar-width:none}
.mock-page::-webkit-scrollbar{display:none}
.mk-nav{display:flex;align-items:center;gap:.6rem;padding:.65rem .9rem;border-bottom:1px solid rgba(255,255,255,.06)}
.mk-logo{width:.85rem;height:.85rem;border-radius:4px;background:var(--mk-acc,var(--ember))}
.mk-nav u{width:2.2rem;height:.32rem;border-radius:4px;background:rgba(255,255,255,.14);text-decoration:none}
.mk-login{
  margin-left:auto;font-size:.56rem;letter-spacing:.1em;color:var(--ink);
  border:1px solid var(--mk-acc,var(--ember));border-radius:100px;padding:.2rem .55rem;
}
.mk-login[hidden]{display:none}
.mk-hero{
  padding:1.6rem 1rem 1.4rem;text-align:center;
  background:
    radial-gradient(70% 120% at 50% 0%,color-mix(in oklab,var(--mk-acc,#ff9c5a) 22%,transparent),transparent 70%);
}
.mk-hero h4{margin:0;font-family:var(--fd);font-weight:400;font-size:1.05rem;color:var(--ink);letter-spacing:.04em}
.mk-hero p{margin:.35rem 0 .8rem;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}
.mk-cta{display:inline-block;width:5rem;height:1.15rem;border-radius:100px;background:var(--mk-acc,var(--ember));opacity:.9}
.mk-block{
  margin:.55rem .9rem;border-radius:10px;background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.07);overflow:hidden;
  animation:blockIn .5s var(--ease);
}
.mk-block[hidden]{display:none}
@keyframes blockIn{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}
.mk-video{aspect-ratio:16/7;display:grid;place-items:center;background:linear-gradient(135deg,#151027,#0a0714);cursor:pointer}
.mk-play{width:0;height:0;border-style:solid;border-width:.55rem 0 .55rem .95rem;border-color:transparent transparent transparent var(--mk-acc,var(--ember));filter:drop-shadow(0 0 10px rgba(255,156,90,.6))}
.mk-video.playing .mk-play{animation:pulseGlow 1s infinite alternate}
@keyframes pulseGlow{from{filter:drop-shadow(0 0 6px rgba(255,156,90,.4))}to{filter:drop-shadow(0 0 16px rgba(255,156,90,.95))}}
.mk-shop{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem;padding:.55rem}
.mk-shop s{display:block;aspect-ratio:3/4;border-radius:7px;background:linear-gradient(180deg,rgba(255,255,255,.09) 62%,rgba(255,255,255,.03) 62%);position:relative;text-decoration:none}
.mk-shop s::after{content:"";position:absolute;left:12%;bottom:9%;width:44%;height:8%;border-radius:4px;background:var(--mk-acc,var(--ember));opacity:.85}
.mk-booking{display:grid;grid-template-columns:repeat(7,1fr);gap:.3rem;padding:.55rem}
.mk-booking s{display:block;aspect-ratio:1;border-radius:4px;background:rgba(255,255,255,.08);text-decoration:none}
.mk-booking s.hot{background:var(--mk-acc,var(--ember));box-shadow:0 0 10px color-mix(in oklab,var(--mk-acc,#ff9c5a) 60%,transparent)}
.mk-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem;padding:.5rem}
.mk-gallery s{display:block;aspect-ratio:1;border-radius:6px;background:linear-gradient(135deg,rgba(139,92,246,.35),rgba(34,211,238,.18));text-decoration:none;transition:transform .3s var(--ease)}
.mk-gallery s:hover{transform:scale(1.06)}
.mk-blog{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;padding:.55rem}
.mk-blog s{display:block;padding:.55rem;border-radius:7px;background:rgba(255,255,255,.05);text-decoration:none}
.mk-blog u{display:block;height:.3rem;border-radius:3px;background:rgba(255,255,255,.16);margin-bottom:.3rem;text-decoration:none}
.mk-blog u:last-child{width:62%}
.mk-rss{padding:.42rem 0;background:rgba(34,211,238,.07);border-color:rgba(34,211,238,.22);white-space:nowrap}
.mk-ticker{display:inline-block;font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ice);animation:tick 9s linear infinite;padding-left:100%}
@keyframes tick{to{transform:translateX(-100%)}}
.mk-reviews{display:flex;align-items:center;gap:.6rem;padding:.55rem .8rem}
.mk-reviews b{color:#ffd700;font-size:.8rem;letter-spacing:.14em;text-shadow:0 0 8px rgba(255,215,0,.5)}
.mk-reviews u{flex:1;height:.32rem;border-radius:3px;background:rgba(255,255,255,.14);text-decoration:none}
.mk-news{display:flex;gap:.45rem;padding:.55rem .8rem;align-items:center}
.mk-news u{flex:1;height:1rem;border-radius:6px;background:rgba(255,255,255,.09);text-decoration:none}
.mk-news b{width:3.4rem;height:1rem;border-radius:6px;background:var(--mk-acc,var(--ember));opacity:.9}
.mk-social{display:flex;gap:.5rem;justify-content:center;padding:.55rem}
.mk-social s{display:block;width:1.15rem;height:1.15rem;border-radius:50%;background:rgba(255,255,255,.14);text-decoration:none;transition:background .3s}
.mk-social s:hover{background:var(--mk-acc,var(--ember))}
.mk-map{aspect-ratio:16/6;position:relative;background:
  linear-gradient(rgba(139,92,246,.16) 1px,transparent 1px),
  linear-gradient(90deg,rgba(139,92,246,.16) 1px,transparent 1px);
  background-size:18px 18px}
.mk-pin{position:absolute;left:50%;top:42%;width:.65rem;height:.65rem;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--mk-acc,var(--ember));box-shadow:0 0 12px color-mix(in oklab,var(--mk-acc,#ff9c5a) 70%,transparent)}
.mk-form{display:flex;flex-direction:column;gap:.4rem;padding:.6rem .8rem}
.mk-form u{height:.85rem;border-radius:6px;background:rgba(255,255,255,.08);text-decoration:none}
.mk-form b{width:4rem;height:1rem;border-radius:100px;background:var(--mk-acc,var(--ember));opacity:.9}
.mk-footer{height:2.1rem;margin-top:.6rem;background:rgba(255,255,255,.04);border-top:1px solid rgba(255,255,255,.06)}
.mk-chat{
  position:sticky;bottom:.6rem;margin:-2rem .7rem .6rem auto;width:2rem;height:2rem;border-radius:50%;
  background:linear-gradient(140deg,var(--mk-acc,var(--ember)),#8b5cf6);
  display:grid;place-items:center;box-shadow:0 6px 18px rgba(0,0,0,.5),0 0 16px rgba(139,92,246,.5);
  animation:blockIn .5s var(--ease);
}
.mk-chat[hidden]{display:none}
.mk-chat i{width:.8rem;height:.6rem;border-radius:5px;background:rgba(255,255,255,.92);position:relative}
.mk-chat i::after{content:"";position:absolute;left:.14rem;bottom:-.22rem;border:.22rem solid transparent;border-top-color:rgba(255,255,255,.92)}
.mock-badges{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:center;margin-top:.7rem;min-height:1.5rem}
.mock-badges span{
  font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ice);
  border:1px solid rgba(34,211,238,.35);border-radius:100px;padding:.28rem .65rem;
  animation:blockIn .4s var(--ease);
}
