/* ExploraSelf Leader’s North Star · v18.
   The live North Star palette and fonts (Newsreader + Inter), more
   atmosphere and motion, small line icons. Every colour is a token on .cf;
   the dark workspace theme redefines them. Motion stops under
   prefers-reduced-motion. */
html{scroll-behavior:smooth}
body{margin:0;background:#FBFCFE;font-weight:370}
body.dark{background:#121E2D}
a{color:#3E6A94}a:hover{color:#0E1C2B}
.cf{--paper:#FFFFFF;--panel:#FBFCFE;--ink:#0E1C2B;--muted:#56647A;--line:#CBD5E1;--cream:#E3EAF2;--goldink:#3E6A94;--deep:#0E1C2B;--gold:#6F93B8;--self:#A8623A;--people:#4C7355;--work:#36607F;--market:#9A7418;--tself:#F4E6DD;--tpeople:#E3ECE4;--twork:#E0E9F0;--tmarket:#F3EAD3;--ring:rgba(62,106,148,.06);--glow:rgba(111,147,184,.16)}
.cf[data-theme="dark"]{--paper:#0B1420;--panel:#121E2D;--ink:#EEF2F7;--muted:#A9B6C6;--line:#2A3A50;--cream:#1A2738;--goldink:#A9C0D9;--deep:#08101A;--self:#E0A282;--people:#9BC0A1;--work:#91B8D5;--market:#DDBD69;--tself:rgba(224,162,130,.16);--tpeople:rgba(155,192,161,.16);--twork:rgba(145,184,213,.16);--tmarket:rgba(221,189,105,.16);--ring:rgba(111,147,184,.07);--glow:rgba(111,147,184,.12)}
.cf[data-theme="dark"] a{color:#A9C0D9}
.cf *{box-sizing:border-box}
.cf h1,.cf h2,.cf h3,.cf p{margin:0}
.cf{font-family:'Inter',Arial,sans-serif;color:var(--ink);font-size:14px;line-height:1.6;display:flex;flex-wrap:wrap;align-items:flex-start;min-height:100vh}
.cf button,.cf input,.cf select{font-family:'Inter',Arial,sans-serif}
.cf :focus-visible{outline:3px solid #6F93B8;outline-offset:3px}
.skip{position:fixed;top:-60px;left:8px;background:#6F93B8;color:#0E1C2B;padding:12px;z-index:100}.skip:focus{top:8px}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sf{font-family:Newsreader,Georgia,serif;font-weight:440}
.sfi{font-family:Newsreader,Georgia,serif;font-style:italic;font-weight:400}
.serif{font-family:Newsreader,Georgia,serif;font-style:italic;font-weight:400}
.eb{font-size:10px;font-weight:520;letter-spacing:.18em;color:var(--goldink);text-transform:uppercase}
.atmo{background-color:var(--panel);background-image:radial-gradient(ellipse 55% 30% at 85% 4%,var(--glow),transparent 70%),radial-gradient(ellipse 45% 25% at 10% 50%,var(--glow),transparent 70%),repeating-radial-gradient(circle at 85% 4%,var(--ring) 0 1px,transparent 1px 52px)}
.deep{background:var(--deep);color:#EEF2F7;background-image:radial-gradient(ellipse 60% 70% at 80% 0%,rgba(111,147,184,.18),transparent 70%),repeating-radial-gradient(circle at 80% 0%,rgba(111,147,184,.07) 0 1px,transparent 1px 40px)}
.card{background:var(--paper);border:1px solid var(--line);border-radius:7px;transition:transform .25s ease,box-shadow .25s ease}
.lift:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(28,19,9,.10)}
.inp{font-family:inherit;font-size:14px;min-height:44px;padding:0 10px;border:1.5px solid var(--line);border-radius:5px;background:var(--paper);color:var(--ink);width:100%}
.cf h1.sf,.cf h2.sf{letter-spacing:-.03em}
input[type=range]{width:100%;accent-color:#6F93B8;height:44px}
.cf main{flex:999 1 520px;min-width:0;padding:20px 22px 80px;display:flex;flex-direction:column;gap:64px}

/* ── Left menu ── */
.side{flex:0 0 225px;position:sticky;top:0;height:100vh;overflow-y:auto;background:#0E1C2B;color:#EEF2F7;padding:28px 16px;display:flex;flex-direction:column;z-index:30}
.navl{display:flex;flex-direction:column;gap:7px}
.nl{position:relative;width:100%;text-align:left;background:none;font-family:inherit;cursor:pointer;text-decoration:none;font-size:13px;font-weight:400;padding:12px 13px;border-radius:6px;color:#B8C6D6;display:flex;gap:10px;align-items:center;border:1px solid transparent;transition:background .2s ease,color .2s ease}
.nl:hover{background:rgba(255,255,255,.07);color:#EEF2F7}
.nl.on{color:#EEF2F7;background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.07)}
.ni{font-size:12px;width:20px;text-align:center;color:#B8C6D6;flex:none}
.nl.on .ni{color:#6F93B8}
.nl::before{content:"";position:absolute;left:0;top:25%;bottom:25%;width:2px;background:#6F93B8;transform:scaleY(0);transition:transform .25s ease}
.nl:hover::before,.nl.on::before{transform:scaleY(1)}

/* ── Motion ── */
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes land{0%{box-shadow:0 0 0 0 rgba(111,147,184,.7)}100%{box-shadow:0 0 0 12px rgba(111,147,184,0)}}
@keyframes pop{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
@keyframes shimmer{0%,100%{opacity:.55}50%{opacity:1}}
@keyframes spinSlow{to{transform:rotate(360deg)}}
@keyframes grow{from{transform:scale(.2);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes orb{to{transform:rotate(360deg)}}
@keyframes trackIn{from{letter-spacing:.6em;opacity:0}to{letter-spacing:.2em;opacity:1}}
@keyframes mapDrift{from{background-position:0 0,0 0}to{background-position:0 0,40px 40px}}
@keyframes sonar{0%{transform:translate(-50%,-50%) scale(.5);opacity:.9}100%{transform:translate(-50%,-50%) scale(2.6);opacity:0}}
@keyframes beacon{0%,100%{box-shadow:0 0 0 0 rgba(111,147,184,0),0 0 18px 4px rgba(111,147,184,.55)}50%{box-shadow:0 0 0 10px rgba(111,147,184,.12),0 0 34px 10px rgba(111,147,184,.85)}}
@keyframes travel{0%{left:var(--from);opacity:0}8%{opacity:1}92%{opacity:1}100%{left:var(--to);opacity:0}}
@keyframes wayOn{from{transform:translate(-50%,-50%) scale(.4);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}
@keyframes nextGlow{0%,100%{box-shadow:0 0 0 0 rgba(111,147,184,.5)}60%{box-shadow:0 0 0 12px rgba(111,147,184,0)}}
@keyframes flag{0%,100%{transform:translateX(-50%) rotate(-3deg)}50%{transform:translateX(-50%) rotate(3deg)}}
@keyframes cellIn{from{opacity:0;transform:scaleY(.3)}}
@keyframes pinPulse{0%,100%{box-shadow:0 0 0 0 rgba(111,147,184,.7)}60%{box-shadow:0 0 0 7px rgba(111,147,184,0)}}
@keyframes march{to{stroke-dashoffset:-48}}
@keyframes stopIn{from{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}
@keyframes haloP{0%,100%{opacity:.9}50%{opacity:.25}}
@keyframes flagWave{0%,100%{transform:skewY(0)}50%{transform:skewY(-6deg)}}
@keyframes foil{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes twinkle{0%,100%{opacity:.25}50%{opacity:1}}
@keyframes glowPk{0%,100%{opacity:.5;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}
@keyframes itemIn{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}
@keyframes assemble{from{transform:scale(.3);opacity:0}to{transform:scale(1)}}
.rise{animation:rise .7s cubic-bezier(.2,.7,.2,1) both}.r1{animation-delay:.1s}.r2{animation-delay:.2s}.r3{animation-delay:.3s}
.pop{animation:pop .5s cubic-bezier(.2,.7,.2,1) both}
.shim{animation:shimmer 2.6s ease-in-out infinite}
.spin{transform-origin:center;transform-box:fill-box;animation:spinSlow 50s linear infinite}
.grow{transform-origin:200px 200px;animation:grow 1s cubic-bezier(.2,.7,.2,1) both}
.bar{transition:width .5s cubic-bezier(.2,.7,.2,1),background .3s ease}
.ringp{transition:stroke-dashoffset .6s cubic-bezier(.2,.7,.2,1)}
.node{transition:fill .4s ease}
.orbit2{transform-origin:60px 60px;animation:orb 9s linear infinite}
.cta{animation:land 2.4s ease-out infinite}
.track{animation:trackIn 1.4s cubic-bezier(.2,.7,.2,1) both}
.drift{animation:mapDrift 18s linear infinite alternate}
.go .arr{display:inline-block;transition:transform .25s ease}.go:hover .arr{transform:translateX(5px)}
.stepc .sico{transition:transform .35s cubic-bezier(.2,.7,.2,1)}.stepc:hover .sico{transform:rotate(-12deg) scale(1.15)}
.stepc .sarr{opacity:0;transform:translateX(-6px);transition:opacity .25s ease,transform .25s ease;color:var(--goldink)}.stepc:hover .sarr{opacity:1;transform:none}
.jring{position:absolute;left:0;top:50%;width:26px;height:26px;border-radius:50%;border:2px solid #6F93B8;animation:sonar 2.4s ease-out infinite}
.ring2{animation-delay:1.2s}
.beacon{animation:beacon 2.2s ease-in-out infinite}
.trav{position:absolute;top:50%;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:#EEF2F7;box-shadow:0 0 12px 3px rgba(243,239,234,.8);animation:travel 3.2s ease-in-out infinite}
.way{animation:wayOn .5s cubic-bezier(.2,.7,.2,1) both}
.next1{animation:nextGlow 2.4s ease-out infinite}
.flag{animation:flag 3s ease-in-out infinite;transform-origin:bottom center;transform:translateX(-50%)}
.fill{transition:left .8s cubic-bezier(.2,.7,.2,1),width .9s cubic-bezier(.2,.7,.2,1)}
.j h1,.j h2,.j .stname{font-family:Newsreader,Georgia,serif !important;font-weight:440 !important;text-transform:none !important;letter-spacing:-.02em !important}
.cellin{animation:cellIn .6s cubic-bezier(.2,.7,.2,1) both}
.pinp{animation:pinPulse 2s ease-out infinite}
.trail{animation:march 3s linear infinite}
.stopc{transform-box:fill-box;transform-origin:center;animation:stopIn .6s cubic-bezier(.2,.7,.2,1) both;transition:fill .3s ease}
.halo{animation:haloP 2s ease-in-out infinite}
.flagw{transform-box:fill-box;transform-origin:left center;animation:flagWave 3s ease-in-out infinite}
.blurline{filter:blur(2px)}
.lux{background-color:#0E0A05;color:#EEF2F7;background-image:radial-gradient(ellipse 60% 55% at 70% 20%,rgba(111,147,184,.22),transparent 70%),radial-gradient(ellipse 40% 40% at 10% 90%,rgba(111,147,184,.10),transparent 70%),repeating-radial-gradient(circle at 70% 20%,rgba(111,147,184,.06) 0 1px,transparent 1px 56px)}
.foil{background:linear-gradient(100deg,#6F93B8 0%,#F3DDA0 25%,#6F93B8 45%,#8E6A22 60%,#A9C0D9 80%,#6F93B8 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:foil 7s ease-in-out infinite}
.twinkle{animation:twinkle 3.2s ease-in-out infinite}.t2{animation-delay:1.1s}.t3{animation-delay:2.2s}
.glowpeak{transform-box:fill-box;transform-origin:center;animation:glowPk 4s ease-in-out infinite}
.itemin{animation:itemIn .6s cubic-bezier(.2,.7,.2,1) both}
.band{transform-origin:60px 60px;transform-box:view-box}
@supports (animation-timeline: view()){.reveal-lp .band{animation:assemble linear both;animation-timeline:view();animation-range:entry 0% cover 35%}}
/* Parts redrawn after the first paint keep still: only what is new moves. */
.settled .rise{animation:none}

/* ── Mobile: the menu scrolls away, one slim bar stays at the bottom ── */
.mbar{display:none}
#gate{display:contents}
@media (max-width:860px){
  .side{flex:1 1 100%;position:relative;height:auto;padding:10px 14px 0}
  .side img{width:28px !important}
  .navl{flex-direction:row;overflow-x:auto;gap:3px;margin-top:10px;padding-bottom:8px}
  .nl{font-size:11px;white-space:nowrap;padding:8px 10px}
  .side-extra{display:none}
  .lp-sticky{display:none !important}
  .mbar{display:flex;padding:8px 12px}
  .cf main{padding:20px 16px 80px;gap:48px}
  .topbar{margin:-20px -16px 0 !important;padding:10px 16px !important}
}
@media (max-width:520px){
  .gate-two{grid-template-columns:1fr !important}
  .deep-hero{padding:30px 22px !important}
}

/* ── Print / Save as PDF: the results, without the furniture ── */
@media print{
  body{background:#fff}
  .cf{display:block;background:#fff !important}
  .side,.topbar,.mbar,.lp-sticky,.no-print,#gate,#s-summit,#s-method,.cf main>button{display:none !important}
  .cf main{padding:0;gap:24px}
  .deep,.lux{print-color-adjust:exact;-webkit-print-color-adjust:exact}
  section{break-inside:avoid-page}
  a{text-decoration:none}
  @page{size:A4;margin:14mm}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rise,.pop,.shim,.spin,.grow,.orbit2,.cta,.track,.drift,.jring,.beacon,.trav,.way,.next1,.flag,.cellin,.pinp,.trail,.stopc,.halo,.flagw,.foil,.twinkle,.glowpeak,.itemin,.band{animation:none !important}
  .jring,.trav{display:none}
  .bar,.ringp,.node,.fill,.card,.nl{transition:none !important}
}
details[open] .st-open{visibility:hidden}
details[data-step] summary::-webkit-details-marker{display:none}

/* ── What-if lab v2 ── */
.breath{height:14px;margin-block:-35px;display:flex;justify-content:center;align-items:center}
.whead{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,360px);gap:24px;align-items:center}
.whub{width:100%;max-width:360px;height:auto;justify-self:end}
.whub .node{transition:fill .5s}
.wswitch{display:inline-grid;grid-template-columns:1fr 1fr 1fr;gap:4px;padding:4px;border:1px solid #3A2F20;border-radius:999px;align-self:flex-start}
.wswitch button{min-height:44px;padding:0 18px;border-radius:999px;border:0;background:transparent;color:#EEF2F7;font-weight:520;font-size:14px;cursor:pointer}
.wswitch button[aria-pressed="true"]{background:#6F93B8;color:#0E1C2B}
.wswitch button:disabled{cursor:not-allowed;opacity:.6}
.wlock{border:1.5px solid #6F93B8;border-radius:10px;padding:16px 18px;display:flex;gap:14px;align-items:center;flex-wrap:wrap;background:rgba(111,147,184,.10);animation:wglow 2.2s ease-in-out infinite}
@keyframes wglow{0%,100%{box-shadow:0 0 0 0 rgba(111,147,184,0)}50%{box-shadow:0 0 0 6px rgba(111,147,184,.22)}}
.wlock-msg{flex:1 1 300px;display:flex;flex-direction:column;gap:8px;min-width:0;font-size:13px;color:#A9B6C6}
.wlock-msg strong{font-size:17px;color:#EEF2F7}
.wchips{display:flex;flex-wrap:wrap;gap:6px}
.wchip{font-size:12px;color:#EEF2F7;border:1px solid #2A3A50;border-radius:999px;padding:3px 10px;display:inline-flex;gap:6px;align-items:center}
.wchip i{width:7px;height:7px;border-radius:50%;background:#E0A282;display:inline-block;animation:wblink 1.2s ease-in-out infinite}
@keyframes wblink{50%{opacity:.25}}
.wheads,.wpair{display:grid;grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr);gap:0 14px}
.wheads{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#A9B6C6;font-weight:520;margin-bottom:10px}
.wrows{display:flex;flex-direction:column;gap:14px}
.wpair{align-items:stretch}
.warrow{display:flex;align-items:center;justify-content:center;color:#6F93B8}
.warrow svg{width:26px;height:26px}
.wcard{background:rgba(247,242,231,.05);border:1px solid #3A2F20;border-radius:9px;padding:14px 16px;display:flex;flex-direction:column;gap:6px;min-width:0}
.wrow{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.wname{font-weight:520;font-size:15px;display:inline-flex;gap:10px;align-items:center;color:#EEF2F7}
.wbig{font-family:Newsreader,Georgia,serif;font-size:25px;color:#A9C0D9;font-variant-numeric:tabular-nums;white-space:nowrap}
.wnote{font-size:13px;color:#A9B6C6}
.wdom{font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:600}
.wcard input[type=range]{width:100%;accent-color:#6F93B8;height:28px;margin:0;cursor:pointer}
.wcard input[type=range]:disabled{cursor:not-allowed}
.wtrack{position:relative;height:10px;border-radius:5px;background:#3A2F20;margin:16px 0 10px}
.wfill{position:absolute;left:0;top:0;bottom:0;border-radius:5px;transition:width .6s ease,background-color .4s ease}
.wthumb{position:absolute;top:50%;width:22px;height:22px;margin-left:-11px;border-radius:50%;transform:translateY(-50%);background:#EEF2F7;border:3px solid #0E1C2B;box-shadow:0 0 0 2px currentColor;transition:left .6s ease,color .4s ease}
.wtoday{position:absolute;top:-6px;bottom:-6px;width:2px;background:#EEF2F7;opacity:.45}
.wtoday span{position:absolute;top:-17px;left:50%;transform:translateX(-50%);font-size:10px;color:#A9B6C6;white-space:nowrap}
.wlimit{position:absolute;top:-6px;bottom:-6px;border-left:2px dashed #DDBD69}
.wlimit span{position:absolute;bottom:-17px;left:50%;transform:translateX(-50%);font-size:10px;color:#DDBD69;white-space:nowrap}
.wlab.locked .wpair{opacity:.5;filter:saturate(.4)}
.wlab.locked .wthumb,.wlab.locked .wfill{transition:none}
.wverdict{background:rgba(111,147,184,.12);border-radius:9px;padding:14px 16px;font-weight:520;font-size:16px;line-height:1.45}
.wverdict:empty{display:none}
.wfine{border:1px solid #3A2F20;border-radius:9px;padding:12px 16px}
.wfine summary{cursor:pointer;font-weight:520;color:#A9C0D9;min-height:28px}
.glowbox{border-color:#6F93B8 !important;animation:wbox 1s ease-in-out 4}
@keyframes wbox{0%,100%{box-shadow:0 0 0 0 rgba(111,147,184,0)}50%{box-shadow:0 0 0 6px rgba(111,147,184,.45)}}

/* ── Dawn: the road to The Summit ── */
.dawn{position:relative;overflow:hidden;border-radius:14px;background:linear-gradient(180deg,#07050A 0%,#120C08 55%,#2A1A0C 100%);color:#EEF2F7}
.dawn canvas{display:block;width:100%;height:360px}
.dawn-cap{position:absolute;left:0;right:0;top:26px;text-align:center;padding-inline:16px;display:flex;flex-direction:column;gap:6px;align-items:center;pointer-events:none}
.dawn-cap span{font-size:11px;letter-spacing:.32em;color:#A9C0D9}
.dawn-cap strong{font-family:Newsreader,Georgia,serif;font-weight:400;font-style:italic;font-size:clamp(22px,3.4vw,34px);line-height:1.2}

@media (max-width:860px){
  .breath{margin-block:-19px}
  .whead{grid-template-columns:1fr}
  .whub{justify-self:center;max-width:300px}
  .wheads{display:none}
  .wswitch{align-self:stretch;border-radius:14px}
  .wswitch button{padding:6px 10px;font-size:13px;line-height:1.2;border-radius:10px}
  .wpair{grid-template-columns:1fr;gap:6px}
  .warrow{transform:rotate(90deg);height:26px}
  .wrows{gap:22px}
  .dawn canvas{height:340px}
}
@media (prefers-reduced-motion:reduce){
  .wlock,.wchip i,.glowbox{animation:none}
  .wfill,.wthumb,.whub .node{transition:none}
}
@media print{.breath,.dawn{display:none !important}}

/* Phones: the title and the animated compass on the first screen, no
   scrolling. Less space above the hero, the compass first in its card and a
   little smaller. Desktop is unchanged. */
@media (max-width:520px){
  .cf main{padding-top:8px}
  #s-overview{gap:16px !important;margin-top:-28px}
  #s-overview p{line-height:1.6 !important}
}
[data-off],[data-off] *{animation-play-state:paused !important}
/* The way into the incubator, in its own place under the North Star menu. */
.incub-link{display:flex;align-items:center;gap:10px;margin:16px 0 0;padding:12px;border-radius:10px;text-decoration:none;color:#F6EEDD;background:linear-gradient(120deg,#2B1B12,#1C1309);border:1px solid rgba(214,191,143,.6);box-shadow:inset 0 0 0 3px #1C1309,inset 0 0 0 4px rgba(214,191,143,.25)}
.incub-link:hover{border-color:#D6BF8F}
.incub-link:focus-visible{outline:2px solid #B4975F;outline-offset:3px}
.incub-link svg{width:26px;height:26px;flex:none;color:#D6BF8F}
.incub-link span{flex:1;min-width:0;line-height:1.25}
.incub-link small{display:block;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:#D6BF8F;font-weight:520}
.incub-link b{display:block;font:440 14.5px/1.25 Newsreader,Georgia,serif}
.incub-link i{font-style:normal;color:#D6BF8F}
/* The Blueprint keeps its own colours (antique gold) inside the North Star (steel blue). */
@media (max-width:860px){.incub-link{margin:8px 0 10px;padding:10px 12px}}

/* The top bar stays at the top while you scroll (30 Oct). */
.topwrap{position:sticky;top:20px;z-index:25}
.topwrap .topbar{background:var(--panel);box-shadow:0 10px 24px -20px rgba(14,28,43,.5)}

/* The menu follows the reading (spy.js, 30 Oct): a soft light glides to the
   section on screen; a thin line fills with how far through the page you are. */
.navl{position:relative}
.nl{z-index:1;transition:color .5s ease,background-color .5s ease,border-color .5s ease}
.nl.on{background:transparent;border-color:transparent}
.nl.on .ni{transition:color .5s ease}
.nl-glow{position:absolute;left:0;top:0;z-index:0;border-radius:6px;pointer-events:none;opacity:0;
  background:linear-gradient(90deg,rgba(111,147,184,.28),rgba(111,147,184,.08) 70%,transparent);box-shadow:inset 0 0 0 1px rgba(169,192,217,.22),0 0 22px -6px rgba(111,147,184,.55);
  transition:transform .7s cubic-bezier(.22,1,.36,1),width .7s cubic-bezier(.22,1,.36,1),height .7s cubic-bezier(.22,1,.36,1),opacity .5s ease}
.nl-glow.show{opacity:1}
.nl-glow::before{content:"";position:absolute;left:0;top:18%;bottom:18%;width:2px;border-radius:2px;background:#A9C0D9;box-shadow:0 0 10px 1px rgba(169,192,217,.8)}
.nl.on::before,.nl:hover::before{transform:scaleY(0)}
.nav-prog{position:absolute;left:-10px;top:4px;bottom:4px;width:1px;background:rgba(169,192,217,.14);pointer-events:none}
.nav-prog i{position:absolute;inset:0;background:linear-gradient(#6F93B8,#A9C0D9);transform-origin:top;transform:scaleY(0);transition:transform .25s linear}
@media(max-width:860px){.nav-prog{display:none}.nl-glow::before{left:18%;right:18%;top:auto;bottom:0;width:auto;height:2px}}
@media(prefers-reduced-motion:reduce){.nl-glow,.nav-prog i{transition:none}}

/* ── Hero · The Horizon (30 Oct) ──────────────────────────────────────
   "From founder" · the dial · "to intentional leader." The dial sits on a
   thin horizon line under a quiet star sky (horizon.js). One centred button.
   Phones stack the three parts, so the dial is still on the first screen. */
.cf main>#how:empty,.cf main>#ws:empty{display:none} /* empty helper boxes no longer push the hero down */
.hz{position:relative;overflow:hidden;border-radius:14px;padding:46px 40px 44px;display:flex;flex-direction:column;align-items:center;gap:26px;color:#EEF2F7;background:#0A1522;
 background-image:linear-gradient(180deg,transparent 45%,rgba(111,147,184,.10) 75%,rgba(111,147,184,.18)),radial-gradient(ellipse 60% 55% at 50% 48%,rgba(111,147,184,.16),transparent 70%)}
.hz::after{content:"";position:absolute;inset:10px;border:1px solid rgba(111,147,184,.2);border-radius:9px;pointer-events:none}
.hz>*{position:relative;z-index:1}
.hz .hz-sky{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.hz-eb{color:#A9C0D9;font-size:11px;letter-spacing:.2em;text-align:center}
.hz-row{position:relative;display:grid;grid-template-columns:1fr minmax(240px,360px) 1fr;align-items:center;gap:28px;width:100%;margin:0;font-size:inherit}
.hz-row::before{content:"";position:absolute;left:-60px;right:-60px;top:50%;height:1px;background:linear-gradient(90deg,transparent,rgba(169,192,217,.55) 18%,rgba(169,192,217,.55) 82%,transparent);z-index:-1}
.hz-w{font-size:clamp(40px,4.4vw,66px);line-height:1.02;letter-spacing:-.03em;text-wrap:balance}
.hz-l{text-align:right;color:#EEF2F7}
.hz-r{text-align:left;color:#A9C0D9}
.hz-mid{display:block;color:#EEF2F7;filter:drop-shadow(0 0 40px rgba(111,147,184,.28))}
.hz-mid svg{display:block;width:100%;height:auto}
.hz-sub{color:#B8C6D6;font-size:16px;line-height:1.75;max-width:60ch;text-align:center}
.hz-cta{display:flex;flex-direction:column;align-items:center;gap:10px}
.hz-go{min-height:52px;min-width:260px;padding:0 24px;border-radius:4px;border:1px solid #A9C0D9;background:#6F93B8;color:#0E1C2B;font-weight:520;font-size:15px;letter-spacing:.02em;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:10px;box-shadow:0 10px 30px -12px rgba(111,147,184,.7);transition:background .25s,box-shadow .25s,transform .25s}
.hz-go:hover{background:#86A6C7;transform:translateY(-1px);box-shadow:0 16px 36px -12px rgba(111,147,184,.85)}
.hz-meta{font-size:12px;letter-spacing:.06em;color:#A9B6C6;text-align:center}
@media (max-width:860px){
  .hz{padding:30px 20px 32px;gap:18px}
  .hz-row{grid-template-columns:1fr;gap:6px}
  .hz-row::before{display:none}
  .hz-l,.hz-r{text-align:center;font-size:40px}
  .hz-mid{width:min(250px,70vw);margin:6px auto}
  .hz-go{min-width:0;width:100%}
}
@media (prefers-reduced-motion:reduce){.hz-go{transition:none}}

/* The launchpad banner while stuck under the top bar: one slim line. */
.lp-sticky{transition:padding .25s ease}
.lp-sticky.stuck{padding:8px 16px !important;gap:12px !important;border-radius:0 0 10px 10px !important}
.lp-sticky.stuck .lp-emb{width:44px !important;height:44px !important}
.lp-sticky.stuck .eb,.lp-sticky.stuck .sf + div{display:none !important}
.lp-sticky.stuck .sf{font-size:15px !important}
.lp-sticky.stuck .cta{min-height:40px !important;font-size:14px}

/* The Summit: a lit trail climbs to the peak, the camps light in turn, the
 * north star breathes above the snow. Still when motion is reduced. */
.sm-trail{stroke-dashoffset:0;animation:smTrail 9s linear infinite}
@keyframes smTrail{0%{opacity:.25}70%{opacity:1}100%{opacity:.25}}
.sm-camp{animation:smCamp 9s ease-in-out infinite}
.sm-camp.c1{animation-delay:1.4s}.sm-camp.c2{animation-delay:2.9s}.sm-camp.c3{animation-delay:4.4s}.sm-camp.c4{animation-delay:5.8s}
@keyframes smCamp{0%,8%{fill:#1C1309}12%,60%{fill:#D6BF8F}75%,100%{fill:#1C1309}}
.sm-star{transform-box:fill-box;transform-origin:center;animation:smStar 4.5s ease-in-out infinite}
@keyframes smStar{0%,100%{transform:scale(.92) rotate(0deg);opacity:.85}50%{transform:scale(1.08) rotate(8deg);opacity:1}}
.sm-halo{transform-box:fill-box;transform-origin:center;animation:smHalo 4.5s ease-in-out infinite}
@keyframes smHalo{0%,100%{opacity:.55;transform:scale(.9)}50%{opacity:1;transform:scale(1.15)}}
.sm-snow{animation:smSnow 6s ease-in-out infinite}
@keyframes smSnow{0%,100%{opacity:.75}50%{opacity:1}}
.sm-climber{filter:drop-shadow(0 0 4px #FFE6B0)}
@media (prefers-reduced-motion:reduce){.sm-trail,.sm-camp,.sm-star,.sm-halo,.sm-snow{animation:none !important}.sm-climber{display:none}.sm-camp{fill:#D6BF8F}}
