/* ================= DHEYA DESIGN SYSTEM TOKENS ================= */
:root {
  --paper:#F9FAFB; --skytint:#E8F3FA; --sky:#3FA9E0; --sky-deep:#1B6FA3;
  --ink:#13283A; --abyss:#0B1F2E; --soft:#46596A;
  --gold:#D4A853; --line:rgba(19,40,58,.13);
  --disp:"Space Grotesk","Segoe UI",sans-serif; --body:"Inter","Segoe UI",sans-serif;
  --ease:cubic-bezier(.22,.61,.21,1);

  /* semantic aliases used across the app */
  --bg:var(--paper); --panel:rgba(255,255,255,.86); --panel-solid:#ffffff;
  --primary:var(--sky-deep); --accent:var(--sky); --blue:var(--sky-deep);
  --warn:var(--gold); --danger:#B5482F;
  --text:var(--ink); --muted:var(--soft); --border:var(--line);
  --radius:18px;
}
body.dark {
  --bg:var(--abyss); --panel:rgba(234,242,248,.05); --panel-solid:#10293C;
  --text:#EAF2F8; --muted:rgba(234,242,248,.62); --border:rgba(234,242,248,.13);
  --line:rgba(234,242,248,.13);
}
* { box-sizing:border-box; margin:0; padding:0; }
body { font-family:var(--body); font-weight:400; background:var(--bg); color:var(--text); min-height:100vh; line-height:1.6; -webkit-font-smoothing:antialiased; }
#bg3d { position:fixed; inset:0; z-index:0; transition:opacity .6s; pointer-events:none; }
a { color:var(--sky-deep); text-decoration:none; }
body.dark a { color:var(--sky); }
h1,h2,h3 { font-family:var(--disp); font-weight:600; line-height:1.15; letter-spacing:-.01em; }
b { font-weight:500; }
.muted { color:var(--muted); font-size:.88rem; }
:focus-visible { outline:2px solid var(--sky-deep); outline-offset:3px; }
::selection { background:var(--sky); color:#fff; }
.eyebrow, .nav-group { font-size:11px; font-weight:500; letter-spacing:.24em; text-transform:uppercase; color:var(--sky-deep); }
body.dark .eyebrow, body.dark .nav-group { color:var(--sky); }

/* ---------- auth ---------- */
.auth-wrap { display:flex; align-items:center; justify-content:center; min-height:100vh; padding:20px; }
.auth-card { background:var(--panel-solid); border:1px solid var(--border); border-radius:24px; padding:44px; width:430px; max-width:100%; box-shadow:0 24px 60px -20px rgba(11,31,46,.25); }
.logo { font-family:var(--disp); font-size:1.9rem; font-weight:500; color:var(--text); display:inline-flex; align-items:center; gap:10px; }
.logo img { height:1.4em; width:auto; flex:none; }
.tagline { color:var(--muted); margin:8px 0 26px; font-style:italic; font-family:var(--disp); }

/* ---------- layout ---------- */
.shell { display:flex; min-height:100vh; position:relative; z-index:1; }
.sidebar { width:242px; flex-shrink:0; background:var(--panel-solid); border-right:1px solid var(--border); padding:22px 12px; position:sticky; top:0; height:100vh; overflow-y:auto; }
.sidebar .logo { font-size:1.45rem; padding:0 12px 18px; }
.nav-group { margin:16px 0 6px; padding:0 12px; }
.nav-item { display:flex; align-items:center; gap:10px; padding:9px 14px; border-radius:100px; color:var(--text); cursor:pointer; font-size:.92rem; margin:2px 0; font-weight:400; transition:background .25s, color .25s; }
.nav-item:hover { background:var(--skytint); color:var(--sky-deep); }
body.dark .nav-item:hover { background:rgba(63,169,224,.12); color:var(--sky); }
.nav-item.active { background:var(--skytint); color:var(--sky-deep); font-weight:500; }
body.dark .nav-item.active { background:rgba(63,169,224,.16); color:var(--sky); }
.main { flex:1; padding:30px 36px; max-width:1240px; }
.topbar { display:flex; justify-content:space-between; align-items:center; margin-bottom:26px; gap:14px; }
.topbar h2 { font-size:clamp(1.4rem,2.6vw,2rem); }
.avatar { width:38px; height:38px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-weight:500; color:#fff; flex-shrink:0; font-family:var(--body); }

/* ---------- components ---------- */
.card { background:var(--panel-solid); border:1px solid var(--border); border-radius:var(--radius); padding:22px; transition:border-color .35s var(--ease); }
body.dark .card { background:var(--panel); backdrop-filter:blur(4px); }
.grid { display:grid; gap:18px; }
.grid.cols-2 { grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); }
.grid.cols-3 { grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); }
.grid.cols-4 { grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); }
.stat .num { font-family:var(--disp); font-size:2rem; font-weight:400; }
.stat .lbl { color:var(--muted); font-size:.74rem; letter-spacing:.08em; text-transform:uppercase; margin-top:2px; }

