/* EMS Boost modern home. Loaded after the page styles; only touches the public home. */
:root{
  --hm-ink:#070d24; --hm-navy:#0b1640; --hm-blue:#2f5bff; --hm-sky:#6fa0ff; --hm-gold:#ffb81f; --hm-mint:#2dd4a7; --hm-cloud:#f3f6ff;
  --hm-glass:rgba(255,255,255,.07); --hm-line:rgba(255,255,255,.14);
}
#homeView h1,#homeView h2,#homeView h3,#homeView .hm-d{ font-family:'Sora','Manrope',system-ui,sans-serif; letter-spacing:-.02em; }

/* ---------- nav ---------- */
#siteNav{ position:sticky; top:0; z-index:60; background:rgba(7,13,36,.94); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); border-bottom:1px solid var(--hm-line); padding:12px 28px; }
#siteNav .nav-logo .nm{ color:#fff; font-family:'Sora','Manrope',sans-serif; }
#siteNav .nav-logo .nm span{ color:var(--hm-gold); }
#siteNav .nav-links a{ color:#c9d4f5; }
#siteNav .nav-links a:hover{ color:#fff; }
#siteNav .nav-logins{ align-items:center; }
#siteNav .nav-login-btn{ background:transparent; color:#e6ecff; border:1.5px solid var(--hm-line); border-radius:999px; padding:9px 18px; }
#siteNav .nav-login-btn:hover{ border-color:#fff; color:#fff; }
#siteNav #navStudentLogin{ background:var(--hm-gold); color:#2b1d00; border-color:var(--hm-gold); font-weight:800; }
#siteNav #navStudentLogin:hover{ background:#ffc94d; color:#2b1d00; }
.nav-staff{ position:relative; }
.nav-staff > summary{ list-style:none; cursor:pointer; color:#c9d4f5; font-size:13.5px; font-weight:600; padding:9px 10px; border-radius:999px; }
.nav-staff > summary::-webkit-details-marker{ display:none; }
.nav-staff > summary:after{ content:" \25be"; }
.nav-staff[open] > summary{ color:#fff; }
.nav-staff .menu{ position:absolute; right:0; top:calc(100% + 8px); background:#fff; border-radius:14px; padding:6px; min-width:170px; box-shadow:0 18px 50px rgba(0,0,0,.35); display:grid; gap:2px; }
.nav-staff .menu button{ background:none !important; border:0 !important; color:#0b1b33 !important; text-align:left; border-radius:10px !important; padding:10px 12px !important; font-weight:600; }
.nav-staff .menu button:hover{ background:#eef3ff !important; }
html.is-app .nav-staff{ display:none !important; }
@media(max-width:900px){ #siteNav .nav-links{ display:none; } #siteNav{ padding:10px 14px; justify-content:space-between; } #siteNav .nav-logo{ flex:0 0 auto; justify-content:flex-start; } #siteNav .nav-logins{ flex:0 0 auto; } }

/* ---------- hero ---------- */
.hx{ position:relative; background:radial-gradient(900px 520px at 78% 18%,rgba(47,91,255,.55),transparent 60%),radial-gradient(600px 420px at 8% 90%,rgba(255,184,31,.16),transparent 60%),linear-gradient(180deg,#070d24 0%,#0b1640 100%); padding:72px 24px 0; overflow:hidden; color:#fff; }
.hx:before{ content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px); background-size:56px 56px; -webkit-mask-image:radial-gradient(ellipse at 60% 30%,#000 10%,transparent 70%); mask-image:radial-gradient(ellipse at 60% 30%,#000 10%,transparent 70%); pointer-events:none; }
.hx-in{ position:relative; max-width:1180px; gap:40px; grid-template-columns:1.05fr .95fr; padding-bottom:64px; }
.hx-pill{ display:inline-flex; align-items:center; gap:9px; background:var(--hm-glass); border:1px solid var(--hm-line); color:#dbe5ff; font-size:13px; font-weight:600; padding:8px 16px 8px 12px; border-radius:999px; letter-spacing:0; }
.hx-pill:before{ content:""; width:8px; height:8px; border-radius:50%; background:var(--hm-mint); box-shadow:0 0 0 0 rgba(45,212,167,.7); animation:hmPulse 2s infinite; }
@keyframes hmPulse{ 70%{ box-shadow:0 0 0 9px rgba(45,212,167,0); } 100%{ box-shadow:0 0 0 0 rgba(45,212,167,0); } }
.hx h1{ color:#fff; font-size:clamp(36px,4.5vw,58px); line-height:1.04; font-weight:800; margin:20px 0 18px; }
.hx h1 span{ background:linear-gradient(100deg,var(--hm-gold),#ffe08a 60%,var(--hm-gold)); -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent; }
.hx .msub, .hx .msub p{ color:#b9c6ee; font-size:clamp(16px,1.6vw,19px); line-height:1.65; max-width:520px; }
.hx .mcta{ display:flex; gap:12px; flex-wrap:wrap; margin-top:26px; }
.hx .mcta button{ border-radius:999px; padding:14px 26px; font-size:15.5px; font-weight:700; cursor:pointer; border:1.5px solid transparent; font-family:inherit; transition:transform .15s, box-shadow .15s, background .15s; }
.hx .mcta .go{ background:var(--hm-gold); color:#2b1d00; box-shadow:0 10px 30px rgba(255,184,31,.28); }
.hx .mcta .go:hover{ transform:translateY(-2px); background:#ffc94d; }
.hx .mcta .go.alt{ background:#fff; color:var(--hm-navy); box-shadow:none; }
.hx .mcta .learn{ background:var(--hm-glass); color:#fff; border-color:var(--hm-line); }
.hx .mcta .learn:hover{ background:rgba(255,255,255,.14); }
.hx-stats{ display:grid; grid-template-columns:repeat(4,auto); justify-content:start; gap:10px; margin-top:34px; }
.hx-stats li{ background:var(--hm-glass); border:1px solid var(--hm-line); border-radius:16px; padding:12px 18px; color:#9fb0e3; font-size:12.5px; display:flex; flex-direction:column; gap:2px; }
.hx-stats b{ font-family:'Sora',sans-serif; font-size:24px; color:#fff; margin:0; }

/* product stage */
.hx-art{ display:none; }
.hx-stage{ position:relative; min-height:520px; display:flex; justify-content:center; align-items:flex-start; }
.hx-glow{ position:absolute; width:380px; height:380px; border-radius:50%; background:radial-gradient(circle,rgba(47,91,255,.75),transparent 68%); top:60px; filter:blur(10px); }
.hx-phone{ position:relative; width:272px; border-radius:40px; padding:10px; background:linear-gradient(160deg,#27345f,#101a40); box-shadow:0 40px 80px rgba(0,0,0,.5),inset 0 0 0 1.5px rgba(255,255,255,.18); transform:rotate(3deg); margin-top:14px; }
.hx-scr{ background:linear-gradient(180deg,#fff,#eef3ff); border-radius:31px; padding:18px 16px 18px; min-height:456px; color:#0b1b33; }
.hx-bar{ display:flex; justify-content:space-between; align-items:center; font-size:12px; font-weight:700; color:#5b6b85; margin-bottom:14px; }
.hx-bar b{ font-family:'Sora',sans-serif; color:#0b1b33; font-size:14px; }
.hx-q{ font-size:12px; color:#5b6b85; margin:0 0 6px; }
.hx-say{ font-family:'Sora',sans-serif; font-weight:700; font-size:17px; line-height:1.3; margin:0 0 14px; }
.hx-wave{ display:flex; align-items:center; gap:4px; height:62px; background:#0b1640; border-radius:18px; padding:0 16px; justify-content:center; }
.hx-wave i{ width:5px; border-radius:3px; background:linear-gradient(180deg,var(--hm-gold),#ff8a1f); height:14px; animation:hmWave 1.1s ease-in-out infinite; }
@keyframes hmWave{ 0%,100%{ height:10px; } 50%{ height:44px; } }
.hx-score{ display:flex; gap:14px; align-items:center; margin:16px 0 12px; }
.hx-ring{ --p:92; width:68px; height:68px; border-radius:50%; background:conic-gradient(var(--hm-mint) calc(var(--p)*1%),#dfe7fb 0); display:grid; place-items:center; flex:0 0 auto; }
.hx-ring span{ width:52px; height:52px; border-radius:50%; background:#fff; display:grid; place-items:center; font-family:'Sora',sans-serif; font-weight:800; font-size:19px; }
.hx-score p{ margin:0; font-size:12.5px; color:#5b6b85; line-height:1.45; }
.hx-score p b{ color:#0b1b33; display:block; font-size:14px; }
.hx-tip{ background:#fff; border:1px solid #dfe7fb; border-radius:14px; padding:10px 12px; font-size:12.5px; color:#34415e; line-height:1.5; }
.hx-tip em{ font-style:normal; font-weight:700; color:#0f8f6f; }
.hx-chip{ position:absolute; background:rgba(255,255,255,.94); color:#0b1b33; border-radius:16px; padding:11px 15px; box-shadow:0 18px 40px rgba(0,0,0,.35); font-size:13px; font-weight:700; display:flex; gap:10px; align-items:center; animation:hmFloat 6s ease-in-out infinite; }
.hx-chip small{ display:block; font-weight:500; color:#5b6b85; font-size:11.5px; }
.hx-chip .ic{ width:34px; height:34px; border-radius:11px; display:grid; place-items:center; font-size:17px; flex:0 0 auto; }
.hx-c1{ left:-24px; top:30px; }
.hx-c1 .ic{ background:#e6edff; }
.hx-c2{ right:-8px; top:250px; animation-delay:-2s; }
.hx-c2 .ic{ background:#ffefc7; }
.hx-c3{ left:10px; bottom:34px; animation-delay:-4s; }
.hx-c3 .ic{ background:#d8f7ee; }
@keyframes hmFloat{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-10px); } }
.hx-arrow{ color:var(--hm-blue); margin:0 4px; }

/* hero tagline is admin rich text (Super Admin -> Homepage content). The inline
   page.html rules colour it for the old light hero (strong = --ink, label/heading =
   accent blue, white pills), which is near-invisible on the dark hero. Force a light
   palette on every descendant and keep any structure the owner pastes compact. */
.hx .rich-hero{ max-width:540px; font-size:clamp(16px,1.45vw,18px); line-height:1.65; overflow-wrap:anywhere; }
.hx .rich-hero, .hx .rich-hero *{ color:#c9d6f5 !important; -webkit-text-fill-color:currentColor; }
.hx .rich-hero p{ font-size:inherit; line-height:inherit; max-width:none; margin:0 0 12px; }
.hx .rich-hero > :last-child{ margin-bottom:0; }
.hx .rich-hero strong, .hx .rich-hero b{ color:#fff !important; font-weight:600; }
.hx .rich-hero em, .hx .rich-hero i{ color:#e3eaff !important; }
.hx .rich-hero a{ color:#ffd36b !important; text-decoration:underline; text-underline-offset:3px; }
.hx .rich-hero a:hover{ color:#ffe08a !important; }
.hx .rich-hero .rt-h, .hx .rich-hero h1, .hx .rich-hero h2, .hx .rich-hero h3, .hx .rich-hero h4, .hx .rich-hero h5, .hx .rich-hero h6{ color:#fff !important; font-family:'Sora',sans-serif; font-size:clamp(17px,1.5vw,19px); font-weight:700; line-height:1.3; letter-spacing:0; margin:18px 0 8px; padding:0; border:0; }
.hx .rich-hero > .rt-h:first-child{ margin-top:0; }
.hx .rich-hero .rt-label{ color:var(--hm-gold) !important; font-size:12px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; margin:18px 0 10px; }
.hx .rich-hero .rt-ul, .hx .rich-hero ul, .hx .rich-hero ol{ display:flex; flex-wrap:wrap; gap:8px; list-style:none; margin:0 0 14px; padding:0; }
.hx .rich-hero .rt-ul li, .hx .rich-hero li{ padding:6px 13px; font-size:13.5px; font-weight:600; line-height:1.4; color:#eef2ff !important; background:var(--hm-glass); border:1px solid var(--hm-line); border-radius:999px; }
.hx .rich-hero .rt-ul li:before{ display:none; }
.hx .rich-hero .rt-q, .hx .rich-hero blockquote{ margin:14px 0; padding:12px 16px; background:rgba(255,255,255,.07); border:0; border-left:3px solid var(--hm-gold); border-radius:0 12px 12px 0; font-size:15.5px; font-weight:600; line-height:1.5; color:#fff !important; }

/* "buy -> purchase" chip sat on top of the phone header ("AI Speak / Say it...").
   Anchor it to the phone's left edge so it only overlaps the bezel. */
.hx-c1{ left:auto; right:calc(50% + 108px); top:26px; white-space:nowrap; }
/* narrow two-column layout: no room left of the phone without hitting the copy column */
@media(min-width:901px) and (max-width:1180px){ .hx-c1{ left:-24px; right:auto; } }

/* word strip */
.hm-strip{ background:#fff; border-bottom:1px solid #e4ebfb; overflow:hidden; padding:16px 0; position:relative; }
.hm-strip:before,.hm-strip:after{ content:""; position:absolute; top:0; bottom:0; width:90px; z-index:2; pointer-events:none; }
.hm-strip:before{ left:0; background:linear-gradient(90deg,#fff,transparent); } .hm-strip:after{ right:0; background:linear-gradient(-90deg,#fff,transparent); }
.hm-run{ display:flex; gap:12px; width:max-content; animation:hmRun 38s linear infinite; }
.hm-run span{ display:inline-flex; align-items:center; gap:10px; background:var(--hm-cloud); border:1px solid #dfe7fb; border-radius:999px; padding:8px 18px; font-weight:600; color:#51607f; font-size:15px; white-space:nowrap; }
.hm-run span b{ color:var(--hm-navy); font-family:'Sora',sans-serif; }
.hm-run span i{ font-style:normal; color:var(--hm-blue); }
@keyframes hmRun{ to{ transform:translateX(-50%); } }

/* how it works */
.hm-how{ max-width:1100px; margin:0 auto; padding:72px 24px 8px; }
.hm-how h2{ text-align:center; font-size:clamp(28px,3.6vw,42px); color:var(--hm-navy); margin:0 0 8px; }
.hm-how > p{ text-align:center; color:#5b6b85; margin:0 auto 36px; max-width:520px; }
.hm-steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.hm-step{ background:#fff; border:1px solid #e4ebfb; border-radius:24px; padding:26px 24px; box-shadow:0 10px 34px rgba(15,40,90,.07); position:relative; }
.hm-step .n{ font-family:'Sora',sans-serif; font-weight:800; font-size:14px; color:#fff; background:linear-gradient(135deg,var(--hm-blue),#6a4dff); width:36px; height:36px; border-radius:12px; display:grid; place-items:center; margin-bottom:14px; }
.hm-step h3{ margin:0 0 6px; font-size:19px; color:var(--hm-navy); }
.hm-step p{ margin:0; color:#5b6b85; font-size:15px; line-height:1.6; }

/* feature cards */
.inside{ background:transparent; }
.inside h2{ color:var(--hm-navy); font-size:clamp(28px,3.6vw,42px); }
.in-wrap{ max-width:1120px; }
.feat{ background:#fff; border:1px solid #e4ebfb; border-radius:32px; padding:28px; gap:40px; box-shadow:0 18px 50px rgba(15,40,90,.08); margin:0 0 28px; }
.feat-art{ background:radial-gradient(circle at 30% 20%,#dfe9ff,#f3f6ff 70%); border-radius:24px; padding:22px; }
.feat-art img{ max-height:440px; }
.feat-txt h3{ font-size:clamp(24px,2.6vw,32px); color:var(--hm-navy); }
.feat-txt li:before{ background:var(--hm-navy); color:var(--hm-gold); }
.jrw-band{ background:linear-gradient(180deg,#070d24,#0b1640); color:#fff; padding:80px 0 72px; margin:56px 0; position:relative; overflow:hidden; }
.jrw-band:before{ content:""; position:absolute; width:700px; height:700px; right:-200px; top:-300px; background:radial-gradient(circle,rgba(47,91,255,.4),transparent 65%); }
.jrw-band h2{ color:#fff; position:relative; } .jrw-band .mlede{ color:#b9c6ee; position:relative; }
.jrw-row{ position:relative; counter-reset:jr; }
.jc{ background:var(--hm-glass); border:1px solid var(--hm-line); border-radius:24px; padding:14px 14px 18px; counter-increment:jr; transition:transform .2s, background .2s; }
.jc:hover{ transform:translateY(-6px); background:rgba(255,255,255,.12); }
.jc img{ border-radius:16px; background:#fff; }
.jc h4{ color:#fff; font-family:'Sora',sans-serif; }
.jc h4:before{ content:"Stage " counter(jr); display:block; color:var(--hm-gold); font-size:11.5px; font-weight:700; margin-bottom:4px; font-family:'Inter',sans-serif; }
.jc p{ color:#aebce8; }

/* sections */
.msection h2{ font-size:clamp(28px,3.6vw,40px); color:var(--hm-navy); }
.msection.tint{ background:var(--hm-cloud); max-width:none; }
#mLogin{ background:linear-gradient(180deg,#eef3ff,#f8faff); max-width:none; }
.founder-card{ border-radius:28px; background:linear-gradient(160deg,#0b1640,#1c2f7a); border:0; color:#fff; box-shadow:0 24px 60px rgba(11,22,64,.35); }
.founder-card .fname{ color:#fff; } .founder-card .frole{ color:var(--hm-gold); }
#mTestimonials:has(.empty), #mEvents:has(.empty){ display:none; }
.cta-band{ background:radial-gradient(700px 300px at 50% 0,rgba(47,91,255,.6),transparent 70%),linear-gradient(135deg,#070d24,#0b1640); padding:88px 0; }
.cta-band h2{ font-size:clamp(30px,4vw,48px); }
.cta-band .mcta .go{ background:var(--hm-gold); border-color:var(--hm-gold); color:#2b1d00; border-radius:999px; }
.cta-band .mcta .go.alt{ background:#fff; color:var(--hm-navy); border-color:#fff; }
.cta-band .mcta button{ border-radius:999px; }
.msite-footer{ background:#050a1c; }

@media(max-width:900px){
  .hx{ padding-top:36px; } .hx-in{ grid-template-columns:1fr; padding-bottom:40px; }
  .hx-stage{ min-height:500px; } .hx-stats{ grid-template-columns:repeat(2,1fr); }
  .hm-steps{ grid-template-columns:1fr; } .feat{ padding:18px; border-radius:26px; }
}
@media(max-width:420px){ .hx-c1{ left:-10px; } .hx-c2{ right:-14px; } }
@media(prefers-reduced-motion:reduce){ .hm-run,.hx-chip,.hx-wave i,.hx-pill:before{ animation:none !important; } }
@media(max-width:600px){
  .hx-c1,.hx-c2{ display:none; } .hx-c3{ left:-4px; bottom:20px; }
  #siteNav{ flex-wrap:nowrap; gap:8px; } #siteNav .nav-logo .nm{ font-size:15px; }
  #siteNav .nav-logins{ flex-wrap:nowrap; gap:2px; } #siteNav .nav-login-btn{ padding:8px 12px; font-size:13px; }
  .nav-staff > summary{ font-size:12.5px; padding:8px 6px; }
  .hx-stage{ min-height:480px; }
}

/* ---------- learn your way ---------- */
.hm-way{ padding:72px 24px 24px; }
.hm-way-in{ max-width:1100px; margin:0 auto; }
.hm-way h2{ text-align:center; font-size:clamp(28px,3.6vw,42px); color:var(--hm-navy); margin:0 0 8px; }
.hm-way-in > p{ text-align:center; color:#5b6b85; margin:0 auto 34px; max-width:520px; }
.hm-way-grid{ display:grid; grid-template-columns:1.25fr 1fr; grid-template-rows:auto auto; gap:18px; }
.hm-way-c{ border-radius:28px; padding:28px; background:#fff; border:1px solid #e4ebfb; box-shadow:0 14px 40px rgba(15,40,90,.07); }
.hm-way-c.big{ grid-row:span 2; background:radial-gradient(500px 300px at 90% 0,rgba(47,91,255,.55),transparent 70%),linear-gradient(160deg,#070d24,#0f1d5c); color:#fff; border:0; }
.hm-way-c h3{ font-size:22px; margin:12px 0 8px; color:var(--hm-navy); } .hm-way-c.big h3{ color:#fff; font-size:28px; }
.hm-way-c p{ margin:0; color:#5b6b85; line-height:1.65; } .hm-way-c.big p{ color:#b9c6ee; margin-bottom:16px; }
.hm-way-c ul{ list-style:none; margin:0; padding:0; display:grid; gap:10px; } .hm-way-c li{ padding-left:28px; position:relative; font-weight:600; }
.hm-way-c li:before{ content:"\2713"; position:absolute; left:0; top:0; width:20px; height:20px; border-radius:50%; background:var(--hm-gold); color:#2b1d00; font-size:12px; display:grid; place-items:center; }
.hm-way .tag{ display:inline-block; font-size:12.5px; font-weight:700; padding:5px 12px; border-radius:999px; background:rgba(255,255,255,.14); color:#cfe0ff; }
.hm-way-c:not(.big) .tag{ background:#e6edff; color:#1d3fbf; } .hm-way .tag.gold{ background:#fff0c7 !important; color:#7a4b00 !important; } .hm-way .tag.mint{ background:#d8f7ee !important; color:#0b6b52 !important; }

/* ---------- login section ---------- */
#mLogin .login-split{ align-items:start; row-gap:20px; grid-template-rows:auto 1fr; }
#mLogin .la-head{ padding-top:10px; }
#mLogin .la-art{ background:radial-gradient(circle at 50% 30%,#dfe9ff,#eef3ff 70%); border-radius:28px; padding:22px 22px 26px; border:1px solid #dfe7fb; }
#mLogin .la-svg{ max-width:360px; display:block; margin:0 auto; }
.la-points{ display:grid !important; gap:10px; margin-top:14px; }
.la-points li{ border-radius:16px !important; padding:13px 16px !important; font-size:14.5px !important; background:#fff; text-align:left; }

/* ---------- about ---------- */
.about-grid{ grid-template-columns:320px 1fr; gap:36px; align-items:center; }
.founder-card{ position:static; padding:22px; }
.founder-card .favatar{ width:150px; height:150px; border-radius:50%; margin:0 auto 14px; font-size:44px; }
.about-text .rich, .about-text .rich p{ font-size:17px; line-height:1.75; color:#34415e; }
.hm-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.hm-chips span{ background:#e6edff; color:#1d3fbf; font-weight:700; font-size:13px; padding:7px 14px; border-radius:999px; }
.hm-why{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:44px; }
.hm-why div{ border:1px solid #e4ebfb; border-radius:20px; padding:18px 18px 16px; background:linear-gradient(180deg,#fff,#f6f9ff); }
.hm-why b{ display:block; font-family:'Sora',sans-serif; font-size:17px; color:var(--hm-navy); margin-bottom:4px; }
.hm-why span{ color:#5b6b85; font-size:14px; line-height:1.5; }
.social-row:empty{ display:none; }
@media(max-width:900px){ .hm-way-grid{ grid-template-columns:1fr; } .hm-way-c.big{ grid-row:auto; } .about-grid{ grid-template-columns:1fr; } .hm-why{ grid-template-columns:1fr 1fr; } }

/* ---------- teach band ---------- */
.gx-teach{ background:radial-gradient(500px 260px at 100% 0,rgba(255,184,31,.35),transparent 70%),linear-gradient(135deg,#0b1640,#1b3aa8) !important; border-radius:32px !important; padding:44px 28px !important; }
.hm-tchips{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin:0 0 20px; }
.hm-tchips span{ background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2); color:#fff; font-weight:600; font-size:13.5px; padding:7px 14px; border-radius:999px; }
.feat-art img{ max-height:380px; }

/* ---------- login section, dark and AI-led ---------- */
#mLogin{ position:relative; background:radial-gradient(800px 500px at 20% 20%,rgba(47,91,255,.45),transparent 65%),radial-gradient(600px 400px at 90% 90%,rgba(45,212,167,.16),transparent 65%),linear-gradient(180deg,#070d24,#0b1640) !important; padding:84px 24px !important; overflow:hidden; }
#mLogin:before{ content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px); background-size:56px 56px; -webkit-mask-image:radial-gradient(ellipse at 30% 40%,#000 5%,transparent 70%); mask-image:radial-gradient(ellipse at 30% 40%,#000 5%,transparent 70%); pointer-events:none; }
#mLogin .login-split{ position:relative; max-width:1120px; column-gap:64px; grid-template-columns:minmax(0,1fr) 440px; align-items:center; }
#mLogin .la-pill{ background:rgba(255,255,255,.08); border:1px solid var(--hm-line); color:var(--hm-gold); box-shadow:none; letter-spacing:.04em; }
#mLogin .la-head h2{ color:#fff; font-size:clamp(32px,3.8vw,50px); line-height:1.08; }
#mLogin .la-head p.mlede{ color:#b9c6ee; font-size:17px; line-height:1.65; }
#mLogin .la-art{ background:none; border:0; padding:0; }
#mLogin .la-svg{ max-width:520px; filter:drop-shadow(0 30px 50px rgba(0,0,0,.45)); }
.la-points{ gap:10px !important; }
.la-points li{ display:flex !important; gap:14px; align-items:center; background:var(--hm-glass) !important; border:1px solid var(--hm-line) !important; border-radius:18px !important; padding:12px 16px !important; color:#fff !important; box-shadow:none !important; -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.la-points .ico{ width:42px; height:42px; border-radius:13px; display:grid; place-items:center; font-size:20px; background:linear-gradient(135deg,rgba(255,184,31,.35),rgba(255,184,31,.1)); flex:0 0 auto; }
.la-points li b{ color:var(--hm-gold) !important; font-family:'Sora',sans-serif; }
.la-points li div{ font-size:15px; font-weight:600; } .la-points small{ display:block; font-weight:400; color:#a9b8e6; font-size:13px; margin-top:1px; }
#loginHost .gate-box{ border:1px solid rgba(255,255,255,.5) !important; border-top:1px solid rgba(255,255,255,.5) !important; border-radius:28px !important; padding:30px 28px 24px !important; box-shadow:0 40px 90px rgba(0,0,0,.5),0 0 0 6px rgba(255,255,255,.06) !important; background:#fff; position:relative; }
#loginHost .gate-box:before{ content:""; position:absolute; left:28px; right:28px; top:0; height:4px; border-radius:0 0 6px 6px; background:linear-gradient(90deg,var(--hm-blue),var(--hm-gold)); }
#loginHost .role-tabs{ border-radius:16px !important; }
#loginHost .btn-block{ background:linear-gradient(135deg,#2f5bff,#5a3dff) !important; border:0 !important; border-radius:14px !important; box-shadow:0 12px 28px rgba(47,91,255,.4); }
#loginHost .gate-box h3{ font-family:'Sora',sans-serif; }
@media(max-width:860px){ #mLogin{ padding:56px 18px !important; } #mLogin .la-svg{ max-width:380px; } }
@media(max-width:860px){
  #mLogin .login-split{ grid-template-columns:minmax(0,1fr) !important; grid-template-areas:"head" "art" "card" !important; row-gap:22px; max-width:460px; column-gap:0; }
  #mLogin .la-head, #mLogin .la-head h2, #mLogin .la-head p.mlede{ text-align:center; }
  #mLogin .la-head h2{ font-size:30px; } #mLogin .la-svg{ max-width:340px; }
}

/* ---------- contrast guard (2026-10 audit) ----------
   Old page.html rules were written for a light design; these keep every text colour
   readable on whatever section it lands in, including admin-entered rich text. */

/* Rich text inside DARK home sections: force a light palette on every descendant
   (same idea as .hx .rich-hero above), so pasted bold/labels/lists/quotes never go navy-on-navy. */
:is(#mLogin, .jrw-band, .cta-band, .gx-teach, .founder-card, .msite-footer) :is(.rich, .rich-hero, .rich-about),
:is(#mLogin, .jrw-band, .cta-band, .gx-teach, .founder-card, .msite-footer) :is(.rich, .rich-hero, .rich-about) *{ color:#c9d6f5 !important; -webkit-text-fill-color:currentColor; }
:is(#mLogin, .jrw-band, .cta-band, .gx-teach, .founder-card, .msite-footer) :is(.rich, .rich-hero, .rich-about) :is(strong, b, .rt-h, h1, h2, h3, h4, h5, h6, .rt-q, blockquote, li){ color:#fff !important; }
:is(#mLogin, .jrw-band, .cta-band, .gx-teach, .founder-card, .msite-footer) :is(.rich, .rich-hero, .rich-about) :is(a, .rt-label){ color:#ffd36b !important; }
:is(#mLogin, .jrw-band, .cta-band, .gx-teach, .founder-card, .msite-footer) :is(.rich, .rich-hero, .rich-about) :is(.rt-q, blockquote){ background:rgba(255,255,255,.08) !important; border-left-color:#ffd36b !important; }
:is(#mLogin, .jrw-band, .cta-band, .gx-teach, .founder-card, .msite-footer) :is(.rich, .rich-hero, .rich-about) .rt-ul li:before{ background:rgba(255,211,107,.18) !important; color:#ffd36b !important; }
#mLogin #loginHost :is(.rich, .rich-hero, .rich-about), #mLogin #loginHost :is(.rich, .rich-hero, .rich-about) *{ color:#34415e !important; } /* white login card inside the dark section */

/* Rich text inside LIGHT home sections (founder bio, any future rich block): force dark text. */
#homeView .rich:not(.rich-hero):not(:is(.hx, #mLogin, .jrw-band, .cta-band, .gx-teach, .founder-card, .msite-footer) .rich),
#homeView .rich:not(.rich-hero):not(:is(.hx, #mLogin, .jrw-band, .cta-band, .gx-teach, .founder-card, .msite-footer) .rich) *{ color:#34415e !important; -webkit-text-fill-color:currentColor; }
#homeView .rich:not(.rich-hero):not(:is(.hx, #mLogin, .jrw-band, .cta-band, .gx-teach, .founder-card, .msite-footer) .rich) :is(strong, b, .rt-h, h1, h2, h3, h4, h5, h6, .rt-q, blockquote){ color:#0b1b33 !important; }
#homeView .rich:not(.rich-hero):not(:is(.hx, #mLogin, .jrw-band, .cta-band, .gx-teach, .founder-card, .msite-footer) .rich) :is(a, .rt-label){ color:#1d3fbf !important; }
#homeView .rich:not(.rich-hero):not(:is(.hx, #mLogin, .jrw-band, .cta-band, .gx-teach, .founder-card, .msite-footer) .rich) :is(.rt-q, blockquote){ background:#eaf0ff !important; }

/* login card (white) — faint grey helper text was 2.6:1 */
#loginHost .gate-note:not([data-demo-entry]):not([data-plans-entry]),
#loginHost #loginG > div, #loginHost .gate-box .sub, #loginHost .gate-box p:not(.gate-note){ color:#5b6b85 !important; }
#loginHost .gate-note a:not(.btn){ color:#1d3fbf !important; }

/* placeholders on the pale input fill were 4.3:1 */
#homeView input::placeholder, #homeView textarea::placeholder,
.v2m-card input::placeholder, .v2m-card textarea::placeholder, #emsbot input::placeholder{ color:#63708e !important; opacity:1; }

/* testimonials: role line under the name was 2.6:1 */
.testi-card .trole{ color:#5b6b85 !important; }
/* events: keep title/date/description dark on the white rows */
.event-row .event-title{ color:#0b1b33 !important; } .event-row .event-desc{ color:#46557a !important; }
/* team cards (admin-entered bio) on white */
.team-card .tname{ color:#0b1b33 !important; } .team-card .tbio{ color:#46557a !important; }

/* modals opened from the home page (plans, free demo, 1-to-1) */
.v2m-x{ color:#5b6b85 !important; }
.v2m-x:hover{ color:#0b1b33 !important; }
.gx-seg button small{ color:#4a5a80 !important; }

/* customer-care pop-up: label was 2.6:1 */
#supportFab .sf-title{ color:#5b6b85 !important; }
/* EMS bot launcher: white text on the light end of its blue gradient was 3.7:1 */
#emsbot .eb-fab{ background:linear-gradient(135deg,#1b4fd8,#2a62e6) !important; }
#emsbot .eb-fab small{ opacity:1 !important; color:#eef3ff !important; }
#emsbot .eb-f{ color:#56637f !important; }
/* the open customer-care panel sat under the bot launcher (WhatsApp button hidden) */
body:has(#sfPanel.open) #emsbot:not(.open){ visibility:hidden; }
/* phones: the two floating buttons covered the last footer lines; give the footer room */
@media(max-width:900px){ .msite-footer{ padding-bottom:150px !important; } }
