:root{
  --ss-navy-0:#031625;
  --ss-navy-1:#06243b;
  --ss-navy-2:#0a3554;
  --ss-cyan:#28b8ff;
  --ss-cyan-soft:#7ad8ff;
  --ss-accent:#A5D6A7;
  --ss-accent-ink:#0b2418;
  --ss-ink:#f5fbff;
  --ss-muted:#c8dbe8;
  --ss-muted-2:#8fb2c9;
  --ss-error:#FF1744;
  --ss-correct:#00C853;
  --ss-max:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:#04192a;color:var(--ss-ink);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button,input{font:inherit}
:focus-visible{outline:3px solid #FFEA00;outline-offset:4px;border-radius:8px}
.skip-link{position:absolute;left:-9999px;top:12px;z-index:999;background:#FFEA00;color:#111;padding:10px 14px;border-radius:8px;font-weight:800}.skip-link:focus{left:12px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ONE permanent stage shell. No alternating page backgrounds. */
.studio-shell{position:relative;isolation:isolate;min-height:100vh;background:#04192a}
.studio-content{position:relative;z-index:3}
.ambient-math{display:none}

/* Continuous cyan rails — thin enough to frame, not decorate. */
.studio-shell::before,.studio-shell::after{
  content:"";position:absolute;z-index:7;top:0;bottom:0;width:3px;pointer-events:none;
  background:linear-gradient(180deg,rgba(84,205,255,.3),#40c2ff 5%,#7ee0ff 45%,#3cbfff 78%,rgba(84,205,255,.3));
  box-shadow:0 0 7px #42c2ff,0 0 18px rgba(46,187,255,.7),0 0 34px rgba(28,154,235,.25)
}
.studio-shell::before{left:clamp(12px,1vw,20px)}.studio-shell::after{right:clamp(12px,1vw,20px)}

/* Header */
.site-header{position:sticky;top:0;z-index:90;background:rgba(4,20,36,.90);backdrop-filter:blur(14px);border-bottom:1px solid rgba(116,214,255,.15);box-shadow:0 16px 32px -24px #000}
.nav-wrap{max-width:var(--ss-max);margin:auto;padding:0 clamp(18px,3vw,30px)}
.nav-main{min-height:64px;display:flex;align-items:center;gap:18px}
.brand{display:flex;align-items:center;gap:10px;flex-shrink:0;font-family:"Inter Tight",sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.brand img{height:42px;width:auto}.brand span{font-size:14px}
.nav-links{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.nav-links a,.subnav a{padding:9px 11px;border-radius:9px;font-weight:700;font-size:14px;color:#eaf7ff}.nav-links a:hover,.subnav a:hover{background:rgba(60,178,246,.13)}
.nav-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.search-box{position:relative}.search-box input{width:220px;padding:10px 12px 10px 34px;border-radius:10px;border:1px solid rgba(138,207,246,.22);background:rgba(255,255,255,.055);color:white}.search-box span{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--ss-muted-2)}
.start-btn,.primary-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:var(--ss-accent);color:var(--ss-accent-ink);font-weight:900;padding:11px 16px;box-shadow:0 10px 30px -18px #000}.ghost-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid rgba(190,230,210,.35);background:rgba(1,18,13,.52);font-weight:800;padding:11px 16px;color:white}.start-btn:hover,.primary-btn:hover{filter:brightness(1.05)}.ghost-btn:hover{background:rgba(1,18,13,.72)}
.subnav-row{border-top:1px solid rgba(255,255,255,.07)}.subnav{display:flex;align-items:center;gap:4px;min-height:38px;flex-wrap:wrap}.subnav a{font-size:12.5px;color:#d1e5f1}.store-pill{margin-left:auto;color:var(--ss-muted-2);font-size:12px;border:1px dashed rgba(134,193,224,.3);padding:5px 9px;border-radius:7px}

/* Approved rendered hero stays intact. */
.hero{position:relative;overflow:hidden;padding:0;background:#061b31}
.hero-plate-wrap{position:relative;width:min(100%,1760px);margin:0 auto;isolation:isolate;background:#061b31}
.hero-plate{display:block;width:100%;height:auto;aspect-ratio:1672/941;object-fit:contain;user-select:none;pointer-events:none}
.riser-logo-patch{position:absolute;z-index:4;left:3.05%;bottom:5.85%;width:16.6%;height:14.5%;display:flex;align-items:center;justify-content:center;padding:1.2% 1.35%;border-radius:5.5%;background:linear-gradient(180deg,rgba(7,30,48,.98),rgba(3,16,28,.98));border:1px solid rgba(76,196,255,.18);box-shadow:0 0 18px rgba(45,184,255,.16),inset 0 1px 0 rgba(255,255,255,.035)}
.riser-logo-patch::after{content:"";position:absolute;left:4%;right:4%;bottom:-2%;height:2px;background:#28b6ff;box-shadow:0 0 9px #28b6ff,0 0 20px rgba(40,182,255,.5)}
.riser-logo-patch img{width:93%;height:93%;object-fit:contain;filter:drop-shadow(0 5px 10px rgba(0,0,0,.42))}
.hero-hotspot{position:absolute;z-index:6;border-radius:10px;color:transparent!important;font-size:0;outline-offset:4px}.hero-hotspot:hover{background:rgba(255,255,255,.035);box-shadow:0 0 0 2px rgba(165,214,167,.34) inset}
.hero-hotspot.start{left:27%;top:67.7%;width:7.4%;height:5.45%}.hero-hotspot.pack{left:35%;top:67.7%;width:13.8%;height:5.45%}.hero-hotspot.monday{left:26.9%;top:48.2%;width:9.3%;height:15.3%}.hero-hotspot.friday{left:64.1%;top:48.2%;width:8.3%;height:15.3%}
.hero-a11y{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.scroll-cue{position:absolute;z-index:8;left:50%;bottom:10px;transform:translateX(-50%);display:flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;background:rgba(3,18,31,.62);border:1px solid rgba(96,207,255,.28);color:#dff5ff;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;backdrop-filter:blur(8px)}.scroll-cue i{font-style:normal;color:#64d3ff;font-size:15px}

/* ============================================================
   CONTINUOUS POLISHED STAGE FLOOR
   A tiny 14 KB texture sampled from the approved hero floor.
   The texture repeats; the page itself never changes background.
   ============================================================ */
.floor-environment{
  position:relative;isolation:isolate;margin-top:-3px;padding-top:110px;overflow:hidden;
  background-image:
    radial-gradient(48rem 34rem at 50% 0%,rgba(46,150,255,.24),transparent 68%),
    linear-gradient(90deg,rgba(2,20,34,.28),transparent 20%,transparent 80%,rgba(2,20,34,.28)),
    url("solver-floor-continuation.webp");
  background-repeat:no-repeat,no-repeat,repeat-y;
  background-size:100% 760px,100% 100%,100% auto;
  background-position:center top,center top,center top;
}
/* The floor begins under the rendered frame and the hero reflection dissolves gradually. */
.floor-environment::before{
  content:"";position:absolute;z-index:0;left:0;right:0;top:0;height:240px;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(7,34,56,.02) 0%,rgba(7,34,56,.07) 18%,rgba(4,26,44,.22) 62%,rgba(4,24,40,0) 100%),
    radial-gradient(50rem 12rem at 50% 0%,rgba(66,166,255,.20),transparent 76%);
}
.floor-equations{position:absolute;z-index:1;inset:0;pointer-events:none;font-family:"JetBrains Mono",monospace;font-weight:700;color:#9adfff}
.floor-equations span{position:absolute;opacity:.17;font-size:clamp(15px,1.3vw,24px);text-shadow:0 0 18px rgba(31,150,235,.28);white-space:nowrap}

/* No section gets its own page-wide background or horizontal cut line. */
.content-section{position:relative;z-index:2;padding:clamp(38px,4.5vw,70px) clamp(30px,5vw,84px);background:transparent!important;border:0!important;overflow:visible}
.studio-bay-architecture{display:none!important}
.section-soft,.section-deep{background:transparent!important}
.content-section::before,.content-section::after{display:none!important}

/* Each topic is a dimensional object ON the same floor. */
.section-inner{
  max-width:1120px;margin:0 auto;position:relative;padding:clamp(28px,3.8vw,48px);
  border-radius:26px;border:1px solid rgba(111,211,255,.30);
  background:
    radial-gradient(40rem 20rem at 50% 0%,rgba(55,167,235,.12),transparent 70%),
    linear-gradient(145deg,rgba(9,49,77,.92),rgba(4,27,46,.94));
  box-shadow:
    0 34px 55px -34px rgba(0,0,0,.82),
    0 12px 0 -5px rgba(2,18,31,.72),
    0 0 0 1px rgba(255,255,255,.025) inset,
    inset 0 1px 0 rgba(214,247,255,.10),
    inset 0 -12px 28px rgba(0,0,0,.15);
}
.section-inner::before{content:"";position:absolute;inset:8px 9px auto 9px;height:1px;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(153,230,255,.40),transparent);pointer-events:none}
.section-inner::after{content:"";position:absolute;left:8%;right:8%;bottom:-17px;height:22px;border-radius:50%;background:rgba(0,0,0,.25);filter:blur(13px);z-index:-1;pointer-events:none}

.section-kicker{color:#7bd8ff;font-family:"JetBrains Mono";font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px}
.content-section h2{font-family:"Inter Tight";font-size:clamp(33px,3.5vw,54px);line-height:1.03;letter-spacing:-.035em;margin:0 0 16px;text-shadow:0 5px 18px rgba(0,0,0,.26)}
.section-lede{max-width:760px;color:var(--ss-muted);font-size:17px;line-height:1.65;margin:0 0 30px}

/* Nested content blocks: smaller, more tactile than the parent section panel. */
.glass-panel,.elite-panel,.portal,.road-card{
  border:1px solid rgba(116,214,255,.23);
  background:linear-gradient(150deg,rgba(9,48,74,.92),rgba(4,25,42,.95));
  box-shadow:0 20px 34px -25px rgba(0,0,0,.8),0 6px 0 -3px rgba(2,17,29,.65),inset 0 1px 0 rgba(232,250,255,.06)
}
.glass-panel{border-radius:20px}
.error-stage{display:grid;grid-template-columns:1fr 1.1fr;gap:30px;align-items:center;padding:30px}.error-character{display:flex;align-items:flex-end;gap:18px}.error-character img{width:190px;filter:drop-shadow(0 22px 22px rgba(0,0,0,.42))}.error-copy p{color:var(--ss-muted);line-height:1.6}.math-stack{display:grid;gap:12px}.math-card{font-family:"JetBrains Mono";font-size:clamp(20px,2.1vw,32px);padding:18px 20px;border-radius:14px;background:rgba(2,19,31,.72);border:1px solid rgba(255,255,255,.09)}.math-card.wrong{border-color:rgba(255,23,68,.55);color:#ffd2dc}.math-card.right{border-color:rgba(0,200,83,.55);color:#d9f9e5}.symbol{font-family:Inter;margin-right:8px;font-weight:900}.wrong .symbol{color:var(--ss-error)}.right .symbol{color:var(--ss-correct)}

/* Three replaceable square art slots. Swap the SVG/PNG/WebP later without touching layout. */
.portal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.portal{min-height:310px;padding:22px 24px 26px;border-radius:21px;position:relative;text-align:center;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.portal:hover{transform:translateY(-4px);border-color:rgba(107,216,255,.58);box-shadow:0 24px 40px -26px #000,0 8px 0 -3px rgba(2,17,29,.65),0 0 24px rgba(43,182,255,.10)}
.portal-icon{width:min(152px,70%);aspect-ratio:1;margin:0 auto 18px}.portal-icon img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 14px 14px rgba(0,0,0,.28))}
.portal h3{font-family:"Inter Tight";font-size:26px;margin:0 0 8px}.portal p{color:var(--ss-muted);line-height:1.55;margin:0}.portal b{display:block;margin-top:18px;color:#8ad8ff}

.week-road{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.road-card{padding:18px;border-radius:15px;min-height:150px}.road-card.current{border-color:rgba(165,214,167,.72);background:linear-gradient(150deg,rgba(21,79,60,.94),rgba(7,42,33,.96))}.road-card .n{display:block;font-size:12px;color:#62cbff;font-weight:900;letter-spacing:.1em;text-transform:uppercase;margin-bottom:16px}.road-card strong{display:block;line-height:1.35}.road-card small{display:block;color:var(--ss-muted-2);margin-top:12px}
.elite-panel{padding:36px;text-align:center;border-radius:20px}.elite-display{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:26px auto 22px;max-width:700px}.elite-slot{padding:20px;border-radius:12px;background:rgba(10,49,74,.65);border:1px solid rgba(108,204,255,.18);color:#a6c8db}
.squad-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.squad-card{display:grid;grid-template-columns:190px 1fr;align-items:center;gap:22px;padding:24px}.squad-card img{max-height:270px;margin:auto;filter:drop-shadow(0 20px 20px rgba(0,0,0,.35))}.squad-card h3{font-family:"Inter Tight";font-size:30px;margin:4px 0 8px}.squad-card p{color:var(--ss-muted);line-height:1.6}.role-tag{color:#63cbff;font-size:12px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.notebook-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.note-card{padding:24px}.note-card small{color:#6fd1ff;text-transform:uppercase;font-weight:900;letter-spacing:.09em}.note-card h3{font-size:24px;font-family:"Inter Tight";margin:10px 0}.note-card p{color:var(--ss-muted);line-height:1.55}
.footer-cta{display:grid;grid-template-columns:1.35fr .85fr;gap:18px}.footer-cta .glass-panel{padding:27px}.footer-cta h3{font-family:"Inter Tight";font-size:26px;margin:0 0 10px}.footer-cta p{color:var(--ss-muted);line-height:1.55;margin:0 0 18px}.signup-form{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.signup-form input{flex:1 1 220px;min-width:0;padding:12px 14px;border-radius:10px;border:1px solid rgba(135,211,250,.28);background:rgba(1,17,29,.64);color:white}.signup-note{font-size:12px;color:var(--ss-muted-2)!important;margin-top:12px!important}

/* Footer remains on the SAME floor. */
.site-footer{position:relative;z-index:3;padding:34px clamp(28px,5vw,70px) 46px;color:#9bb8ca;background:transparent;border:0}
.footer-inner{max-width:1120px;margin:auto;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:13px}

/* No reveal animation: the rendered stage already supplies the energy. */
.reveal{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}

@media(max-width:1100px){.search-box{display:none}.week-road{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){
  .nav-links{display:none}.subnav{overflow:auto;flex-wrap:nowrap}.store-pill{display:none}.scroll-cue{display:none}
  .hero-plate-wrap{width:100%}.riser-logo-patch{left:2.7%;bottom:5.5%;width:17.2%;height:15%}
  .floor-environment{padding-top:80px;background-size:100% 560px,100% 100%,140% auto}
  .floor-equations span{opacity:.10;font-size:16px}
  .content-section{padding:34px 22px}.section-inner{padding:28px 24px;border-radius:22px}
  .error-stage{grid-template-columns:1fr}.portal-grid{grid-template-columns:1fr}.portal{min-height:auto}.portal-icon{width:128px}
  .week-road{grid-template-columns:1fr 1fr}.squad-grid,.footer-cta{grid-template-columns:1fr}.notebook-grid{grid-template-columns:1fr}
}
@media(max-width:720px){
  .hero{background:radial-gradient(70% 48% at 50% 12%,rgba(36,170,255,.32),transparent 70%),#061b31}.hero-plate-wrap{width:150%;left:50%;transform:translateX(-50%)}.riser-logo-patch,.hero-hotspot{display:none}
}
@media(max-width:620px){
  .brand span{display:none}.nav-main{min-height:58px}.nav-actions{gap:7px}.start-btn{padding:9px 12px;font-size:12px}.studio-shell::before{left:8px}.studio-shell::after{right:8px}
  .floor-equations{display:none}.floor-environment{padding-top:56px;background-size:100% 460px,100% 100%,190% auto}
  .content-section{padding:28px 16px}.section-inner{padding:24px 17px;border-radius:19px}.content-section h2{font-size:32px}.section-lede{font-size:15px}
  .error-stage{padding:20px}.error-character{align-items:center}.error-character img{width:130px}.week-road{grid-template-columns:1fr}.elite-display{grid-template-columns:1fr}.squad-card{grid-template-columns:1fr;text-align:center}.squad-card img{max-height:220px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.portal{transition:none}}

/* ============================================================
   v0.12 · LONGER HERO FLOOR RUN
   The approved rendered hero remains untouched. Instead of
   ending immediately, its polished stage floor continues for a
   quiet beat before the homepage content begins.
   ============================================================ */
.hero-floor-run{
  position:relative;
  height:clamp(300px,31vw,520px);
  margin-top:-1px;
  overflow:hidden;
  background-image:
    linear-gradient(180deg,rgba(5,31,51,0) 0%,rgba(4,29,48,.03) 28%,rgba(4,27,45,.10) 68%,rgba(4,25,42,.18) 100%),
    radial-gradient(58rem 28rem at 50% 3%,rgba(45,147,255,.34),transparent 72%),
    url("hero-floor-transition.webp"),
    url("solver-floor-continuation.webp");
  background-repeat:no-repeat,no-repeat,no-repeat,repeat-y;
  background-size:100% 100%,100% 100%,100% 180px,100% auto;
  background-position:center top,center top,center top,center 125px;
}
.hero-floor-run::before{
  content:"";
  position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(1,16,29,.25),transparent 17%,transparent 83%,rgba(1,16,29,.25)),
    radial-gradient(44rem 10rem at 50% 0%,rgba(73,177,255,.19),transparent 74%);
  pointer-events:none;
}
.hero-floor-run::after{
  content:"";
  position:absolute;left:0;right:0;bottom:0;height:44%;
  background:linear-gradient(180deg,transparent,rgba(4,25,42,.12));
  pointer-events:none;
}

/* The continuation below now begins as if it is the same floor,
   not as a new background or section. */
.floor-environment{
  margin-top:0!important;
  padding-top:clamp(58px,6vw,100px)!important;
  background-position:center top,center top,center -35px!important;
}
.floor-environment::before{
  height:180px!important;
  background:
    linear-gradient(180deg,rgba(4,25,42,.16) 0%,rgba(4,25,42,.05) 48%,rgba(4,24,40,0) 100%),
    radial-gradient(48rem 11rem at 50% 0%,rgba(65,163,255,.14),transparent 78%)!important;
}

/* The scroll cue sits at the end of the longer stage floor. */
.scroll-cue{bottom:24px}

@media(max-width:900px){
  .hero-floor-run{height:clamp(200px,27vw,330px);background-size:100% 100%,100% 100%,100% 125px,145% auto;background-position:center top,center top,center top,center 88px}
}
@media(max-width:720px){
  .hero-floor-run{height:150px;background-size:100% 100%,100% 100%,160% 100px,210% auto;background-position:center top,center top,center top,center 72px}
}


/* v2.0 — restored circular spotlight portals + grown-up pack showcase polish */
.portal-icon{position:relative;width:min(164px,72%);aspect-ratio:1;margin:0 auto 18px;display:grid;place-items:center}
.portal-icon:before{content:"";position:absolute;inset:-10%;border-radius:50%;background:radial-gradient(circle at 50% 44%,rgba(113,222,255,.23),rgba(38,142,207,.10) 48%,rgba(0,229,255,0) 72%);filter:blur(3px);box-shadow:0 0 42px rgba(72,194,255,.14);pointer-events:none}
.portal-icon img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 15px 18px rgba(0,0,0,.33))}
.portal{overflow:hidden}
.portal:before{content:"";position:absolute;left:14%;right:14%;top:17px;height:145px;border-radius:50%;background:radial-gradient(ellipse,rgba(82,196,255,.08),transparent 68%);pointer-events:none}

.mascot-pack-home{padding:26px 28px 22px!important;overflow:visible}
.mascot-pack-home-top{display:grid;grid-template-columns:minmax(270px,.9fr) minmax(300px,1.1fr);gap:34px;align-items:center}
.mascot-pack-fan{position:relative;min-height:345px;display:grid;place-items:center;isolation:isolate}
.fan-page{position:absolute;width:210px;aspect-ratio:8.5/11;object-fit:cover;border-radius:7px;box-shadow:0 20px 34px rgba(0,0,0,.40);border:1px solid rgba(255,255,255,.20);transform-origin:50% 82%;background:#fff}
.fan-page-back-left{transform:translate(-66px,12px) rotate(-13deg) scale(.90);z-index:1;opacity:.96}
.fan-page-back-right{transform:translate(70px,11px) rotate(12deg) scale(.90);z-index:2;opacity:.97}
.fan-page-mid{transform:translate(13px,-4px) rotate(4deg) scale(.94);z-index:3}
.fan-page-cover{transform:translate(-18px,-10px) rotate(-2deg);z-index:4;box-shadow:0 27px 48px rgba(0,0,0,.48),0 0 30px rgba(165,214,167,.10)}
.mascot-pack-copy h3{font-size:clamp(27px,3vw,38px)!important;line-height:1.02}
.mascot-pack-copy p{font-size:15px;max-width:580px}
.mascot-pack-signup-strip{margin-top:20px;padding:15px 17px 13px;border-radius:16px;background:linear-gradient(180deg,rgba(5,29,48,.88),rgba(3,20,35,.92));border:1px solid rgba(98,207,255,.20);box-shadow:inset 0 1px rgba(255,255,255,.05);display:grid;grid-template-columns:minmax(170px,.42fr) minmax(280px,1fr);gap:18px;align-items:center}
.signup-strip-label{display:grid;gap:3px}.signup-strip-label strong{font-family:"Inter Tight",system-ui,sans-serif;font-size:18px}.signup-strip-label span{font-size:11px;line-height:1.4;color:var(--ss-muted-2)}
.mascot-pack-signup-strip .signup-form{margin-top:0;display:block;min-width:0}
/* MailerLite injected form: make it belong to the Solver Society panel instead of reading as a white card. */
.mailerlite-live .ml-form-embedContainer,.mailerlite-live .ml-form-align-center,.mailerlite-live .ml-form-align-default,.mailerlite-live .ml-form-embedWrapper,.mailerlite-live .ml-form-embedBody,.mailerlite-live .ml-form-successBody{background:transparent!important;background-color:transparent!important;box-shadow:none!important;border:0!important;max-width:none!important;width:100%!important;margin:0!important;padding-top:0!important;padding-bottom:0!important}
.mailerlite-live .ml-form-embedContent{display:none!important}
.mailerlite-live .ml-form-formContent{margin:0!important}
.mailerlite-live .ml-form-fieldRow{margin:0 0 8px!important}
.mailerlite-live .ml-form-fieldRow input{background:rgba(1,17,29,.72)!important;border:1px solid rgba(135,211,250,.32)!important;color:#fff!important;border-radius:10px!important;min-height:44px!important;font-family:Inter,system-ui,sans-serif!important}
.mailerlite-live .ml-form-fieldRow input::placeholder{color:#9eb8c6!important}
.mailerlite-live .ml-form-embedSubmit button{background:linear-gradient(180deg,#169bd7,#0b6fa8)!important;color:#fff!important;border-radius:10px!important;min-height:44px!important;font-weight:900!important;font-family:Inter,system-ui,sans-serif!important;box-shadow:0 8px 18px rgba(0,133,196,.24)!important}
.mailerlite-live .ml-form-successContent,.mailerlite-live .ml-form-successContent h4,.mailerlite-live .ml-form-successContent p{color:#e9f8ff!important}
@media(max-width:900px){.mascot-pack-home-top{grid-template-columns:1fr}.mascot-pack-fan{min-height:330px}.mascot-pack-signup-strip{grid-template-columns:1fr}.footer-cta{grid-template-columns:1fr}}
@media(max-width:560px){.mascot-pack-home{padding:23px 18px 20px!important}.mascot-pack-fan{min-height:280px}.fan-page{width:165px}.fan-page-back-left{transform:translate(-50px,10px) rotate(-12deg) scale(.90)}.fan-page-back-right{transform:translate(54px,10px) rotate(11deg) scale(.90)}.fan-page-mid{transform:translate(10px,-1px) rotate(4deg) scale(.94)}.fan-page-cover{transform:translate(-12px,-6px) rotate(-2deg)}}


/* v2.1 — Monthly Mascot Pack preview: non-overlapping cover + page rail. */
.mascot-pack-gallery{min-height:350px;display:grid;grid-template-columns:minmax(180px,1.12fr) minmax(105px,.66fr);gap:14px;align-items:center;justify-content:center;padding:8px 0}
.pack-gallery-cover{width:min(235px,100%);justify-self:end;aspect-ratio:8.5/11;object-fit:cover;border-radius:8px;border:1px solid rgba(255,255,255,.22);box-shadow:0 28px 48px rgba(0,0,0,.46),0 0 26px rgba(165,214,167,.08)}
.pack-gallery-pages{display:grid;gap:9px;align-content:center}
.pack-gallery-pages img{display:block;width:min(118px,100%);aspect-ratio:8.5/11;object-fit:cover;border-radius:6px;border:1px solid rgba(255,255,255,.18);box-shadow:0 13px 24px rgba(0,0,0,.32)}
.home-book-waitlist{display:grid;grid-template-columns:minmax(220px,.78fr) minmax(300px,1.22fr);gap:22px;align-items:center;padding:25px 27px!important}
.home-book-waitlist h3{margin:7px 0 8px!important}.home-book-waitlist p{margin:0 0 13px!important}.home-book-waitlist .ghost-btn{display:inline-flex}
.home-book-form{min-width:0}
@media(max-width:900px){.mascot-pack-gallery{min-height:320px}.home-book-waitlist{grid-template-columns:1fr}.pack-gallery-cover{justify-self:center}.pack-gallery-pages{grid-template-columns:repeat(3,1fr)}.pack-gallery-pages img{width:100%}}
@media(max-width:560px){.mascot-pack-gallery{grid-template-columns:1fr;min-height:0}.pack-gallery-cover{width:205px;justify-self:center}.pack-gallery-pages{grid-template-columns:repeat(3,1fr);width:100%;max-width:330px;justify-self:center}.pack-gallery-pages img{width:100%}}


/* v2.2 — restore the earlier hovering-image-over-spotlight door treatment. */
.portal-icon{width:min(170px,74%);height:158px;aspect-ratio:auto;margin:0 auto 18px;position:relative;display:grid;place-items:center;overflow:visible}
.portal-icon:before{content:"";position:absolute;width:132px;height:74px;left:50%;bottom:9px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(ellipse at center,rgba(74,197,255,.32) 0%,rgba(74,197,255,.15) 46%,rgba(30,126,183,.05) 68%,transparent 76%);box-shadow:0 8px 34px rgba(58,181,244,.20),inset 0 1px 0 rgba(202,241,255,.14);filter:blur(.2px);pointer-events:none}
.portal-icon:after{content:"";position:absolute;width:104px;height:20px;left:50%;bottom:20px;transform:translateX(-50%);border-radius:50%;background:rgba(0,0,0,.26);filter:blur(8px);pointer-events:none}
.portal-icon img{position:relative;z-index:2;width:126px;height:126px;object-fit:contain;transform:translateY(-10px);filter:drop-shadow(0 18px 16px rgba(0,0,0,.36));transition:transform .24s ease,filter .24s ease}
.portal:hover .portal-icon img,.portal:focus-visible .portal-icon img{transform:translateY(-18px) scale(1.035);filter:drop-shadow(0 24px 18px rgba(0,0,0,.40)) drop-shadow(0 0 12px rgba(82,204,255,.10))}
.portal:hover .portal-icon:before,.portal:focus-visible .portal-icon:before{background:radial-gradient(ellipse at center,rgba(95,214,255,.40) 0%,rgba(74,197,255,.18) 48%,rgba(30,126,183,.05) 70%,transparent 78%);box-shadow:0 9px 40px rgba(58,181,244,.25),inset 0 1px 0 rgba(220,247,255,.18)}
.portal:before{display:none}

/* Temporary Fall Edition mockup — intentionally not presented as final cover art. */
.home-book-waitlist{display:grid!important;grid-template-columns:220px minmax(260px,.78fr) minmax(300px,1fr)!important;gap:28px!important;align-items:center!important;overflow:visible!important}
.book-teaser-wrap{display:grid;place-items:center;min-height:270px;perspective:900px}
.book-teaser{position:relative;width:170px;height:238px;transform:rotateY(-9deg) rotateX(2deg) rotateZ(-2deg);transform-style:preserve-3d;filter:drop-shadow(0 24px 24px rgba(0,0,0,.42))}
.book-cover-temp{position:absolute;inset:0;border-radius:8px 12px 12px 8px;overflow:hidden;border:1px solid rgba(173,228,241,.28);background:linear-gradient(160deg,#143d57 0%,#0b273d 50%,#071a2a 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),inset -8px 0 16px rgba(0,0,0,.17);backface-visibility:hidden}
.book-cover-temp:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 76% 18%,rgba(0,229,255,.14),transparent 35%),linear-gradient(120deg,transparent 0 30%,rgba(255,255,255,.06) 42%,transparent 56%);pointer-events:none}
.book-spine{position:absolute;left:-12px;top:4px;width:16px;height:230px;border-radius:5px 0 0 5px;background:linear-gradient(180deg,#0e2b40,#06131f);transform:translateZ(-7px);box-shadow:inset -2px 0 0 rgba(255,255,255,.05)}
.book-cover-top{position:relative;z-index:2;padding:14px 13px 0;font-size:8px;font-weight:950;letter-spacing:.19em;color:#d9f5ff}
.book-cover-bandit{position:absolute;left:-5px;bottom:23px;width:110px;height:138px;z-index:2;display:flex;align-items:flex-end;justify-content:center}
.book-cover-bandit img{width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 9px 10px rgba(0,0,0,.35))}
.book-cover-copy{position:absolute;right:11px;top:53px;width:92px;z-index:3;text-align:right}
.book-cover-copy span{display:block;margin-bottom:7px;font-size:6px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#ffe08b}
.book-cover-copy strong{display:block;font-family:'Inter Tight',system-ui,sans-serif;font-size:17px;line-height:.91;letter-spacing:-.04em;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.28)}
.book-cover-copy small{display:block;margin-top:10px;font-size:6.8px;line-height:1.25;font-weight:850;color:#bcd8e4}
@media(max-width:980px){.home-book-waitlist{grid-template-columns:190px 1fr!important}.home-book-form{grid-column:1/-1}.book-teaser{transform:rotateY(-6deg) rotateZ(-1deg)}}
@media(max-width:680px){.home-book-waitlist{grid-template-columns:1fr!important;text-align:center}.book-waitlist-copy .ghost-btn{margin-inline:auto}.book-teaser-wrap{min-height:245px}}

/* v2.3 — Fall Book card mirrors the Mascot Pack structure: visual + copy above, signup beneath. */
.home-book-waitlist{display:block!important;padding:25px 27px 22px!important;overflow:visible!important}
.home-book-top{display:grid;grid-template-columns:minmax(190px,.72fr) minmax(310px,1.28fr);gap:30px;align-items:center}
.home-book-top .book-teaser-wrap{min-height:270px}
.book-signup-strip{margin-top:16px;padding-top:18px;border-top:1px solid rgba(139,211,244,.18);display:grid;grid-template-columns:minmax(220px,.72fr) minmax(320px,1.28fr);gap:24px;align-items:center}
.book-signup-strip .signup-strip-label{display:flex;flex-direction:column;gap:5px}
.book-signup-strip .signup-strip-label strong{font-family:'Inter Tight',system-ui,sans-serif;font-size:20px;color:#f4fbff}
.book-signup-strip .signup-strip-label span{font-size:13px;line-height:1.45;color:var(--ss-muted)}
.home-book-form{min-width:0;width:100%}
@media(max-width:900px){.home-book-top{grid-template-columns:1fr}.book-signup-strip{grid-template-columns:1fr}.home-book-top .book-waitlist-copy{text-align:left}.home-book-top .book-teaser-wrap{min-height:245px}}
@media(max-width:680px){.home-book-top .book-waitlist-copy{text-align:center}.book-signup-strip{text-align:left}}


/* v2.4 — approved Bandit hover-pad doors + centered dual-signup hub. */
.signup-hub{
  max-width:1240px;
  margin-inline:auto;
  padding:34px!important;
  border-radius:30px;
  background:linear-gradient(180deg,rgba(7,31,50,.72),rgba(4,22,38,.84));
  border:1px solid rgba(114,207,248,.20);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 28px 58px rgba(0,0,0,.20);
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:24px!important;
  align-items:stretch;
}
.signup-hub>.glass-panel{width:100%;height:100%;margin:0 auto}
.signup-hub .home-book-waitlist,.signup-hub .mascot-pack-home{display:flex!important;flex-direction:column;justify-content:center}
.signup-hub .home-book-top{flex:1;align-content:center;align-items:center}
.signup-hub .book-waitlist-copy{align-self:center}
.signup-hub .book-signup-strip{margin-top:auto}

/* Use Bandit artwork itself as the hovering visual; the pad remains part of the art. */
.portal{padding-top:18px;overflow:visible}
.portal-icon{
  width:min(270px,92%);
  height:230px;
  margin:0 auto 4px;
  position:relative;
  display:grid;
  place-items:center;
  overflow:visible;
}
.portal-icon:before{
  content:"";
  position:absolute;
  width:72%;
  height:34%;
  left:50%;
  bottom:12px;
  transform:translateX(-50%);
  border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(84,205,255,.18),rgba(84,205,255,.06) 48%,transparent 74%);
  filter:blur(8px);
  pointer-events:none;
}
.portal-icon:after{display:none!important}
.portal-icon img{
  position:relative;
  z-index:2;
  width:100%;
  height:100%;
  object-fit:contain;
  transform:translateY(0);
  filter:drop-shadow(0 18px 17px rgba(0,0,0,.34));
  transition:transform .24s ease,filter .24s ease;
}
.portal:hover .portal-icon img,.portal:focus-visible .portal-icon img{
  transform:translateY(-11px) scale(1.035);
  filter:drop-shadow(0 26px 22px rgba(0,0,0,.42)) drop-shadow(0 0 16px rgba(95,211,255,.10));
}
.portal:hover .portal-icon:before,.portal:focus-visible .portal-icon:before{
  background:radial-gradient(ellipse at center,rgba(98,216,255,.26),rgba(84,205,255,.08) 52%,transparent 76%);
}
@media(max-width:980px){
  .signup-hub{grid-template-columns:1fr!important;max-width:880px;padding:26px!important}
  .portal-icon{height:210px;width:min(245px,86%)}
}
@media(max-width:560px){
  .signup-hub{padding:18px!important;border-radius:22px}
  .portal-icon{height:190px;width:min(225px,88%)}
}

/* v2.5 — smaller transparent Bandit hover visuals + stacked Parents & Educators signup plate. */
.portal-icon{
  width:min(220px,78%)!important;
  height:178px!important;
  margin-bottom:12px!important;
}
.portal-icon img{max-height:178px!important}
.portal h3{margin-top:4px!important}
.portal b{display:inline-block;margin-top:10px;position:relative;z-index:4}
@media(max-width:980px){.portal-icon{width:min(205px,74%)!important;height:166px!important}.portal-icon img{max-height:166px!important}}
@media(max-width:560px){.portal-icon{width:min(190px,72%)!important;height:156px!important}.portal-icon img{max-height:156px!important}}

.signup-hub{
  max-width:1080px!important;
  grid-template-columns:1fr!important;
  gap:20px!important;
  padding:38px!important;
  position:relative;
}
.signup-hub-title{grid-column:1/-1;text-align:center;padding:0 12px 4px}
.signup-hub-title .role-tag{display:inline-flex;margin-bottom:9px}
.signup-hub-title h2{margin:0;font-family:'Inter Tight',system-ui,sans-serif;font-size:clamp(28px,3vw,40px);line-height:1.05}
.signup-hub>.glass-panel{
  max-width:940px;
  justify-self:center;
  height:auto!important;
  border-radius:22px;
}
.signup-hub .mascot-pack-home,.signup-hub .home-book-waitlist{
  width:100%;
  padding:26px!important;
  overflow:hidden;
}
.signup-hub .mascot-pack-home-top,.signup-hub .home-book-top{width:100%;min-width:0}
.signup-hub .mascot-pack-gallery,.signup-hub .signup-copy,.signup-hub .book-teaser-wrap,.signup-hub .book-waitlist-copy{min-width:0}
.signup-hub .mascot-pack-copy,.signup-hub .book-waitlist-copy{padding-inline:4px}
.signup-hub .book-waitlist-copy{align-self:center!important}
.signup-hub .home-book-top{align-items:center!important}
.signup-hub .book-signup-strip,.signup-hub .mascot-pack-signup-strip{width:100%;box-sizing:border-box}
@media(max-width:900px){.signup-hub{max-width:880px!important;padding:26px!important}.signup-hub>.glass-panel{max-width:100%}}
@media(max-width:560px){.signup-hub{padding:18px!important}.signup-hub .mascot-pack-home,.signup-hub .home-book-waitlist{padding:18px!important}}

/* ============================================================
   v2.9 · HYBRID HERO-TO-CONCRETE CONTINUITY TEST
   Keep the hero as the visual anchor, then dissolve its bottom
   edge into one quiet concrete material for the full homepage.
   This is intentionally NOT a perspective-matched floor extension.
   ============================================================ */
.riser-logo-patch{display:none!important}
.hero{background:#061b31}
.hero-plate-wrap{background:#061b31}

.floor-environment{
  margin-top:-2px!important;
  padding-top:clamp(58px,6vw,92px)!important;
  background-color:#071d2e!important;
  background-image:
    linear-gradient(180deg,rgba(7,31,49,.02) 0%,rgba(7,29,46,.22) 80px,rgba(6,27,43,.56) 220px,rgba(6,25,40,.72) 420px),
    radial-gradient(58rem 24rem at 50% 0%,rgba(55,153,225,.15),transparent 72%),
    linear-gradient(90deg,rgba(1,14,25,.24),transparent 18%,transparent 82%,rgba(1,14,25,.24)),
    url("home-concrete-texture.webp")!important;
  background-repeat:no-repeat,no-repeat,no-repeat,repeat!important;
  background-size:100% 460px,100% 680px,100% 100%,1024px 1024px!important;
  background-position:center top,center top,center top,center top!important;
}
.floor-environment::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  left:0!important;right:0!important;top:0!important;height:260px!important;
  pointer-events:none!important;
  z-index:0!important;
  background:
    linear-gradient(180deg,rgba(7,34,55,.00) 0%,rgba(7,32,51,.08) 18%,rgba(6,29,47,.28) 52%,rgba(6,27,43,0) 100%),
    radial-gradient(50rem 11rem at 50% 0%,rgba(67,168,245,.12),transparent 78%)!important;
}
/* Let the shared material do the atmospheric work; avoid extra equation wallpaper in this test. */
.floor-equations{opacity:.55}

@media(max-width:900px){
  .floor-environment{background-size:100% 360px,100% 520px,100% 100%,760px 760px!important}
}
@media(max-width:620px){
  .floor-environment{background-size:100% 300px,100% 430px,100% 100%,620px 620px!important}
}

/* ============================================================
   v3.0 · SOFT HERO-TO-BLUE CONTINUITY
   No floor outpaint and no repeated hero crop. The hero simply
   dissolves into a matching navy-blue concrete atmosphere.
   ============================================================ */
.hero{position:relative;background:#061b31}
.hero::after{
  content:"";
  position:absolute;
  z-index:5;
  left:0;right:0;bottom:-1px;
  height:clamp(34px,5vw,78px);
  pointer-events:none;
  background:linear-gradient(180deg,
    rgba(22,55,96,0) 0%,
    rgba(22,55,96,.16) 32%,
    rgba(18,46,78,.54) 72%,
    #122e4e 100%);
}
.scroll-cue{z-index:9}

.floor-environment{
  margin-top:-1px!important;
  padding-top:clamp(54px,5.5vw,86px)!important;
  background-color:#0c243b!important;
  background-image:
    linear-gradient(180deg,#122e4e 0%,#102b47 110px,#0d263f 300px,#0b2238 620px,#091e32 100%),
    radial-gradient(54rem 23rem at 50% 0%,rgba(76,170,235,.13),transparent 72%),
    linear-gradient(90deg,rgba(3,18,31,.28),transparent 19%,transparent 81%,rgba(3,18,31,.28)),
    url("home-concrete-soft.webp")!important;
  background-repeat:no-repeat,no-repeat,no-repeat,repeat!important;
  background-size:100% 100%,100% 720px,100% 100%,1024px 1024px!important;
  background-position:center top,center top,center top,center top!important;
}
.floor-environment::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  z-index:0!important;
  left:0!important;right:0!important;top:0!important;
  height:220px!important;
  pointer-events:none!important;
  background:linear-gradient(180deg,
    rgba(34,76,121,.15) 0%,
    rgba(23,57,93,.08) 40%,
    rgba(11,34,56,0) 100%)!important;
}
.floor-equations{opacity:.24!important}

@media(max-width:900px){
  .hero::after{height:52px}
  .floor-environment{background-size:100% 100%,100% 560px,100% 100%,760px 760px!important}
}
@media(max-width:620px){
  .hero::after{height:42px}
  .floor-environment{background-size:100% 100%,100% 430px,100% 100%,620px 620px!important}
}

/* ============================================================
   v3.1 · AURORA ATMOSPHERE POLISH
   Keep the approved v3.0 hero-to-blue transition; add soft,
   low-contrast aurora washes behind the homepage content only.
   ============================================================ */
.floor-environment{
  background-image:
    linear-gradient(180deg,#122e4e 0%,#102b47 110px,#0d263f 300px,#0b2238 620px,#091e32 100%),
    radial-gradient(70rem 34rem at 18% 12%,rgba(112,74,180,.16),transparent 70%),
    radial-gradient(72rem 36rem at 82% 24%,rgba(24,170,139,.14),transparent 72%),
    radial-gradient(68rem 32rem at 38% 53%,rgba(70,95,210,.13),transparent 70%),
    radial-gradient(64rem 34rem at 78% 68%,rgba(137,65,180,.12),transparent 72%),
    radial-gradient(58rem 28rem at 28% 84%,rgba(42,166,148,.11),transparent 74%),
    radial-gradient(54rem 23rem at 50% 0%,rgba(76,170,235,.13),transparent 72%),
    linear-gradient(90deg,rgba(3,18,31,.28),transparent 19%,transparent 81%,rgba(3,18,31,.28)),
    url("home-concrete-soft.webp")!important;
  background-repeat:no-repeat,no-repeat,no-repeat,no-repeat,no-repeat,no-repeat,no-repeat,no-repeat,repeat!important;
  background-size:100% 100%,100% 980px,100% 1120px,100% 1250px,100% 1180px,100% 1000px,100% 720px,100% 100%,1024px 1024px!important;
  background-position:center top,center 40px,center 420px,center 1120px,center 2050px,center 3250px,center top,center top,center top!important;
}
.floor-environment::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:0;
  background:
    radial-gradient(44rem 18rem at 12% 34%,rgba(172,82,214,.075),transparent 72%),
    radial-gradient(46rem 18rem at 88% 47%,rgba(71,210,168,.065),transparent 74%),
    radial-gradient(42rem 16rem at 28% 73%,rgba(69,128,235,.07),transparent 72%),
    radial-gradient(42rem 16rem at 76% 90%,rgba(156,87,207,.06),transparent 74%);
  mix-blend-mode:screen;
}
.floor-environment > *{position:relative;z-index:1}

@media(max-width:900px){
  .floor-environment{
    background-size:100% 100%,100% 760px,100% 900px,100% 980px,100% 940px,100% 820px,100% 560px,100% 100%,760px 760px!important;
  }
}
@media(max-width:620px){
  .floor-environment{
    background-size:100% 100%,100% 620px,100% 720px,100% 800px,100% 760px,100% 680px,100% 430px,100% 100%,620px 620px!important;
  }
}

/* ============================================================
   v3.2 · DEEPENING AURORA FLOW
   Preserve the approved v3.0 hero handoff. As visitors move down
   the homepage, the navy atmosphere deepens and the aurora becomes
   gradually richer — still behind the content, never over it.
   ============================================================ */
.floor-environment{
  background-color:#071827!important;
  background-image:
    linear-gradient(180deg,
      #122e4e 0%,
      #102b47 8%,
      #0d263f 20%,
      #0b2137 38%,
      #091c30 58%,
      #071827 78%,
      #05131f 100%),
    radial-gradient(74rem 34rem at 18% 10%,rgba(118,77,184,.13),transparent 70%),
    radial-gradient(72rem 34rem at 82% 19%,rgba(31,166,145,.12),transparent 72%),
    radial-gradient(76rem 34rem at 28% 38%,rgba(91,72,202,.18),transparent 68%),
    radial-gradient(72rem 34rem at 78% 49%,rgba(42,194,157,.17),transparent 70%),
    radial-gradient(78rem 38rem at 22% 64%,rgba(151,68,193,.21),transparent 68%),
    radial-gradient(74rem 36rem at 80% 74%,rgba(48,121,221,.19),transparent 70%),
    radial-gradient(80rem 40rem at 34% 88%,rgba(48,191,151,.21),transparent 68%),
    radial-gradient(66rem 32rem at 84% 96%,rgba(161,75,205,.22),transparent 68%),
    radial-gradient(54rem 23rem at 50% 0%,rgba(76,170,235,.12),transparent 72%),
    linear-gradient(90deg,rgba(3,18,31,.30),transparent 19%,transparent 81%,rgba(3,18,31,.30)),
    url("home-concrete-soft.webp")!important;
  background-repeat:no-repeat,no-repeat,no-repeat,no-repeat,no-repeat,no-repeat,no-repeat,no-repeat,no-repeat,no-repeat,no-repeat,repeat!important;
  background-size:100% 100%,100% 840px,100% 900px,100% 1080px,100% 1120px,100% 1240px,100% 1220px,100% 1160px,100% 980px,100% 720px,100% 100%,1024px 1024px!important;
  background-position:center top,center top,center top,center center,center center,center center,center center,center bottom,center bottom,center top,center top,center top!important;
}
.floor-environment::after{
  background:
    radial-gradient(48rem 18rem at 13% 34%,rgba(180,90,224,.08),transparent 72%),
    radial-gradient(48rem 18rem at 87% 45%,rgba(79,226,180,.08),transparent 74%),
    radial-gradient(48rem 18rem at 22% 62%,rgba(114,88,231,.11),transparent 72%),
    radial-gradient(52rem 20rem at 80% 73%,rgba(61,207,170,.11),transparent 72%),
    radial-gradient(50rem 19rem at 28% 88%,rgba(185,88,225,.13),transparent 72%),
    radial-gradient(46rem 18rem at 82% 96%,rgba(76,138,242,.12),transparent 72%)!important;
  mix-blend-mode:screen;
  opacity:.95;
}
@media(max-width:900px){
  .floor-environment{
    background-size:100% 100%,100% 680px,100% 720px,100% 860px,100% 900px,100% 980px,100% 960px,100% 900px,100% 780px,100% 560px,100% 100%,760px 760px!important;
  }
}
@media(max-width:620px){
  .floor-environment{
    background-size:100% 100%,100% 560px,100% 600px,100% 720px,100% 740px,100% 800px,100% 790px,100% 760px,100% 660px,100% 430px,100% 100%,620px 620px!important;
  }
}

/* ============================================================
   v3.3 · HOMEPAGE FINAL DETAIL POLISH
   Hotspot alignment, soft-edge hover-pad art, paper Notebook
   previews, and left-aligned Parents & Educators heading.
   ============================================================ */
/* Hero interaction boxes now sit directly over the visible UI elements. */
.hero-hotspot.monday{left:26.62%!important;top:48.35%!important;width:9.20%!important;height:15.55%!important;border-radius:13px!important}
.hero-hotspot.friday{left:64.05%!important;top:48.35%!important;width:8.22%!important;height:15.55%!important;border-radius:13px!important}
.hero-hotspot.start{left:26.66%!important;top:68.02%!important;width:7.18%!important;height:5.18%!important;border-radius:13px!important}
.hero-hotspot.pack{left:34.68%!important;top:68.02%!important;width:13.78%!important;height:5.18%!important;border-radius:13px!important}
.hero-hotspot:hover,.hero-hotspot:focus-visible{background:rgba(190,255,202,.055)!important;box-shadow:0 0 0 2px rgba(190,255,202,.42) inset,0 0 16px rgba(102,238,166,.08)!important}

/* Bandit's door art: the generated neon pad now dissolves naturally rather than ending on a straight pixel edge. */
.portal-icon img{object-fit:contain!important}

/* Notebook homepage previews echo the actual lined-paper article design. */
.notebook-grid{gap:20px!important}
.note-card{
  position:relative!important;
  overflow:hidden!important;
  padding:30px 30px 30px 48px!important;
  color:#14243d!important;
  background-color:#f7f0e3!important;
  background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 30px,rgba(67,113,145,.18) 31px,transparent 32px)!important;
  border:1px solid rgba(255,255,255,.64)!important;
  box-shadow:0 20px 38px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.85)!important;
}
.note-card:before{
  content:"";
  position:absolute;
  left:28px;
  top:0;
  bottom:0;
  width:1px;
  background:rgba(212,93,93,.34);
}
.note-card:after{
  content:"";
  position:absolute;
  left:12px;
  top:18px;
  width:12px;
  height:12px;
  border-radius:50%;
  background:#d6cbbb;
  box-shadow:0 54px 0 #d6cbbb,0 108px 0 #d6cbbb;
}
.note-card small{position:relative;z-index:1;color:#b55c28!important;font-weight:900!important}
.note-card h3{position:relative;z-index:1;color:#13223a!important;font-size:26px!important;line-height:1.08!important}
.note-card p{position:relative;z-index:1;color:#4a5a70!important;font-weight:500!important}
.note-card:hover,.note-card:focus-visible{transform:translateY(-4px)!important;border-color:rgba(167,220,244,.76)!important;box-shadow:0 26px 46px rgba(0,0,0,.28),0 0 24px rgba(100,205,255,.08),inset 0 1px 0 #fff!important}

/* Keep the signup plate centered, but align its heading with the content plates above. */
.signup-hub-title{
  width:100%!important;
  max-width:940px!important;
  justify-self:center!important;
  text-align:left!important;
  padding:0 4px 8px!important;
}
.signup-hub-title .role-tag{margin-left:0!important}

/* Give mascot lineup cards a restrained version of the hover-pad lift used on the homepage. */


/* v3.4 — exact hero-board interaction alignment */
.hero-hotspot.monday{left:26.62%!important;top:48.46%!important;width:9.15%!important;height:15.30%!important;border-radius:12px!important}
.hero-hotspot.tuesday{left:36.60%!important;top:48.46%!important;width:8.73%!important;height:15.30%!important;border-radius:12px!important}
.hero-hotspot.wednesday{left:46.05%!important;top:48.46%!important;width:8.73%!important;height:15.30%!important;border-radius:12px!important}
.hero-hotspot.thursday{left:55.56%!important;top:48.46%!important;width:8.01%!important;height:15.30%!important;border-radius:12px!important}
.hero-hotspot.friday{left:64.23%!important;top:48.46%!important;width:8.01%!important;height:15.30%!important;border-radius:12px!important}
.hero-hotspot.start{left:26.73%!important;top:68.12%!important;width:7.12%!important;height:5.10%!important;border-radius:11px!important}
.hero-hotspot.pack{left:34.69%!important;top:68.12%!important;width:13.88%!important;height:5.10%!important;border-radius:11px!important}
.hero-hotspot.tuesday,.hero-hotspot.wednesday,.hero-hotspot.thursday{cursor:default}
.hero-hotspot:hover,.hero-hotspot:focus-visible{background:rgba(190,255,202,.055)!important;box-shadow:0 0 0 2px rgba(190,255,202,.42) inset,0 0 16px rgba(102,238,166,.08)!important}

/* ============================================================
   LAUNCH FIXES — v3.7  (mobile hero)
   Below 720px the stage art is cropped to 150% and every hotspot is
   hidden, which left the page with no visible headline and nothing to
   tap. The .hero-a11y block now becomes the real mobile hero.
   ============================================================ */
.hero-mobile-cta{display:none}

@media(max-width:720px){
  .hero{padding-bottom:26px}
  .hero-a11y{
    position:static; width:auto; height:auto; margin:0; padding:22px 20px 0;
    overflow:visible; clip:auto; clip-path:none; white-space:normal;
    text-align:center; max-width:34rem; margin-inline:auto;
  }
  .hero-a11y .eyebrow{
    display:block; font-family:"JetBrains Mono",ui-monospace,monospace;
    font-size:11px; font-weight:800; letter-spacing:.16em; text-transform:uppercase;
    color:#5FD0EC; margin-bottom:10px;
  }
  .hero-a11y h1{
    font-family:"Inter Tight",system-ui,sans-serif;
    font-size:clamp(26px,7.4vw,34px); font-weight:900; line-height:1.1;
    letter-spacing:-.02em; color:#EAF6FB; text-wrap:balance; margin:0 0 10px;
  }
  .hero-a11y p{color:#A9C0CE; font-size:15.5px; line-height:1.6; margin:0}

  .hero-mobile-cta{
    display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-top:20px;
  }
  .hero-mobile-cta a{
    display:inline-flex; align-items:center; justify-content:center;
    min-height:46px; padding:12px 22px; border-radius:999px;
    font-weight:800; font-size:15px; text-decoration:none;
  }
  .hero-mobile-cta .primary-btn{
    background:linear-gradient(180deg,#9FF9FF,#00E5FF); color:#02202B;
    border:1px solid rgba(255,255,255,.5);
  }
  .hero-mobile-cta .ghost-btn{
    background:rgba(255,255,255,.06); color:#DCEEF6;
    border:1px solid rgba(255,255,255,.2);
  }
  .hero-mobile-cta a:focus-visible{outline:3px solid #FFEA00;outline-offset:3px}
}

/* =========================================================
   TEACHER REDIRECT — homepage signup hub
   ---------------------------------------------------------
   The Monthly Mascot Pack card used to label itself "Parents & educators",
   so teachers signed up on the parent form and never received the early
   Mission Pack access that is the whole point of the educator list. The card
   is now parents-only and this strip routes teachers onward. It sits inside
   the pack card rather than becoming a third glass panel, so it stays
   subordinate to the parent signup instead of competing with the book
   waitlist beside it. Button matches .teacher-btn on /grown-ups/ so both
   teacher CTAs read as the same control.
   ========================================================= */
.teacher-redirect{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;margin-top:16px;padding:20px 22px;border-radius:16px;background:rgba(3,20,36,.42);border:1px solid rgba(0,229,255,.22);box-shadow:inset 0 1px rgba(255,255,255,.06)}
.teacher-redirect h4{margin:7px 0 6px;font-family:"Inter Tight",system-ui,sans-serif;font-size:20px;line-height:1.15;color:#eaf8ff}
.teacher-redirect p{margin:0;color:var(--ss-muted);font-size:14px;line-height:1.55;max-width:52ch}
.teacher-redirect-btn{display:inline-flex;align-items:center;white-space:nowrap;min-height:46px;padding:12px 22px;border-radius:999px;background:linear-gradient(180deg,#9FF9FF,#00E5FF);color:#02202B;font-weight:800;font-size:15px;text-decoration:none;transition:transform .16s ease,filter .16s ease,box-shadow .16s ease}
.teacher-redirect-btn:hover,.teacher-redirect-btn:focus-visible{transform:translateY(-2px);filter:brightness(1.05);box-shadow:0 12px 26px rgba(0,0,0,.22)}
@media(max-width:640px){.teacher-redirect{grid-template-columns:minmax(0,1fr)}.teacher-redirect-copy{min-width:0}.teacher-redirect-btn{width:100%;justify-content:center;text-align:center;white-space:normal}}

/* =========================================================
   MEET THE SQUAD — match Sunny to Bandit
   ---------------------------------------------------------
   Sunny's art is a shorter, wider canvas (560x616) than Bandit's (560x839).
   The global img{max-width:100%} capped her at the 190px image column, so she
   rendered 190x209 and never reached the 270px max-height — while Bandit, tall
   and narrow, hit that cap and rendered 180x270. She was 23% shorter than him
   for a reason that had nothing to do with the characters.

   Releasing max-width lets max-height govern BOTH, so the two render the same
   height. Sunny's canvas is only 49% opaque (275px of 560), so the extra canvas
   width is transparent padding: her drawn body still sits inside the column and
   never reaches the text, which paints after her in any case.
   ========================================================= */
.squad-card img{max-width:none}
@media(max-width:900px){.squad-card img{max-width:100%}}
