/* ============================================================
   FONTS — swap these two lines for the approved brand fonts
   ============================================================ */
:root{
  --font-display:"Playfair Display", "Didot", "Bodoni 72", Georgia, "Times New Roman", serif;
  --font-body:"Inter", "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;
}

/* ============================================================
   TOKENS — light (base), dark (media + explicit)
   ============================================================ */
:root{
  --bg:#FBF7F1; --bg2:#F6EEF9;
  --ink:#2A1650; --ink-2:#4A3A6E; --muted:#7A6C95;
  --purple:#7C3AED; --purple-2:#6427D6; --purple-soft:rgba(124,58,237,.12);
  --plum:#6B1F5A;
  --gold:#C9922E; --gold-2:#F4CD7A; --gold-3:#E9B04F; --gold-ink:#2A1650;
  --green:#2E9E62; --green-soft:rgba(46,158,98,.14);
  --glass:rgba(255,255,255,.62); --glass-2:rgba(255,255,255,.78); --glass-inner:rgba(255,255,255,.55);
  --line:rgba(98,60,170,.14); --line-2:rgba(98,60,170,.24);
  --shadow:0 24px 48px -28px rgba(80,40,150,.35), 0 2px 6px -2px rgba(80,40,150,.08);
  --glow:0 0 0 1px rgba(124,58,237,.25), 0 10px 30px -8px rgba(124,58,237,.45);
  --word-filter:none;
  --acc:#8E5BFF; --acc-rgb:124,58,237; --acc2-rgb:124,58,237; --btn-a:#8E5BFF; --btn-b:#6A2BE0; --btn-ink:#fff; --acc-hi:#6427D6;
  /* landing scene */
  --sky1:#E9DFFF; --sky2:#F3D6EA; --sky3:#FFD2A6; --sky4:#FFE6BD;
  --m1:#CDB9EE; --m2:#A98ED8; --city:#9479C4; --ground:#EFE6F7; --road:#DCCBEF; --hero-veil:rgba(251,247,241,.82);
  --hero-ink:#2A1650; --hero-muted:#4A3A6E;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#140B2C; --bg2:#1C1042;
    --ink:#F6F2FF; --ink-2:#DCD2F2; --muted:#A99BC9;
    --purple:#9B6BFF; --purple-2:#7C3AED; --purple-soft:rgba(155,107,255,.16);
    --gold:#F2C46D; --gold-ink:#241040;
    --green:#5BD68A; --green-soft:rgba(91,214,138,.14);
    --glass:rgba(255,255,255,.055); --glass-2:rgba(38,22,78,.72); --glass-inner:rgba(255,255,255,.045);
    --line:rgba(255,255,255,.11); --line-2:rgba(255,255,255,.2);
    --shadow:0 30px 60px -30px rgba(4,0,18,.75), 0 2px 8px -2px rgba(4,0,18,.4);
    --glow:0 0 0 1px rgba(155,107,255,.45), 0 12px 36px -8px rgba(124,58,237,.6);
    --word-filter:brightness(0) invert(1);
    --acc:#9B6BFF; --acc-rgb:155,107,255; --acc2-rgb:124,58,237; --acc-hi:#C9B2FF;
    --sky1:#140A33; --sky2:#3D1D6E; --sky3:#A24D82; --sky4:#F29A55;
    --m1:#4B2B72; --m2:#2B1650; --city:#221044; --ground:#140A2C; --road:#241344; --hero-veil:rgba(15,8,34,.72);
    --hero-ink:#FFFFFF; --hero-muted:#E4DAF7;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#140B2C; --bg2:#1C1042;
  --ink:#F6F2FF; --ink-2:#DCD2F2; --muted:#A99BC9;
  --purple:#9B6BFF; --purple-2:#7C3AED; --purple-soft:rgba(155,107,255,.16);
  --gold:#F2C46D; --gold-ink:#241040;
  --green:#5BD68A; --green-soft:rgba(91,214,138,.14);
  --glass:rgba(255,255,255,.055); --glass-2:rgba(38,22,78,.72); --glass-inner:rgba(255,255,255,.045);
  --line:rgba(255,255,255,.11); --line-2:rgba(255,255,255,.2);
  --shadow:0 30px 60px -30px rgba(4,0,18,.75), 0 2px 8px -2px rgba(4,0,18,.4);
  --glow:0 0 0 1px rgba(155,107,255,.45), 0 12px 36px -8px rgba(124,58,237,.6);
  --word-filter:brightness(0) invert(1);
  --acc:#9B6BFF; --acc-rgb:155,107,255; --acc2-rgb:124,58,237; --acc-hi:#C9B2FF;
  --sky1:#140A33; --sky2:#3D1D6E; --sky3:#A24D82; --sky4:#F29A55;
  --m1:#4B2B72; --m2:#2B1650; --city:#221044; --ground:#140A2C; --road:#241344; --hero-veil:rgba(15,8,34,.72);
  --hero-ink:#FFFFFF; --hero-muted:#E4DAF7;
  color-scheme:dark;
}

/* ============================================================
   BASE
   ============================================================ */