.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; background:var(--gold); color:var(--abyss); border:none; border-radius:100px; padding:12px 24px; font-size:.92rem; font-family:var(--body); cursor:pointer; font-weight:500; transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .3s; box-shadow:0 10px 28px -12px rgba(184,137,58,.55); will-change:transform; }
.btn:hover { background:#DDB261; transform:translateY(-1px); }
.btn.green { background:var(--sky-deep); color:#fff; box-shadow:0 10px 28px -12px rgba(27,111,163,.55); }
.btn.green:hover { background:var(--sky); }
.btn.ghost { background:transparent; color:var(--text); border:1px solid var(--border); box-shadow:none; }
.btn.ghost:hover { background:var(--skytint); border-color:var(--sky); color:var(--sky-deep); }
body.dark .btn.ghost:hover { background:rgba(63,169,224,.1); color:var(--sky); }
.btn.danger { background:var(--danger); color:#fff; box-shadow:0 10px 28px -12px rgba(181,72,47,.5); }
.btn.sm { padding:7px 16px; font-size:.8rem; }
.btn:disabled { opacity:.5; cursor:not-allowed; transform:none; }
input, select, textarea { width:100%; background:var(--paper); border:1px solid var(--border); border-radius:12px; padding:11px 16px; color:var(--text); font-size:.92rem; margin:6px 0 14px; font-family:var(--body); font-weight:300; }
body.dark input, body.dark select, body.dark textarea { background:rgba(234,242,248,.07); }
input:focus, select:focus, textarea:focus { outline:2px solid var(--sky); outline-offset:0; border-color:var(--sky); }
textarea { min-height:110px; resize:vertical; }
label { font-size:11px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }

.course-card { overflow:hidden; padding:0; cursor:pointer; transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s; }
.course-card:hover { transform:translateY(-6px); border-color:var(--sky); box-shadow:0 24px 50px -24px rgba(11,31,46,.35); }
.course-cover { height:120px; display:flex; align-items:flex-end; padding:14px; font-size:2.2rem; }
.course-body { padding:18px; }
.course-body h3 { font-size:1.25rem; }
.pill { display:inline-block; padding:3px 12px; border-radius:100px; font-size:.72rem; font-weight:400; background:var(--skytint); color:var(--sky-deep); margin-right:6px; border:1px solid transparent; }
body.dark .pill { background:rgba(63,169,224,.14); color:var(--sky); }
.pill.green { background:rgba(63,169,224,.15); color:var(--sky-deep); border-color:rgba(63,169,224,.35); }
body.dark .pill.green { color:#7CC8EE; }
.pill.warn { background:rgba(212,168,83,.16); color:#9C7A2F; border-color:rgba(212,168,83,.4); }
body.dark .pill.warn { color:var(--gold); }

.progress { height:7px; background:var(--skytint); border-radius:100px; overflow:hidden; margin:8px 0; }
body.dark .progress { background:rgba(234,242,248,.1); }
.progress > div { height:100%; background:linear-gradient(90deg,var(--sky-deep),var(--sky)); border-radius:100px; transition:width .6s var(--ease); }

table { width:100%; border-collapse:collapse; font-size:.88rem; }
th { text-align:left; color:var(--muted); font-size:.7rem; font-weight:500; text-transform:uppercase; letter-spacing:.14em; padding:10px 12px; border-bottom:1px solid var(--border); }
td { padding:11px 12px; border-bottom:1px solid var(--line); }
tr:hover td { background:var(--skytint); }
body.dark tr:hover td { background:rgba(63,169,224,.06); }

.modal-bg { position:fixed; inset:0; background:rgba(11,31,46,.55); backdrop-filter:blur(5px); z-index:50; display:flex; align-items:center; justify-content:center; padding:20px; }
.modal { background:var(--panel-solid); border:1px solid var(--border); border-radius:22px; padding:30px; width:640px; max-width:100%; max-height:88vh; overflow-y:auto; box-shadow:0 30px 80px -20px rgba(11,31,46,.45); }
.modal h2 { font-size:1.6rem; margin-bottom:8px; }

#toast { position:fixed; bottom:24px; right:24px; z-index:100; display:flex; flex-direction:column; gap:8px; }
.toast-item { background:var(--abyss); color:#EAF2F8; border:1px solid rgba(63,169,224,.4); border-radius:14px; padding:14px 22px; box-shadow:0 14px 36px -10px rgba(11,31,46,.55); animation:slideIn .45s var(--ease); font-size:.9rem; }
@keyframes slideIn { from { transform:translateX(120%); } to { transform:translateX(0); } }

.lesson-row { display:flex; align-items:center; gap:12px; padding:11px 14px; border-radius:14px; cursor:pointer; transition:background .25s; }
.lesson-row:hover { background:var(--skytint); }
body.dark .lesson-row:hover { background:rgba(63,169,224,.08); }
.lesson-row.done { opacity:.6; }
.lesson-row.locked { opacity:.45; cursor:not-allowed; }
.check { width:22px; height:22px; border-radius:50%; border:1.5px solid var(--soft); display:inline-flex; align-items:center; justify-content:center; font-size:.7rem; flex-shrink:0; color:#fff; }
.check.on { background:var(--sky-deep); border-color:var(--sky-deep); }

.option-row { display:flex; gap:10px; align-items:center; padding:12px 16px; border:1px solid var(--border); border-radius:14px; margin:8px 0; cursor:pointer; transition:border-color .3s, background .3s; font-weight:300; }
.option-row:hover { border-color:var(--sky); }
.option-row.sel { border-color:var(--sky-deep); background:var(--skytint); }
body.dark .option-row.sel { background:rgba(63,169,224,.14); }
.option-row.right { border-color:var(--sky-deep); background:rgba(63,169,224,.16); }
.option-row.wrong { border-color:var(--danger); background:rgba(181,72,47,.1); }
.option-row input { width:auto; margin:0; }

.bar-row { display:flex; align-items:center; gap:10px; margin:7px 0; font-size:.85rem; }
.bar-row .bar { flex:1; height:9px; background:var(--skytint); border-radius:100px; overflow:hidden; }
body.dark .bar-row .bar { background:rgba(234,242,248,.1); }
.bar-row .bar > div { height:100%; background:linear-gradient(90deg,var(--sky-deep),var(--sky)); }

.cert { border:1.5px solid var(--gold); border-radius:22px; padding:30px; text-align:center; background:linear-gradient(135deg, rgba(212,168,83,.07), var(--skytint)); }
body.dark .cert { background:linear-gradient(135deg, rgba(212,168,83,.08), rgba(63,169,224,.06)); }
.cert h2, .cert h3 { font-family:var(--disp); }
.tabs { display:flex; gap:6px; margin-bottom:18px; border-bottom:1px solid var(--border); }
.tab { padding:9px 18px; cursor:pointer; color:var(--muted); border-bottom:2px solid transparent; font-size:.9rem; transition:color .25s; }
.tab:hover { color:var(--sky-deep); }
.tab.active { color:var(--text); border-bottom-color:var(--gold); font-weight:500; }
.flex { display:flex; gap:12px; align-items:center; }
.flex.between { justify-content:space-between; }
.mt { margin-top:16px; } .mb { margin-bottom:16px; }
.video-frame { width:100%; aspect-ratio:16/9; border:none; border-radius:16px; background:var(--abyss); }
.star { cursor:pointer; font-size:1.5rem; color:var(--line); transition:color .2s; } .star.on { color:var(--gold); }
.timer { font-family:var(--disp); font-size:1.4rem; color:var(--sky-deep); font-variant-numeric:tabular-nums; }
body.dark .timer { color:var(--gold); }

/* ---------- phases ---------- */
.phase-block { margin-bottom:28px; }
.phase-head { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; padding:14px 18px; border-left:3px solid var(--gold); background:linear-gradient(90deg, rgba(212,168,83,.08), transparent); border-radius:0 12px 12px 0; margin-bottom:14px; }
.phase-head h3 { font-size:1.4rem; margin-top:2px; }
.phase-meta { text-align:right; flex-shrink:0; }
.phase-meta .progress { margin-left:auto; }
.module-card { margin-left:14px; border-left:2px solid var(--border); }
.module-card h4 { font-family:var(--disp); font-weight:400; font-size:1.1rem; }
.phase-build { border:1px dashed var(--border); border-radius:14px; padding:14px; margin-bottom:16px; }
.phase-build-head { margin-bottom:12px; padding-bottom:10px; border-bottom:1px solid var(--border); }
@media (max-width:680px){ .phase-head { flex-direction:column; align-items:flex-start; } .phase-meta { text-align:left; } .module-card { margin-left:4px; } }

/* ---------- extras ---------- */
.dropzone { border:2px dashed var(--border); border-radius:var(--radius); padding:28px; text-align:center; cursor:pointer; transition:border-color .25s, background .25s; }
.dropzone:hover, .dropzone:focus-visible { border-color:var(--sky); background:var(--skytint); outline:none; }
body.dark .dropzone:hover, body.dark .dropzone:focus-visible { background:rgba(63,169,224,.08); }
.dropzone.drag { border-color:var(--sky-deep); background:var(--skytint); border-style:solid; }
body.dark .dropzone.drag { background:rgba(63,169,224,.14); }

.spark { display:flex; align-items:flex-end; gap:3px; height:90px; }
.spark > div { flex:1; min-width:4px; border-radius:3px 3px 0 0; }
.rte { min-height:120px; background:var(--paper); border:1px solid var(--border); border-radius:12px; padding:12px; margin:6px 0 14px; font-weight:300; }
body.dark .rte { background:rgba(234,242,248,.07); }
.rte:focus { outline:2px solid var(--sky); }
.hamburger { display:none; position:fixed; top:14px; left:14px; z-index:60; background:var(--panel-solid); color:var(--text); border:1px solid var(--border); border-radius:100px; padding:8px 14px; font-size:1.05rem; cursor:pointer; }
code { background:var(--skytint); color:var(--sky-deep); padding:2px 7px; border-radius:6px; font-size:.85em; }
body.dark code { background:rgba(63,169,224,.14); color:var(--sky); }

@media (max-width: 860px) {
  .sidebar { position:fixed; left:-262px; transition:left .35s var(--ease); z-index:55; }
  .sidebar.open { left:0; box-shadow:20px 0 60px rgba(11,31,46,.35); }
  .hamburger { display:block; }
  .main { padding:62px 16px 18px; }
  .topbar h2 { font-size:1.15rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation:none !important; transition:none !important; }
}

/* ---------- public landing page ---------- */
.landing { position:relative; z-index:1; max-width:1180px; margin:0 auto; padding:0 28px 40px; }
.land-nav { display:flex; justify-content:space-between; align-items:center; padding:22px 0; flex-wrap:wrap; gap:14px; }
.land-links { display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.land-links > a:not(.btn) { color:var(--text); font-weight:500; font-size:.92rem; }
.land-links > a:not(.btn):hover { color:var(--sky-deep); }
.hero { text-align:center; padding:70px 0 50px; }
.hero h1 { font-size:clamp(2.2rem,5.4vw,3.6rem); margin:14px 0 18px; }
.hero .hl { color:var(--sky); }
.hero-sub { max-width:640px; margin:0 auto; color:var(--muted); font-size:1.08rem; }
.hero-cta { justify-content:center; margin-top:30px; flex-wrap:wrap; gap:14px; }
.stat-strip { display:flex; justify-content:center; gap:48px; margin-top:54px; flex-wrap:wrap; }
.stat-strip .num { font-family:var(--disp); font-size:1.7rem; font-weight:600; }
.land-sec { padding:70px 0; text-align:center; }
.land-sec h2 { font-size:clamp(1.6rem,3.4vw,2.3rem); margin:10px 0; }
.sec-sub { max-width:620px; margin:0 auto; }
.land-sec.alt { background:var(--skytint); border-radius:32px; padding:70px 40px; margin:10px 0; }
body.dark .land-sec.alt { background:rgba(63,169,224,.07); }
.pillar { text-align:center; }
.pillar-icon { font-size:2.4rem; margin-bottom:10px; }
.land-split { display:grid; grid-template-columns:1.15fr 1fr; gap:44px; text-align:left; align-items:center; }
.tick-list { list-style:none; margin-top:18px; }
.tick-list li { padding:9px 0; border-bottom:1px dashed var(--border); font-size:.96rem; }
.mentor-card { box-shadow:0 24px 60px -24px rgba(11,31,46,.3); }
.path-step { display:flex; gap:14px; align-items:flex-start; padding:11px 0; border-bottom:1px solid var(--border); font-size:.94rem; }
.path-step:last-child { border-bottom:none; }
.path-num { width:28px; height:28px; border-radius:50%; background:var(--sky); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-weight:700; flex:none; font-size:.85rem; }
.cta-band { background:linear-gradient(135deg,var(--sky-deep),var(--sky)); border-radius:32px; color:#fff; padding:70px 30px; }
.cta-band h2, .cta-band .muted { color:#fff; }
.cta-band .muted { opacity:.85; }
.land-foot { display:flex; justify-content:space-between; align-items:center; padding:30px 0 10px; flex-wrap:wrap; gap:12px; }
@media (max-width:860px) { .land-split { grid-template-columns:1fr; } .stat-strip { gap:26px; } }

/* ---------- micro learning ---------- */
.micro-card { cursor:pointer; transition:transform .3s var(--ease), border-color .3s; }
.micro-card:hover { transform:translateY(-3px); border-color:var(--sky); }
.micro-card.done { opacity:.62; }
.daily-pick { border:1px solid var(--sky); background:linear-gradient(135deg,var(--skytint),var(--panel-solid)); }
body.dark .daily-pick { background:linear-gradient(135deg,rgba(63,169,224,.12),var(--panel-solid)); }

/* ---------- phase 2: control centre, chat, journey ---------- */
.switch { position:relative; display:inline-block; width:46px; height:26px; flex:none; }
.switch input { opacity:0; width:0; height:0; margin:0; }
.slider { position:absolute; inset:0; background:#c9d4dc; border-radius:100px; cursor:pointer; transition:background .25s; }
.slider::before { content:""; position:absolute; width:20px; height:20px; left:3px; top:3px; background:#fff; border-radius:50%; transition:transform .25s; }
.switch input:checked + .slider { background:var(--sky); }
.switch input:checked + .slider::before { transform:translateX(20px); }
body.dark .slider { background:rgba(234,242,248,.2); }
.chat-bubble { max-width:85%; padding:10px 16px; border-radius:16px; margin:8px 0; line-height:1.5; }
.chat-bubble.me { background:var(--sky-deep); color:#fff; margin-left:auto; border-bottom-right-radius:4px; }
.chat-bubble.bot { background:var(--skytint); border-bottom-left-radius:4px; }
body.dark .chat-bubble.bot { background:rgba(63,169,224,.14); }
input[type=range] { accent-color:var(--sky); padding:0; border:none; background:transparent; }

/* ================= DESIGN SYSTEM v2 — award-grade landing + systematic motion ================= */

/* ---------- full-bleed landing & dark hero ---------- */
.landing { max-width:none; padding:0; }
.landing .land-sec, .landing .land-foot { max-width:1180px; margin-left:auto; margin-right:auto; padding-left:28px; padding-right:28px; }
.landing .land-sec.alt { max-width:1180px; }
.hero-dark { position:relative; min-height:100vh; display:flex; flex-direction:column; overflow:hidden;
  background:radial-gradient(120% 90% at 70% 0%, #11334E 0%, #0B1F2E 45%, #081726 100%); color:#EAF2F8; text-align:center; }
#hero3d { position:absolute; inset:0; width:100%; height:100%; }
.hero-dark .land-nav { position:relative; z-index:3; width:100%; max-width:1180px; margin:0 auto; padding:24px 28px; }
.hero-dark .land-nav .logo img { filter:brightness(0) invert(1); opacity:.95; }
.hero-dark .land-links > a:not(.btn) { color:rgba(234,242,248,.78); }
.hero-dark .land-links > a:not(.btn):hover { color:#fff; }
.hero-inner { position:relative; z-index:2; flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:40px 28px 90px; }
.hero-dark .eyebrow { color:#7CC8EE; letter-spacing:.34em; }
.hero-dark h1 { font-size:clamp(2.6rem,6.6vw,4.8rem); line-height:1.06; margin:20px 0 24px; font-weight:600; letter-spacing:-.02em; }
.hero-dark .hl { background:linear-gradient(95deg,#6FC4EE 10%,#D4A853 90%); -webkit-background-clip:text; background-clip:text; color:transparent; }
.hero-dark .hero-sub { color:rgba(234,242,248,.72); max-width:680px; font-size:1.12rem; line-height:1.75; }
.hero-dark .stat-strip { margin-top:64px; gap:64px; }
.hero-dark .stat-strip .num { font-size:2.1rem; color:#fff; font-weight:600; }
.stat-lbl { font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(234,242,248,.55); margin-top:4px; }
.hero-scroll { position:absolute; bottom:28px; left:50%; transform:translateX(-50%); z-index:2; width:1px; height:56px; overflow:hidden; }
.hero-scroll span { display:block; width:1px; height:100%; background:linear-gradient(180deg,transparent,#6FC4EE); animation:scrollHint 2.2s ease-in-out infinite; }
@keyframes scrollHint { 0% { transform:translateY(-100%); } 60%,100% { transform:translateY(100%); } }

/* ---------- statement quote ---------- */
.quote-sec { text-align:center; padding:110px 28px; }
.big-quote { font-family:var(--disp); font-size:clamp(1.5rem,3.4vw,2.4rem); line-height:1.4; max-width:880px; margin:0 auto 18px; font-weight:500; }
.big-quote em { color:var(--sky-deep); font-style:normal; border-bottom:3px solid var(--gold); }
body.dark .big-quote em { color:var(--sky); }

/* ---------- systematic motion: page transitions & staggered cards ---------- */
@keyframes pageIn { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:none; } }
#content { animation:pageIn .45s var(--ease) both; }
.topbar { animation:pageIn .4s var(--ease) both; }
.grid > .card { animation:pageIn .5s var(--ease) backwards; }
.grid > .card:nth-child(1) { animation-delay:.03s } .grid > .card:nth-child(2) { animation-delay:.08s }
.grid > .card:nth-child(3) { animation-delay:.13s } .grid > .card:nth-child(4) { animation-delay:.18s }
.grid > .card:nth-child(5) { animation-delay:.23s } .grid > .card:nth-child(6) { animation-delay:.28s }
.nav-item { position:relative; }
.nav-item.active::before { content:""; position:absolute; left:-12px; top:20%; height:60%; width:3px; border-radius:3px; background:var(--sky); }

/* ---------- tooltips ---------- */
[data-tip] { position:relative; }
[data-tip]::after { content:attr(data-tip); position:absolute; bottom:calc(100% + 8px); left:50%; transform:translateX(-50%) translateY(4px);
  background:var(--abyss); color:#EAF2F8; font-size:.72rem; font-weight:500; letter-spacing:.02em; padding:6px 12px; border-radius:8px;
  white-space:nowrap; opacity:0; pointer-events:none; transition:opacity .2s var(--ease), transform .2s var(--ease); z-index:50;
  box-shadow:0 10px 26px -10px rgba(11,31,46,.5); }
[data-tip]::before { content:""; position:absolute; bottom:calc(100% + 2px); left:50%; transform:translateX(-50%);
  border:5px solid transparent; border-top-color:var(--abyss); opacity:0; transition:opacity .2s; z-index:50; }
[data-tip]:hover::after, [data-tip]:focus-visible::after { opacity:1; transform:translateX(-50%) translateY(0); }
[data-tip]:hover::before, [data-tip]:focus-visible::before { opacity:1; }

/* ---------- formal system refinements ---------- */
:root { --shadow-1:0 2px 8px -2px rgba(11,31,46,.08); --shadow-2:0 16px 40px -16px rgba(11,31,46,.18); }
.card { box-shadow:var(--shadow-1); }
.card:hover { box-shadow:var(--shadow-2); }
th { background:var(--skytint); }
body.dark th { background:rgba(63,169,224,.08); }
::-webkit-scrollbar { width:10px; height:10px; }
::-webkit-scrollbar-thumb { background:rgba(70,89,106,.35); border-radius:100px; border:2px solid transparent; background-clip:content-box; }
::-webkit-scrollbar-track { background:transparent; }
html { scroll-behavior:smooth; }
.btn { letter-spacing:.01em; }
.btn:active { transform:translateY(0) scale(.98); }

@media (prefers-reduced-motion: reduce) {
  #content, .topbar, .grid > .card, .hero-scroll span { animation:none !important; }
}

/* ---------- program design studio: journey flow ---------- */
.flow { display:flex; gap:44px; overflow-x:auto; padding:16px 4px 28px; align-items:flex-start; }
.flow-box { position:relative; flex:0 0 320px; background:var(--panel-solid); border:1.5px solid var(--sky); border-radius:var(--radius);
  padding:16px; box-shadow:var(--shadow-1); }
body.dark .flow-box { background:var(--panel); }
.flow-box:not(:last-child)::after { content:"➜"; position:absolute; right:-34px; top:42px; font-size:1.4rem; color:var(--sky); }
.flow-add { border-style:dashed; border-color:var(--border); display:flex; align-items:center; justify-content:center; min-height:120px; }
.flow-add::after { display:none; }
.box-obj { font-size:.84rem; margin:6px 0; padding:6px 10px; background:var(--skytint); border-radius:8px; }
body.dark .box-obj { background:rgba(63,169,224,.1); }
.box-snippet { font-size:.78rem; margin-top:6px; }
.flow-subs { margin-top:12px; border-top:1px dashed var(--border); padding-top:10px; display:flex; flex-direction:column; gap:14px; }
.flow-sub { position:relative; border:1px solid var(--border); border-left:3px solid var(--gold); border-radius:12px; padding:10px 12px; font-size:.9rem; }
.flow-sub:not(:first-child)::before { content:""; position:absolute; top:-15px; left:18px; height:14px; width:2px; background:var(--gold); }

/* ---------- view-as preview banner ---------- */
.viewas-banner { position:sticky; top:0; z-index:40; background:linear-gradient(90deg,var(--gold),#E2BD6B); color:var(--abyss);
  padding:9px 18px; border-radius:12px; margin-bottom:18px; font-size:.9rem; font-weight:500; display:flex; align-items:center;
  box-shadow:var(--shadow-2); animation:pageIn .4s var(--ease); }

/* ---------- full-page course builder ---------- */
.builder-grid { display:grid; grid-template-columns:1.25fr 1fr; gap:24px; align-items:start; }
@media (max-width:980px) { .builder-grid { grid-template-columns:1fr; } }
.modal.lg { width:980px; }

/* ---------- paged lesson block editor ---------- */
.page-tabs { display:flex; gap:6px; flex-wrap:wrap; align-items:center; }
.page-tab { border:1px solid var(--border); background:var(--panel-solid); color:var(--text); border-radius:100px; padding:7px 16px; font-size:.85rem; cursor:pointer; font-family:var(--body); transition:background .2s,border-color .2s; }
.page-tab:hover { border-color:var(--sky); }
.page-tab.active { background:var(--skytint); border-color:var(--sky-deep); color:var(--sky-deep); font-weight:500; }
body.dark .page-tab.active { background:rgba(63,169,224,.16); color:var(--sky); }
.page-tab.add { border-style:dashed; color:var(--muted); }
.block-list { display:flex; flex-direction:column; gap:14px; }
.block-card { border:1px solid var(--border); border-radius:14px; padding:14px 16px; background:var(--panel-solid); }
body.dark .block-card { background:var(--panel); }
.block-card .block-body { margin-top:10px; }
.block-rich :is(h1,h2,h3) { font-family:var(--disp); }
.block-menu { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.paged-view > * { margin-bottom:16px; }
.paged-view figure { margin:0; } .paged-view figcaption { font-size:.82rem; margin-top:6px; }

/* ================= THEME v3 — Techkit-inspired: near-black · electric blue · clean white ================= */
:root {
  --paper:#FFFFFF; --skytint:#EEF3FE; --sky:#2D6FF7; --sky-deep:#1D4ED8;
  --ink:#0A0A0C; --abyss:#0A0A0C; --soft:#64748B;
  --gold:#2D6FF7; --line:rgba(10,10,12,.10);
  --radius:14px;
  --warn:#F59E0B; --danger:#DC2626;
  --shadow-1:0 1px 3px rgba(10,10,12,.06), 0 1px 2px rgba(10,10,12,.04);
  --shadow-2:0 16px 40px -16px rgba(10,10,12,.18);
}
body.dark { --bg:#0A0A0C; --panel:rgba(255,255,255,.04); --panel-solid:#141418;
  --text:#F4F4F5; --muted:rgba(244,244,245,.6); --border:rgba(244,244,245,.12); --line:rgba(244,244,245,.12); }

/* primary actions: solid electric blue (Techkit style) */
.btn { background:var(--sky); color:#fff; box-shadow:0 8px 24px -10px rgba(45,111,247,.55); border-radius:10px; }
.btn:hover { background:var(--sky-deep); }
.btn.green { background:var(--ink); color:#fff; box-shadow:0 8px 24px -10px rgba(10,10,12,.45); }
.btn.green:hover { background:#26262C; }
body.dark .btn.green { background:#fff; color:var(--ink); }
body.dark .btn.green:hover { background:#E4E4E7; }
.btn.ghost { background:transparent; color:var(--text); border:1px solid var(--border); box-shadow:none; }
.btn.ghost:hover { background:var(--skytint); border-color:var(--sky); color:var(--sky-deep); }
.pill.warn { background:rgba(245,158,11,.12); color:#B45309; border-color:rgba(245,158,11,.35); }
body.dark .pill.warn { color:#FBBF24; }
input, select, textarea, .card, .modal { border-radius:10px; }
.card { border-radius:14px; }
.nav-item, .btn { border-radius:10px; }
.nav-item.active::before { background:var(--sky); }

/* hero: flat near-black with a subtle dot grid, like the reference */
.hero-dark { background:#0A0A0C; }
.hero-dark::before { content:""; position:absolute; inset:0;
  background-image:radial-gradient(rgba(255,255,255,.07) 1px, transparent 1px); background-size:26px 26px;
  mask-image:linear-gradient(180deg, rgba(0,0,0,.9), transparent 75%); pointer-events:none; }
.hero-dark .hl { background:linear-gradient(95deg,#5B8DF8 10%,#9EC1FF 90%); -webkit-background-clip:text; background-clip:text; }
.hero-dark .eyebrow { color:#7FA8FB; }
.cta-band { background:var(--sky); border-radius:24px; }
.land-sec.alt { background:#F6F8FC; border-radius:24px; }
body.dark .land-sec.alt { background:rgba(255,255,255,.04); }
.path-num { background:var(--sky); }
.big-quote em { color:var(--sky); border-bottom-color:var(--sky); }
.daily-pick { border-color:var(--sky); background:linear-gradient(135deg,var(--skytint),#fff); }
body.dark .daily-pick { background:linear-gradient(135deg,rgba(45,111,247,.12),var(--panel-solid)); }
.flow-box { border-color:var(--sky); }
.flow-box:not(:last-child)::after { color:var(--sky); }
.viewas-banner { background:var(--sky); color:#fff; }
.slider { background:#CBD5E1; }
.switch input:checked + .slider { background:var(--sky); }

/* lucide icon sizing in nav & headers */
.nav-item svg, .land-links svg { width:17px; height:17px; flex:none; stroke-width:2; }
.nav-item.active svg { color:var(--sky); }
.topbar h2 svg { width:24px; height:24px; vertical-align:-3px; margin-right:6px; color:var(--sky); }

/* ---------- the night sky: learners as stars ---------- */
.night-sky { position:relative; min-height:78vh; border-radius:20px; overflow:hidden; --tiltX:0px; --tiltY:0px;
  background:
    radial-gradient(130% 80% at 75% 5%, #16244A 0%, transparent 55%),
    radial-gradient(100% 70% at 20% 90%, #101A38 0%, transparent 60%),
    linear-gradient(180deg, #05070F 0%, #0A1024 60%, #131B36 100%);
  box-shadow:var(--shadow-2); }
.night-sky > .bg-star, .night-sky > .learner-star, .night-sky > .shooting-star { transform:translate(var(--tiltX), var(--tiltY)); }
.bg-star { position:absolute; border-radius:50%; background:#DCE6FF; pointer-events:none; }
.learner-star { position:absolute; border-radius:50%; background:#fff; cursor:pointer;
  box-shadow:0 0 6px 2px var(--star-c, #9EC1FF), 0 0 18px 6px color-mix(in srgb, var(--star-c, #9EC1FF) 45%, transparent); }
.learner-star:hover { box-shadow:0 0 10px 4px #fff, 0 0 30px 12px var(--star-c, #9EC1FF); z-index:5; }
.learner-star[data-tip]::after { bottom:auto; top:calc(100% + 10px); }
.learner-star[data-tip]::before { bottom:auto; top:calc(100% + 4px); border-top-color:transparent; border-bottom-color:var(--abyss); }
.shooting-star { position:absolute; width:90px; height:2px; opacity:0; pointer-events:none; border-radius:2px;
  background:linear-gradient(90deg, transparent, #fff); transform:rotate(28deg); }
.sky-caption { position:absolute; left:0; right:0; top:30px; text-align:center; z-index:3; color:#EAF0FF; pointer-events:none; }
.sky-caption h3 { font-size:clamp(1.4rem,3vw,2rem); }
.muted-light { color:rgba(234,240,255,.65); font-size:.92rem; max-width:560px; margin:6px auto 0; }
.sky-horizon { position:absolute; bottom:-40px; left:-10%; right:-10%; height:120px; border-radius:50% 50% 0 0;
  background:#04060C; box-shadow:0 -18px 60px rgba(45,111,247,.18); }
@media (prefers-reduced-motion: reduce) { .night-sky * { animation:none !important; } }

/* ================= award-grade homepage motion · calm internal portal ================= */

/* masked word reveal */
.hero-dark h1 .w, .big-quote .w { display:inline-block; overflow:hidden; vertical-align:bottom; }
.hero-dark h1 .wi, .big-quote .wi { display:inline-block; will-change:transform; }

/* fixed glass navigation, revealed after the hero */
.land-nav-fixed { position:fixed; top:0; left:0; right:0; z-index:60; transform:translateY(-100%);
  background:rgba(10,10,12,.72); backdrop-filter:blur(14px) saturate(1.3); border-bottom:1px solid rgba(255,255,255,.08);
  max-width:none !important; padding:12px 32px !important; display:flex; justify-content:space-between; align-items:center; }
.land-nav-fixed .logo img { filter:brightness(0) invert(1); height:1.15em; }
.land-nav-fixed .land-links > a:not(.btn) { color:rgba(244,244,245,.78); }
.land-nav-fixed .land-links > a:not(.btn):hover { color:#fff; }

/* mentor-pool marquee */
.marquee { overflow:hidden; background:#0A0A0C; border-top:1px solid rgba(255,255,255,.06); padding:18px 0; }
.marquee-track { display:inline-flex; white-space:nowrap; align-items:center; will-change:transform; }
.marquee-track span { font-family:var(--disp); font-size:1.05rem; font-weight:500; color:rgba(244,244,245,.55);
  letter-spacing:.06em; text-transform:uppercase; }
.marquee-track i { color:var(--sky); font-style:normal; margin:0 26px; font-size:.8rem; }

/* tier cards tilt in 3D space */
#earn .card { transform-style:preserve-3d; will-change:transform; }
.hero-cta .btn { will-change:transform; }

/* ---------- internal portal: calm & focused — the wow lives on the homepage ---------- */
.shell #content { animation-duration:.22s; }
.shell .topbar { animation-duration:.18s; }
.shell .grid > .card { animation:none; }
.shell .course-card:hover { transform:translateY(-2px); box-shadow:var(--shadow-1); }
.shell .card:hover { box-shadow:var(--shadow-1); }
.shell .btn:hover { transform:none; }
.shell .btn:active { transform:scale(.98); }
.shell .micro-card:hover { transform:none; border-color:var(--sky); }
.shell .progress > div { transition-duration:.3s; }

@media (prefers-reduced-motion: reduce) {
  .marquee-track { transform:none !important; }
  .land-nav-fixed { transform:none; position:static; background:transparent; }
}

/* gradient headline words: background-clip:text doesn't reach into split word spans — paint each word itself */
.hero-dark .hl .wi { background:linear-gradient(95deg,#5B8DF8 10%,#9EC1FF 90%);
  -webkit-background-clip:text; background-clip:text; color:transparent; }
