/* Homepage hero only — variant C (framed): full-bleed background chip scene + foreground
   text top/bottom, chips clear in the centre. Cascade build driven by GSAP (hero.js). */

/* full-bleed background scene */
.bgscene{position:fixed;inset:0;z-index:-2;overflow:hidden;pointer-events:none;--cx:50%;--cy:50%}
.bgscene .halo{position:absolute;left:var(--cx,50%);top:var(--cy,50%);width:min(80vw,1040px);height:min(80vw,1040px);transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(201,72,154,.22),transparent 64%);filter:blur(14px)}
.bgscene .stack{position:absolute;inset:0;transform-style:preserve-3d;transform:none}
.bgscene .chip3d{position:absolute;left:var(--cx,50%);top:var(--cy,50%);width:min(44vw,520px);height:auto;transform:translate(-50%,-50%);will-change:transform,opacity;filter:drop-shadow(0 24px 36px rgba(0,0,0,.5))}
.bgscene .chip3d[data-i="0"]{transform:translate(-50%,calc(-50% + 140px))}
.bgscene .chip3d[data-i="1"]{transform:translate(-50%,calc(-50% + 70px))}
.bgscene .chip3d[data-i="2"]{transform:translate(-50%,-50%)}
.bgscene .chip3d[data-i="3"]{transform:translate(-50%,calc(-50% - 70px))}
.bgscene .chip3d[data-i="4"]{transform:translate(-50%,calc(-50% - 140px))}
/* FOUC fix: with JS on (desktop, motion OK) chips 2–5 start hidden and GSAP cascades them in.
   No-JS, mobile and reduced-motion (below) show the full static tower instead. */
html.js .bgscene .chip3d{opacity:0}
html.js .bgscene .chip3d[data-i="0"]{opacity:1}
.bgscene .spotlight{position:absolute;inset:0;background:radial-gradient(60% 60% at var(--mx,50%) var(--my,40%),rgba(201,72,154,.12),transparent 60%)}
.scrim{position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(120% 90% at 50% 42%,rgba(20,10,25,.35),rgba(20,10,25,.78) 78%),
             linear-gradient(180deg,rgba(20,10,25,.55),transparent 22%,transparent 70%,var(--bg) 99%)}

/* hero — CSS sticky, no GSAP pin (refresh-proof) */
.hero{position:relative;height:250vh}
.hero-sticky{position:sticky;top:0;height:100vh;display:flex;align-items:center;justify-content:center}
.hero-inner{max-width:860px;margin:0 auto;text-align:center;padding:5vh 0;
  display:flex;flex-direction:column;justify-content:space-between;align-items:center;min-height:90vh}
.hero-top,.hero-bottom{display:flex;flex-direction:column;align-items:center;width:100%}
.eyebrow{display:inline-flex;align-items:center;gap:9px;font-weight:600;font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;color:var(--champagne-dim);border:1px solid var(--line);padding:7px 13px;border-radius:2px;margin-bottom:20px;background:rgba(20,10,25,.4)}
.hero h1{font-family:var(--display);line-height:1.06;font-size:clamp(2.3rem,5vw,5rem);text-shadow:0 2px 22px rgba(8,4,12,.7)}
.hero h1 .accent{color:var(--champagne);font-style:italic;font-weight:500}
.hero p.lede{color:var(--ink);opacity:.92;font-size:1.1rem;max-width:42ch;margin:16px auto 0;text-shadow:0 1px 12px rgba(8,4,12,.92)}

.ceil{display:inline-flex;flex-direction:column;align-items:center;gap:9px;margin:0 0 26px}
/* counter FOUC fix: JS starts the ceiling at $100 (no flash of the max); no-JS shows $25,000+ */
.ceil-js{display:none}
html.js .ceil-js{display:inline}
html.js .ceil-nojs{display:none}
.ceil .ceil-k{font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;color:var(--champagne-dim);font-weight:600;text-shadow:0 1px 10px rgba(8,4,12,.9)}
.ceil .ceil-v{font-family:var(--display);font-weight:700;font-size:clamp(2.6rem,6vw,5rem);color:var(--champagne);line-height:.9;text-shadow:0 2px 18px rgba(8,4,12,.8),0 6px 40px rgba(201,72,154,.35)}
.ceil .cmeter{display:block;width:min(70vw,360px);height:4px;background:rgba(232,213,168,.16);border-radius:999px;overflow:hidden}
.ceil .cmeter i{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--champagne-dim),var(--orchid))}
.hero .cta-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.hero .btn-ghost{background:rgba(20,10,25,.4)}
.hint{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:22px;color:var(--champagne-dim);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase}

/* #index intro: two columns — text left, feature image right (fills the space beside the heading) */
.index-head{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:stretch;margin-bottom:44px}
.index-head .sec-head{max-width:none}
/* image is out of flow so the TEXT column sets the row height; the image fills that box (cropped),
   so it's ~the height of the left content and never starts above the heading */
.index-feature{position:relative;margin:0;min-height:300px;border-radius:12px;overflow:hidden;border:1px solid var(--line);box-shadow:0 36px 70px -34px rgba(0,0,0,.8)}
.index-feature img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 38%}
@media(max-width:880px){ .index-head{grid-template-columns:1fr;gap:24px} .index-feature{min-height:300px} }

@media(min-width:1500px){
  .hero-inner{max-width:980px}
  .hero h1{font-size:clamp(5rem,5.4vw,6.6rem)}
  .ceil .ceil-v{font-size:clamp(5rem,5.6vw,6.8rem)}
  .hero p.lede{font-size:1.22rem;max-width:48ch}
  .bgscene .chip3d{width:min(46vw,640px)}
  .bgscene .halo{width:min(72vw,1320px);height:min(72vw,1320px)}
}
@media(min-width:2200px){
  .hero h1{font-size:6.6rem}.ceil .ceil-v{font-size:6.8rem}
  .bgscene .chip3d{width:640px}.bgscene .halo{width:1320px;height:1320px}
}
@media(max-width:880px){
  .hero{height:auto}.hero-sticky{position:static;height:auto;min-height:100vh;padding:96px 0 40px}
  .hero-inner{min-height:auto;gap:40px}
  html.js .bgscene .chip3d{opacity:1}   /* mobile: no scrub — show the full static tower */
}
@media(prefers-reduced-motion:reduce){
  .hero{height:auto}.hero-sticky{position:static;height:auto;min-height:100vh}
  html.js .bgscene .chip3d{opacity:1}   /* reduced-motion: show the full static tower */
}