*,*::before,*::after{box-sizing:border-box}
:root{box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
html{scroll-padding-top:env(safe-area-inset-top,0px);scroll-behavior:smooth}
html,body{margin:0;min-height:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background-color .3s}
img{max-width:100%;display:block}
button{font:inherit;color:inherit}
a{color:inherit}
h1,h2,h3,.display{font-family:var(--font-display);font-weight:500;letter-spacing:-.015em;line-height:1.08;margin:0}
p{margin:0}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:10px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
svg.i{width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* ---------- app background (every page except landing) ---------- */
#appbg{position:fixed;inset:0;z-index:-1;pointer-events:none;display:none;overflow:hidden}
body.is-app #appbg{display:block}
#appbg .wash{position:absolute;inset:0;background:
  radial-gradient(60% 50% at 8% 0%, rgba(var(--acc2-rgb),.22), transparent 70%),
  radial-gradient(40% 40% at 100% 100%, rgba(242,196,109,.10), transparent 70%),
  radial-gradient(30% 30% at 96% 12%, rgba(91,214,138,.07), transparent 70%),
  linear-gradient(160deg, var(--bg2), var(--bg) 55%)}
#appbg svg{position:absolute;right:-8%;bottom:-10%;width:75vw;min-width:620px;height:auto;opacity:.9}
:root[data-theme="light"] #appbg .wash{background:
  radial-gradient(55% 45% at 0% 100%, rgba(var(--acc-rgb),.18), transparent 70%),
  radial-gradient(40% 40% at 100% 0%, rgba(201,146,46,.10), transparent 70%),
  radial-gradient(30% 30% at 92% 70%, rgba(46,158,98,.06), transparent 70%),
  linear-gradient(160deg, #FFFDF9, var(--bg) 60%)}

/* ---------- glass ---------- */
.glass{background:var(--glass);border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);position:relative}
.glass::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(145deg,rgba(255,255,255,.10),transparent 38%)}
.inner{background:var(--glass-inner);border:1px solid var(--line);border-radius:16px}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;min-height:48px;padding:0 1.5em;border-radius:999px;border:1px solid transparent;font-weight:600;font-size:.98rem;cursor:pointer;text-decoration:none;white-space:nowrap;transition:transform .15s, box-shadow .2s, filter .2s, background .2s}
.btn:active{transform:translateY(1px)}
.btn .i{transition:transform .2s}
.btn:hover .i.arrow{transform:translateX(3px)}
.btn-gold{background:linear-gradient(180deg,#F8D993,#EAB24F);color:#241040;box-shadow:0 10px 26px -10px rgba(234,178,79,.75), inset 0 1px 0 rgba(255,255,255,.55)}
.btn-gold:hover{filter:brightness(1.04);box-shadow:0 14px 32px -10px rgba(234,178,79,.85), inset 0 1px 0 rgba(255,255,255,.55)}
.btn-purple{background:linear-gradient(180deg,var(--btn-a),var(--btn-b));color:var(--btn-ink);box-shadow:0 10px 26px -10px rgba(var(--acc2-rgb),.8), inset 0 1px 0 rgba(255,255,255,.25)}
.btn-purple:hover{filter:brightness(1.07)}
.btn-ghost{background:var(--glass);border-color:var(--line-2);color:var(--ink);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.btn-ghost:hover{border-color:var(--purple)}
.btn-outline-purple{background:transparent;border-color:rgba(var(--acc-rgb),.55);color:var(--ink)}
.btn-outline-purple:hover{background:var(--purple-soft)}
.btn[disabled]{opacity:.45;cursor:not-allowed;filter:grayscale(.3);box-shadow:none}
.btn-sm{min-height:40px;padding:0 1.1em;font-size:.9rem}
.btn-block{width:100%}
.link{background:none;border:0;padding:0;color:var(--purple);font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
:root[data-theme="dark"] .link{color:var(--acc-hi)}

/* ---------- theme switch ---------- */
.theme{position:relative;display:inline-flex;align-items:center;width:78px;height:40px;border-radius:999px;border:1px solid var(--line-2);background:var(--glass);cursor:pointer;padding:0;flex:none;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.theme span{position:relative;z-index:1;flex:1;display:grid;place-items:center;font-size:18px;color:var(--muted)}
.theme::after{content:"";position:absolute;top:3px;left:3px;width:34px;height:32px;border-radius:999px;background:linear-gradient(180deg,#F8D993,#EAB24F);box-shadow:0 4px 14px -4px rgba(234,178,79,.8);transition:transform .25s}
:root[data-theme="dark"] .theme::after{transform:translateX(37px);background:linear-gradient(180deg,var(--btn-a),var(--btn-b));box-shadow:0 4px 14px -4px rgba(var(--acc2-rgb),.9)}
:root[data-theme="light"] .theme .sun, :root[data-theme="dark"] .theme .moon{color:#241040}
:root[data-theme="dark"] .theme .moon{color:#fff}

/* ---------- logo lockups (official artwork, unaltered shapes) ---------- */
.lockup{display:inline-flex;align-items:center;gap:12px;text-decoration:none}
.lockup .mark{height:48px;width:auto}
.lockup .word{height:36px;width:auto;filter:var(--word-filter)}
.lockup-stack{display:flex;flex-direction:column;align-items:center;gap:14px}
.lockup-stack .mark{height:84px;width:auto}
.lockup-stack .word{width:240px;height:auto;filter:var(--word-filter)}

/* ---------- forms ---------- */
.field{display:flex;flex-direction:column;gap:7px}
.field label,.lbl{font-size:.88rem;font-weight:600;color:var(--ink-2)}
.control{position:relative;display:flex;align-items:center}
.control>.i{position:absolute;left:14px;color:var(--muted);font-size:18px;pointer-events:none}
.input{width:100%;min-height:50px;border-radius:14px;border:1px solid var(--line-2);background:var(--glass-inner);color:var(--ink);font:inherit;font-size:1rem;padding:0 14px;transition:border-color .2s, box-shadow .2s}
.control>.i ~ .input{padding-left:44px}
.input::placeholder{color:var(--muted);opacity:.85}
.input:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 4px var(--purple-soft)}
.input[aria-invalid="true"]{border-color:#E0719B}
select.input{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 20px) 22px,calc(100% - 15px) 22px;background-size:5px 5px;background-repeat:no-repeat;padding-right:40px}
select.input option{color:#241040;background:#fff}
input[type=date].input{padding-right:12px}
.eye{position:absolute;right:6px;width:40px;height:40px;border:0;background:none;border-radius:10px;color:var(--muted);cursor:pointer;display:grid;place-items:center;font-size:18px}
.err{font-size:.82rem;color:#E0719B;min-height:0}
:root[data-theme="light"] .err{color:#B3265E}
.hint{font-size:.82rem;color:var(--muted)}
.check{display:inline-flex;align-items:center;gap:9px;font-size:.9rem;color:var(--ink-2);cursor:pointer}
.check input{width:18px;height:18px;accent-color:var(--purple)}
.formerr{display:none;padding:12px 14px;border-radius:12px;background:rgba(224,113,155,.12);border:1px solid rgba(224,113,155,.4);font-size:.9rem}
.formerr.show{display:block}

/* ---------- misc ---------- */
.chip{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 14px;border-radius:999px;border:1px solid var(--line-2);background:var(--glass);font-size:.9rem;font-weight:500;color:var(--ink-2)}
.chip.green{border-color:rgba(91,214,138,.45);background:var(--green-soft);color:var(--green)}
.badge-gold{display:inline-flex;align-items:center;height:30px;padding:0 16px;border-radius:999px;background:linear-gradient(180deg,#F8D993,#EAB24F);color:#241040;font-weight:700;font-size:.85rem;box-shadow:0 6px 18px -6px rgba(234,178,79,.8)}
.permonth{white-space:nowrap;display:inline-flex;align-items:center;padding:6px 16px;border-radius:999px;border:1px solid rgba(var(--acc-rgb),.6);background:rgba(var(--acc2-rgb),.18);font-weight:600;font-size:.95rem}
.ticks{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ticks li{display:flex;gap:11px;align-items:flex-start;color:var(--ink-2)}
.ticks .tk{flex:none;width:20px;height:20px;border-radius:6px;display:grid;place-items:center;font-size:13px;margin-top:2px}
.ticks.gold .tk{background:linear-gradient(180deg,#F8D993,#EAB24F);color:#241040}
.ticks.purple .tk{background:linear-gradient(180deg,#A983FF,var(--purple-2));color:#fff}
#toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);opacity:0;z-index:100;max-width:min(92vw,460px);padding:14px 18px;border-radius:16px;background:var(--glass-2);border:1px solid var(--line-2);box-shadow:var(--shadow);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);font-size:.93rem;transition:opacity .25s, transform .25s;pointer-events:none;display:flex;gap:10px;align-items:flex-start}
#toast.show{opacity:1;transform:translate(-50%,0)}
#toast .i{color:var(--gold);font-size:20px;margin-top:1px}

/* ============================================================
   LANDING (the only cinematic page)
   ============================================================ */
.landing{position:relative}
.l-header{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;gap:24px;padding:24px clamp(18px,4vw,64px)}
.l-header .lockup .word{filter:brightness(0) invert(1)}
.l-nav{display:flex;gap:clamp(20px,3vw,48px);margin:0 auto}
.l-nav a{text-decoration:none;color:#F4EFFB;font-weight:500;font-size:.96rem;opacity:.86;transition:opacity .2s,color .2s}
.l-nav a:hover{opacity:1;color:#F2C46D}
.l-actions{display:flex;gap:12px;align-items:center}
.l-actions .btn-ghost,.l-header .theme{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.22);color:#fff}
.l-header .theme span{color:rgba(255,255,255,.7)}
.l-burger{display:none;margin-left:auto;width:44px;height:44px;border-radius:12px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.07);color:#fff;font-size:22px;cursor:pointer;place-items:center;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.l-mobile{display:none}

/* hero — a clear dusk photograph, in both themes */
.lp-hero{position:relative;overflow:hidden;isolation:isolate;color:#fff;display:flex;align-items:center;
  width:100%;min-height:min(860px,max(clamp(640px,76svh,760px),41.87vw));
  background:#0B0921 var(--sd) 0% 100%/cover no-repeat}
.lp-glow{display:none}
.lp-photo{display:none}
.lp-veil{position:absolute;inset:0;z-index:-1;pointer-events:none;background:
  linear-gradient(0deg,var(--bg) 0%,transparent 17%),
  linear-gradient(180deg,rgba(11,9,33,.55) 0%,transparent 16%),
  linear-gradient(90deg,rgba(11,9,33,.78) 0%,rgba(11,9,33,.42) 30%,transparent 46%)}
:root[data-theme="dark"] body.is-landing{--bg:#100C26}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) body.is-landing{--bg:#100C26}}
body.is-landing{background:var(--bg)}
.lp-inner{width:100%;max-width:1320px;margin:0 auto;padding:112px clamp(18px,4vw,64px) 96px}
.lp-copy{max-width:520px}
.eyebrow{color:#F2C46D;font-weight:600;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;display:flex;align-items:center;gap:14px}
.eyebrow::after{content:"";width:40px;height:1px;background:#F2C46D;opacity:.8}
.lp-hero h1{font-size:clamp(3rem,5.4vw,5.1rem);line-height:1.02;margin:22px 0 22px;font-weight:500;letter-spacing:-.02em;color:#fff}
.lp-hero h1 .l2{display:block;color:#F2C46D}
.lp-hero .lede{font-size:clamp(1rem,1.2vw,1.1rem);line-height:1.7;color:rgba(240,234,250,.84);max-width:30em}
.lp-hero .cta{margin-top:34px;min-height:58px;padding:0 2em;font-size:1.02rem}

/* hero — light mode: the same scene at golden hour */
:root[data-theme="light"] .lp-hero{color:var(--ink);background:#FBF6F0 var(--sl) 0% 100%/cover no-repeat}
:root[data-theme="light"] .lp-photo{background-image:var(--sl)}

:root[data-theme="light"] .lp-veil{background:linear-gradient(0deg,var(--bg) 0%,transparent 17%),linear-gradient(180deg,rgba(255,252,246,.55) 0%,transparent 16%),linear-gradient(90deg,rgba(255,251,245,.9) 0%,rgba(255,251,245,.55) 30%,transparent 46%)}
:root[data-theme="light"] .lp-hero h1{color:#2A1650}
:root[data-theme="light"] .lp-hero h1 .l2{color:#B8862E}
:root[data-theme="light"] .lp-hero .lede{color:var(--ink-2)}
:root[data-theme="light"] .eyebrow{color:#A87A22}
:root[data-theme="light"] .eyebrow::after{background:#A87A22}
:root[data-theme="light"] .l-header .lockup .word{filter:none}
:root[data-theme="light"] .l-nav a{color:var(--ink)}
:root[data-theme="light"] .l-nav a:hover,:root[data-theme="light"] .l-nav a.on{color:#A87A22}
:root[data-theme="light"] .l-header .theme,:root[data-theme="light"] .l-actions .btn-ghost,:root[data-theme="light"] .l-burger{background:rgba(255,255,255,.62);border-color:var(--line-2);color:var(--ink)}
:root[data-theme="light"] .l-header .theme span{color:var(--muted)}
:root[data-theme="light"] .l-header .theme .sun{color:#241040}

/* dev-only demo login */
.demo-pill{position:fixed;left:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:60;display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;font-size:.8rem;font-weight:600;text-decoration:none;
  background:rgba(20,12,44,.78);color:#F2C46D;border:1px dashed rgba(242,196,109,.6);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
:root[data-theme="light"] .demo-pill{background:rgba(255,255,255,.85);color:#8A5F12;border-color:rgba(168,122,34,.55)}
.demo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;max-width:860px}
.demo-card{padding:22px;display:flex;flex-direction:column;gap:12px}
.demo-card h3{font-size:1.5rem}
.demo-card .meta{display:flex;gap:8px;flex-wrap:wrap}
.demo-card .cred{font-size:.86rem;color:var(--muted);line-height:1.6}
.demo-card .cred code{font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--ink-2)}
@media (max-width:760px){.demo-grid{grid-template-columns:1fr}}

/* journey — one continuous path */
.lp-journey{position:relative;z-index:3;max-width:1120px;margin:-52px auto 0;padding:0 clamp(18px,4vw,56px) 0}
.lp-pricing{padding:clamp(56px,7vw,96px) clamp(18px,4vw,56px) clamp(80px,10vw,130px)}
.lp-journey .glass{padding:32px clamp(20px,3vw,44px) 30px;box-shadow:var(--shadow),0 0 70px -34px rgba(var(--acc-rgb),.55)}
.lp-steps{list-style:none;margin:0;padding:0;position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.lp-path{position:absolute;top:36px;left:12.5%;right:12.5%;height:2px;border-radius:2px;pointer-events:none;
  background:linear-gradient(90deg,rgba(var(--acc-rgb),.85),#F2C46D);box-shadow:0 0 14px rgba(242,196,109,.4),0 0 4px rgba(var(--acc-rgb),.5)}
.lp-step{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px}
.lp-txt{display:flex;flex-direction:column;align-items:center;gap:8px}
.lp-orb{position:relative;z-index:1;width:72px;height:72px;border-radius:50%;display:grid;place-items:center;font-size:27px;color:#F2C46D;flex:none;
  background:radial-gradient(circle at 32% 28%,#3B2B6C,#1A1336 72%);border:1px solid rgba(242,196,109,.45);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 10px 28px -12px rgba(242,196,109,.5)}
:root[data-theme="light"] .lp-orb{background:radial-gradient(circle at 32% 28%,#fff,#F1E8FF);color:#B07E22;border-color:rgba(201,146,46,.5);box-shadow:inset 0 1px 0 #fff,0 10px 24px -12px rgba(var(--acc2-rgb),.4)}
.lp-step h3{font-family:var(--font-body);font-size:.8rem;font-weight:700;letter-spacing:.16em}
.lp-step p{color:var(--muted);font-size:.92rem;line-height:1.5;max-width:15em}

/* shared header on About / Pricing / FAQ / Support */
.l-nav a.on{opacity:1;color:#F2C46D}
.l-header.solid{position:relative}
.l-header.solid .lockup .word{filter:var(--word-filter)}
.l-header.solid .l-nav a{color:var(--ink)}
.l-header.solid .l-nav a.on,.l-header.solid .l-nav a:hover{color:var(--gold)}
.l-header.solid .theme,.l-header.solid .l-actions .btn-ghost,.l-header.solid .l-burger{background:var(--glass);border-color:var(--line-2);color:var(--ink)}
.l-header.solid .theme span{color:var(--muted)}
:root[data-theme="light"] .l-header.solid .theme .sun{color:#241040}
:root[data-theme="dark"] .l-header.solid .theme .moon{color:#fff}
.info{max-width:1080px;margin:0 auto;padding:clamp(24px,5vw,52px) clamp(18px,4vw,56px) 88px}
.info-head{max-width:660px;margin-bottom:40px}
.info-head h1{font-size:clamp(2.4rem,4.6vw,3.6rem)}
.info-head h1 span{display:block;color:var(--gold)}
.info-head p{color:var(--ink-2);margin-top:16px;font-size:1.08rem;line-height:1.7}
.info-head p+p{margin-top:12px}
.grades4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.grades4 .inner{padding:20px}
.grades4 h3{font-size:1.4rem;margin-bottom:8px}
.grades4 p{font-size:.93rem;color:var(--muted)}
.faq-list{max-width:780px}
.help{display:grid;gap:12px;max-width:720px}
.help a{display:flex;align-items:center;gap:16px;padding:20px 22px;text-decoration:none;border-radius:18px}
.help a:hover{border-color:rgba(var(--acc-rgb),.55)}
.help .ico{flex:none;width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-size:21px;background:var(--purple-soft);color:var(--purple)}
:root[data-theme="dark"] .help .ico{color:var(--acc-hi)}
.help b{display:block;font-weight:600}
.help small{color:var(--muted);font-size:.9rem}
.help .go{margin-left:auto;color:var(--muted);font-size:20px}

.l-section{max-width:1180px;margin:0 auto;padding:clamp(60px,9vw,110px) clamp(18px,4vw,56px) 0}
.pricing{display:grid;grid-template-columns:1fr 1.05fr 1fr;gap:26px;padding:clamp(24px,3vw,44px);align-items:stretch}
.pricing .intro h2{font-size:clamp(2rem,2.9vw,2.6rem);margin-top:18px}
.pricing .intro h2 span{display:block;color:var(--gold)}
.pricing .intro p{margin-top:18px;color:var(--ink-2);font-size:1.08rem;max-width:22em}
.rule{width:44px;height:2px;background:var(--gold);border-radius:2px}
.plan{border-radius:22px;padding:34px 30px 30px;display:flex;flex-direction:column;gap:16px;position:relative;border:1px solid var(--line-2);background:var(--glass-inner)}
.plan.best{border:1.5px solid rgba(242,196,109,.75);box-shadow:0 0 0 1px rgba(242,196,109,.15), 0 0 48px -14px rgba(242,196,109,.55);background:linear-gradient(180deg,rgba(242,196,109,.08),transparent 60%),var(--glass-inner)}
.plan .badge-gold{position:absolute;top:-15px;left:50%;transform:translateX(-50%)}
.price{display:flex;align-items:baseline;gap:8px}
.price b{font-family:var(--font-display);font-weight:600;font-size:clamp(2.6rem,4vw,3.3rem);letter-spacing:-.02em;line-height:1}
.price span{font-size:1.3rem;color:var(--ink-2)}
.plan .btn{margin-top:auto}

.about-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:48px;align-items:start}
.about-grid h2,.faq h2,.support h2{font-size:clamp(2rem,3.4vw,2.8rem)}
.about-grid p{color:var(--ink-2);font-size:1.06rem;line-height:1.7;max-width:36em}
.about-grid p+p{margin-top:14px}
.grades{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.grades .inner{padding:18px 20px}
.grades h3{font-size:1.35rem;margin-bottom:6px}
.grades p{font-size:.94rem;color:var(--muted)}
.faq{display:grid;grid-template-columns:1fr 1.6fr;gap:48px}
.qa{border-bottom:1px solid var(--line)}
.qa button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:18px;background:none;border:0;padding:20px 2px;text-align:left;font-weight:600;font-size:1.04rem;cursor:pointer}
.qa button .i{transition:transform .2s;color:var(--muted);font-size:20px}
.qa[open-state="1"] button .i{transform:rotate(180deg)}
.qa .a{display:none;padding:0 2px 20px;color:var(--ink-2);max-width:40em}
.qa[open-state="1"] .a{display:block}
.support{display:flex;justify-content:space-between;align-items:center;gap:28px;padding:clamp(26px,3vw,40px)}
.support p{color:var(--ink-2);margin-top:10px;max-width:34em}
.l-footer{max-width:1180px;margin:0 auto;padding:60px clamp(18px,4vw,56px) 40px;display:flex;justify-content:space-between;align-items:center;gap:20px;color:var(--muted);font-size:.9rem;flex-wrap:wrap}

/* ============================================================
   AUTH / PLANS / PAY (simple background)
   ============================================================ */
.page-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px clamp(18px,4vw,48px)}
.back{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink-2);font-weight:500;font-size:.95rem}
.back:hover{color:var(--ink)}
.auth-wrap{max-width:520px;margin:0 auto;padding:0 18px 60px;display:flex;flex-direction:column;align-items:center}
.auth-wrap.wide{max-width:640px}
.auth-card{width:100%;margin-top:30px;padding:clamp(24px,4vw,38px)}
.auth-card h1{font-size:2.3rem;text-align:center}
.auth-card .sub{text-align:center;color:var(--muted);margin-top:8px}
.form{display:grid;gap:18px;margin-top:26px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.switchline{text-align:center;font-size:.93rem;color:var(--ink-2);margin-top:4px}
.trust{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;width:100%;margin-top:28px}
.trust div{text-align:center;font-size:.8rem;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:8px}
.trust .i{font-size:22px;color:var(--purple)}

.plans-wrap{max-width:1120px;margin:0 auto;padding:0 clamp(18px,4vw,40px) 60px}
.plans-head{text-align:center;margin:10px auto 40px;max-width:760px}
.plans-head h1{font-size:clamp(2.5rem,5.4vw,4.2rem)}
.plans-head h1 span{color:var(--gold)}
.plans-head .s1{font-size:clamp(1.15rem,2vw,1.5rem);color:var(--ink-2);margin-top:12px}
.plans-head .s2{color:var(--muted);margin-top:8px}
.plan-cards{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:stretch}
.plan-cards .plan{padding:44px 36px 34px;background:var(--glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:var(--shadow)}
.plan-cards .plan.best{background:linear-gradient(180deg,rgba(242,196,109,.09),transparent 55%),var(--glass)}
.plan-art{position:absolute;right:28px;top:40px;width:92px;height:92px;border-radius:26px;display:grid;place-items:center;font-size:46px}
.plan.best .plan-art{background:linear-gradient(160deg,rgba(242,196,109,.25),rgba(var(--acc2-rgb),.18));color:var(--gold);border:1px solid rgba(242,196,109,.4)}
.plan:not(.best) .plan-art{background:linear-gradient(160deg,rgba(var(--acc-rgb),.35),rgba(var(--acc2-rgb),.12));color:var(--acc-hi);border:1px solid rgba(var(--acc-rgb),.4)}
:root[data-theme="light"] .plan:not(.best) .plan-art{color:var(--purple)}
.reassure{display:grid;grid-template-columns:repeat(3,1fr);margin-top:30px;padding:22px 10px}
.reassure>div{display:flex;gap:16px;align-items:flex-start;padding:6px 22px}
.reassure>div+div{border-left:1px solid var(--line)}
.reassure .ico{flex:none;width:52px;height:52px;border-radius:16px;display:grid;place-items:center;font-size:24px;border:1px solid var(--line-2);background:var(--purple-soft);color:var(--purple)}
:root[data-theme="dark"] .reassure .ico{color:var(--acc-hi)}
.reassure .ico.g{background:var(--green-soft);color:var(--green);border-color:rgba(91,214,138,.4)}
.reassure h3{font-size:1.2rem}
.reassure p{font-size:.9rem;color:var(--muted);margin-top:4px}
.already{text-align:center;margin-top:30px;color:var(--ink-2)}

.pay-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:26px;max-width:1000px;margin:0 auto;padding:0 clamp(18px,4vw,40px) 60px;align-items:start}
.summary{padding:30px}
.summary h2{font-size:1.9rem}
.sumrow{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:.96rem}
.sumrow span:first-child{color:var(--muted)}
.sumrow.total{border:0;font-weight:700;font-size:1.1rem}
.notice{margin-top:18px;padding:14px 16px;border-radius:14px;border:1px dashed rgba(242,196,109,.55);background:rgba(242,196,109,.07);font-size:.87rem;color:var(--ink-2)}
.notice b{color:var(--gold)}
.paycard{padding:clamp(24px,3vw,34px)}
.paycard h2{font-size:1.7rem;display:flex;align-items:center;gap:10px}
.row3{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.overlay{position:fixed;inset:0;z-index:90;display:grid;place-items:center;background:rgba(10,4,26,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:20px}
:root[data-theme="light"] .overlay{background:rgba(251,247,241,.6)}
.overlay .glass{padding:38px 34px;text-align:center;max-width:420px;background:var(--glass-2)}
.overlay .tickbig{width:76px;height:76px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;font-size:38px;background:var(--green-soft);color:var(--green);border:1px solid rgba(91,214,138,.5)}
.overlay h2{font-size:2rem}
.overlay p{color:var(--ink-2);margin-top:8px}
.spinner{width:22px;height:22px;border-radius:50%;border:2.5px solid rgba(36,16,64,.25);border-top-color:#241040;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ============================================================
   AUTHENTICATED SHELL
   ============================================================ */
.shell{display:grid;grid-template-columns:268px minmax(0,1fr);gap:28px;padding:22px clamp(16px,2vw,28px);max-width:1560px;margin:0 auto}
.side{position:sticky;top:22px;height:calc(100vh - 44px);height:calc(100dvh - 44px);display:flex;flex-direction:column;padding:26px 18px}
.side .lockup{padding:0 8px 30px}
.side .lockup{gap:10px}.side .lockup .mark{height:44px}.side .lockup .word{height:27px}
.nav{display:grid;gap:6px}
.nav a{display:flex;align-items:center;gap:14px;height:52px;padding:0 18px;border-radius:16px;text-decoration:none;font-weight:600;color:var(--ink-2)}
.nav a .i{font-size:22px}
.nav a.on{background:linear-gradient(180deg,var(--btn-a),var(--btn-b));color:var(--btn-ink);box-shadow:var(--glow)}
.side-foot{margin-top:auto;font-size:.8rem;color:var(--muted);padding:0 10px}
.mbar{display:none}
.drawer{position:fixed;inset:0;z-index:80;display:none}
.drawer.open{display:block}
.drawer .scrim{position:absolute;inset:0;background:rgba(8,3,22,.5);backdrop-filter:blur(4px)}
.drawer .glass{position:absolute;top:calc(10px + env(safe-area-inset-top,0px));bottom:calc(10px + env(safe-area-inset-bottom,0px));left:10px;width:min(300px,84vw);padding:22px 16px;display:flex;flex-direction:column;background:var(--glass-2);animation:slidein .25s ease-out}
@keyframes slidein{from{transform:translateX(-20px);opacity:0}}
.drawer .close{position:absolute;right:12px;top:12px;width:40px;height:40px;border-radius:12px;border:1px solid var(--line-2);background:var(--glass);display:grid;place-items:center;font-size:20px;cursor:pointer}

.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-top:12px}
.today{color:var(--muted);font-size:.95rem}
.greet{font-size:clamp(2.3rem,4.4vw,3.6rem);margin:10px 0 8px}
.greet .nm{background:linear-gradient(90deg,var(--acc-hi),var(--btn-a));-webkit-background-clip:text;background-clip:text;color:transparent}
:root[data-theme="light"] .greet .nm{background:linear-gradient(90deg,var(--btn-a),var(--purple-2));-webkit-background-clip:text;background-clip:text}
.greet-sub{font-size:1.2rem;color:var(--ink-2)}
.chips{display:flex;align-items:center;gap:10px;margin-top:16px;flex-wrap:wrap}
.chips .dot{width:4px;height:4px;border-radius:50%;background:var(--muted)}
.top-actions{display:flex;align-items:center;gap:12px}
.me{position:relative}
.me>button{display:flex;align-items:center;gap:12px;height:60px;padding:0 14px 0 8px;border-radius:999px;border:1px solid var(--line-2);background:var(--glass);cursor:pointer;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:1rem;color:var(--btn-ink);background:linear-gradient(145deg,var(--acc-hi),var(--btn-b));border:2px solid rgba(242,196,109,.6)}
.me .who{text-align:left;line-height:1.25}
.me .who b{display:block;font-weight:600;font-size:.95rem}
.me .who small{color:var(--muted);font-size:.83rem}
.menu{position:absolute;right:0;top:calc(100% + 10px);width:270px;padding:10px;z-index:40;background:var(--glass-2);display:none}
.menu.open{display:block}
.menu .mi-head{padding:10px 12px 12px;border-bottom:1px solid var(--line);margin-bottom:6px;font-size:.88rem;color:var(--muted)}
.menu .mi-head b{display:block;color:var(--ink);font-size:.95rem}
.menu button{width:100%;display:flex;align-items:center;gap:12px;padding:12px;border:0;border-radius:12px;background:none;cursor:pointer;text-align:left;font-size:.94rem;font-weight:500}
.menu button:hover{background:var(--purple-soft)}
.menu button .i{font-size:18px;color:var(--muted)}

/* journey */
.panel{padding:26px 28px 30px;margin-top:26px}
.panel-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.panel-h h2{font-size:clamp(1.7rem,2.4vw,2.2rem)}
.panel-h .meta{color:var(--muted);font-size:.93rem}
.journey-scroll{overflow-x:auto;margin:0 -12px;padding:0 12px;scrollbar-width:thin}
.steps{--n:7;list-style:none;margin:26px 0 0;padding:0;display:grid;grid-template-columns:repeat(7,minmax(118px,1fr));position:relative;min-width:860px}
.steps .track,.steps .fill{position:absolute;top:36px;left:calc(100% / 14);height:3px;border-radius:3px}
.steps .track{right:calc(100% / 14);background:var(--line-2)}
.steps .fill{background:linear-gradient(90deg,var(--green),var(--gold));box-shadow:0 0 12px rgba(242,196,109,.45);transition:width .6s}
.step{position:relative;text-align:center;padding:0 6px}
.step>button{all:unset;display:flex;flex-direction:column;align-items:center;gap:10px;cursor:pointer;width:100%;border-radius:18px;padding:0 0 6px}
.step>button:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.step .node{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;font-size:30px;border:1.5px solid var(--line-2);background:var(--bg);color:var(--muted);position:relative;transition:transform .2s}
.step .node::before{content:"";position:absolute;inset:0;border-radius:50%;background:var(--glass)}
.step .node .i{position:relative}
.step .num{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;font-weight:700;background:var(--glass);border:1px solid var(--line-2);color:var(--muted)}
.step .tt{font-weight:600;font-size:.97rem;line-height:1.3;color:var(--ink-2)}
.step .dd{font-size:.88rem;color:var(--muted);line-height:1.4}
.step.done .node{border-color:rgba(91,214,138,.65);color:var(--green)}
.step.done .node::before{background:var(--green-soft)}
.step.done .num{background:var(--green);border-color:var(--green);color:#0f2a1b}
.step.current .node{border:0;color:var(--btn-ink);background:linear-gradient(160deg,var(--btn-a),var(--btn-b));box-shadow:0 0 0 6px rgba(var(--acc-rgb),.18), 0 0 34px 2px rgba(var(--acc2-rgb),.65)}
.step.current .node::before{display:none}
.step.current .node::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:1px solid rgba(185,139,255,.6);animation:pulse 2.6s ease-out infinite}
@keyframes pulse{0%{transform:scale(1);opacity:.9}100%{transform:scale(1.35);opacity:0}}
.step.current .num{background:linear-gradient(180deg,var(--btn-a),var(--btn-b));border:0;color:var(--btn-ink)}
.step.current .tt{color:var(--ink)}
.step.upcoming .tt,.step.upcoming .dd,.step.upcoming .num,.step.upcoming .node .i{opacity:.55}
.step.upcoming>button{cursor:default}
.step.done>button:hover .node,.step.current>button:hover .node{transform:translateY(-2px)}

.lower{display:grid;grid-template-columns:1.05fr 1fr;gap:26px;margin-top:26px}
.next{padding:26px 28px 30px;overflow:hidden}
.next::after{content:"";position:absolute;left:-60px;bottom:-80px;width:260px;height:200px;border-radius:50%;background:radial-gradient(closest-side,rgba(91,214,138,.18),transparent);pointer-events:none}
.next-body{display:flex;gap:22px;align-items:flex-start;margin-top:20px;padding:22px;border-radius:20px}
.next-ic{flex:none;width:84px;height:84px;border-radius:20px;display:grid;place-items:center;font-size:40px;color:var(--purple);border:1px solid var(--line-2);background:var(--purple-soft)}
:root[data-theme="dark"] .next-ic{color:var(--acc-hi)}
.next h3{font-size:1.55rem}
.next p{color:var(--ink-2);margin-top:8px;max-width:30em}
.next .btn{margin-top:22px;min-height:54px;font-size:1.02rem}
.next .progress-note{margin-top:10px;font-size:.88rem;color:var(--muted)}
.dates{padding:26px 28px 28px}
.dates .sub{color:var(--muted);margin-top:6px;font-size:.95rem}
.viewall{background:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:8px;color:var(--ink-2);font-weight:500;font-size:.93rem}
.viewall:hover{color:var(--ink)}
.dlist{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:12px}
.dlist li{display:grid;grid-template-columns:76px 1fr;gap:12px}
.dbox{border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 0;line-height:1.1}
.dbox b{font-family:var(--font-display);font-weight:600;font-size:1.65rem}
.dbox span{font-size:.88rem;color:var(--muted)}
.ditem{border-radius:16px;padding:14px 18px;display:flex;gap:14px;align-items:flex-start}
.ditem .dt{width:11px;height:11px;border-radius:50%;margin-top:7px;flex:none}
.dt.green{background:var(--green);box-shadow:0 0 10px rgba(91,214,138,.6)}
.dt.purple{background:var(--acc);box-shadow:0 0 10px rgba(var(--acc-rgb),.6)}
.dt.gold{background:var(--gold);box-shadow:0 0 10px rgba(242,196,109,.6)}
.ditem b{font-weight:600;display:block}
.ditem small{color:var(--muted);font-size:.87rem}

/* ============================================================
   ASSESSMENT / UPLOAD / DNA
   ============================================================ */
.focus-top{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px clamp(16px,3vw,40px)}
.focus-top .ttl{display:flex;align-items:center;gap:12px;font-weight:600}
.focus-top .ttl img{height:38px}
.focus-wrap{max-width:820px;margin:0 auto;padding:10px clamp(16px,3vw,24px) 60px}
.qprog{display:flex;align-items:center;gap:16px;margin-bottom:18px}
.qprog .bar{flex:1;height:6px;border-radius:6px;background:var(--line-2);overflow:hidden}
.qprog .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--acc),var(--gold));border-radius:6px;transition:width .35s}
.qprog span{font-size:.92rem;color:var(--ink-2);white-space:nowrap;font-weight:500}
.qcard{padding:clamp(24px,4vw,44px)}
.qcard .kicker{color:var(--muted);font-size:.92rem;font-weight:500}
.qcard h1{font-size:clamp(1.65rem,3vw,2.3rem);margin-top:10px;line-height:1.2}
.qcard .qhint{margin-top:10px;color:var(--muted);font-size:.93rem}
.opts{display:grid;gap:12px;margin-top:26px}
.opts.two{grid-template-columns:1fr 1fr}
.opt{display:flex;align-items:center;gap:14px;min-height:60px;padding:14px 18px;border-radius:16px;border:1.5px solid var(--line-2);background:var(--glass-inner);cursor:pointer;text-align:left;font-size:1.02rem;font-weight:500;transition:border-color .15s, background .15s}
.opt:hover{border-color:rgba(var(--acc-rgb),.6)}
.opt .mk{flex:none;width:24px;height:24px;border-radius:50%;border:2px solid var(--line-2);display:grid;place-items:center;font-size:14px;color:transparent}
.opt.multi .mk{border-radius:7px}
.opt[aria-checked="true"]{border-color:var(--purple);background:var(--purple-soft);box-shadow:0 0 0 3px rgba(var(--acc2-rgb),.12)}
.opt[aria-checked="true"] .mk{border-color:transparent;background:linear-gradient(180deg,var(--btn-a),var(--btn-b));color:var(--btn-ink)}
.opt[aria-disabled="true"]{opacity:.45;cursor:not-allowed}
textarea.input{min-height:130px;padding:14px;resize:vertical;line-height:1.5}
.qnav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:30px}
.intro-card{padding:clamp(26px,4vw,48px);text-align:left}
.intro-card h1{font-size:clamp(2rem,4vw,3rem)}
.intro-card p.lead{margin-top:14px;color:var(--ink-2);font-size:1.1rem;max-width:34em}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:26px}
.facts .inner{padding:16px 18px;display:flex;gap:12px;align-items:flex-start;font-size:.93rem;color:var(--ink-2)}
.facts .i{font-size:22px;color:var(--gold);margin-top:1px}
.done-card{padding:clamp(26px,4vw,46px)}
.done-card .tickbig{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;font-size:34px;background:var(--green-soft);color:var(--green);border:1px solid rgba(91,214,138,.5);margin-bottom:18px}
.done-card h1{font-size:clamp(2rem,4vw,2.8rem)}
.done-card>p{color:var(--ink-2);margin-top:10px;font-size:1.06rem;max-width:34em}
.strengths{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:26px}
.strength{padding:20px;border-radius:18px}
.strength .ic{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:24px;background:var(--purple-soft);color:var(--purple);margin-bottom:12px}
:root[data-theme="dark"] .strength .ic{color:var(--acc-hi)}
.strength h3{font-size:1.3rem}
.strength p{font-size:.93rem;color:var(--muted);margin-top:6px}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}

.marks{display:grid;gap:10px;margin-top:24px}
.mrow{display:grid;grid-template-columns:1fr 130px 92px;gap:14px;align-items:center;padding:10px 12px 10px 18px;border-radius:14px}
.mrow label{font-weight:500}
.mrow .input{min-height:44px;text-align:right;padding-right:34px}
.mrow .pct{position:relative}
.mrow .pct::after{content:"%";position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.lvl{font-size:.83rem;color:var(--muted);text-align:center;border-radius:999px;padding:5px 0;border:1px solid var(--line)}
.lvl.on{color:var(--ink);border-color:rgba(var(--acc-rgb),.5);background:var(--purple-soft)}
.drop{margin-top:22px;border:1.5px dashed var(--line-2);border-radius:18px;padding:22px;display:flex;gap:16px;align-items:center;cursor:pointer;transition:border-color .2s, background .2s}
.drop:hover,.drop.over{border-color:var(--purple);background:var(--purple-soft)}
.drop .i{font-size:30px;color:var(--purple);flex:none}
:root[data-theme="dark"] .drop .i{color:var(--acc-hi)}
.drop small{display:block;color:var(--muted);font-size:.85rem}

.dna-wrap{max-width:1100px;margin:0 auto;padding:6px clamp(16px,3vw,32px) 60px}
.dna-hero{padding:clamp(26px,4vw,48px);display:grid;grid-template-columns:1.3fr 1fr;gap:30px;align-items:center;overflow:hidden}
.dna-hero h1{font-size:clamp(2.4rem,5vw,3.8rem)}
.dna-hero p{color:var(--ink-2);margin-top:14px;font-size:1.08rem;max-width:32em}
.dna-hero .gen{margin-top:14px;font-size:.88rem;color:var(--muted)}
.helix{width:100%;max-width:300px;justify-self:center}
.dna-sec{margin-top:24px;padding:clamp(22px,3vw,34px)}
.dna-sec>h2{font-size:clamp(1.6rem,2.4vw,2.1rem)}
.dna-sec>.lead{color:var(--muted);margin-top:6px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.tag{padding:8px 14px;border-radius:999px;border:1px solid var(--line-2);background:var(--glass-inner);font-size:.92rem;font-weight:500}
.tag.gold{border-color:rgba(242,196,109,.6);background:rgba(242,196,109,.1)}
.plist{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:12px}
.plist li{display:flex;gap:12px;color:var(--ink-2)}
.plist li .i{color:var(--green);font-size:18px;margin-top:4px}
.areas{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}
.area{padding:22px;border-radius:20px;display:flex;flex-direction:column;gap:10px}
.area .rank{font-size:.82rem;color:var(--gold);font-weight:600}
.area h3{font-size:1.4rem}
.area .why{font-size:.93rem;color:var(--ink-2)}
.area .try{margin-top:auto;padding-top:12px;border-top:1px solid var(--line);font-size:.88rem;color:var(--muted)}
.area .try b{color:var(--ink-2)}
.careers{display:grid;gap:16px;margin-top:20px}
.career-row{padding:18px 20px;border-radius:18px}
.career-row h3{font-size:1.2rem;font-family:var(--font-body);font-weight:600}
.career-row p{color:var(--muted);font-size:.92rem;margin-top:4px}
.subj{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin-top:20px}
.subj .inner{padding:16px 18px}
.subj b{display:block}
.subj small{color:var(--muted);font-size:.86rem}
.quote{margin-top:18px;padding:18px 22px;border-left:3px solid var(--gold);font-family:var(--font-display);font-size:1.3rem;line-height:1.4;color:var(--ink)}
.disclaimer{margin-top:24px;padding:20px 24px;display:flex;gap:14px;align-items:flex-start;font-size:.95rem;color:var(--ink-2)}
.disclaimer .i{font-size:22px;color:var(--gold);margin-top:2px}

.empty-journey{padding:34px;margin-top:26px}
.empty-journey h2{font-size:2rem}
.empty-journey p{color:var(--ink-2);margin-top:10px;max-width:36em}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1180px){
  .pricing{grid-template-columns:1fr 1fr}
  .pricing .intro{grid-column:1/-1}
  .shell{grid-template-columns:230px minmax(0,1fr)}
  .lower{grid-template-columns:1fr}
}
@media (max-width:980px){
  .l-nav,.l-actions .btn{display:none}
  .l-burger{display:grid}
  .l-actions{margin-left:auto}
  .l-burger{margin-left:0}
  .l-mobile.open{display:flex;flex-direction:column;gap:6px;position:absolute;top:84px;left:14px;right:14px;z-index:30;padding:16px;background:var(--glass-2)}
  .l-mobile a,.l-mobile .btn{justify-content:flex-start}
  .l-mobile a.nl{padding:12px 10px;text-decoration:none;font-weight:600;border-radius:12px}
  .l-mobile a.nl:hover{background:var(--purple-soft)}
  .l-mobile .btn{justify-content:center;margin-top:6px}
  .hero-grid{grid-template-columns:1fr;padding-top:120px;gap:10px}
  .hero::before{background:linear-gradient(180deg,var(--hero-veil) 0%,var(--hero-veil) 42%,transparent 70%),linear-gradient(0deg,var(--bg) 0%,transparent 22%)}
  .shelf{height:auto;padding-top:20px;margin-bottom:40px}
  .about-grid,.faq{grid-template-columns:1fr;gap:26px}
  .shell{grid-template-columns:1fr;padding-top:10px}
  .side{display:none}
  .mbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 2px 4px}
  .mbar .burger{width:46px;height:46px;border-radius:14px;border:1px solid var(--line-2);background:var(--glass);display:grid;place-items:center;font-size:22px;cursor:pointer}
  .mbar .mark{height:40px}
  .me .who{display:none}
  .me>button{height:52px;padding:0 10px 0 4px}
  .pay-grid,.dna-hero{grid-template-columns:1fr}
  .helix{max-width:200px;grid-row:1}
  .areas{grid-template-columns:1fr}
  .two-col{grid-template-columns:1fr}
}
@media (max-width:760px){
  .pillar-row{grid-template-columns:1fr 1fr;row-gap:30px}
  .pillars .arc{display:none}
  .pillars{margin-top:0}
  .pricing{grid-template-columns:1fr;padding:22px}
  .plan-cards{grid-template-columns:1fr;gap:34px}
  .plan-art{width:64px;height:64px;font-size:30px;right:20px;top:30px;border-radius:18px}
  .reassure{grid-template-columns:1fr;gap:10px}
  .reassure>div+div{border-left:0;border-top:1px solid var(--line);padding-top:16px}
  .support{flex-direction:column;align-items:flex-start}
  .trust{grid-template-columns:repeat(2,1fr);row-gap:18px}
  .row2,.row3{grid-template-columns:1fr}
  .topbar{flex-direction:column-reverse;gap:6px;padding-top:0}
  .top-actions{display:none}
  .greet{margin-top:4px}
  .panel,.next,.dates{padding:22px 18px}
  /* vertical journey */
  .journey-scroll{overflow:visible;margin:0;padding:0}
  .steps{grid-template-columns:1fr;min-width:0;margin-top:20px;gap:6px}
  .steps .track,.steps .fill{display:none}
  .step{text-align:left;padding:0}
  .step>button{flex-direction:row;align-items:center;gap:14px;padding:8px 6px}
  .step .node{width:54px;height:54px;font-size:22px}
  .step .num{position:absolute;left:44px;top:4px;width:22px;height:22px;font-size:.72rem}
  .step:not(:last-child)::after{content:"";position:absolute;left:32px;top:66px;bottom:-10px;width:2px;background:var(--line-2)}
  .step.done:not(:last-child)::after{background:var(--green)}
  .step .txt{display:flex;flex-direction:column}
  .next-body{flex-direction:column;padding:18px;gap:16px}
  .next-ic{width:64px;height:64px;font-size:30px}
  .next .btn{width:100%}
  .dlist li{grid-template-columns:64px 1fr}
  .facts,.strengths{grid-template-columns:1fr}
  .opts.two{grid-template-columns:1fr}
  .mrow{grid-template-columns:1fr 110px;padding:12px}
  .mrow .lvl{grid-column:1/-1;text-align:left;padding:4px 12px;justify-self:start}
  .qnav .btn{flex:1}
  .book{width:62px;--h:250px;padding:16px 0 14px}
  .b10{--h:262px}.b11{--h:256px}.b12{--h:268px}
  .book .t{font-size:1.15rem}
  .book .ic{font-size:26px}
  .bookend{height:100px;width:18px}
}
@media (max-width:760px){
  .l-header{gap:10px;padding:16px}
  .l-header .lockup .mark{height:36px}.l-header .lockup .word{height:24px}
  .l-header .lockup{gap:8px;min-width:0}
  .pricing>*,.plan{min-width:0}
  .permonth{white-space:normal}
}
@media (max-width:359px){ .l-header .lockup .word{display:none} }
@media (max-width:980px){
  .lp-hero{aspect-ratio:auto;min-height:0;max-height:none;flex-direction:column;align-items:stretch;background:linear-gradient(180deg,#0B0921 0%,#130D2E 70%,var(--bg) 100%)}
  :root[data-theme="light"] .lp-hero{background:linear-gradient(180deg,#FFFDF8 0%,#F8F1F8 70%,var(--bg) 100%)}
  .lp-inner{order:1;padding:112px clamp(18px,4vw,40px) 0}
  .lp-copy{max-width:600px}
  .lp-photo{display:block;order:2;position:relative;width:100%;margin-top:28px;height:clamp(260px,52vw,420px);background:var(--sd) 60% 38%/auto 125% no-repeat;
    -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 14%,#000 84%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0%,#000 14%,#000 84%,transparent 100%)}
  :root[data-theme="light"] .lp-photo{background-image:var(--sl)}
  .lp-veil,:root[data-theme="light"] .lp-veil{background:linear-gradient(0deg,var(--bg) 0%,transparent 10%)}
  .lp-journey{margin-top:0}
  .lp-journey{margin-top:0}
  .grades4{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .lp-photo{height:clamp(280px,74vw,360px);margin-top:18px;background-position:58% 40%;background-size:auto 150%}
  .eyebrow::after{display:none} .eyebrow{letter-spacing:.14em}
  .lp-journey .glass{padding:26px 20px}
  .lp-steps{grid-template-columns:1fr;gap:22px}
  .lp-path{top:36px;bottom:36px;left:35px;right:auto;width:2px;height:auto;background:linear-gradient(180deg,rgba(var(--acc-rgb),.85),#F2C46D)}
  .lp-step{flex-direction:row;text-align:left;align-items:center;gap:18px}
  .lp-txt{align-items:flex-start;gap:4px}
  .lp-step p{max-width:none}
}
@media (min-width:761px){ .step .txt{display:contents} }
/* ============================================================
   PUBLIC INFORMATION PAGES — About · Pricing · FAQ · Support
   ============================================================ */
.l-nav a{position:relative}
.l-nav a.on::after{content:"";position:absolute;left:50%;bottom:-9px;width:28px;height:2px;border-radius:2px;transform:translateX(-50%);background:var(--gold);box-shadow:0 0 10px rgba(242,196,109,.7)}
.pub{max-width:1180px;margin:0 auto;padding:0 clamp(18px,4vw,48px)}
.pub-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:40px;align-items:center;padding:clamp(24px,4vw,44px) 0 clamp(28px,4vw,48px)}
.pub-hero.solo{display:block;max-width:760px}
.kicker{color:var(--gold);font-weight:600;font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;display:flex;align-items:center;gap:14px}
.kicker::after{content:"";width:40px;height:1px;background:currentColor;opacity:.8}
.kicker.center{justify-content:center}
.kicker.center::before{content:"";width:40px;height:1px;background:currentColor;opacity:.8}
.pub-hero h1{font-size:clamp(2.5rem,5.2vw,4.3rem);line-height:1.05;margin:18px 0 20px}
.pub-hero h1 .g{display:block;color:var(--gold)}
.pub-hero .lead{color:var(--ink-2);font-size:1.07rem;line-height:1.7;max-width:34em}
.sec-head{text-align:center;margin:clamp(44px,6vw,76px) 0 28px}
.sec-head h2{font-size:clamp(2rem,3.8vw,3rem);margin-top:14px}
.sec-head p{color:var(--ink-2);margin-top:10px;font-size:1.04rem}
.pub-ic{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font-size:24px;flex:none;color:var(--gold);border:1.5px solid rgba(242,196,109,.55);background:radial-gradient(circle at 35% 30%,rgba(var(--acc-rgb),.28),transparent 70%);box-shadow:0 0 22px -8px rgba(242,196,109,.45)}
.pub-ic.v{color:var(--acc-hi);border-color:rgba(var(--acc-rgb),.65);box-shadow:0 0 22px -8px rgba(var(--acc-rgb),.6)}
:root[data-theme="light"] .pub-ic{background:radial-gradient(circle at 35% 30%,#fff,#F3EAFF)}
:root[data-theme="light"] .pub-ic.v{color:var(--purple)}

/* About — hero path */
.pathart{width:100%;max-width:560px;justify-self:end;overflow:visible}
.pathart .hill1{fill:rgba(var(--acc2-rgb),.16)} .pathart .hill2{fill:rgba(var(--acc2-rgb),.10)}
.pathart .tag rect{fill:var(--glass-2);stroke:rgba(242,196,109,.65);stroke-width:1}
.pathart .tag .t1{fill:var(--ink);font:600 15px var(--font-body)}
.pathart .tag .t2{fill:var(--ink-2);font:400 11.5px var(--font-body)}
.pathart .ic{fill:none;stroke:var(--gold);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pathart .road{fill:none;stroke:url(#roadg);stroke-width:5;stroke-linecap:round;filter:drop-shadow(0 0 8px rgba(242,196,109,.6))}
.pathart .stem{stroke:rgba(242,196,109,.7);stroke-width:1.2}
.pathart .dot{fill:#F2C46D}
/* About — grade cards */
.gcard{margin-bottom:14px;border-radius:24px;overflow:hidden;transition:box-shadow .25s,border-color .25s}
.gcard.open{border-color:rgba(var(--acc-rgb),.55);box-shadow:var(--shadow),0 0 60px -26px rgba(var(--acc-rgb),.75)}
.ghead{all:unset;box-sizing:border-box;width:100%;display:grid;grid-template-columns:auto auto minmax(0,.9fr) minmax(0,1.3fr) auto;gap:20px;align-items:center;padding:18px 24px;cursor:pointer}
.ghead:focus-visible{outline:2px solid var(--gold);outline-offset:-4px;border-radius:24px}
.gnum{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;font-weight:600;font-size:.95rem;color:var(--ink);border:1px solid rgba(242,196,109,.55)}
.gtitle h3{font-size:clamp(1.5rem,2.4vw,1.9rem)}
.gtitle span{color:var(--ink-2);font-size:1rem}
.gsum{color:var(--ink-2);font-size:.95rem;line-height:1.55}
.gcard.open .gsum{visibility:hidden}
.gtog{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:20px;color:var(--purple);border:1.5px solid rgba(var(--acc-rgb),.7)}
:root[data-theme="dark"] .gtog{color:var(--acc-hi)}
.gbody{display:none;grid-template-columns:1fr 1fr;gap:36px;padding:6px 32px 30px}
.gcard.open .gbody{display:grid}
.gbody h4{font-family:var(--font-body);font-weight:600;font-size:1.04rem;color:var(--gold);margin:0 0 10px}
.gbody p{color:var(--ink-2);line-height:1.65}
.helps{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:8px}
.helps li{display:flex;gap:10px;color:var(--ink-2);font-size:.96rem}
.helps li .i{color:var(--green);margin-top:4px}
.why{margin-top:18px;padding:18px;border-radius:16px;display:flex;gap:14px;align-items:flex-start}
.why .pub-ic{width:44px;height:44px;font-size:20px}
.why b{display:block;color:var(--gold);font-weight:600;margin-bottom:4px}
.why p{font-size:.92rem}
.gright{border-left:1px solid var(--line);padding-left:36px}
.uplist{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:12px}
.uplist li{display:flex;gap:14px;align-items:center;color:var(--ink-2);font-size:.94rem}
.uplist .pub-ic{width:40px;height:40px;font-size:18px}
.bigpic{margin:clamp(28px,4vw,44px) 0 0;padding:clamp(24px,3.4vw,40px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:32px;align-items:center}
.bigpic h2{font-size:clamp(1.9rem,3.2vw,2.6rem);margin:12px 0 12px}
.bigpic p{color:var(--ink-2);line-height:1.65}
.stages{list-style:none;margin:0;padding:0;display:flex;justify-content:space-between;align-items:flex-start;gap:6px}
.stages li{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;flex:1}
.stages li b{font-weight:600}
.stages li small{color:var(--gold);font-size:.84rem}
.stages .arr{flex:0 0 auto;margin-top:22px;color:var(--gold);opacity:.7;font-size:16px}

/* Pricing */
.pub .plan-cards{max-width:960px;margin:0 auto}
.worth{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.wcard{padding:26px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}
.wcard h3{font-family:var(--font-body);font-weight:600;font-size:1.08rem;color:var(--gold)}
.wcard p{color:var(--ink-2);font-size:.94rem;line-height:1.55;max-width:26em}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.duo .glass{padding:clamp(24px,3vw,34px)}
.duo h2{font-size:clamp(1.8rem,2.8vw,2.3rem);margin:12px 0 12px}
.duo p{color:var(--ink-2);line-height:1.65}
.anywhere{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center}
.gpins{list-style:none;margin:0;padding:0 0 0 6px;display:flex;flex-direction:column-reverse;gap:14px;position:relative}
.gpins::before{content:"";position:absolute;left:17px;top:14px;bottom:14px;width:2px;background:linear-gradient(0deg,rgba(var(--acc-rgb),.8),#F2C46D);box-shadow:0 0 10px rgba(242,196,109,.45)}
.gpins li{position:relative;display:flex;align-items:center;gap:12px}
.gpins .pin{position:relative;z-index:1;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--bg);border:2px solid #C37BFF;color:#C37BFF;font-size:12px}
.gpins li:last-child .pin{border-color:#F2C46D;color:#F2C46D}
.gpins b{display:block;font-size:.95rem;font-weight:600}
.gpins small{color:var(--muted);font-size:.8rem}
.journey1{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center}
.ring{width:120px;height:120px;border-radius:50%;display:grid;place-items:center;font-size:44px;color:var(--gold);border:3px solid transparent;background:linear-gradient(var(--bg),var(--bg)) padding-box,conic-gradient(var(--acc),#F2C46D,var(--acc)) border-box;box-shadow:0 0 40px -12px rgba(var(--acc-rgb),.8)}

/* FAQ */
.fsearch{position:relative;max-width:520px;margin-top:26px}
.fsearch .i{position:absolute;left:18px;top:50%;transform:translateY(-50%);font-size:20px;color:var(--muted)}
.fsearch input{width:100%;min-height:56px;border-radius:999px;border:1.5px solid rgba(var(--acc-rgb),.55);background:var(--glass);color:var(--ink);font:inherit;padding:0 20px 0 52px;box-shadow:0 0 30px -16px rgba(var(--acc-rgb),.8)}
.fsearch input:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 4px var(--purple-soft)}
.fcats{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:18px}
.fcat{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:96px;padding:14px 10px;border-radius:16px;border:1px solid var(--line-2);background:var(--glass);color:var(--ink);cursor:pointer;font-size:.88rem;font-weight:500;text-align:center;line-height:1.3;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.fcat .i{font-size:26px;color:var(--acc-hi)}
:root[data-theme="light"] .fcat .i{color:var(--purple)}
.fcat.on{border-color:rgba(242,196,109,.8);box-shadow:0 0 30px -10px rgba(242,196,109,.6);color:var(--gold)}
.fcat.on .i{color:var(--gold)}
.fsec{border-radius:20px;margin-bottom:12px}
.fsec-h{all:unset;box-sizing:border-box;width:100%;display:flex;align-items:center;gap:16px;padding:18px 24px;cursor:pointer}
.fsec-h:focus-visible{outline:2px solid var(--gold);outline-offset:-4px;border-radius:20px}
.fsec-h .ci{font-size:26px;color:var(--gold)}
.fsec-h h2{font-size:clamp(1.3rem,2.2vw,1.65rem);flex:1}
.fsec-h .cnt{color:var(--muted);font-size:.9rem}
.fsec-h .chev{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;border:1.5px solid rgba(var(--acc-rgb),.7);color:var(--acc-hi);transition:transform .2s}
:root[data-theme="light"] .fsec-h .chev{color:var(--purple)}
.fsec.open .fsec-h .chev{transform:rotate(180deg)}
.fsec-b{display:none;padding:0 20px 20px}
.fsec.open .fsec-b{display:block}
.fq{border:1px solid var(--line-2);border-radius:14px;background:var(--glass-inner);margin-top:10px;transition:border-color .2s,box-shadow .2s}
.fq.open{border-color:rgba(242,196,109,.7);box-shadow:0 0 26px -12px rgba(242,196,109,.55)}
.fq button{all:unset;box-sizing:border-box;width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:15px 18px;cursor:pointer;font-weight:600;font-size:.99rem}
.fq button:focus-visible{outline:2px solid var(--gold);outline-offset:-3px;border-radius:14px}
.fq .pm{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;border:1.5px solid rgba(var(--acc-rgb),.7);color:var(--acc-hi);font-size:16px}
:root[data-theme="light"] .fq .pm{color:var(--purple)}
.fq.open .pm{border-color:var(--gold);color:var(--gold)}
.fq .ans{display:none;margin:0 18px;padding:12px 0 16px;border-top:1px solid var(--line);color:var(--ink-2);line-height:1.65}
.fq.open .ans{display:block}
.fempty{padding:30px;text-align:center;color:var(--ink-2)}
.needhelp{margin-top:28px;padding:clamp(22px,3vw,34px);display:flex;align-items:center;gap:28px}
.needhelp .big{width:96px;height:96px;font-size:40px}
.needhelp h2{font-size:clamp(1.7rem,2.8vw,2.3rem);margin:8px 0 6px}
.needhelp p{color:var(--ink-2)}
.needhelp .btn{margin-left:auto}

/* Support */
.sopts{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.sopt{padding:24px;display:flex;flex-direction:column;gap:12px}
.sopt h3{font-family:var(--font-body);font-weight:600;font-size:1.1rem;color:var(--gold)}
.sopt .hw{font-size:.86rem;color:var(--muted)}
.sopt ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.sopt li{display:flex;gap:8px;font-size:.93rem;color:var(--ink-2)}
.sopt li .i{color:var(--green);margin-top:4px}
.sopt .btn{margin-top:auto;white-space:normal;text-align:center;min-height:44px;line-height:1.25;padding:8px 14px}
.sform{margin-top:16px;padding:clamp(24px,3.4vw,40px);display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:36px}
.sform h2{font-size:clamp(1.8rem,3vw,2.4rem);margin:12px 0 10px}
.sform .sside p{color:var(--ink-2);line-height:1.65}
.sform .sside .hint{margin-top:14px}
.sform form{display:grid;gap:16px}
.sent{text-align:center;padding:30px 10px}
.sent .tickbig{width:72px;height:72px;margin:0 auto 16px;border-radius:50%;display:grid;place-items:center;font-size:34px;background:var(--green-soft);color:var(--green);border:1px solid rgba(91,214,138,.5)}
.sent h3{font-size:1.8rem}
.sent p{color:var(--ink-2);margin-top:8px}

/* Footer */
.pub-foot{margin-top:clamp(56px,7vw,90px);border-top:1px solid var(--line);padding:28px clamp(18px,4vw,48px) 40px}
.pub-foot .in{max-width:1180px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.pub-foot .lockup .mark{height:40px}.pub-foot .lockup .word{height:28px;filter:var(--word-filter)}
.pub-foot nav{display:flex;gap:22px;flex-wrap:wrap}
.pub-foot nav a{text-decoration:none;color:var(--ink-2);font-size:.93rem}
.pub-foot nav a:hover,.pub-foot nav a.on{color:var(--gold)}
.pub-foot small{color:var(--muted);font-size:.85rem}

@media (max-width:1100px){
  .sopts{grid-template-columns:1fr 1fr}
  .fcats{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:980px){
  .pub-hero{grid-template-columns:1fr}
  .pathart{justify-self:center;max-width:520px}
  .ghead{grid-template-columns:auto minmax(0,1fr) auto;row-gap:10px}
  .ghead .gicon{display:none}
  .gsum{grid-column:1/-1;grid-row:2}
  .gcard.open .gsum{display:none}
  .gbody{grid-template-columns:1fr;gap:22px;padding:4px 22px 24px}
  .gright{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:22px}
  .bigpic,.sform,.duo{grid-template-columns:1fr}
  .worth{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .ghead{padding:16px 16px;gap:14px}
  .gnum{width:40px;height:40px}
  .worth,.sopts{grid-template-columns:1fr}
  .fcats{display:flex;overflow-x:auto;gap:10px;margin:0 -18px 16px;padding:4px 18px 8px;scroll-snap-type:x mandatory;scroll-padding-left:18px;scrollbar-width:none}
  .fcats::-webkit-scrollbar{display:none}
  .fcat{flex:0 0 132px;min-height:84px;scroll-snap-align:start}
  .fsec-h{padding:16px;gap:12px}
  .fsec-h .cnt{display:none}
  .fsec-b{padding:0 12px 14px}
  .needhelp{flex-direction:column;align-items:flex-start;gap:16px}
  .needhelp .btn{margin-left:0;width:100%}
  .stages .arr{display:none}
  .stages{flex-wrap:wrap;row-gap:18px}
  .stages li{flex:0 0 45%}
  .anywhere,.journey1{grid-template-columns:1fr}
  .ring{width:96px;height:96px;font-size:36px}
  .pub-foot .in{flex-direction:column;align-items:flex-start}
}
/* ============================================================
   ASSESSMENTS · MY ASSESSMENT · PATHWAY DNA
   ============================================================ */
.focus-wrap.wide{max-width:1080px}
.subttl{display:block;font-weight:500;font-size:.8rem;color:var(--muted)}
.mfrac{display:inline-flex;flex-direction:column;align-items:stretch;vertical-align:middle;margin:0 .18em;font-size:.86em;line-height:1.12;text-align:center;font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.mfrac .fr-num,.mfrac .fr-den{display:block;padding:0 .22em}
.mfrac .fr-num{border-bottom:max(1.5px,.07em) solid currentColor;padding-bottom:.08em}
.mfrac .fr-den{padding-top:.1em}
.qtext .mfrac{font-size:.8em;margin:0 .22em}
.opt .mfrac,.otxt .mfrac,.myans .mfrac{font-size:1.1em}
.fraction-hint{display:flex;align-items:flex-start;gap:8px;margin-top:10px;font-size:.9rem;color:var(--muted);line-height:1.9}.fraction-hint>.i{flex:none;margin-top:.45em}.fraction-hint>span{flex:1}
.fraction-hint .mfrac{color:var(--ink);font-size:1.05em}
.fraction-hint code{font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--ink-2);background:var(--glass-inner);border:1px solid var(--line);border-radius:6px;padding:1px 6px}
.ahead h1{font-size:clamp(2.1rem,4vw,3rem)}
.ahead p{color:var(--ink-2);margin-top:10px;max-width:46em;line-height:1.65}
.aprog{margin-top:18px;display:grid;gap:8px;max-width:520px}
.aprog span{font-size:.92rem;color:var(--ink-2);font-weight:500}
.aprog .bar,.qprog .bar{height:6px;border-radius:6px;background:var(--line-2);overflow:hidden}
.aprog .bar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--green),var(--gold))}
.agrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:22px;margin-top:26px;align-items:start}
.slist{list-style:none;margin:0;padding:10px}
.srow{display:flex;align-items:center;gap:14px;padding:12px 12px;border-radius:14px}
.srow+.srow{border-top:1px solid var(--line)}
.snum{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:.9rem;border:1.5px solid var(--line-2);color:var(--muted)}
.srow.done .snum{background:var(--green-soft);border-color:rgba(91,214,138,.6);color:var(--green)}
.srow.next .snum{background:linear-gradient(160deg,var(--btn-a),var(--btn-b));border:0;color:var(--btn-ink);box-shadow:0 0 18px -4px rgba(var(--acc2-rgb),.8)}
.srow.next{background:var(--purple-soft)}
.srow.later{opacity:.7}
.stxt{flex:1;min-width:0}.stxt b{display:block;font-weight:600;font-size:.95rem}.stxt small{color:var(--muted);font-size:.82rem}
.sstat{font-size:.8rem;font-weight:600;color:var(--muted)}
.srow.done .sstat{color:var(--green)}.srow.next .sstat{color:var(--gold)}
.prestart{padding:clamp(22px,3vw,32px);position:sticky;top:20px}
.prestart h2{font-size:clamp(1.5rem,2.4vw,2rem);margin:10px 0 8px}
.prestart .lead2{color:var(--ink-2)}
.rules{list-style:none;margin:18px 0 22px;padding:0;display:grid;gap:12px}
.rules li{display:flex;gap:12px;align-items:flex-start;color:var(--ink-2);font-size:.95rem}
.rules .i{flex:none;font-size:18px;color:var(--gold);margin-top:3px}
.kicker2{font-size:.8rem;font-weight:600;color:var(--muted);letter-spacing:.02em}
.qtext{font-size:clamp(1.35rem,2.6vw,1.9rem)!important;line-height:1.3!important;margin-top:10px}
.ask{margin-top:16px;font-size:1.08rem;font-weight:600;color:var(--ink)}
.src-table{margin-top:16px;overflow-x:auto;border-radius:14px;border:1px solid var(--line-2)}
.src-table table{border-collapse:collapse;width:100%;min-width:320px;font-variant-numeric:tabular-nums}
.src-table th,.src-table td{padding:10px 14px;text-align:center;border-bottom:1px solid var(--line);font-size:.95rem}
.src-table th{background:var(--purple-soft);font-weight:600;text-align:left}
.src-table tr:last-child>*{border-bottom:0}
.src-quote{margin:16px 0 0;padding:16px 20px;border-left:3px solid var(--gold);background:var(--glass-inner);border-radius:0 14px 14px 0;font-family:var(--font-display);font-size:1.12rem;line-height:1.5}
.src-quote cite{display:block;margin-top:8px;font-family:var(--font-body);font-style:normal;font-size:.86rem;color:var(--muted)}
.src-steps{margin-top:16px;display:grid;gap:8px;padding:14px 18px;border-radius:14px;background:var(--glass-inner);border:1px solid var(--line-2);font-variant-numeric:tabular-nums}
.netfig{margin-top:16px;display:flex;justify-content:center}
.netfig svg{width:min(260px,70vw)}
.netfig rect{fill:var(--purple-soft);stroke:var(--purple);stroke-width:1.5}
.netfig text{fill:var(--ink);font:600 18px var(--font-body);text-anchor:middle}
.ansrow{display:flex;align-items:center;gap:10px;margin-top:18px;max-width:420px}
.field .ansrow{margin-top:0}
.ansinput{font-size:1.1rem!important;font-variant-numeric:tabular-nums}
.unit{font-weight:600;color:var(--ink-2)}
.olist{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:10px}
.olist li{display:flex;align-items:center;gap:12px;padding:10px 12px 10px 14px;border-radius:14px}
.onum{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:.85rem;font-weight:700;background:var(--purple-soft);color:var(--purple)}
:root[data-theme="dark"] .onum{color:var(--acc-hi)}
.otxt{flex:1;font-weight:500}
.obtns{display:flex;gap:6px}
.ob{width:40px;height:40px;border-radius:12px;border:1px solid var(--line-2);background:var(--glass);display:grid;place-items:center;cursor:pointer;font-size:18px;color:var(--ink)}
.ob:disabled{opacity:.3;cursor:default}
.ob .up{transform:rotate(180deg)}
.mlist{display:grid;gap:10px;margin-top:18px}
.mitem{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:14px;align-items:center;padding:12px 14px;border-radius:14px}
.mitem label{font-weight:500}
.timer{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--line-2);background:var(--glass);font-weight:600;font-variant-numeric:tabular-nums;font-size:.95rem}
.timer .i{color:var(--muted)}
.timer.low{border-color:rgba(242,196,109,.7);color:var(--gold)}
.timer.over{border-color:var(--line-2);color:var(--muted)}
.timeup{display:none;align-items:center;gap:10px;margin-bottom:14px;padding:12px 16px;border-radius:14px;border:1px solid rgba(242,196,109,.55);background:rgba(242,196,109,.1);font-weight:500}
.timeup.show{display:flex}
.timeup .i{color:var(--gold);font-size:18px}
.hint.center{text-align:center}
.confirm{margin-top:18px;padding:16px 18px;border-radius:14px;border-color:rgba(242,196,109,.5)}
.confirm p{color:var(--ink-2)}
.lockcard{text-align:center}
.lockcard .qhint{max-width:34em;margin-left:auto;margin-right:auto}
.lockcard .actions{justify-content:center}
.lockic{width:64px;height:64px;margin:0 auto 16px;border-radius:50%;display:grid;place-items:center;font-size:28px;color:var(--gold);border:1px solid rgba(242,196,109,.5);background:rgba(242,196,109,.08)}
.tickinline{color:var(--green);vertical-align:-.1em}
.done-card .aprog{margin:18px 0 0}
/* career picker */
.cres{display:grid;gap:8px;margin-top:10px;max-height:360px;overflow:auto;padding:2px}
.cpick{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:12px 16px;border-radius:14px;border:1px solid var(--line-2);background:var(--glass-inner)}
.cpick:hover,.cpick:focus-visible{border-color:var(--purple);background:var(--purple-soft)}
.cpick b{font-weight:600}.cpick small{color:var(--muted);font-size:.82rem}
.cpick.ghost{border-style:dashed}
.picked{display:flex;align-items:center;gap:14px;margin-top:16px;padding:14px 18px;border-radius:14px;border-color:rgba(242,196,109,.55)}
.picked .i{font-size:22px;color:var(--gold)}
.picked div{flex:1}.picked b{display:block;font-size:1.05rem}.picked small{color:var(--muted);font-size:.82rem;display:block}
.reassure-note{display:flex;gap:12px;align-items:flex-start;margin-top:16px;padding:16px 18px;border-radius:14px;border-color:rgba(91,214,138,.45)}
.reassure-note .i{color:var(--green);font-size:20px;margin-top:2px}
/* my assessment */
.msteps{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:10px;max-width:880px}
.mstep{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:18px;align-items:center;padding:20px 22px}
.mnum{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-weight:700;border:1.5px solid var(--line-2)}
.mtxt h3{font-size:1.45rem}.mtxt p{color:var(--ink-2);font-size:.95rem;margin-top:2px}.mtxt small{color:var(--muted);font-size:.84rem}
.mstat{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:.9rem;white-space:nowrap}
.sico{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:.9rem}
.st-done .mnum{background:var(--green-soft);border-color:rgba(91,214,138,.6);color:var(--green)}
.st-done .mstat{color:var(--green)}.st-done .sico{background:var(--green-soft)}
.st-prog{border-color:rgba(var(--acc-rgb),.5)}.st-prog .mnum{background:linear-gradient(160deg,var(--btn-a),var(--btn-b));border:0;color:var(--btn-ink)}
.st-prog .mstat{color:var(--acc-hi)}:root[data-theme="light"] .st-prog .mstat{color:var(--purple)}
.st-new .mnum{border-color:rgba(242,196,109,.6);color:var(--gold)}.st-new .mstat{color:var(--gold)}
.st-lock{opacity:.7}.st-lock .mstat{color:var(--muted)}
.lockmsg{font-size:.86rem;color:var(--muted)}
.marrow{display:flex;justify-content:center;color:var(--muted);font-size:18px;max-width:880px}
.dnaready{margin-top:22px;max-width:880px;padding:22px 24px;display:flex;gap:18px;align-items:center;border-color:rgba(242,196,109,.6)!important;box-shadow:var(--shadow),0 0 40px -18px rgba(242,196,109,.6)!important}
.dnaready h2{font-size:1.6rem}.dnaready p{color:var(--ink-2)}.dnaready .btn{margin-left:auto}
.nav a.on2{background:var(--purple-soft);color:var(--ink)}
/* DNA build */
.dnabuild{padding:clamp(28px,4vw,48px);text-align:center}
.dnabuild h1{font-size:clamp(1.8rem,3.4vw,2.6rem);margin:12px 0 22px}.dnabuild .stages2{margin-top:24px}
.dnapulse{width:150px;margin:0 auto 8px;animation:dpulse 2.2s ease-in-out infinite;filter:drop-shadow(0 0 18px rgba(var(--acc-rgb),.5))}
.dnapulse.lit{animation:none;filter:drop-shadow(0 0 28px rgba(242,196,109,.7))}
@keyframes dpulse{0%,100%{opacity:.55;transform:scale(.97)}50%{opacity:1;transform:scale(1.02)}}
.stages2{list-style:none;margin:0 auto;padding:0;display:grid;gap:10px;max-width:420px;text-align:left}
.stages2 li{display:flex;align-items:center;gap:12px;color:var(--muted);transition:color .3s}
.stages2 .sdot{flex:none;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:13px;border:1.5px solid var(--line-2)}
.stages2 li.now{color:var(--ink)}.stages2 li.now .sdot{border-color:var(--purple);box-shadow:0 0 12px rgba(var(--acc-rgb),.8);animation:dpulse 1.2s infinite}
.stages2 li.ok{color:var(--ink-2)}.stages2 li.ok .sdot{background:var(--green-soft);border-color:rgba(91,214,138,.6);color:var(--green)}
.bdone{margin-top:24px;min-height:52px}
/* DNA page */
details.xpand{margin-top:16px;border-radius:16px;border:1px solid var(--line-2);background:var(--glass-inner)}
details.xpand.solo{margin-top:24px;border-radius:26px}
details.xpand summary{list-style:none;cursor:pointer;padding:14px 18px;font-weight:600;display:flex;justify-content:space-between;align-items:center;gap:12px}
details.xpand summary::-webkit-details-marker{display:none}
details.xpand summary .i{transition:transform .2s;color:var(--muted)}
details.xpand[open] summary .i{transform:rotate(180deg)}
.whyb{padding:0 18px 16px;display:grid;gap:10px;color:var(--ink-2);line-height:1.65}
.also{margin-top:14px;color:var(--ink-2);display:flex;gap:10px;align-items:flex-start}
.also .i{color:var(--gold);margin-top:4px;flex:none}
.electives{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:20px}
.ecard{padding:20px;border-radius:18px;position:relative}
.ecard h3{font-size:1.35rem;margin:10px 0 8px;padding-right:10px}
.ecard p{color:var(--ink-2);font-size:.93rem;line-height:1.6}
.enum{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:.9rem;color:#241040;background:linear-gradient(180deg,#F8D993,#EAB24F)}
.cgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
.cbox{padding:18px 20px;border-radius:16px}
.cbox h3{font-family:var(--font-body);font-size:1rem;font-weight:600;color:var(--gold);margin-bottom:8px}
.cbox p{color:var(--ink-2);line-height:1.6;font-size:.95rem}
.cbox.ok{border-color:rgba(91,214,138,.45)}.cbox.grow{border-color:rgba(242,196,109,.45)}
.cbox.grow .plist li .i{color:var(--gold)}
.rlist{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.rlist li{display:flex;justify-content:space-between;gap:12px;font-size:.95rem;color:var(--ink-2);padding-bottom:6px;border-bottom:1px solid var(--line)}
.rlist b{color:var(--ink)}
.discover{margin-top:16px;padding:18px 20px;border-radius:16px;border-color:rgba(var(--acc-rgb),.5)}
.discover p{color:var(--ink-2);margin-top:8px;line-height:1.6}
.plist.big li{font-size:1rem}
@media (max-width:980px){ .agrid{grid-template-columns:1fr} .electives{grid-template-columns:1fr} .cgrid{grid-template-columns:1fr} }
@media (max-width:760px){
  .mstep{grid-template-columns:auto minmax(0,1fr);row-gap:10px;padding:16px}
  .mstat,.mact{grid-column:2}
  .mitem{grid-template-columns:1fr;gap:8px}
  .dnaready{flex-direction:column;align-items:flex-start}.dnaready .btn{margin-left:0;width:100%}
  .focus-top .subttl{display:none}
  .focus-top .ttl{font-size:.92rem;line-height:1.25}
  .timer{height:36px;padding:0 10px}
}
.guidenote{display:flex;gap:12px;align-items:flex-start;margin-top:18px;padding:16px 18px;border-radius:16px;border:1px solid rgba(242,196,109,.5);background:rgba(242,196,109,.08)}
.guidenote .i{flex:none;color:var(--gold);font-size:20px;margin-top:3px}
.guidenote p{margin:0!important;font-size:.98rem!important;color:var(--ink-2)}
.dna-sec.updated{border-color:rgba(91,214,138,.45)}
.dna-sec.updated .plist .i{color:var(--green)}
.rtable{margin-top:18px}
.rtable th:first-child{min-width:180px}.rtable tr:first-child th:not(:first-child){text-align:center}
.ttabs{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0 4px}
.ttab{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 16px;border-radius:999px;border:1px solid var(--line-2);background:var(--glass-inner);font-weight:600;font-size:.9rem;cursor:pointer;color:var(--ink)}
.ttab.on{border-color:var(--purple);background:var(--purple-soft);box-shadow:0 0 0 3px rgba(var(--acc2-rgb),.12)}
.ttab.done .i{color:var(--green)}
.ttab:disabled{opacity:.5;cursor:not-allowed}
.ansec{margin-top:22px;padding:clamp(20px,3vw,30px)}
.ansec{padding:0!important}.ansec>summary{font-family:var(--font-display);font-size:clamp(1.3rem,2.2vw,1.7rem);padding:20px 24px!important}.ansec .qcnt{font-family:var(--font-body);font-size:.85rem;color:var(--muted);margin-left:8px}.ansbody{padding:0 22px 22px}
.ansq{margin-top:14px;padding:18px 20px;border-radius:16px}
.ansqq{margin-top:6px;font-weight:600;line-height:1.5}
.myans{margin-top:14px;padding:12px 16px;border-radius:12px;border-left:3px solid var(--purple);background:var(--purple-soft)}
.myans>small{display:block;font-size:.78rem;font-weight:600;color:var(--muted);margin-bottom:4px;letter-spacing:.02em}
.noans{color:var(--muted);font-style:italic}
.unitmute{color:var(--muted)}
.mywork{margin-top:10px}.mywork small{color:var(--muted);font-size:.78rem;font-weight:600}.mywork p{margin-top:4px;color:var(--ink-2)}
.mytext{margin:0;color:var(--ink)}
.myorder,.mymatch{margin:0;padding-left:20px;display:grid;gap:4px}
.mymatch{list-style:none;padding-left:0}.mymatch li{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.mymatch .i{color:var(--muted)}
.mact{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.answersoon{font-size:.82rem;color:var(--muted)}
/* grade identity components */
.chip.grade{border-color:rgba(var(--acc-rgb),.5);background:var(--purple-soft);color:var(--purple)}
:root[data-theme="dark"] .chip.grade{color:var(--acc-hi)}
.chapter{margin-top:26px;padding:clamp(22px,3vw,34px)}
.chapter h2{font-size:clamp(1.8rem,3vw,2.5rem);margin:10px 0 8px}
.chapter .lead{color:var(--ink-2);max-width:44em}
.gribbon{list-style:none;margin:24px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);position:relative}
.gribbon::before{content:"";position:absolute;top:17px;left:12.5%;right:12.5%;height:2px;background:linear-gradient(90deg,#9B6BFF,#3DD68C,#EF5A7A,#E9B94F);opacity:.55;border-radius:2px}
.gstage{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}
.gdot{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:16px;background:var(--bg);border:2px solid var(--sw);color:var(--sw);position:relative;z-index:1}
.gstage.now .gdot{background:var(--sw);color:var(--bg);box-shadow:0 0 0 5px color-mix(in srgb,var(--sw) 25%,transparent),0 0 24px var(--sw)}
.gstage.ahead,.gstage.before{opacity:.55}
.gstage b{font-weight:600;font-size:.95rem;margin-top:6px}
.gstage small{color:var(--muted);font-size:.82rem}
.gstage em{font-style:normal;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gold)}
.empty{display:flex;gap:16px;align-items:flex-start;margin-top:18px;padding:20px;border-radius:18px}
.empty h3{font-size:1.3rem}.empty p{color:var(--ink-2);margin-top:6px}
.histlist{display:grid;gap:10px;margin-top:16px}
.hitem{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:14px;text-decoration:none}
.hitem:hover{border-color:rgba(var(--acc-rgb),.6)}
.hitem .pub-ic{width:42px;height:42px;font-size:19px}
.hitem span:nth-child(2){flex:1}.hitem b{display:block;font-weight:600}.hitem small{color:var(--muted);font-size:.85rem}
.hitem>.i{color:var(--muted)}
.gpick{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:26px;max-width:980px}
.gopt{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:6px;padding:22px;border-radius:22px;position:relative}
.gopt .gsw{width:44px;height:44px;border-radius:14px;background:linear-gradient(145deg,var(--sw),var(--sw2));box-shadow:0 8px 20px -8px var(--sw);margin-bottom:6px}
.gopt b{font-family:var(--font-display);font-size:1.4rem;font-weight:500}.gopt small{color:var(--muted)}
.gopt em{position:absolute;top:16px;right:16px;font-style:normal;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gold)}
.gopt.on,.gopt.sel{border-color:var(--sw)!important;box-shadow:var(--shadow),0 0 36px -14px var(--sw)!important}
.gopt:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.gconf{margin-top:18px;max-width:980px;padding:20px 24px}
.gconf p{color:var(--ink-2)}.gconf .actions{margin-top:14px}
@media (max-width:760px){ .gpick{grid-template-columns:1fr 1fr} .gribbon small{display:none} .gstage b{font-size:.8rem} }
.infogrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:26px;max-width:1100px}
.infocard{padding:clamp(20px,2.6vw,28px)}
.infocard.wide{grid-column:1/-1}
.infocard h2{font-size:clamp(1.4rem,2.2vw,1.8rem);margin:10px 0 12px}
.infocard p{color:var(--ink-2);line-height:1.65}.infocard p+p{margin-top:10px}
.rulelist{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.rulelist li{display:flex;gap:10px;color:var(--ink-2);font-size:.95rem;line-height:1.5}
.rulelist .i{flex:none;color:var(--acc);margin-top:4px}
.howsteps{margin:0;padding:0;list-style:none;counter-reset:hs;display:grid;gap:12px}
.howsteps li{counter-increment:hs;display:grid;grid-template-columns:32px 1fr;column-gap:12px;align-items:start}
.howsteps li::before{content:counter(hs);grid-row:span 2;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:.85rem;background:var(--purple-soft);color:var(--purple)}
.howsteps b{font-weight:600}.howsteps span{color:var(--muted);font-size:.9rem}
.msteps{max-width:1100px}.marrow{max-width:1100px}
.mact{flex-direction:column;align-items:flex-end;gap:6px}
.mact .answersoon{max-width:220px;text-align:right}
.arules{margin-top:22px}
@media (max-width:980px){ .infogrid{grid-template-columns:1fr} .mact{align-items:flex-start} .mact .answersoon{text-align:left} }
/* ============ My Results + Pathway DNA stages ============ */
:root{--ok:#2E9E62;--ok-soft:rgba(46,158,98,.12);--info:#2F6FDB;--info-soft:rgba(47,111,219,.1);--warn:#B07E22;--warn-soft:rgba(201,146,46,.14);--attn:#C0355E}
:root[data-theme="dark"]{--ok:#5BD68A;--ok-soft:rgba(91,214,138,.14);--info:#7AB0FF;--info-soft:rgba(122,176,255,.12);--warn:#F2C46D;--warn-soft:rgba(242,196,109,.14);--attn:#E0719B}
.schip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border-radius:999px;font-size:.8rem;font-weight:600;white-space:nowrap;border:1px solid transparent}
.schip .i{font-size:13px}
.schip.ok{background:var(--ok-soft);color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,transparent)}
.schip.blue{background:var(--info-soft);color:var(--info);border-color:color-mix(in srgb,var(--info) 35%,transparent)}
.schip.warn{background:var(--warn-soft);color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,transparent)}
.schip.mute{background:var(--purple-soft);color:var(--muted);border-color:var(--line)}
.schip.dna{background:var(--purple-soft);color:var(--purple);border-color:rgba(var(--acc-rgb),.45)}
:root[data-theme="dark"] .schip.dna{color:var(--acc-hi)}
.schip.pulse{animation:dpulse 1.8s ease-in-out infinite}
.infonote{display:flex;gap:10px;align-items:flex-start;margin-top:16px;padding:14px 16px;border-radius:14px;border-color:color-mix(in srgb,var(--info) 35%,transparent)!important;background:var(--info-soft)!important;color:var(--ink-2);font-size:.92rem}
.infonote>.i{flex:none;color:var(--info);font-size:18px;margin-top:1px}
.glass.infonote{max-width:1100px}
.warnnote{display:flex;gap:10px;align-items:flex-start;margin-top:16px;padding:14px 16px;border-radius:14px;border:1px solid color-mix(in srgb,var(--warn) 45%,transparent);background:var(--warn-soft);color:var(--ink-2);font-size:.93rem}
.warnnote>.i{flex:none;color:var(--warn);font-size:18px;margin-top:2px}
.rslist{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:10px;max-width:1100px}
.rsrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:16px;align-items:center;padding:18px 20px}
.rsrow h3{font-size:1.3rem}.rsrow small{color:var(--muted);font-size:.85rem}
.rsrow.locked{opacity:.7}.rsrow.confirmed .pub-ic{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 50%,transparent)}
.dnahead{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;align-items:center}
.dnahead .greet{display:flex;align-items:center;gap:12px}.dnahead .greet .i{color:var(--acc)}
.headhelix{width:110px;height:110px;filter:drop-shadow(0 0 16px rgba(var(--acc-rgb),.45))}
.infocard2{display:flex;gap:14px;align-items:flex-start;margin-top:18px;padding:20px 22px;max-width:1100px}
.infocard2>.i{flex:none;font-size:22px;color:var(--acc);margin-top:2px}
.infocard2 p{color:var(--ink-2);line-height:1.6}.infocard2 p+p{margin-top:8px}
.dnanow{margin-top:18px;padding:22px 24px;max-width:1100px}
.dnanow h2{font-size:1.6rem;margin:8px 0 14px}
.nowgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}
.nowc{padding:14px 16px;border-radius:14px}.nowc small{color:var(--muted);font-size:.8rem;display:block}.nowc b{font-weight:600}
.dnajourney{margin-top:28px;max-width:1100px}
.dnajourney h2{font-size:clamp(1.6rem,2.6vw,2.1rem)}.dnajourney .sub{color:var(--muted);margin-top:4px}
.dstages{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:10px;position:relative}
.dstages::before{content:"";position:absolute;left:32px;top:24px;bottom:24px;width:2px;background:linear-gradient(180deg,rgba(var(--acc-rgb),.7),rgba(var(--acc-rgb),.12))}
.dstage{position:relative;display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:18px;text-decoration:none;background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.dstage:hover{border-color:rgba(var(--acc-rgb),.5)}
.dico{position:relative;z-index:1;flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:15px;background:var(--bg);border:1.5px solid rgba(var(--acc-rgb),.7);color:var(--acc)}
.dstage.ready .dico{background:linear-gradient(160deg,var(--btn-a),var(--btn-b));color:var(--btn-ink);border:0;box-shadow:0 0 14px rgba(var(--acc-rgb),.6)}
.dstage.locked,.dstage.waiting{opacity:.72}.dstage.locked .dico,.dstage.waiting .dico{border-color:var(--line-2);color:var(--muted)}
.dstage.processing .dico{animation:dpulse 1.6s infinite}
.dtxt{flex:1;min-width:0}.dtxt b{display:block;font-weight:600}.dtxt small{color:var(--muted);font-size:.85rem}
.dstage>.i{color:var(--muted)}
.philo{margin:26px auto 0;max-width:760px;text-align:center;color:var(--ink-2);display:flex;gap:8px;justify-content:center;align-items:flex-start;flex-wrap:wrap}
.philo .i{color:var(--gold);margin-top:4px}
.lockstage{text-align:center}.lockstage h1{margin-top:6px}.lockstage .schip{margin-top:10px}.lockstage .qhint{max-width:32em;margin:14px auto 20px;font-size:1.02rem}
.lockart{width:120px;height:120px;margin:0 auto 12px;border-radius:32px;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,rgba(var(--acc-rgb),.35),rgba(var(--acc-rgb),.08));border:1px solid rgba(var(--acc-rgb),.35);box-shadow:0 0 40px -14px rgba(var(--acc-rgb),.7)}
.lockart span{font-size:48px;color:var(--acc)}
.includes{text-align:left;margin-top:22px;padding:16px 18px;border-radius:16px}.includes ul{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}.includes li{display:flex;gap:8px;color:var(--ink-2)}.includes .i{color:var(--acc);margin-top:4px}
.gettoknow{font-size:1.5rem;margin-top:4px}.buildp{color:var(--ink-2);max-width:34em;margin:10px auto 0;line-height:1.6}
.stagehead{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 28px}
.shtitle{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.shtitle>.i{font-size:30px;color:var(--acc)}.shtitle h1{font-size:clamp(1.8rem,3.4vw,2.6rem)}
.stagehead .gen{margin-top:8px;color:var(--muted)}
.stagehelix{width:110px;height:110px;flex:none}
.changes{margin-top:16px;padding:18px 22px;border-color:color-mix(in srgb,var(--ok) 40%,transparent)}.changes .plist .i{color:var(--ok)}
.sumgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}
.sumc{all:unset;box-sizing:border-box;cursor:pointer;display:block;padding:18px 20px;border-radius:22px;background:var(--glass);border:1px solid var(--line);box-shadow:var(--shadow);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.sumc:hover{border-color:rgba(var(--acc-rgb),.5)}.sumc:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.sumc.wide{grid-column:span 1}
.sumh{display:flex;align-items:center;gap:10px;margin-bottom:12px}.sumh>.i:first-child{color:var(--acc);font-size:20px}.sumh b{flex:1;font-weight:600}.sumh>.i:last-child{color:var(--muted)}
.sumc p{color:var(--ink-2);font-size:.93rem;line-height:1.55}
.stiles{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.stile{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:12px 8px;border-radius:14px;background:var(--glass-inner);border:1px solid var(--line)}
.stile span{font-size:24px;color:var(--acc)}.stile b{font-size:.82rem;font-weight:600;line-height:1.25}.stile small{font-size:.7rem;color:var(--muted)}
.stile.maths{border-color:rgba(var(--acc-rgb),.5);background:var(--purple-soft)}
.kstr{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.kst{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:12px 8px;border-radius:14px;background:var(--glass-inner);border:1px solid var(--line)}
.kst span:first-child{font-size:22px;color:var(--acc)}.kst b{font-size:.8rem;font-weight:600;line-height:1.25;min-height:2.5em}.kst .tbar{width:100%}
.tbar{display:block;height:7px;border-radius:7px;background:var(--line-2);overflow:hidden}
.tbar i{display:block;height:100%;border-radius:7px}
.tbar.ok i{background:linear-gradient(90deg,color-mix(in srgb,var(--ok) 70%,transparent),var(--ok))}
.tbar.blue i{background:linear-gradient(90deg,color-mix(in srgb,var(--info) 70%,transparent),var(--info))}
.tbar.warn i{background:linear-gradient(90deg,color-mix(in srgb,var(--warn) 70%,transparent),var(--warn))}
.tbar.dna i{background:linear-gradient(90deg,var(--btn-a),var(--btn-b))}
.remember{display:flex;gap:12px;align-items:flex-start;margin-top:14px;padding:16px 20px;font-size:.93rem;color:var(--ink-2)}.remember>.i{color:var(--gold);font-size:20px;flex:none;margin-top:1px}
.dsec{margin-top:12px;border-radius:22px;overflow:hidden}
.dsec>button{all:unset;box-sizing:border-box;width:100%;display:flex;align-items:center;gap:14px;padding:16px 20px;cursor:pointer}
.dsec>button:focus-visible{outline:2px solid var(--gold);outline-offset:-4px;border-radius:22px}
.dsec .pub-ic{width:44px;height:44px;font-size:20px}
.dsh{flex:1;font-family:var(--font-display);font-size:clamp(1.25rem,2vw,1.55rem)}.dsh small{font-family:var(--font-body);font-size:.8rem;color:var(--gold);font-weight:700;margin-right:10px}
.pm{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;border:1.5px solid rgba(var(--acc-rgb),.6);color:var(--purple)}
:root[data-theme="dark"] .pm{color:var(--acc-hi)}
.dsec.open{border-color:rgba(var(--acc-rgb),.5)}
.dsb{display:none;padding:0 22px 22px}.dsec.open .dsb{display:block}
.dsb h4{font-family:var(--font-body);font-weight:600;font-size:1rem;color:var(--gold);margin:18px 0 8px}
.dsb p{color:var(--ink-2);line-height:1.6}.dsb p+p{margin-top:8px}.dsb .lead{color:var(--ink-2);margin-bottom:10px}
.told{display:flex;gap:14px;align-items:flex-start;margin-top:4px}.told small{color:var(--muted);font-size:.82rem}.told h3{font-size:1.3rem;margin:2px 0 4px}
.excl{margin-top:10px;padding:14px 16px;border-radius:14px}.excl b{display:flex;gap:8px;align-items:center;font-weight:600}.excl b .i{color:var(--acc)}.excl p{margin-top:6px}
.traits{display:grid;gap:10px;margin-top:6px}
.trow{display:grid;grid-template-columns:28px minmax(0,1.1fr) minmax(0,1.3fr) auto;gap:12px;align-items:center}
.tic{font-size:18px;color:var(--acc);display:grid;place-items:center}.trow b{font-weight:600;font-size:.95rem}
.tlab{font-size:.8rem;font-weight:600;white-space:nowrap}.tlab.ok{color:var(--ok)}.tlab.blue{color:var(--info)}.tlab.warn{color:var(--warn)}.tlab.dna{color:var(--purple)}
:root[data-theme="dark"] .tlab.dna{color:var(--acc-hi)}
.why2{margin-top:10px;border-radius:14px;overflow:hidden}
.why2>button{all:unset;box-sizing:border-box;width:100%;display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;font-weight:600}
.why2>button:focus-visible{outline:2px solid var(--gold);outline-offset:-3px}
.why2 .wi{color:var(--acc);font-size:18px;display:grid}.why2>button .pm{margin-left:auto;width:28px;height:28px}
.w2b{display:none;padding:0 16px 14px}.why2.open .w2b{display:block}.w2b h4{margin-top:12px}
.aggr{display:flex;gap:20px;align-items:center;margin-top:6px}
.ring{--p:0;position:relative;flex:none;width:124px;height:124px;border-radius:50%;display:grid;place-items:center;align-content:center;text-align:center;background:conic-gradient(var(--ok) calc(var(--p)*1%),var(--line-2) 0)}.ring::before{content:"";position:absolute;inset:10px;border-radius:50%;background:var(--bg2)}.ring b,.ring small{position:relative}.srows+p{margin-top:12px}
.ring b{font-family:var(--font-display);font-size:1.7rem;font-weight:600;line-height:1}.ring small{font-size:.62rem;color:var(--muted);margin-top:4px;max-width:80px;line-height:1.2}
.srows{display:grid;gap:10px}
.srow2{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.4fr) auto 22px;gap:12px;align-items:center}.srow2 b{font-weight:500}.lv{font-size:.85rem;color:var(--ink-2);white-space:nowrap}
.tr{display:grid;place-items:center}.tr.up{color:var(--ok)}.tr.down{color:var(--warn)}.tr.flat{color:var(--muted)}
.focusc{margin-top:10px;padding:14px 16px;border-radius:14px;border-color:color-mix(in srgb,var(--warn) 40%,transparent)}.focusc b{display:block;margin-top:8px;font-weight:600}
.grow2{display:flex;gap:12px;align-items:flex-start;margin-top:14px;padding:14px 16px;border-radius:14px}.grow2>.i{color:var(--acc);font-size:20px;flex:none}.grow2 b{font-weight:600}
@media (max-width:980px){ .sumgrid{grid-template-columns:1fr} .nowgrid{grid-template-columns:1fr} .dnahead{grid-template-columns:1fr auto} .headhelix{display:none} }
@media (max-width:760px){
  .rsrow{grid-template-columns:auto minmax(0,1fr);row-gap:10px}.rsrow .schip,.rsrow .mact{grid-column:2;justify-self:start}
  .stiles,.kstr{grid-template-columns:1fr 1fr}
  .trow{grid-template-columns:24px minmax(0,1fr) auto;row-gap:6px}.trow .tbar{grid-column:2/-1;grid-row:2}
  .stagehelix{display:none}.stagehead{padding:20px}
  .aggr{flex-direction:column;align-items:flex-start}
  .srow2{grid-template-columns:minmax(0,1fr) auto 22px}.srow2 .tbar{grid-column:1/-1;grid-row:2}
}
/* demo / development controls — deliberately plain so they can't be mistaken for Pathway features */
.devbar{position:fixed;right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:70}
body.has-dev .shell,body.has-dev .focus-wrap,body.has-dev .dna-wrap{padding-bottom:64px}
.devpill{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:8px;border:1px dashed #9a9a9a;background:rgba(30,30,30,.82);color:#f0f0f0;font:600 .72rem/1.2 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.04em;cursor:pointer;opacity:.75}
.devpill:hover,.devpill:focus-visible{opacity:1}
.devpanel{max-width:520px;width:100%;padding:24px;text-align:left;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto}
.devtag{display:inline-block;font:600 .7rem/1.4 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.04em;text-transform:uppercase;color:#b0b0b0;border:1px dashed #9a9a9a;border-radius:6px;padding:3px 8px;margin-bottom:12px}
.devpanel h2{font-size:1.6rem}
.devopts{display:grid;gap:8px;margin:16px 0}
.devopt{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:12px;border:1px solid var(--line-2);background:var(--glass-inner)}
.devopt:hover,.devopt:focus-visible{border-color:var(--ink-2)}
.devopt b{font-weight:600;font-size:.95rem}.devopt small{color:var(--muted);font-size:.83rem;line-height:1.4}
.devopt.danger b{color:var(--attn)}
.devopt:disabled{opacity:.5;cursor:not-allowed}
.steps{grid-template-columns:repeat(var(--n,7),minmax(118px,1fr));min-width:calc(var(--n,7) * 124px)}
.steps .track,.steps .fill{left:calc(100% / (2 * var(--n,7)))}
.steps .track{right:calc(100% / (2 * var(--n,7)))}
.step.locked .node{border-style:dashed;color:var(--muted)}
.step.locked .tt,.step.locked .dd{opacity:.6}
.step.locked>button{cursor:not-allowed}
.whylock{display:inline-flex;align-items:center;gap:4px;margin-top:6px;font-size:.78rem;font-weight:600;color:var(--warn);line-height:1.3}
.stepnote{display:block;margin-top:6px;font-size:.78rem;font-weight:600;color:var(--purple)}
:root[data-theme="dark"] .stepnote{color:var(--acc-hi)}
.step.done .dd{color:var(--ok)}
.rightcol{display:grid;gap:18px;align-content:start}
.caughtup{display:flex;gap:14px;align-items:center;margin-top:18px;padding:18px;border-radius:16px}
.cu-ic{font-size:1.8rem}.caughtup b{font-weight:600}.caughtup p{color:var(--muted);font-size:.92rem}
.subcard{padding:18px 22px}
.subh{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.subh b{font-weight:600}
.subcard p{color:var(--ink-2);font-size:.93rem}.subcard .link{display:inline-block;margin-top:8px;font-size:.9rem}
.explore{margin-top:26px;padding:22px 26px}
.explore h2{font-size:clamp(1.5rem,2.2vw,1.9rem)}.explore .sub{color:var(--muted);margin-top:4px}
.exgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.excard{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border-radius:16px;text-decoration:none}
.excard:hover{border-color:rgba(var(--acc-rgb),.5)}
.exic{font-size:1.6rem;line-height:1}.excard b{display:block;font-weight:600}.excard small{display:block;color:var(--muted);font-size:.88rem;margin-top:2px}
.excard em{display:block;font-style:normal;font-weight:600;color:var(--purple);margin-top:8px;font-size:.9rem}
:root[data-theme="dark"] .excard em{color:var(--acc-hi)}
.cxlist{display:grid;gap:10px;margin-top:18px;max-width:1100px}.cxfam summary b{font-weight:600}
.p101{display:grid;gap:10px;margin-top:22px;max-width:900px}
@media (max-width:760px){ .exgrid{grid-template-columns:1fr} .steps{min-width:0} }
.charcount{display:block;margin-top:6px;font-size:.8rem;color:var(--muted);text-align:right}
.needans{display:flex;align-items:center;gap:8px;margin-top:18px;padding:10px 14px;border-radius:12px;border:1px solid color-mix(in srgb,var(--warn) 45%,transparent);background:var(--warn-soft);color:var(--ink);font-size:.92rem;font-weight:500}
.needans[hidden]{display:none}
.needans .i{color:var(--warn)}
.calcnote{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:.88rem;color:var(--muted)}
.calcnote .i{color:var(--gold)}
.msup,.qtext sup,.opt sup,.otxt sup,.myans sup{font-size:.68em;vertical-align:super;line-height:0}
.opt sub,.qtext sub{font-size:.68em;vertical-align:sub;line-height:0}
/* Career Explorer */
.exsearch{max-width:720px;margin-top:22px}.exsearch input{min-height:60px;font-size:1.05rem}
.exh{font-size:clamp(1.4rem,2.2vw,1.8rem);margin:26px 0 14px;display:flex;align-items:center;gap:10px}.exh .i{color:var(--acc)}.exh small{font-family:var(--font-body);font-size:.85rem;color:var(--muted)}
.exres{margin:18px 0 10px;color:var(--muted);font-size:.9rem}
.catgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.catcard{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:8px;padding:18px;border-radius:20px;background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:var(--shadow)}
.catcard:hover,.catcard:focus-visible{border-color:rgba(var(--acc-rgb),.55)}.catcard b{font-weight:600}.catcard small{color:var(--muted)}
.cgrid3{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.ccard{padding:18px 20px;display:flex;flex-direction:column;gap:10px}
.cchead{display:flex;gap:12px;align-items:center}.cchead .pub-ic{width:42px;height:42px;font-size:19px}.cchead h3{font-size:1.25rem;line-height:1.2}.cchead small{color:var(--muted);font-size:.8rem}
.ccard>p{color:var(--ink-2);font-size:.93rem;line-height:1.55;flex:1}
.ccsub small{display:block;font-size:.75rem;color:var(--muted);font-weight:600;letter-spacing:.03em;text-transform:uppercase}.ccsub span{font-size:.88rem;color:var(--ink)}
.ccard .btn{align-self:flex-start}
.backlink{display:inline-flex;align-items:center;gap:6px;text-decoration:none;font-size:.92rem;margin-top:14px}
.cview{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px;max-width:1100px}
.cvs{padding:20px 22px}.cvs.wide{grid-column:1/-1}.cvs h2{font-size:1.3rem;display:flex;gap:10px;align-items:center;margin-bottom:10px}.cvs h2 .i{color:var(--acc)}.cvs p{color:var(--ink-2);line-height:1.6}
.tag.rel{text-decoration:none}.tag.rel:hover{border-color:rgba(var(--acc-rgb),.6)}
/* Pathway 101 */
.p101{margin-top:22px;max-width:1100px}
.p101sec .pub-ic{font-size:22px}
.subjgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:start}.subjgrid .why2{margin-top:0}
.mcomp{display:grid;gap:8px;margin-top:6px}
.mrowh,.mrowc{display:grid;grid-template-columns:140px repeat(3,1fr);gap:10px;align-items:start}
.mrowh b{font-family:var(--font-display);font-size:1.1rem;font-weight:600;padding:10px 12px;border-radius:12px;background:var(--purple-soft);text-align:center}
.mrowc{padding:12px 0;border-top:1px solid var(--line)}.mrowc p{margin:0!important;font-size:.92rem;color:var(--ink-2);padding:0 12px}
.mlab{font-weight:600;color:var(--gold);font-size:.9rem}.mmob{display:none}
.termgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.term{padding:14px 16px;border-radius:14px}.term b{font-weight:600}.term p{margin-top:4px!important;font-size:.93rem}
.g9steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.g9steps li{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:16px 10px;border-radius:16px}.g9steps b{font-weight:600;font-size:.92rem}
.reassure{margin-top:12px!important;padding:12px 16px;border-radius:12px;background:var(--ok-soft);color:var(--ink)!important}
@media (max-width:980px){ .cview{grid-template-columns:1fr} .mrowh{display:none} .mrowc{grid-template-columns:1fr} .mrowc p{padding:4px 0} .mmob{display:block;font-weight:600;color:var(--ink);font-size:.8rem} }
@media (max-width:760px){ .subjgrid,.termgrid{grid-template-columns:1fr} .g9steps{grid-template-columns:1fr 1fr} }
/* collapsible learner sidebar */
.shell{transition:grid-template-columns .25s ease}
.shell.collapsed{grid-template-columns:84px minmax(0,1fr)}
.side{padding:18px 14px;overflow:hidden}
.sidetop{display:flex;align-items:center;gap:6px;padding:0 0 18px}
.sidetop .lockup{padding:0;min-width:0}.sidetop .lockup .mark{height:38px}.sidetop .lockup .word{height:24px}
.navtoggle{flex:none;width:42px;height:42px;border-radius:12px;border:1px solid var(--line-2);background:var(--glass-inner);color:var(--ink);display:grid;place-items:center;font-size:20px;cursor:pointer}
.navtoggle:hover{border-color:rgba(var(--acc-rgb),.6)}
.side .nav{overflow-y:auto;overflow-x:hidden;flex:1;align-content:start;gap:4px;scrollbar-width:thin;margin:0 -4px;padding:0 4px}
.nav a{height:auto;min-height:44px;padding:9px 14px;gap:12px;font-size:.95rem;line-height:1.25;position:relative}
.nav a .i{font-size:20px;flex:none}
.nav a .lab{min-width:0}
.navgroup{display:block;margin:14px 14px 4px;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.shell.collapsed .side{padding:18px 10px}
.shell.collapsed .sidetop{flex-direction:column;gap:12px}
.shell.collapsed .sidetop .lockup .word{display:none}
.shell.collapsed .sidetop .lockup .mark{height:34px}
.shell.collapsed .nav a{justify-content:center;padding:0;height:44px}
.shell.collapsed .nav a .lab{display:none}
.shell.collapsed .navgroup{height:1px;margin:10px 8px;background:var(--line-2);font-size:0;overflow:hidden}
.shell.collapsed .side .nav{overflow:visible}
.shell.collapsed .side{overflow:visible;z-index:40}
.shell.collapsed .nav a:hover::after,.shell.collapsed .nav a:focus-visible::after{content:attr(data-tip);position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%);white-space:nowrap;padding:7px 12px;border-radius:10px;background:var(--glass-2);border:1px solid var(--line-2);color:var(--ink);font-size:.85rem;font-weight:600;box-shadow:var(--shadow);z-index:50;pointer-events:none;backdrop-filter:blur(14px)}
.drawer .nav{gap:4px;overflow-y:auto}
.pub.inshell{max-width:1100px;margin:0;padding:0}
.pub.inshell .pub-hero{padding-top:10px}
@media (max-width:980px){ .shell.collapsed{grid-template-columns:1fr} }
.termline{display:flex;align-items:center;gap:6px;font-size:.82rem;color:var(--ink-2);margin:2px 0}.termline .i{color:var(--acc)}
/* ============ Grades 10–12 journeys ============ */
.onboard{margin-top:26px;padding:clamp(22px,3vw,34px)}
.onboard h2{font-size:clamp(1.7rem,3vw,2.4rem);margin:10px 0 8px}.onboard .lead{color:var(--ink-2);max-width:44em}
.obopts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.obopt{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:6px;padding:18px;border-radius:18px;text-decoration:none}
.obopt:hover,.obopt:focus-visible{border-color:rgba(var(--acc-rgb),.6)}.obopt b{font-weight:600}.obopt small{color:var(--muted)}
.jhead{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:12px}.jhead h2{font-size:clamp(1.4rem,2.4vw,1.9rem)}
.journey .jhead h2{letter-spacing:.06em;font-family:var(--font-body);font-weight:700;font-size:1rem;color:var(--acc)}
.fsteps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.fstep{display:flex;flex-direction:column;gap:4px;padding:14px;border-radius:16px;text-decoration:none;background:var(--glass-inner);border:1px solid var(--line);height:100%;box-sizing:border-box}
.fstep:hover{border-color:rgba(var(--acc-rgb),.55)}.fstep b{font-weight:600;font-size:.93rem}.fstep small{color:var(--muted);font-size:.8rem;line-height:1.35}
.fnum{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:.85rem;border:1.5px solid rgba(var(--acc-rgb),.6);color:var(--acc);margin-bottom:4px}
.fstep.done .fnum{background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok) 60%,transparent);color:var(--ok)}.fstep.done small{color:var(--ok)}
.fstep.locked{opacity:.6}
.rightcol{display:grid;gap:16px;align-content:start}
.apscard{padding:20px 22px}.apscard .subh{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}.apscard .subh b{font-weight:600}.tsum h2{font-size:clamp(1.4rem,2.2vw,1.8rem)}.apsbig{font-family:var(--font-display);font-size:3.2rem;line-height:1;color:var(--acc)}.apsbig small{font-size:1rem;color:var(--muted);margin-left:4px}
.tsum{margin-top:26px;padding:22px 26px}.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.tmini{padding:14px;border-radius:14px;display:flex;flex-direction:column;gap:4px}.tmini b{font-weight:600}.tmini small{color:var(--muted)}.tmini .schip{align-self:flex-start;margin-top:4px}
.roadmap{position:relative;margin-top:22px;padding:30px 20px;overflow:hidden;max-width:1000px}
.road{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none}
.road path{fill:none;stroke:url(#none);stroke:rgba(var(--acc-rgb),.45);stroke-width:1.4;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 6px rgba(var(--acc-rgb),.7))}
.rstops{list-style:none;margin:0;padding:0;display:grid;gap:18px;position:relative}
.rstops li{display:flex}.rstops li.l{justify-content:flex-start}.rstops li.r{justify-content:flex-end}
.rstop{display:flex;gap:14px;align-items:center;width:min(440px,100%);padding:16px 18px;border-radius:20px;text-decoration:none}
.rstop b{display:block;font-weight:600}.rstop small{color:var(--muted);font-size:.86rem}
.rnum{flex:none;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-weight:700;border:2px solid rgba(var(--acc-rgb),.6);color:var(--acc);background:var(--bg)}
.rstops li.done .rnum{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}
.rstops li.current .rstop{border-color:rgba(var(--acc-rgb),.8);box-shadow:var(--shadow),0 0 30px -8px rgba(var(--acc-rgb),.8)}
.rstops li.current .rnum{background:linear-gradient(160deg,var(--btn-a),var(--btn-b));color:var(--btn-ink);border:0}
.rstops li.locked{opacity:.6}
.exgrid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:22px;max-width:1000px}
.excard2{padding:24px;text-decoration:none;display:flex;flex-direction:column;gap:10px}.excard2 h2{font-size:1.6rem}.excard2 p{color:var(--ink-2)}
.apshero{display:flex;gap:24px;align-items:center;padding:22px 26px;margin:22px 0 14px}.apshero h2{font-size:1.5rem}.apshero p{color:var(--ink-2);margin-top:6px}.apshero .apsbig{font-size:4rem}
.apsmini{font-size:.85rem;font-weight:600;color:var(--ink-2)}
.rpreview img{max-width:100%;max-height:360px;border-radius:14px;margin-top:12px;border:1px solid var(--line)}
.fh{font-family:var(--font-body);font-weight:600;color:var(--gold);margin:18px 0 10px}
.subjset{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.subjset label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:.88rem}.subjset label.wide{grid-column:1/-1}
.tlist{list-style:none;margin:0;padding:0;display:grid;gap:8px}.tlist li{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px}.tlist b{flex:1;font-weight:600}
.tnum{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:.85rem;background:var(--purple-soft);color:var(--purple);flex:none}
.tact{display:flex;gap:6px;align-items:center}
.unigrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.unic{padding:14px;border-radius:14px;display:flex;flex-direction:column;gap:4px}.unic b{font-weight:600;font-size:.93rem}.unic small{color:var(--muted);font-size:.8rem}.unic .btn{align-self:flex-start;margin-top:6px}.unic.on{border-color:rgba(var(--acc-rgb),.6)}
.ctarget{padding:16px 18px;border-radius:16px;margin-top:10px}.ctop{display:flex;align-items:center;gap:10px;margin-bottom:10px}.ctop b{flex:1;font-weight:600;font-size:1.05rem}
.chain{display:flex;align-items:stretch;gap:6px;flex-wrap:wrap}.chain>.i{align-self:center;color:var(--muted)}
.ch{flex:1;min-width:120px;padding:10px 12px;border-radius:12px;background:var(--glass);border:1px solid var(--line)}.ch small{display:block;font-size:.72rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.ch b{font-weight:600}.ch em{display:block;font-style:normal;font-size:.72rem;color:var(--muted)}
.standing{display:flex;gap:8px;align-items:center;margin-top:10px;font-weight:500}.standing.ok{color:var(--ok)}.standing.warn{color:var(--warn)}.standing.mute{color:var(--muted)}
.cform{margin-top:16px;padding:22px}.cform h2{font-size:1.4rem;margin-bottom:12px}
.pstats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0 14px}.pstat{padding:16px 18px}.pstat small{color:var(--muted);display:block}.pstat b{font-family:var(--font-display);font-size:2.2rem}.pstat b.up{color:var(--ok)}.pstat b.down{color:var(--warn)}
.apschart{width:100%;height:auto;max-height:220px}.apschart polyline{fill:none;stroke:var(--acc);stroke-width:3}.apschart circle{fill:var(--acc)}.apschart .v{fill:var(--ink);font:600 13px var(--font-body);text-anchor:middle}.apschart .l{fill:var(--muted);font:12px var(--font-body);text-anchor:middle}
.lvc{display:inline-block;font-size:.72rem;font-weight:700;padding:1px 6px;border-radius:6px;margin-left:4px;background:var(--purple-soft)}
.tprog{padding:12px 14px;border-radius:12px;margin-top:8px;display:grid;gap:4px}.tprog b{font-weight:600}.tprog small{color:var(--muted)}
.imp{margin-top:14px;padding:20px 22px}.imp h2{font-size:1.3rem;margin-bottom:6px}.imp p{color:var(--ink-2)}
.checklist{list-style:none;margin:0;padding:0;display:grid;gap:8px}.checklist li{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px}.checklist li small{display:block;color:var(--muted);font-size:.78rem}
.checklist li.done{border-color:color-mix(in srgb,var(--ok) 45%,transparent)}
.ckbox{flex:none;width:28px;height:28px;border-radius:8px;border:1.5px solid var(--line-2);background:var(--glass);display:grid;place-items:center;color:var(--ok);cursor:pointer;font-size:16px}
.ckbox.auto{cursor:default;border-style:dashed}.checklist li.done .ckbox{border-color:var(--ok);background:var(--ok-soft)}
.appc{margin-top:12px;padding:18px 20px}.appc .ctop small{color:var(--muted)}
.profc{margin-top:22px;padding:22px;max-width:760px}.prow{display:grid;grid-template-columns:140px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.prow small{color:var(--muted)}.prow b{font-weight:600}
.cchead{position:relative}.cchead>div{flex:1}
.favbtn{flex:none;width:36px;height:36px;border-radius:50%;border:1px solid var(--line-2);background:var(--glass-inner);color:var(--attn);font-size:18px;cursor:pointer;line-height:1}
.favbtn.on{background:color-mix(in srgb,var(--attn) 15%,transparent);border-color:var(--attn)}
.ccact{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.cmpck{display:flex;gap:6px;align-items:center;font-size:.85rem;color:var(--ink-2);cursor:pointer}
.cmpbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;margin-top:18px}.cmpbar>span{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.cmp{padding:18px;margin-top:22px;overflow-x:auto}
.cmprow{display:grid;grid-template-columns:140px repeat(var(--n,3),minmax(180px,1fr));gap:12px;padding:12px 0;border-top:1px solid var(--line)}.cmprow.head{border-top:0}.cmprow.head b{font-family:var(--font-display);font-size:1.2rem}.cmprow p{margin:0;color:var(--ink-2);font-size:.92rem}
@media (max-width:980px){ .fsteps{grid-template-columns:1fr 1fr} .tgrid,.pstats,.exgrid2{grid-template-columns:1fr} .rstops li{justify-content:center!important} .road{display:none} .apshero{flex-direction:column;align-items:flex-start} }
@media (max-width:760px){ .obopts,.subjset{grid-template-columns:1fr} .prow{grid-template-columns:1fr} .chain>.i{display:none} .ch{min-width:100%} }
.fsec2{padding:22px 26px}.fsec2>h2{font-size:clamp(1.3rem,2.2vw,1.7rem);margin-bottom:10px}
.obterm{font-weight:700;letter-spacing:.06em;color:var(--acc);margin-top:6px}
.homedates{padding:26px 28px}.homedates h2{font-size:clamp(1.6rem,2.3vw,2.1rem)}
.termblks{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.termblk{padding:14px 16px;border-radius:16px;display:grid;gap:4px}.termblk small{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.termblk>b{font-family:var(--font-display);font-size:1.5rem;font-weight:500}
.termblk div{display:flex;justify-content:space-between;gap:10px;font-size:.88rem}.termblk div span{color:var(--muted)}.termblk em{font-style:normal;font-weight:600}
.fstep{position:relative}.fstep.current{border-color:rgba(var(--acc-rgb),.8);box-shadow:0 0 26px -10px rgba(var(--acc-rgb),.9)}.fstep.current .fnum{background:linear-gradient(160deg,var(--btn-a),var(--btn-b));color:var(--btn-ink);border:0}
.curtag{position:absolute;top:12px;right:12px;font-style:normal;font-size:.66rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
.tline .tlgrade{list-style:none;font-weight:700;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:10px 0 2px}
.rsrow.tl{grid-template-columns:auto minmax(0,1fr) auto auto}.tldot{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;border:2px dashed var(--line-2);color:var(--muted)}
.rsrow.tl.confirmed .tldot{border:2px solid var(--ok);background:var(--ok-soft);color:var(--ok)}.rsrow.tl.due .tldot{border:2px solid var(--warn);color:var(--warn)}
@media (max-width:760px){ .termblks{grid-template-columns:1fr} }
.lower .termblks{grid-template-columns:1fr}.termblk div em{text-align:right}
.jtitle{margin-left:12px;font-family:var(--font-body);font-size:.8rem;font-weight:700;letter-spacing:.12em;color:var(--acc);vertical-align:middle}
.step .stepnote{color:var(--ok)}.step.current .stepnote,.step.upcoming .stepnote{color:var(--muted)}
.steps[style*="--n:8"] .step .node{width:60px;height:60px;font-size:24px}
.steps[style*="--n:8"]{min-width:calc(8 * 112px);grid-template-columns:repeat(8,minmax(104px,1fr))}
.steps[style*="--n:8"] .track,.steps[style*="--n:8"] .fill{top:30px}
.steps[style*="--n:8"] .tt{font-size:.9rem}.steps[style*="--n:8"] .dd{font-size:.78rem}
.jlocknote{display:flex;gap:8px;align-items:center;justify-content:center;margin-top:16px;font-size:.88rem;font-weight:600;color:var(--gold)}
/* Study Targets */
.unibadge{flex:none;width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-weight:800;font-size:.85rem;letter-spacing:.04em;color:var(--btn-ink);background:linear-gradient(150deg,var(--btn-a),var(--btn-b));box-shadow:0 6px 16px -8px rgba(var(--acc-rgb),.8)}
.stcard{margin-top:12px;padding:20px 22px}
.sthead{display:flex;gap:14px;align-items:flex-start}.sthead>div{flex:1}.sthead small{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}.sthead h3{font-size:1.4rem;margin:2px 0}.sthead p{color:var(--ink-2);font-size:.92rem}
.stgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:14px}.stgrid .ch.wide{grid-column:1/-1}
button.unic.pick{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:14px;background:var(--glass-inner);border:1px solid var(--line)}
button.unic.pick:hover,button.unic.pick:focus-visible{border-color:rgba(var(--acc-rgb),.7)}
.stbuild h2{margin:4px 0 6px}
@media (max-width:760px){ .stgrid{grid-template-columns:1fr} .sthead{flex-wrap:wrap} }
.stcard .of{font-style:normal;font-size:.8rem;color:var(--muted);font-weight:500}
.reqrows{display:grid;gap:6px;margin-top:12px}
.reqrow{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 12px;border-radius:12px;background:var(--glass-inner);border:1px solid var(--line);font-size:.88rem}
.reqrow .rq{font-weight:600}.reqrow .rm{color:var(--ink-2)}.reqrow .rs{font-weight:600;font-size:.8rem;white-space:nowrap}
.reqrow.meets{border-color:color-mix(in srgb,var(--ok) 45%,transparent)}.reqrow.meets .rs{color:var(--ok)}
.reqrow.below,.reqrow.notTaken{border-color:color-mix(in srgb,var(--warn) 45%,transparent)}.reqrow.below .rs,.reqrow.notTaken .rs{color:var(--warn)}
.reqrow.unknown .rs,.reqrow.notYet .rs{color:var(--muted)}
.stdetail{margin-top:12px;padding:16px 18px;border-radius:16px}.stdetail h4{font-family:var(--font-body);font-weight:600;color:var(--gold);margin:12px 0 6px}.stdetail p{color:var(--ink-2);line-height:1.55}.stdetail p+p{margin-top:6px}
button.unic.pick.glassy{background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:var(--shadow)}
.unic .camp{font-size:.72rem!important;line-height:1.35}
.cfilter{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:10px;margin:10px 0 6px}
.clist{display:grid;gap:8px;margin-top:10px;max-height:560px;overflow-y:auto;padding-right:4px}
.ccourse{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;align-items:center;padding:14px 16px;border-radius:16px;background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.ccourse:hover,.ccourse:focus-visible{border-color:rgba(var(--acc-rgb),.7);box-shadow:0 0 24px -12px rgba(var(--acc-rgb),.9)}
.ccourse b{font-weight:600;display:block}.ccourse small{color:var(--muted);font-size:.8rem}.ccourse .tags{grid-column:1/-1;margin:0}.ccourse .tag{font-size:.75rem}
@media (max-width:760px){ .cfilter{grid-template-columns:1fr} .reqrow{grid-template-columns:1fr} .ccourse{grid-template-columns:1fr} }
/* Study Targets: bolder abbreviation badge (grade-themed), score pair, subject requirements, university information */
.unibadge{font-weight:900!important;font-size:.95rem!important;letter-spacing:.06em!important;text-shadow:0 1px 0 rgba(0,0,0,.18);box-shadow:0 0 0 1px rgba(255,255,255,.18) inset,0 8px 20px -8px rgba(var(--acc-rgb),.95),0 0 18px -6px rgba(var(--acc-rgb),.7)!important}
.unibadge{width:auto!important;min-width:46px;padding:0 8px}.unibadge.big{min-width:62px;height:62px;border-radius:18px;font-size:1.15rem!important;padding:0 10px}
.scorepair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.spbox{padding:14px 16px;border-radius:16px;background:var(--glass-inner);border:1px solid var(--line)}
.spbox small{display:block;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.spbox b{display:block;font-family:var(--font-display);font-size:2.2rem;font-weight:500;line-height:1.1;margin-top:4px}
.spbox:first-child b{color:var(--acc)}.spbox em{font-style:normal;font-size:.76rem;color:var(--muted)}
.standing .sti{font-weight:800}
.subreq{margin-top:14px;padding:14px 16px;border-radius:16px;background:var(--glass-inner);border:1px solid var(--line)}
.subreq h4{font-family:var(--font-body);font-weight:700;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
.subreq>.hint{margin:2px 0 10px}
.sreq{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line);font-size:.9rem}
.sreq b{font-weight:600}.sreq span small{display:block;font-size:.7rem;color:var(--muted)}.sreq em{font-style:normal;font-weight:700;font-size:.82rem;white-space:nowrap}
.sreq.ok em{color:var(--ok)}.sreq.warn em{color:var(--warn)}.sreq.mute em{color:var(--muted)}
.mindisc{display:flex;gap:10px;align-items:flex-start;margin:10px 0;padding:12px 14px;border-radius:14px;background:var(--info-soft);border:1px solid color-mix(in srgb,var(--info) 30%,transparent);font-size:.86rem;color:var(--ink-2);line-height:1.5}
.mindisc>.i{color:var(--info);flex:none;margin-top:2px}
.uniinfo .uihead{display:flex;gap:16px;align-items:center;margin:8px 0 6px}.uniinfo h2{margin:0}
.uisec{margin-top:16px}.uisec h4{font-family:var(--font-body);font-weight:600;color:var(--gold);margin-bottom:8px}.uisec p{color:var(--ink-2);line-height:1.6}.uisec p+p{margin-top:6px}
.ifacts{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.ifact{padding:12px 14px;border-radius:14px;display:grid;gap:4px}.ifact small{color:var(--muted);font-size:.78rem;line-height:1.4}.ifact b{font-weight:600;font-size:.9rem;line-height:1.4}
.uisrc{margin-top:14px}
.confirm{padding:14px 16px;border-radius:16px;margin:8px 0 4px}.confirm>small{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}.cfrow{display:grid;grid-template-columns:110px 1fr;gap:10px;padding:6px 0;border-bottom:1px solid var(--line)}.cfrow span{color:var(--muted)}.cfrow b{font-weight:600}
@media (max-width:760px){ .scorepair{grid-template-columns:1fr} .sreq{grid-template-columns:1fr 1fr} .sreq b{grid-column:1/-1} }
.mathpick{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.mathpick legend{font-weight:600;font-size:.88rem;margin-bottom:6px;width:100%}
.mradio{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:12px;border:1px solid var(--line-2);background:var(--glass-inner);font-weight:500!important;cursor:pointer}
.mradio:has(input:checked){border-color:rgba(var(--acc-rgb),.8);box-shadow:0 0 0 3px rgba(var(--acc-rgb),.15)}.mradio input{accent-color:var(--acc)}
/* target card v2, matric position, notifications */
.stcard.v2 .sthead small{letter-spacing:.06em}
.cmpviz{margin:14px 0 4px}
.cv-track{position:relative;height:12px;border-radius:12px;background:var(--line-2);margin:28px 4px 8px}
.cv-fill{position:absolute;left:0;top:0;bottom:0;border-radius:12px}
.cmpviz.ok .cv-fill{background:linear-gradient(90deg,color-mix(in srgb,var(--ok) 55%,transparent),var(--ok))}
.cmpviz.bad .cv-fill{background:linear-gradient(90deg,color-mix(in srgb,var(--attn) 55%,transparent),var(--attn))}
.cv-min,.cv-you{position:absolute;top:-6px;width:2px;height:24px;transform:translateX(-1px)}
.cv-min{background:var(--ink)}.cv-you{background:transparent}
.cv-min em,.cv-you em{position:absolute;white-space:nowrap;font-style:normal;font-size:.72rem;font-weight:700;transform:translateX(-50%)}
.cv-min em{top:26px;color:var(--ink-2)}.cv-you em{top:-18px}
.cmpviz.ok .cv-you em{color:var(--ok)}.cmpviz.bad .cv-you em{color:var(--attn)}
.cv-diff{margin-top:24px;font-size:.88rem;font-weight:600}.cmpviz.ok .cv-diff{color:var(--ok)}.cmpviz.bad .cv-diff{color:var(--attn)}
.standing2{display:flex;gap:10px;align-items:center;margin-top:10px;font-weight:600}
.standing2 .sti{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;font-weight:800;flex:none}
.standing2.ok{color:var(--ok)}.standing2.ok .sti{background:var(--ok-soft)}
.standing2.bad{color:var(--attn)}.standing2.bad .sti{background:color-mix(in srgb,var(--attn) 15%,transparent)}
.standing2.mute{color:var(--muted)}.standing2.mute .sti{background:var(--glass-inner)}
.tsec{margin-top:10px;border-radius:14px;background:var(--glass-inner);border:1px solid var(--line)}
.tsec>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:12px 14px;font-weight:600}
.tsec>summary::-webkit-details-marker{display:none}.tsec>summary .pm{margin-left:auto;width:26px;height:26px}
.tsec[open]>summary .pm{transform:rotate(45deg)}
.secmeta{font-weight:500;color:var(--muted);font-size:.8rem}
.tsb{padding:0 14px 14px}.tsb p{color:var(--ink-2);line-height:1.55}.tsb p+p{margin-top:6px}
.rq2{display:grid;grid-template-columns:12px minmax(0,1.2fr) minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.rq2 .dot{width:10px;height:10px;border-radius:50%}.rq2.ok .dot{background:var(--ok)}.rq2.bad .dot{background:var(--attn)}.rq2.mute .dot{background:var(--muted)}
.rq2 b{font-weight:600;display:block}.rq2 small{display:block;color:var(--muted);font-size:.78rem}
.rq2 em{font-style:normal;font-weight:700;font-size:.82rem}.rq2.ok em{color:var(--ok)}.rq2.bad em{color:var(--attn)}.rq2.mute em{color:var(--muted)}
.ifact b.warn{color:var(--attn)}
.planonly{display:flex;gap:8px;align-items:center;margin-top:10px;font-size:.85rem;color:var(--ink-2)}
.whythree{margin:10px 0;padding:0}.whythree>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:14px 18px;font-weight:600}.whythree>summary::-webkit-details-marker{display:none}.whythree>summary .pm{margin-left:auto}.whythree .tsb{padding:0 18px 16px}
.beyond{margin-top:16px;padding:18px 22px}.beyond h3{display:flex;gap:8px;align-items:center;font-size:1.2rem;margin-bottom:6px}.beyond h3 .i{color:var(--acc)}.beyond p{color:var(--ink-2)}
.overall,.matric{margin-top:16px}
.ovrow{display:flex;gap:20px;align-items:center}.ovbig{font-family:var(--font-display);font-size:2.8rem;line-height:1;color:var(--acc);text-align:center}.ovbig small{display:block;font-family:var(--font-body);font-size:.75rem;color:var(--muted)}
.ovrow p{color:var(--ink-2)}
.mlist{display:grid;gap:8px;margin-top:10px}
.mrow2{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:14px;background:var(--glass-inner);border:1px solid var(--line)}
.mrow2 b{font-weight:600;display:block}.mrow2 small{color:var(--ink-2);font-size:.85rem}
.mrow2.ok{border-color:color-mix(in srgb,var(--ok) 40%,transparent)}.mrow2.bad{border-color:color-mix(in srgb,var(--attn) 40%,transparent)}
.bell{position:relative;width:42px;height:42px;border-radius:50%;border:1px solid var(--line-2);background:var(--glass-inner);color:var(--ink);display:grid;place-items:center;cursor:pointer;font-size:19px}
.bell .bdg{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--attn);color:#fff;font-size:.7rem;font-weight:800;display:grid;place-items:center}
.npanel{position:fixed;top:78px;right:20px;width:min(400px,calc(100vw - 24px));max-height:70vh;overflow-y:auto;z-index:90;padding:14px 16px}
.npanel .nph{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.npanel ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.npanel li{padding:12px;border-radius:14px;background:var(--glass-inner);border:1px solid var(--line);display:grid;gap:8px}
.npanel li.unread{border-color:rgba(var(--acc-rgb),.6)}.npanel li b{font-weight:600}.npanel li p{color:var(--ink-2);font-size:.88rem;margin-top:2px}.npanel li small{color:var(--muted);font-size:.75rem}
.nact{display:flex;gap:6px}
@media (max-width:760px){ .rq2{grid-template-columns:12px 1fr} .rq2>div:nth-of-type(2),.rq2 em{grid-column:2} .ovrow{flex-direction:column;align-items:flex-start} }
.tlgroup{list-style:none}.tlgroup>details>summary{cursor:pointer;list-style:none;margin:12px 0 6px}.tlgroup>details>summary::-webkit-details-marker{display:none}.tlgroup .rslist{margin-top:6px}
.standing2.amber{color:var(--warn)}.standing2.amber .sti{background:var(--warn-soft)}
.ccourse.inactive{opacity:.55;cursor:not-allowed}.ccourse .schip.mute{white-space:normal}
.standing2{flex-wrap:wrap}.standing2>.hint{flex-basis:100%;font-weight:400;margin-left:34px}

/* ===== Polish pass: mobile reflow & touch targets (kept last so it wins the cascade) ===== */
.main{min-width:0}
.bell{flex:none}
.devpill{min-height:38px}
.ckbox{width:36px;height:36px}
@media (max-width:760px){
  /* journeys become vertical timelines on phones (Grade 9 and Grades 10–12) */
  .journey-scroll{overflow:visible;margin:0;padding:0}
  .steps,.steps[style*="--n:8"]{grid-template-columns:1fr!important;min-width:0!important;margin-top:18px;gap:4px}
  .steps .track,.steps .fill{display:none}
  .steps .step{text-align:left;padding:0}
  .steps .step>button{flex-direction:row;align-items:flex-start;gap:14px;padding:8px 4px;text-align:left}
  .steps .step .node,.steps[style*="--n:8"] .step .node{width:52px;height:52px;font-size:21px;flex:none}
  .steps .step .num{position:absolute;left:40px;top:2px;width:22px;height:22px;font-size:.72rem}
  .steps .step:not(:last-child)::after{content:"";position:absolute;left:30px;top:64px;bottom:-8px;width:2px;background:var(--line-2)}
  .steps .step.done:not(:last-child)::after{background:var(--green)}
  .steps .step .txt{display:flex;flex-direction:column;gap:3px;padding-top:4px}
  .steps .step .tt{font-size:.98rem}.steps .step .dd{font-size:.86rem}
  .jlocknote{justify-content:flex-start;text-align:left}
  /* question navigation and long button rows wrap instead of overflowing */
  .qnav,.actions{flex-wrap:wrap}
  .qnav .btn{flex:1 1 auto;justify-content:center;min-width:0}
  .btn{max-width:100%;white-space:normal;text-align:center}
  /* study target cards, requirement rows and score pairs */
  .stcard{padding:16px}.sthead{flex-wrap:wrap}.sthead .tact{width:100%;justify-content:flex-end}
  .scorepair{grid-template-columns:1fr 1fr}.spbox b{font-size:1.8rem}
  .cv-min em,.cv-you em{font-size:.66rem}
  .tsec>summary{padding:12px}
  .ifacts{grid-template-columns:1fr}
  .cfilter{grid-template-columns:1fr}
  .unigrid{grid-template-columns:1fr}
  .pub-hero.solo{max-width:100%}
  .npanel{top:64px;right:12px;left:12px;width:auto}
  .reqrow,.sreq{grid-template-columns:1fr 1fr}.sreq b{grid-column:1/-1}
  .prow{grid-template-columns:1fr}
  .cmprow{grid-template-columns:110px repeat(var(--n,3),minmax(160px,1fr))}
  .src-table table{font-size:.85rem}
  .mfrac{font-size:1em}
}
@media (max-width:420px){ .scorepair{grid-template-columns:1fr} }
.layerline{display:flex;gap:8px;align-items:center;margin:4px 0 0;font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--acc)}
.ctxcard>p{color:var(--ink-2)}.ctxcard .tsec{margin-top:10px}
.ptl{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:0;counter-reset:none}
.ptl li{display:grid;grid-template-columns:30px 1fr;gap:12px;align-items:start;padding:8px 0;position:relative}
.ptl li:not(:last-child)::after{content:"";position:absolute;left:14px;top:38px;bottom:-6px;width:2px;background:var(--line-2)}
.ptl .pn{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:.82rem;background:rgba(var(--acc-rgb),.16);color:var(--acc);border:1px solid rgba(var(--acc-rgb),.5)}
.ptl li>span:last-child{padding-top:4px;color:var(--ink-2);line-height:1.5}
.bodies{display:grid;gap:6px;margin-top:12px}.tsec.body>summary{flex-wrap:wrap}.tsec.body .bt{font-weight:500;color:var(--muted);font-size:.85rem;flex:1}
.srcline{margin-top:10px;line-height:1.6}
.cvactions{margin-top:16px}
.rlist b.okc{color:var(--ok)}.rlist b.warnc{color:var(--attn)}
@media (max-width:760px){
  .sthead{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px}
  .sthead .tact{grid-column:1/-1;justify-content:flex-start}
  .sthead h3{font-size:1.2rem}
  /* demo-only pill: compact on phones so it never covers content */
  .devpill{padding:6px 10px;font-size:.68rem;bottom:10px;right:10px;opacity:.9}
  .devpill .dpl{display:none}
  .main{padding-bottom:64px}
  .fcats{margin:0 0 16px!important;padding:4px 0 8px!important}
}
/* sign-up steps */
.auth-card.su{max-width:640px}
.sustep{list-style:none;margin:0 0 22px;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.sustep li{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;position:relative}
.sustep li span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;font-weight:700;border:1px solid var(--line-2);color:var(--muted);background:var(--glass-inner)}
.sustep li small{font-size:.7rem;color:var(--muted);line-height:1.2}
.sustep li.cur span{background:linear-gradient(160deg,var(--btn-a),var(--btn-b));color:var(--btn-ink);border:0;box-shadow:0 0 18px -4px rgba(var(--acc-rgb),.8)}
.sustep li.cur small{color:var(--ink);font-weight:600}
.sustep li.done span{background:var(--ok-soft);color:var(--ok);border-color:color-mix(in srgb,var(--ok) 50%,transparent)}
.sustep li:not(:last-child)::after{content:"";position:absolute;top:15px;left:calc(50% + 20px);right:calc(-50% + 20px);height:1px;background:var(--line-2)}
.su h1{font-size:clamp(1.7rem,3vw,2.2rem)}
.su .help{font-size:.84rem;color:var(--muted);margin-top:6px;line-height:1.45}
.su .opt{font-weight:400;color:var(--muted);font-size:.85em}
.pillset{border:0;padding:0;margin:16px 0 4px;display:flex;flex-wrap:wrap;gap:8px}
.pillset legend{font-weight:600;font-size:.9rem;margin-bottom:8px;width:100%}
.pillopt input{position:absolute;opacity:0;pointer-events:none}
.pillopt span{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--line-2);background:var(--glass-inner);cursor:pointer;font-weight:600;transition:all .15s}
.pillopt input:checked+span{background:linear-gradient(160deg,var(--btn-a),var(--btn-b));color:var(--btn-ink);border-color:transparent;box-shadow:0 0 18px -6px rgba(var(--acc-rgb),.9)}
.pillopt input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.dobwarn{margin-top:16px;padding:14px 16px;border-radius:16px;background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--warn) 45%,transparent);display:grid;gap:8px}
.dobwarn.bad{background:color-mix(in srgb,var(--attn) 12%,transparent);border-color:color-mix(in srgb,var(--attn) 45%,transparent)}
.dobwarn p{color:var(--ink-2);font-size:.9rem}.dobwarn .btn{justify-self:start}
.confirmline{display:flex;gap:10px;align-items:center;font-weight:600;font-size:.9rem;min-height:44px}.confirmline input{width:20px;height:20px;accent-color:var(--acc)}
.review{padding:6px 16px;border-radius:16px;margin-top:14px}
.rvrow{display:grid;grid-template-columns:130px 1fr auto;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.rvrow:last-child{border-bottom:0}
.rvrow span{color:var(--muted);font-size:.86rem}.rvrow b{font-weight:600;overflow-wrap:anywhere}
.sunav{display:flex;justify-content:space-between;gap:12px;margin-top:22px}.sunav .btn{min-height:48px}
@media (max-width:560px){ .sustep li small{display:none} .sustep{margin-bottom:14px} .rvrow{grid-template-columns:1fr auto} .rvrow span{grid-column:1/-1} .sunav .btn{flex:1} }

/* ===== Premium glass layer (grade-tinted through --acc-rgb; same structure in every grade) ===== */
:root{
  --gx-tint:.05; --gx-top:rgba(255,255,255,.80); --gx-bot:rgba(255,255,255,.58); --gx-edge:rgba(255,255,255,.75); --gx-edge-2:rgba(var(--acc-rgb),.16);
  --gx-inset:inset 0 1px 0 rgba(255,255,255,.95), inset 0 -1px 0 rgba(var(--acc-rgb),.06);
  --gx-drop:0 30px 60px -38px rgba(var(--acc-rgb),.45), 0 10px 24px -18px rgba(40,20,80,.18);
  --gx-sheen:rgba(255,255,255,.55);
}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]){
  --gx-top:rgba(255,255,255,.085); --gx-bot:rgba(255,255,255,.025); --gx-edge:rgba(255,255,255,.13); --gx-edge-2:rgba(var(--acc-rgb),.22);
  --gx-inset:inset 0 1px 0 rgba(255,255,255,.14), inset 0 0 0 1px rgba(255,255,255,.015);
  --gx-drop:0 34px 70px -40px rgba(0,0,0,.75), 0 0 0 1px rgba(0,0,0,.08), 0 14px 40px -28px rgba(var(--acc-rgb),.45);
  --gx-sheen:rgba(255,255,255,.09); } }
:root[data-theme="dark"]{
  --gx-top:rgba(255,255,255,.085); --gx-bot:rgba(255,255,255,.025); --gx-edge:rgba(255,255,255,.13); --gx-edge-2:rgba(var(--acc-rgb),.22);
  --gx-inset:inset 0 1px 0 rgba(255,255,255,.14), inset 0 0 0 1px rgba(255,255,255,.015);
  --gx-drop:0 34px 70px -40px rgba(0,0,0,.75), 0 0 0 1px rgba(0,0,0,.08), 0 14px 40px -28px rgba(var(--acc-rgb),.45);
  --gx-sheen:rgba(255,255,255,.09); }
/* Grade 12 is smoked glass: a little darker, gold kept for edges and highlights only */
:root[data-grade="12"][data-theme="dark"]{ --gx-top:rgba(255,255,255,.07); --gx-bot:rgba(0,0,0,.18); --gx-edge-2:rgba(var(--acc-rgb),.18); }
.glass{
  background:linear-gradient(160deg,var(--gx-top),var(--gx-bot) 60%), linear-gradient(160deg,rgba(var(--acc-rgb),var(--gx-tint)),transparent 70%);
  border:1px solid var(--gx-edge);
  box-shadow:var(--gx-inset), var(--gx-drop);
  backdrop-filter:blur(28px) saturate(165%);-webkit-backdrop-filter:blur(28px) saturate(165%);
}
.glass::before{background:radial-gradient(120% 70% at 0% 0%,var(--gx-sheen),transparent 55%),linear-gradient(90deg,transparent,rgba(var(--acc-rgb),.05) 50%,transparent)}
.glass::after{content:"";position:absolute;left:18px;right:18px;top:0;height:1px;border-radius:1px;pointer-events:none;background:linear-gradient(90deg,transparent,var(--gx-edge-2),rgba(255,255,255,.35),var(--gx-edge-2),transparent);opacity:.7}
.inner{background:linear-gradient(160deg,rgba(255,255,255,.06),rgba(255,255,255,.02));border-color:var(--gx-edge);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
:root:not([data-theme="dark"]) .inner{background:linear-gradient(160deg,rgba(255,255,255,.75),rgba(255,255,255,.5))}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .inner{background:linear-gradient(160deg,rgba(255,255,255,.06),rgba(255,255,255,.02))} }
.side.glass,.side .glass{backdrop-filter:blur(34px) saturate(170%);-webkit-backdrop-filter:blur(34px) saturate(170%)}
.btn-ghost{background:linear-gradient(160deg,var(--gx-top),var(--gx-bot));border-color:var(--gx-edge);box-shadow:var(--gx-inset)}
.btn-purple,.btn-gold{box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 10px 26px -12px rgba(var(--acc-rgb),.75)}
/* typography: numbers read cleanly; small labels share one style */
.apsbig,.spbox b,.ovbig,.pstat b,.ch b,.dbox b,.apschart .v{font-variant-numeric:tabular-nums lining-nums}
.kicker,.kicker2,.today,.navgroup,.spbox small,.ch small,.termblk small,.sthead small{letter-spacing:.09em}
@media (prefers-reduced-motion:reduce){ *{transition:none!important;animation:none!important} }

/* fit for this programme, what-if, decision lab, after matric, pathway map */
.fit{margin-top:14px;padding:16px 18px;border-radius:18px;border:1px solid var(--gx-edge);background:linear-gradient(160deg,var(--gx-top),var(--gx-bot))}
.fit.ok{border-color:color-mix(in srgb,var(--ok) 55%,transparent)}.fit.bad{border-color:color-mix(in srgb,var(--attn) 60%,transparent)}.fit.orange{border-color:rgba(240,150,60,.6)}.fit.amber{border-color:color-mix(in srgb,var(--warn) 55%,transparent)}.fit.info{border-color:rgba(90,160,255,.5)}
.fithead{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px}.fithead small{font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.fithead b{font-size:1.08rem}
.fitwhy{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.fitwhy li{display:grid;grid-template-columns:22px 1fr;gap:8px;align-items:start}.fitwhy li b{font-weight:600}.fitwhy li small{display:block;color:var(--muted);font-size:.82rem}
.fitsum{margin-top:10px;color:var(--ink-2);font-weight:500}
.fitflags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.fflag{font-size:.78rem;padding:4px 10px;border-radius:999px;background:var(--glass-inner);border:1px solid var(--line)}
.fittodo{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.fittodo small{font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--gold)}.fittodo p{color:var(--ink-2);margin-top:4px}
.whysuit{margin-top:10px;padding:12px 14px;border-radius:14px;background:rgba(var(--acc-rgb),.08);border:1px solid rgba(var(--acc-rgb),.25)}.whysuit small{font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--acc)}.whysuit p{color:var(--ink-2);margin-top:4px}
.schip.fitchip{align-self:flex-start;margin:4px 0}.schip.fitchip.bad{color:var(--attn)}.schip.fitchip.orange{color:#E8913A}.schip.fitchip.ok{color:var(--ok)}
.apsbars{display:grid;gap:10px;margin-top:8px}.abrow{display:grid;grid-template-columns:150px 1fr 44px;gap:10px;align-items:center}.abrow span{font-size:.85rem;color:var(--ink-2)}
.abtrack{height:22px;border-radius:8px;background:var(--line)}.abtrack i{display:block;height:100%;border-radius:8px;background:rgba(var(--acc-rgb),.45)}.abtrack i.now{background:linear-gradient(90deg,rgba(var(--acc-rgb),.6),var(--acc))}
.abrow b{font-family:var(--font-display);font-size:1.4rem;text-align:right}.abdiff{font-weight:700}.abdiff.up{color:var(--ok)}.abdiff.down{color:var(--attn)}
.wigrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:16px;margin-top:14px;align-items:start}
.wirow{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1.6fr) 104px;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.wirow.focus label{color:var(--acc);font-weight:700}.wirow label{font-size:.9rem;font-weight:600}.wirow label em{font-style:normal;color:var(--gold);font-weight:500}
.wirow input[type=range]{width:100%;accent-color:var(--acc);height:28px}
.wival{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}.wival small{color:var(--muted);font-weight:500}.wival em{font-style:normal;font-size:.8rem}.wival em.up{color:var(--ok)}.wival em.down{color:var(--attn)}
.wiout .pstats{margin:10px 0}.h3s{font-family:var(--font-body);font-size:.8rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:16px 0 8px}
.witarget{padding:10px 12px;border-radius:14px;background:var(--glass-inner);border:1px solid var(--line);margin-bottom:8px;display:grid;gap:4px}.witarget.ctx{border-color:rgba(var(--acc-rgb),.6)}
.witarget small{color:var(--muted)}.wichg{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:.88rem}.wichg .arr{color:var(--muted)}
.okline{color:var(--ok);font-weight:600}
.dlgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-top:14px}
.dlhead{display:flex;gap:8px;align-items:center;margin-bottom:8px}.dlname{font-weight:700}.dll{display:flex;flex-direction:column;gap:4px;font-size:.8rem;font-weight:600;margin-top:8px;color:var(--muted)}
.dlres{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.dlbig b{font-family:var(--font-display);font-size:2rem;color:var(--acc);margin-right:4px}
.pmap{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-top:10px;position:relative}
.pmnode{padding:14px 16px;border-radius:18px;display:grid;gap:8px;align-content:start}.pmnode>small{font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--acc)}
.pmnode .tags{margin:0}.pmnote{display:flex;gap:8px;align-items:center;margin-top:14px;color:var(--ink-2);font-weight:500}
.pmcols{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.story{list-style:none;margin:8px 0 0;padding:0 0 0 16px;border-left:2px solid rgba(var(--acc-rgb),.4);display:grid;gap:12px}.story li{position:relative;display:grid;gap:2px}.story li::before{content:"";position:absolute;left:-23px;top:5px;width:12px;height:12px;border-radius:50%;background:var(--acc)}.story small{color:var(--muted);font-size:.78rem}
.mstones{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}.mstones li{display:flex;gap:10px;align-items:center;color:var(--muted)}.mstones li span{width:24px;height:24px;border-radius:50%;border:1px solid var(--line-2);display:grid;place-items:center;font-size:13px;flex:none}.mstones li.done{color:var(--ink)}.mstones li.done span{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}
.altgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin-top:10px}.altcard{padding:14px;border-radius:16px;display:grid;gap:6px;align-content:start}.altcard b{font-weight:700}.altcard p{color:var(--ink-2);font-size:.9rem}.altcard small{color:var(--muted);font-size:.8rem;line-height:1.4}
.realityline{font-weight:600;color:var(--ink-2);margin-bottom:8px}
.nextpanel{margin:18px 0}.nextpanel small{font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--acc)}.nextpanel h3{margin:4px 0 0}
.gfixq{margin-top:14px;display:grid;gap:8px}.gfixq p{color:var(--ink-2)}.gfixq .btn{justify-self:start}
.ccourse.static{cursor:default;grid-template-columns:minmax(0,1fr) auto auto}
@media (max-width:900px){ .wigrid,.pmcols{grid-template-columns:1fr} }
@media (max-width:560px){ .wirow{grid-template-columns:1fr 92px}.wirow input[type=range]{grid-column:1/-1;grid-row:2} .abrow{grid-template-columns:96px 1fr 38px} .ccourse.static{grid-template-columns:1fr} }
.wirow input[type=range]{height:36px}.ob{min-width:36px;min-height:36px}
/* ---------- Applications hub (Grades 11–12) — reuses glass tokens and the grade theme accent ---------- */
.ahintro{margin-top:4px}
.ahsearch .fsearch{margin-top:0;max-width:560px}
.ahfilters{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.ahfilters .chip{cursor:pointer;min-height:40px;height:auto;padding:6px 14px;font:inherit;font-size:.88rem;font-weight:600}
.ahfilters .chip:hover{border-color:rgba(var(--acc-rgb),.6)}
.ahfilters .chip.on{background:rgba(var(--acc-rgb),.18);border-color:rgba(var(--acc-rgb),.7);color:var(--ink)}
.ahfilters .chip:focus-visible,.ahcard:focus-visible,.ahnav .chip:focus-visible{outline:2px solid rgba(var(--acc-rgb),.9);outline-offset:2px}
.ahcount{margin-top:12px}
.ahlegend{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px}
.ahchip{height:auto;min-height:26px;padding:3px 10px;white-space:normal;line-height:1.25}
.ahgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:14px;margin-top:16px}
.ahcard{display:flex;flex-direction:column;gap:10px;padding:18px;border-radius:22px;color:inherit;text-decoration:none;min-width:0;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.ahcard:hover{transform:translateY(-2px);border-color:rgba(var(--acc-rgb),.55);box-shadow:var(--shadow),0 0 40px -22px rgba(var(--acc-rgb),.8)}
.ahcard[hidden]{display:none}
.ahtop{display:flex;gap:12px;align-items:center;min-width:0}
.ahname{min-width:0}.ahname b{display:block;font-weight:700;line-height:1.3;overflow-wrap:anywhere}.ahname small{color:var(--muted);font-size:.8rem}
.ahloc{display:flex;gap:6px;align-items:flex-start;color:var(--ink-2);font-size:.86rem;line-height:1.4;margin:0}.ahloc .i{flex:none;margin-top:2px;color:var(--muted)}
.ahmeta{display:flex;flex-wrap:wrap;gap:6px}
.ahview{margin-top:auto;font-weight:600;color:var(--purple);display:inline-flex;align-items:center;gap:6px;font-size:.92rem}
.ahx{display:inline-block;margin-left:4px;font-size:.85em}
.ahback{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:4px 0 14px}
.ahnav{display:flex;flex-wrap:wrap;gap:6px}.ahnav .chip{text-decoration:none;min-height:36px;height:auto}
.ahsec{margin-top:14px;min-width:0}
.ahsec>h2{display:flex;align-items:center;gap:12px}.ahsec>h2 .pub-ic{width:40px;height:40px;font-size:18px}
.ahov{display:flex;gap:14px;align-items:center;margin-bottom:14px;min-width:0}.ahov h3{overflow-wrap:anywhere}
.ifact .ahchip{justify-self:start}.ifact b a{overflow-wrap:anywhere;display:inline-flex;align-items:center;min-height:40px}
.ahcta{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start;padding:16px;border-radius:18px;background:var(--glass-inner);border:1px solid var(--line)}
.ahcta>div{flex:1 1 240px;min-width:0;display:grid;gap:6px;justify-items:start}
.ahlink{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:12px 14px}
.ahwb{margin-top:10px}
.ahfacts{margin-top:14px}
.ahstate{display:flex;gap:8px;align-items:center;margin-top:12px}
.ahsteps{margin:0;padding-left:1.3em;display:grid;gap:6px;color:var(--ink-2);line-height:1.5}
.ahextra{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}.ahextra li{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}.ahextra small{flex-basis:100%}
.ahfund{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px}
.ahfc{padding:16px 18px;display:grid;gap:8px;justify-items:start;align-content:start}.ahfc small{color:var(--muted);font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.ahfc p{color:var(--ink-2);line-height:1.5;margin:0}
.ahintake{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ahtable{display:grid;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.ahtable>div{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 14px;border-top:1px solid var(--line)}
.ahtable>div:first-child{border-top:0}.ahth{background:var(--glass-inner);font-size:.8rem;color:var(--muted);font-weight:600}
.ahfeefacts{margin-top:10px}
.ahdates{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ahdates li{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:12px;align-items:start;padding:12px 14px}
.ahd b{display:block}.ahd small{color:var(--muted);font-size:.78rem}.ahdates p{margin:2px 0 0}
.ahsrc{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:16px}
.ahsep{margin:14px 0 0;color:var(--ink-2);line-height:1.55}
.ahcamps{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:8px;margin-bottom:10px}
.ahcamp{display:flex;gap:8px;align-items:center;padding:12px 14px}.ahcamp b{font-weight:600;overflow-wrap:anywhere}.ahcamp .i{color:var(--muted);flex:none}
.ahtg{margin-top:12px}
.ahfoot p+p{margin-top:8px}
@media (max-width:640px){
  .ahdates li{grid-template-columns:1fr}
  .ahtable>div{grid-template-columns:1fr auto;}.ahtable>div>span:nth-child(3){grid-column:1/-1}
  .ahth{display:none!important}
  .ahcta .btn{width:100%}
  .ahsec>h2 .pub-ic{width:34px;height:34px}
}
