
:root{
  --bg:#03070e;
  --bg2:#07111d;
  --panel:#0b1730d8;
  --panel2:#0e1d39f0;
  --line:rgba(160,200,255,.12);
  --text:#eef5ff;
  --muted:#aab9d4;
  --cyan:#82ecff;
  --blue:#65a9ff;
  --violet:#b695ff;
  --yellow:#ffd86e;
  --pink:#ff93c2;
  --shadow:0 18px 54px rgba(0,0,0,.35);
  --r:26px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"SF Pro Display","SF Pro Text","San Francisco",-apple-system,BlinkMacSystemFont,"Helvetica Neue","Segoe UI",Arial,sans-serif;
  background:
    radial-gradient(circle at 20% -10%, rgba(92,110,255,.13), transparent 28%),
    radial-gradient(circle at 84% 0%, rgba(97,213,255,.12), transparent 24%),
    linear-gradient(180deg,#03070f 0%,#06101d 50%,#03070d 100%);
  color:var(--text);
  min-height:100vh;
  overflow-x:hidden;
}
body::before{
  content:"";
  position:fixed; inset:0; z-index:-2; pointer-events:none;
  background-image:
    radial-gradient(1px 1px at 10% 20%, rgba(255,255,255,.85) 99%, transparent 100%),
    radial-gradient(1px 1px at 25% 80%, rgba(255,255,255,.70) 99%, transparent 100%),
    radial-gradient(1.2px 1.2px at 67% 34%, rgba(255,255,255,.75) 99%, transparent 100%),
    radial-gradient(1px 1px at 82% 15%, rgba(255,255,255,.80) 99%, transparent 100%),
    radial-gradient(1.3px 1.3px at 91% 71%, rgba(255,255,255,.70) 99%, transparent 100%),
    radial-gradient(1px 1px at 48% 58%, rgba(255,255,255,.80) 99%, transparent 100%),
    radial-gradient(1px 1px at 36% 44%, rgba(255,255,255,.65) 99%, transparent 100%);
  opacity:.65;
}
a{color:inherit;text-decoration:none}
img{max-width:100%}
.wrap{width:min(1180px,calc(100% - 32px));margin:0 auto}
.topbar{
  position:sticky;top:0;z-index:50;
  background:rgba(2,7,15,.64);
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(140,190,255,.08);
}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0}
.logo{display:flex;align-items:center;gap:12px;font-weight:900;letter-spacing:.1px}
.logo-mark{
  width:18px;height:18px;border-radius:50%;display:inline-block;
  background:radial-gradient(circle at 35% 30%,#fff,#8fd6ff 38%,#3e63ff 74%,#151c49 100%);
  box-shadow:0 0 20px rgba(109,202,255,.45)
}
.navlinks{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.progress-chip,.pill,.keep{
  border:0;
  color:#ebf6ff;
  background:rgba(8,17,33,.48);
  padding:8px 12px;
  border-radius:999px;
  font-size:12px;
  font-weight:850;
}
.keep:hover,.btn:hover{opacity:1;transform:translateY(-1px)}
main.wrap{padding:34px 0 72px}
h1,h2,h3,h4{margin:0 0 10px;line-height:1.08}
h1{font-size:clamp(2rem,5vw,4.3rem);letter-spacing:-.05em}
h2{font-size:clamp(1.5rem,2.8vw,2.35rem)}
h3{font-size:clamp(1.08rem,2vw,1.4rem)}
p{margin:0 0 12px;color:var(--muted);line-height:1.65}
.grad{background:linear-gradient(90deg,#ffd86e,#82ecff,#b695ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.small{font-size:.92rem;color:var(--muted)}
.muted{color:var(--muted)}
.btn{
  appearance:none; border:0; background:rgba(255,255,255,.05); color:var(--text);
  padding:12px 18px; border-radius:16px; font-weight:900; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px;
  transition:.18s transform,.18s background;
}
.btn.primary{
  background:linear-gradient(135deg,#ffe27b,#85e9ff 55%,#86a6ff);
  color:#07111a; box-shadow:0 8px 28px rgba(130,236,255,.24)
}
.btn.skip-btn{background:linear-gradient(135deg,#ffad73,#ffd76a); color:#111}
.field{display:grid;gap:8px;margin:14px 0}
.field label{display:flex;justify-content:space-between;gap:12px;font-size:14px;color:var(--text);font-weight:700}
.range{width:100%;accent-color:#82ecff}
.control-select,input,select,textarea{font:inherit}
.control-select,.spacey-name-input{
  background:#081528;color:var(--text);border:0;border-radius:14px;padding:10px 12px;min-height:44px
}
.kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}
.kpi{padding:14px;border-radius:18px;background:rgba(255,255,255,.03)}
.kpi span{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.kpi b{display:block;margin-top:6px;font-size:1.4rem}
.log{display:grid;gap:10px;max-height:240px;overflow:auto;padding-right:4px}
.log>div{padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.03)}
canvas{width:100%;max-width:100%;display:block;border-radius:18px;background:#020814}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}

/* HOME */
body[data-home="1"] .chapter-home{
  position:relative;
  isolation:isolate;
  overflow:visible;
  padding-top:34px
}
.live-solar-system{
  position:absolute;
  z-index:0;
  left:50%; top:0;
  width:100vw; height:980px;
  transform:translateX(-50%);
  overflow:hidden; pointer-events:none;
  background:
    radial-gradient(circle at 15% 48%, rgba(150,73,220,.28), transparent 28%),
    radial-gradient(circle at 78% 54%, rgba(120,74,222,.18), transparent 26%),
    radial-gradient(circle at 84% 48%, rgba(255,255,255,.14), transparent 9%),
    linear-gradient(180deg,rgba(1,4,10,.04),rgba(1,5,12,.32) 72%,rgba(2,5,11,.82) 100%);
}
#liveSolarCanvas{
  position:absolute; inset:0; width:100%; height:100%; border-radius:0; background:transparent
}
.live-solar-meta{
  position:absolute; right:max(22px,calc((100vw - 1180px)/2 + 16px)); top:20px;
  display:flex; align-items:center; gap:9px; padding:8px 12px; border-radius:999px;
  background:rgba(2,8,18,.34); backdrop-filter:blur(8px); color:#e8f5ff;
  font-size:10px; letter-spacing:.04em
}
.live-solar-meta b{display:block;font-size:10px;letter-spacing:.12em}
.live-solar-meta span:not(.live-dot){display:block;color:#aabed8;font-size:9px;margin-top:1px}
.live-dot{
  width:7px;height:7px;border-radius:50%;background:#7affb8;
  box-shadow:0 0 8px rgba(122,255,184,.7); animation:livePulse 1.7s ease-in-out infinite
}
@keyframes livePulse{50%{opacity:.4;transform:scale(.72)}}
.solar-view-note{
  position:absolute; right:max(22px,calc((100vw - 1180px)/2 + 16px)); top:65px;
  color:rgba(199,217,240,.62); font-size:9px; letter-spacing:.025em; text-align:right
}
.chapter-home-head{
  position:relative; z-index:2; padding:92px 0 12px; max-width:760px;
  text-shadow:0 4px 26px rgba(0,0,0,.7)
}
.chapter-home-head p{max-width:730px;color:#c6d2e4}
.home-spacey{
  position:relative; z-index:3;
  display:grid; grid-template-columns:auto 1fr; gap:14px; align-items:center;
  margin:18px 0; max-width:940px;
  background:none !important; box-shadow:none !important; border:0 !important;
  user-select:none; -webkit-user-select:none;
}
.home-spacey div:last-child{padding-right:8px}
.home-spacey b{
  display:block;
  margin-bottom:4px;
  color:#f2f8ff;
  text-shadow:0 0 12px rgba(101,239,255,.14);
}
.home-spacey span{
  color:#d0d9e8;
  background:none !important;
}
.chapter-progress{
  position:relative; z-index:2;
  display:flex; gap:10px; flex-wrap:wrap;
  background:none !important; box-shadow:none !important; border:0 !important;
  padding:2px 0 6px; margin:10px 0 18px
}
.chapter-progress .pill{background:rgba(7,16,32,.44)}
.mini-spacey,.spacey-chat-face,.mascot-btn,.spacey-music-face{
  position:relative; border-radius:50%;
  background:radial-gradient(circle at 35% 25%,#fff,#d9ebfb 46%,#7993b1 100%);
}
.mini-spacey{
  width:56px;height:56px; flex:0 0 56px;
  border:2px solid rgba(130,236,255,.36)
}
.mini-spacey:before,.spacey-chat-face:before,.mascot-btn:before,.spacey-music-face:before{
  content:""; position:absolute; left:50%; top:50%;
  transform:translate(-50%,-48%);
  width:34px; height:22px; border-radius:12px;
  background:#061a36; border:1.5px solid #65efff
}
.mini-spacey:after,.spacey-chat-face:after,.mascot-btn:after{
  content:"• ᴗ •"; position:absolute; left:50%; top:49%;
  transform:translate(-50%,-50%); font:900 9px monospace; color:#dffcff; z-index:3
}
.chapter-menu{
  position:relative; z-index:2; display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:16px
}
.chapter-card{
  position:relative; overflow:hidden; padding:24px; min-height:260px; border-radius:28px;
  background:
    radial-gradient(circle at 82% 12%, rgba(106,202,255,.08), transparent 24%),
    linear-gradient(150deg,rgba(10,22,42,.88),rgba(5,11,22,.95));
  box-shadow:0 18px 55px rgba(0,0,0,.28);
  border:0 !important;
}
.chapter-card:before{
  content:""; position:absolute; inset:0;
  background-image:
    radial-gradient(1px 1px at 20% 30%, rgba(255,255,255,.6) 99%, transparent 100%),
    radial-gradient(1px 1px at 76% 24%, rgba(255,255,255,.45) 99%, transparent 100%),
    radial-gradient(1px 1px at 70% 82%, rgba(255,255,255,.52) 99%, transparent 100%);
  opacity:.28; pointer-events:none
}
.chapter-card.locked{opacity:.48;filter:saturate(.55)}
.chapter-card h2{font-size:2rem;max-width:12ch;margin-top:12px}
.chapter-card p{max-width:34ch;min-height:78px}
.chapter-no{
  position:absolute; right:18px; top:16px;
  font-size:4.2rem; font-weight:900; line-height:1;
  color:rgba(255,255,255,.07); letter-spacing:-.04em
}
.chapter-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}
.chapter-state{font-size:12px;color:#d6ecff;min-height:1em}
.chapter-card a.btn{min-width:160px}
.chapter-card .pill{padding-left:0;background:transparent;color:#81e1ff}
.chapter-actions{margin-top:18px}

/* Bonus section */
.bonus-stories-section{
  position:relative; z-index:2; margin:64px auto 0; padding:34px 0 0;
  border:0 !important; background:transparent !important; box-shadow:none !important
}
.bonus-stories-grid{display:grid;gap:18px;margin-top:18px}
.bonus-story-link{
  display:grid; grid-template-columns:88px 1fr auto; gap:18px; align-items:center;
  padding:18px 20px; border-radius:24px;
  border:0 !important; background:linear-gradient(90deg,rgba(11,24,45,.82),rgba(8,17,32,.68)) !important;
  box-shadow:none !important
}
.bonus-story-link > div:nth-child(2) .pill{
  display:inline-flex;
  margin-bottom:22px;
}
.story-icon{
  position:relative; width:88px; height:82px; border-radius:18px;
  overflow:hidden; background:rgba(2,8,19,.65) !important; box-shadow:none !important
}
.story-icon small{
  position:absolute; left:7px; right:7px; bottom:6px; z-index:5;
  font-size:7px; font-weight:900; letter-spacing:.10em; color:#d4e8ff; text-align:center
}
.story-icon-time{background:radial-gradient(circle at 50% 39%,rgba(153,100,255,.12),transparent 45%),#030713 !important}
.blackhole-mini{
  position:absolute; width:39px; height:39px; left:24px; top:9px;
  border-radius:50%; background:radial-gradient(circle,#000 0 45%,#251442 50%,#7245bd 61%,transparent 69%);
  box-shadow:0 0 15px rgba(142,99,255,.3)
}
.blackhole-mini:after{
  content:""; position:absolute; left:-10px; right:-10px; top:17px; height:6px;
  border-radius:50%; border-top:2px solid #ffc878; transform:rotate(-12deg);
  box-shadow:0 -1px 8px rgba(255,181,95,.65)
}
.clock-mini{position:absolute; right:8px; top:7px; z-index:4; font-size:18px; filter:drop-shadow(0 3px 4px rgba(0,0,0,.6))}
.story-icon-ritual{background:radial-gradient(circle at 50% 38%,rgba(95,195,255,.12),transparent 48%),#030713 !important}
.helmet-mini{position:absolute; left:23px; top:3px; font-size:42px; line-height:1}
.luck-mini{position:absolute; right:7px; top:6px; font-size:18px; filter:drop-shadow(0 2px 3px rgba(0,0,0,.6))}

/* Mission pages */
.mission-hero{padding:14px 0 18px}
.crumbs{font-size:14px;color:var(--muted)}
.section{padding:18px 0}
.what-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.what{
  padding:16px; border-radius:22px; background:rgba(255,255,255,.03);
  border:0
}
.what .ico{font-size:26px;margin-bottom:10px}
.what b{display:block;margin-bottom:6px}
.workbench{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:18px;align-items:start}
.panel{
  padding:18px; border-radius:28px;
  background:linear-gradient(180deg,rgba(11,23,48,.88),rgba(7,14,28,.94));
  box-shadow:var(--shadow)
}
.skip-strip,.spacey-brief{
  display:grid; grid-template-columns:auto 1fr; gap:14px; align-items:center;
  padding:16px 18px; border-radius:22px; background:linear-gradient(180deg,rgba(10,22,44,.78),rgba(7,14,26,.92)); box-shadow:var(--shadow);
  margin:18px 0
}
.skip-strip{grid-template-columns:1fr auto}
.video-section{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:18px;align-items:start;margin:26px 0}
.video-wrap{
  border-radius:24px; overflow:hidden; background:#000; box-shadow:var(--shadow)
}
.video-wrap iframe{display:block;width:100%;aspect-ratio:16/9;border:0}
.video-copy{padding:8px 2px}
.quiz{
  margin-top:26px; padding:20px; border-radius:28px;
  background:linear-gradient(180deg,rgba(11,23,48,.92),rgba(7,14,28,.96)); box-shadow:var(--shadow)
}
.quiz-top{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.quiz-progress{font-weight:800;color:#d8edff}
.quiz-score{color:var(--yellow);font-weight:800}
.quiz-card{padding:18px;border-radius:20px;background:rgba(255,255,255,.03)}
.quiz-q{font-size:1.18rem;font-weight:900;margin-bottom:14px;line-height:1.45}
.quiz-options{display:grid;gap:10px}
.quiz-option{
  width:100%; justify-content:flex-start; text-align:left; padding:13px 14px; border-radius:16px; border:0;
  background:rgba(255,255,255,.035); color:var(--text); font-weight:700; cursor:pointer
}
.quiz-option.correct{background:rgba(70,211,161,.14)}
.quiz-option.wrong{background:rgba(255,107,107,.12)}
.quiz-actions{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:16px;flex-wrap:wrap}
.quiz-expl{margin-top:14px;padding:12px 14px;border-radius:16px;background:rgba(130,236,255,.07);display:none}
.quiz-expl.show{display:block}
.quiz-result{padding:18px;border-radius:22px;background:rgba(255,255,255,.03)}


.quiz-stage{display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:18px;align-items:start}
.quiz-main{min-width:0}
.quiz-spacey-wrap{display:flex;flex-direction:column;align-items:center;gap:10px}
.quiz-spacey-buddy{
  width:130px;height:150px;flex:0 0 130px;border:0;background:transparent;
  background-image:url('spacey-mascot-thinking.png');background-size:contain;background-repeat:no-repeat;background-position:center center;
  filter:drop-shadow(0 12px 28px rgba(18,144,255,.2));animation:spaceyQuizFloat 3.4s ease-in-out infinite;
}
.quiz-spacey-buddy[data-expression='happy']{background-image:url('spacey-mascot-happy.png')}
.quiz-spacey-buddy[data-expression='excited']{background-image:url('spacey-mascot-excited.png')}
.quiz-spacey-buddy[data-expression='thinking']{background-image:url('spacey-mascot-thinking.png')}
.quiz-spacey-buddy[data-expression='surprised']{background-image:url('spacey-mascot-surprised.png')}
.quiz-spacey-buddy[data-expression='winking']{background-image:url('spacey-mascot-winking.png')}
.quiz-spacey-buddy[data-expression='cheerful']{background-image:url('spacey-mascot-cheerful.png')}
.quiz-spacey-buddy[data-expression='singing']{background-image:url('spacey-mascot-singing.png')}
.quiz-spacey-bubble{
  width:100%;text-align:center;padding:10px 12px;border-radius:18px;
  background:rgba(130,236,255,.10);border:1px solid rgba(146,228,255,.18);color:#eaf6ff;
  font-weight:800;font-size:.94rem;line-height:1.35;box-shadow:0 10px 24px rgba(0,0,0,.18)
}
.quiz-spacey-bubble small{display:block;margin-top:4px;color:#b9d8ff;font-weight:700;font-size:.78rem}
@keyframes spaceyQuizFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@media (max-width:760px){
  .quiz-stage{grid-template-columns:1fr}
  .quiz-spacey-wrap{order:-1;flex-direction:row;align-items:center;justify-content:flex-start}
  .quiz-spacey-buddy{width:96px;height:112px;flex-basis:96px}
  .quiz-spacey-bubble{text-align:left}
}


/* Story pages */
.story-page{padding-top:40px}
.story-intro{max-width:880px}
.story-chapter{margin-top:24px;display:grid;grid-template-columns:.9fr 1.1fr;gap:18px}
.story-copy,.story-visual,.science-note,.truth-box,.story-fact,.timeline-demo{
  padding:20px; border-radius:26px;
  background:linear-gradient(180deg,rgba(11,23,48,.88),rgba(7,14,28,.94)); box-shadow:var(--shadow)
}
.story-visual{min-height:420px;position:relative;overflow:hidden}
.black-hole{
  position:absolute; left:50%; top:45%; transform:translate(-50%,-50%);
  width:170px; height:170px; border-radius:50%;
  background:radial-gradient(circle,#000 0 47%,#120c2b 52%,#5a2d92 61%,rgba(178,138,255,.12) 70%,transparent 73%);
  box-shadow:0 0 45px rgba(178,138,255,.30),0 0 120px rgba(101,239,255,.10)
}
.black-hole:before{
  content:""; position:absolute; left:-75px; right:-75px; top:76px;
  height:18px; border-radius:50%; border:5px solid rgba(255,193,112,.72);
  transform:rotate(-12deg); box-shadow:0 0 22px rgba(255,156,101,.7)
}
.orbiting-world{
  position:absolute; width:54px; height:54px; border-radius:50%; left:18%; top:22%;
  background:radial-gradient(circle at 35% 30%,#d6fbff 0 5%,#75a7c4 35%,#24384c 70%,#101721 100%);
  box-shadow:0 0 20px rgba(101,239,255,.24); animation:worldOrbit 9s linear infinite
}
@keyframes worldOrbit{
  0%{transform:translate(0,0)}25%{transform:translate(310px,35px) scale(.86)}
  50%{transform:translate(450px,175px) scale(.7)}75%{transform:translate(170px,260px) scale(.88)}100%{transform:translate(0,0)}
}
.time-panels{position:absolute;left:18px;right:18px;bottom:18px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.time-panel{padding:12px;border-radius:14px;background:rgba(2,8,20,.74)}
.time-panel span{display:block;color:var(--muted);font-size:11px}
.time-panel b{font-size:20px}
.relativity-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.story-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}
.superstition-hero{display:grid;grid-template-columns:1.02fr .98fr;gap:22px;align-items:center;margin-top:22px}
.ritual-orbit{
  min-height:390px; position:relative; border-radius:28px; overflow:hidden;
  background:radial-gradient(circle at 50% 48%,rgba(101,239,255,.10),transparent 28%),linear-gradient(145deg,#081a38,#020712)
}
.ritual-orbit:before,.ritual-orbit:after{
  content:""; position:absolute; border:1px solid rgba(101,239,255,.16); border-radius:50%; left:50%; top:50%;
  transform:translate(-50%,-50%) rotate(-12deg)
}
.ritual-orbit:before{width:310px;height:150px}
.ritual-orbit:after{width:420px;height:215px;transform:translate(-50%,-50%) rotate(18deg)}
.ritual-center{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:120px;height:120px;border-radius:50%; display:grid; place-items:center; font-size:52px;
  background:radial-gradient(circle at 38% 30%,#fff 0 5%,#9acbff 22%,#4767b9 52%,#162454 100%)
}
.ritual-token{
  position:absolute; width:58px;height:58px;border-radius:50%; display:grid;place-items:center;
  background:rgba(8,23,49,.94); font-size:28px; box-shadow:0 12px 30px rgba(0,0,0,.25); animation:ritualBob 4s ease-in-out infinite
}
.ritual-token:nth-of-type(2){left:13%;top:20%}
.ritual-token:nth-of-type(3){right:13%;top:18%;animation-delay:.6s}
.ritual-token:nth-of-type(4){left:15%;bottom:18%;animation-delay:1.2s}
.ritual-token:nth-of-type(5){right:15%;bottom:16%;animation-delay:1.8s}
@keyframes ritualBob{50%{transform:translateY(-8px)}}
.ritual-caption{position:absolute;left:18px;right:18px;bottom:17px;padding:11px 13px;border-radius:14px;background:rgba(2,8,20,.72);color:var(--muted);font-size:12px;text-align:center}
.ritual-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}
.ritual-card{
  padding:17px; border-radius:18px; cursor:pointer; transition:.18s;
  background:linear-gradient(180deg,rgba(11,23,48,.88),rgba(7,14,28,.94)); box-shadow:var(--shadow)
}
.ritual-card:hover,.ritual-card.active{background:rgba(101,239,255,.055)}
.ritual-reader,.luck-meter{margin-top:14px;padding:18px;border-radius:20px;background:rgba(178,138,255,.05)}
.truth-strip{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.luck-bar{height:12px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden;margin:10px 0}
.luck-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--yellow),var(--cyan));border-radius:inherit;transition:.35s}

/* Modal */
.modal-backdrop{
  position:fixed; inset:0; background:rgba(2,6,14,.66); display:grid; place-items:center; z-index:120; padding:20px
}
.modal-panel{
  width:min(540px,100%); padding:24px; border-radius:28px;
  background:linear-gradient(180deg,rgba(10,20,40,.96),rgba(5,11,23,.98)); box-shadow:0 20px 60px rgba(0,0,0,.48)
}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;flex-wrap:wrap}

/* Spacey chat */
.mascot-float{position:fixed;right:18px;bottom:18px;z-index:88;display:flex;align-items:flex-end}
.mascot-btn{
  width:68px;height:68px;border:0; cursor:pointer; box-shadow:0 14px 38px rgba(0,0,0,.38)
}
.spacey-chat{
  position:fixed; right:18px; bottom:96px; z-index:90;
  width:min(390px,calc(100vw - 28px)); max-height:min(620px,calc(100vh - 125px));
  display:none; flex-direction:column; overflow:hidden; border-radius:22px;
  background:linear-gradient(155deg,rgba(9,29,57,.98),rgba(3,11,27,.985)); box-shadow:0 28px 85px rgba(0,0,0,.55); backdrop-filter:blur(20px)
}
.spacey-chat.open{display:flex}
.spacey-chat-head{display:flex;align-items:center;gap:11px;padding:13px 14px;background:rgba(101,239,255,.035)}
.spacey-chat-face{width:46px;height:46px;flex:0 0 46px}
.spacey-chat-title{min-width:0;flex:1}
.spacey-chat-title b{display:block;color:var(--cyan)}
.spacey-chat-title span{display:block;color:var(--muted);font-size:11px}
.spacey-chat-close{width:40px;height:40px;border-radius:12px;border:0;background:rgba(255,255,255,.035);cursor:pointer;font-size:20px;color:var(--text)}
.spacey-chat-body{padding:14px;overflow:auto;display:flex;flex-direction:column;gap:10px;scroll-behavior:smooth}
.spacey-message{
  max-width:88%; padding:10px 12px; border-radius:15px 15px 15px 4px;
  background:rgba(101,239,255,.075); color:#d9e9f7; font-size:13px
}
.spacey-user-message{align-self:flex-end;border-radius:15px 15px 4px 15px;background:rgba(178,138,255,.10)}
.spacey-name-form{display:grid;grid-template-columns:1fr auto;gap:8px}
.spacey-question-label{margin:3px 0 0;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.8px;font-weight:850}
.spacey-question-list{display:grid;gap:7px;max-height:255px;overflow:auto;padding-right:2px}
.spacey-question{
  min-height:44px; padding:9px 11px; border:0; border-radius:12px; background:rgba(255,255,255,.028);
  color:#dce9f6; text-align:left; cursor:pointer; font-size:13px
}
.spacey-question:hover,.spacey-question.active{background:rgba(101,239,255,.055)}
.spacey-chat-reset{margin-top:3px;border:0;background:transparent;color:var(--muted);cursor:pointer;text-align:left;padding:6px 2px;font-size:11px}
.spacey-current-qa{display:none;border-radius:16px;background:linear-gradient(145deg,rgba(101,239,255,.07),rgba(178,138,255,.055));padding:13px}
.spacey-current-qa.show{display:block}
.spacey-current-q{color:var(--cyan);font-weight:850;line-height:1.4;margin-bottom:8px}
.spacey-current-a{color:#d9e7f5;line-height:1.6;font-size:13px}
.spacey-chat,.spacey-chat *:not(input):not(textarea),.spacey-music-player,.spacey-music-player *{caret-color:transparent;user-select:none}

/* Music player */
.spacey-music-player{
  position:fixed; left:16px; bottom:16px; z-index:88;
  display:flex; align-items:center; gap:8px; padding:9px; border-radius:18px;
  background:rgba(3,13,31,.90); box-shadow:0 16px 42px rgba(0,0,0,.38);
  backdrop-filter:blur(16px); touch-action:none; cursor:grab; user-select:none
}
.spacey-music-player.dragging{cursor:grabbing}
.spacey-music-now{display:flex;align-items:center;gap:8px;min-width:0}
.spacey-music-face{width:38px;height:38px;flex:0 0 38px;overflow:hidden}
.spacey-music-eye{
  position:absolute; top:14px; width:3.5px; height:3.5px; border-radius:50%; background:#dffcff; z-index:2; transition:.18s
}
.spacey-music-eye.left{left:12px}
.spacey-music-eye.right{right:12px}
.spacey-music-mouth{
  position:absolute; left:50%; top:24px; z-index:3; width:9px; height:4px;
  transform:translateX(-50%); border-bottom:2px solid #dffcff; border-radius:0 0 10px 10px; transition:.16s
}
.spacey-music-player.playing .spacey-music-face{animation:spaceySingerBob .55s ease-in-out infinite alternate}
.spacey-music-player.playing .spacey-music-eye{height:2px;border-radius:50%}
.spacey-music-player.playing .spacey-music-mouth{
  top:22px; width:10px; height:11px; border:2px solid #dffcff; background:#ff96bd; border-radius:50%;
  animation:spaceyMouthSing .42s ease-in-out infinite alternate
}
@keyframes spaceySingerBob{from{transform:translateY(0)}to{transform:translateY(-2px)}}
@keyframes spaceyMouthSing{from{transform:translateX(-50%) scaleY(.62)}to{transform:translateX(-50%) scaleY(1.12)}}
body.spacey-music-playing .mascot-btn{animation:spaceyMascotBob .55s ease-in-out infinite alternate}
body.spacey-music-playing .mascot-btn:after{
  content:""; position:absolute; left:50%; top:56%; width:11px; height:12px; transform:translate(-50%,-50%);
  border-radius:50%; background:#ff96bd; border:2px solid #eaffff; z-index:6; animation:spaceyMascotSing .42s ease-in-out infinite alternate
}
@keyframes spaceyMascotSing{from{height:6px}to{height:13px}}
@keyframes spaceyMascotBob{from{transform:translateY(0)}to{transform:translateY(-3px)}}
.spacey-music-copy{width:105px;min-width:0}
.spacey-music-copy b{display:block;font-size:11px;color:#e9f7ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.spacey-music-copy span{display:block;margin-top:1px;font-size:9px;color:var(--muted)}
.spacey-music-drag-hint{display:block;font-size:8px;color:var(--muted);opacity:.72;margin-top:1px}
.spacey-music-action{min-height:38px;border:0;border-radius:11px;padding:8px 10px;background:rgba(255,255,255,.035);color:var(--text);font-weight:800;cursor:pointer;white-space:nowrap}
.spacey-music-action.primary{color:#04121d;background:var(--cyan)}
.spacey-troll-sub{color:var(--muted);font-size:13px;margin-top:-2px}

/* Comet */
.space-cursor-comet{
  position:fixed; width:28px; height:28px; border-radius:50%; pointer-events:none; z-index:2; opacity:0;
  transform:translate(-50%,-50%) rotate(-12deg);
  background:radial-gradient(circle at 40% 38%,#fff 0 8%,#dfffff 9% 18%,#8dfff1 20% 34%,rgba(67,236,211,.78) 36% 50%,rgba(27,170,183,.30) 54% 68%,transparent 72%);
  filter:drop-shadow(0 0 8px rgba(221,255,255,.92)) drop-shadow(0 0 18px rgba(77,255,225,.55)); transition:opacity .16s
}
.space-cursor-comet:before{
  content:""; position:absolute; right:11px; top:10px; width:178px; height:7px; border-radius:999px;
  background:linear-gradient(90deg,transparent 0%,rgba(76,138,255,.05) 10%,rgba(74,170,255,.16) 24%,rgba(65,203,255,.34) 43%,rgba(83,225,255,.62) 63%,rgba(154,251,255,.80) 79%,rgba(232,255,255,.82) 100%);
  filter:blur(1.35px)
}
.space-cursor-comet:after{
  content:""; position:absolute; right:10px; top:11px; width:112px; height:18px; border-radius:999px; transform:rotate(7deg);
  background:linear-gradient(90deg,transparent 0%,rgba(220,255,248,.04) 12%,rgba(199,255,244,.10) 30%,rgba(185,255,238,.20) 52%,rgba(218,255,248,.38) 76%,rgba(250,255,255,.56) 100%);
  filter:blur(3.2px)
}
.space-particle{
  position:fixed; pointer-events:none; z-index:1; width:5px; height:5px; border-radius:50%;
  background:#b7fff3; box-shadow:0 0 7px rgba(81,255,225,.82),0 0 14px rgba(69,184,255,.38); animation:hyakutakeParticle .82s ease-out forwards
}
@keyframes hyakutakeParticle{from{opacity:.92;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(.08)}}

footer{padding:0 0 28px;color:var(--muted)}
@media(max-width:980px){
  .chapter-menu{grid-template-columns:repeat(2,minmax(0,1fr))}
  .workbench,.video-section,.story-chapter,.superstition-hero{grid-template-columns:1fr}
  .chapter-card{min-height:240px}
  .live-solar-system{height:820px}
  .chapter-home-head{padding-top:84px}
}
@media(max-width:720px){
  .wrap{width:min(100% - 20px,1180px)}
  .nav{align-items:flex-start;flex-direction:column}
  .chapter-progress{grid-template-columns:1fr}
  .chapter-menu,.what-grid,.story-facts,.truth-strip,.ritual-grid{grid-template-columns:1fr}
  .bonus-story-link{grid-template-columns:70px 1fr}
  .bonus-story-link .btn{grid-column:1/-1;width:100%}
  .skip-strip{grid-template-columns:1fr}
  .spacey-chat{right:10px;bottom:86px;width:calc(100vw - 20px);max-height:calc(100vh - 100px)}
  .spacey-name-form{grid-template-columns:1fr}
  .spacey-music-player{left:9px;bottom:9px;padding:7px;gap:6px;max-width:calc(100vw - 18px)}
  .spacey-music-copy{display:none}
  .chapter-card h2{font-size:1.7rem}
  .live-solar-system{height:690px}
  .live-solar-meta{right:10px;top:12px}
  .solar-view-note{right:10px;top:52px;max-width:250px}
  .chapter-home-head{padding-top:90px}
  .story-icon{width:70px;height:70px}
  .helmet-mini{left:16px;font-size:36px}
  .blackhole-mini{left:16px}
}
@media(hover:none),(pointer:coarse){.space-cursor-comet{display:none}}
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{animation-duration:0s!important;transition:none!important;scroll-behavior:auto!important}
}


/* V14.2 homepage visual tune */
body[data-home="1"] .chapter-home-head p{max-width:760px}
body[data-home="1"] .home-spacey{max-width:980px}
body[data-home="1"] .home-spacey .mini-spacey{box-shadow:0 0 26px rgba(130,236,255,.18)}
body[data-home="1"] .chapter-card{background:linear-gradient(155deg,rgba(7,18,38,.74),rgba(4,10,22,.85)); box-shadow:0 22px 58px rgba(0,0,0,.22)}
body[data-home="1"] .chapter-card h2{letter-spacing:-.03em}
body[data-home="1"] .bonus-story-link{background:linear-gradient(90deg,rgba(7,18,38,.72),rgba(4,10,22,.78)) !important}


/* V14.3 readability/layout improvement */
.chapter-home{padding-bottom:48px}
.live-solar-system{height:860px}
.live-solar-system::after{
  content:"";
  position:absolute; inset:0; pointer-events:none;
  background:
    linear-gradient(90deg, rgba(2,6,14,.72) 0%, rgba(2,6,14,.56) 28%, rgba(2,6,14,.18) 46%, rgba(2,6,14,0) 60%),
    linear-gradient(180deg, rgba(2,6,14,0) 0%, rgba(2,6,14,0) 54%, rgba(2,6,14,.22) 68%, rgba(2,6,14,.60) 84%, rgba(2,6,14,.88) 100%);
}
.chapter-home-head{
  max-width:660px;
  padding:94px 0 12px;
}
.chapter-home-head p{max-width:640px}
.home-spacey,.chapter-progress{max-width:690px}
.home-spacey{margin-top:26px; margin-bottom:20px}
.chapter-progress{margin-bottom:24px}
.chapter-menu{
  margin-top:240px;
  gap:24px;
}
.chapter-card{
  background:linear-gradient(160deg,rgba(8,18,35,.96),rgba(3,8,18,.97));
  box-shadow:0 20px 60px rgba(0,0,0,.34);
}
.chapter-card:before{opacity:.16}
.chapter-card h2{max-width:11ch}
.chapter-card p{max-width:30ch}
.live-solar-meta{right:max(18px,calc((100vw - 1180px)/2 + 10px)); top:18px}
.solar-view-note{right:max(18px,calc((100vw - 1180px)/2 + 10px)); top:68px; max-width:380px}
@media (max-width: 1180px){
  .chapter-menu{margin-top:260px}
}
@media (max-width: 900px){
  .chapter-home-head,.home-spacey,.chapter-progress{max-width:none}
  .chapter-home-head{padding-top:86px}
  .chapter-menu{margin-top:170px}
}
@media (max-width: 760px){
  .live-solar-system{height:720px}
  .chapter-menu{margin-top:110px; gap:16px}
  .live-solar-system::after{
    background:
      linear-gradient(180deg, rgba(2,6,14,.12) 0%, rgba(2,6,14,.10) 44%, rgba(2,6,14,.55) 74%, rgba(2,6,14,.90) 100%);
  }
}


/* V14.4 scroll-follow solar spotlight */
body[data-home="1"] .chapter-home{position:relative; z-index:1; min-height:1500px}
body[data-home="1"] .live-solar-system{
  position:fixed;
  left:50%;
  top:50%;
  width:100vw;
  height:100vh;
  transform:translate(-50%,-50%);
  transform-origin:center center;
  will-change:transform, opacity;
  opacity:.96;
  z-index:0;
}
body[data-home="1"] .live-solar-system::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% 52%, rgba(255,255,255,.14) 0%, rgba(255,255,255,.07) 8%, rgba(255,255,255,.03) 16%, rgba(2,6,14,0) 27%, rgba(2,6,14,.28) 57%, rgba(2,6,14,.78) 100%);
}
body[data-home="1"] .live-solar-system::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg, rgba(2,6,14,.72) 0%, rgba(2,6,14,.56) 28%, rgba(2,6,14,.18) 46%, rgba(2,6,14,0) 60%),
    linear-gradient(180deg, rgba(2,6,14,.02) 0%, rgba(2,6,14,.02) 50%, rgba(2,6,14,.26) 70%, rgba(2,6,14,.62) 86%, rgba(2,6,14,.90) 100%);
}
body[data-home="1"] .chapter-home-head,
body[data-home="1"] .home-spacey,
body[data-home="1"] .chapter-progress,
body[data-home="1"] .chapter-menu,
body[data-home="1"] .bonus-section,
body[data-home="1"] .bonus-stories,
body[data-home="1"] .bonus-list,
body[data-home="1"] .reset-adventure,
body[data-home="1"] .stories-head{
  position:relative;
  z-index:2;
}
body[data-home="1"] .chapter-menu{margin-top:280px}
body[data-home="1"] .chapter-home-head{padding-top:92px}
body[data-home="1"] .home-spacey, body[data-home="1"] .chapter-progress{max-width:700px}
body[data-home="1"] .chapter-card{backdrop-filter:blur(2px)}
@media (max-width:1180px){
  body[data-home="1"] .chapter-menu{margin-top:290px}
}
@media (max-width:900px){
  body[data-home="1"] .chapter-home{min-height:1300px}
  body[data-home="1"] .chapter-menu{margin-top:200px}
}
@media (max-width:760px){
  body[data-home="1"] .live-solar-system{height:100svh}
  body[data-home="1"] .live-solar-system::before{
    background: radial-gradient(circle at 50% 48%, rgba(255,255,255,.10) 0%, rgba(255,255,255,.04) 11%, rgba(2,6,14,0) 24%, rgba(2,6,14,.48) 62%, rgba(2,6,14,.92) 100%);
  }
  body[data-home="1"] .live-solar-system::after{
    background:linear-gradient(180deg, rgba(2,6,14,.08) 0%, rgba(2,6,14,.12) 45%, rgba(2,6,14,.58) 74%, rgba(2,6,14,.92) 100%);
  }
  body[data-home="1"] .chapter-menu{margin-top:118px}
}


/* ===== V14.5 APPLE-STYLE SCROLL SOLAR SYSTEM ===== */
body[data-home="1"]{
  --solar-progress:0;
  --solar-x:61%;
  --solar-y:40%;
}
body[data-home="1"] .live-solar-system{
  position:fixed !important;
  inset:0 !important;
  width:100vw !important;
  height:100vh !important;
  transform:none !important;
  opacity:1 !important;
  z-index:0;
  pointer-events:none;
  will-change:opacity;
  overflow:hidden;
}
body[data-home="1"] .live-solar-system::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:
    radial-gradient(circle at var(--solar-x) var(--solar-y), rgba(255,248,211,.13) 0%, rgba(255,226,147,.055) 13%, rgba(255,255,255,0) 27%),
    radial-gradient(circle at var(--solar-x) var(--solar-y), rgba(2,6,14,0) 0%, rgba(2,6,14,.05) 31%, rgba(2,6,14,.31) 62%, rgba(2,6,14,.78) 100%);
  transition:none;
}
body[data-home="1"] .live-solar-system::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:3;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(1,4,10,.12) 0%,rgba(1,4,10,.02) 26%,rgba(1,4,10,.03) 61%,rgba(1,4,10,.46) 85%,rgba(1,4,10,.82) 100%);
}
body[data-home="1"] #liveSolarCanvas{
  position:absolute;
  inset:0;
  z-index:1;
  width:100%;
  height:100%;
  border-radius:0;
  background:transparent;
}

/* The clock is outside the canvas stacking layer so it never gets hidden. */
.live-solar-hud{
  position:fixed;
  top:74px;
  left:50%;
  transform:translateX(-50%);
  z-index:58;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:5px;
  pointer-events:none;
  width:min(570px,calc(100vw - 28px));
}
.live-solar-hud .live-solar-meta{
  position:static !important;
  display:flex;
  align-items:center;
  gap:9px;
  padding:9px 14px;
  border-radius:999px;
  background:rgba(4,10,20,.68);
  box-shadow:0 12px 32px rgba(0,0,0,.20);
  backdrop-filter:blur(16px) saturate(130%);
  -webkit-backdrop-filter:blur(16px) saturate(130%);
  color:#edf7ff;
  text-shadow:0 1px 7px rgba(0,0,0,.55);
}
.live-solar-hud .live-solar-meta b{
  display:block;
  font-size:10px;
  letter-spacing:.14em;
}
.live-solar-hud .live-solar-meta span:not(.live-dot){
  display:block;
  margin-top:1px;
  color:#c4d3e4;
  font-size:9px;
  letter-spacing:.035em;
}
.live-solar-hud .solar-view-note{
  position:static !important;
  max-width:none !important;
  color:rgba(213,225,240,.72);
  font-size:9px;
  line-height:1.35;
  text-align:center;
  text-shadow:0 2px 10px rgba(0,0,0,.80);
}

/* Page copy remains ordinary scrolling content. */
body[data-home="1"] .chapter-home-head,
body[data-home="1"] .home-spacey,
body[data-home="1"] .chapter-progress,
body[data-home="1"] .chapter-menu,
body[data-home="1"] .bonus-stories-section,
body[data-home="1"] .chapter-actions{
  position:relative;
  z-index:4;
}
body[data-home="1"] .chapter-home-head{
  padding-top:118px;
}
body[data-home="1"] .chapter-menu{
  margin-top:305px;
}

/* Apple-style spotlight contrast when the system reaches centre. */
body[data-home="1"] .chapter-card{
  backdrop-filter:blur(5px) saturate(108%);
  -webkit-backdrop-filter:blur(5px) saturate(108%);
}

@media(max-width:900px){
  .live-solar-hud{top:70px}
  body[data-home="1"] .chapter-home-head{padding-top:112px}
  body[data-home="1"] .chapter-menu{margin-top:210px}
}
@media(max-width:760px){
  .live-solar-hud{top:68px;width:calc(100vw - 18px)}
  .live-solar-hud .solar-view-note{font-size:8px}
  body[data-home="1"] .chapter-home-head{padding-top:118px}
  body[data-home="1"] .chapter-menu{margin-top:125px}
  body[data-home="1"] .live-solar-system::before{
    background:
      radial-gradient(circle at var(--solar-x) var(--solar-y), rgba(255,248,211,.10) 0%, rgba(255,226,147,.04) 14%, rgba(255,255,255,0) 26%),
      radial-gradient(circle at var(--solar-x) var(--solar-y), rgba(2,6,14,0) 0%, rgba(2,6,14,.08) 30%, rgba(2,6,14,.42) 61%, rgba(2,6,14,.86) 100%);
  }
}
@media(prefers-reduced-motion:reduce){
  .live-solar-hud .live-dot{animation:none!important}
}


/* ===== V14.6 DATE TRAVEL SOLAR SYSTEM ===== */
.live-solar-hud{
  z-index:82 !important;
  pointer-events:none;
}
.solar-hud-row{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
}
.solar-date-controls{
  pointer-events:auto;
  display:flex;
  align-items:center;
  gap:7px;
  padding:7px 8px 7px 11px;
  border-radius:999px;
  background:rgba(4,10,20,.72);
  box-shadow:0 12px 32px rgba(0,0,0,.20);
  backdrop-filter:blur(16px) saturate(130%);
  -webkit-backdrop-filter:blur(16px) saturate(130%);
  color:#d9e8f7;
  user-select:none;
  -webkit-user-select:none;
}
.solar-date-controls label{
  font-size:9px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap;
}
.solar-date-controls input{
  min-height:34px;
  padding:5px 8px;
  border:0;
  outline:none;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:#f1f7ff;
  font:700 11px "SF Pro Text","SF Pro Display","San Francisco",-apple-system,BlinkMacSystemFont,"Helvetica Neue","Segoe UI",Arial,sans-serif;
  color-scheme:dark;
}
.solar-date-controls input:focus{
  box-shadow:0 0 0 2px rgba(130,236,255,.32);
}
.solar-date-controls button{
  min-height:34px;
  border:0;
  border-radius:999px;
  padding:6px 10px;
  cursor:pointer;
  color:#06111c;
  background:linear-gradient(135deg,#ffe37c,#89ecff);
  font:850 10px "SF Pro Text","SF Pro Display","San Francisco",-apple-system,BlinkMacSystemFont,"Helvetica Neue","Segoe UI",Arial,sans-serif;
  white-space:nowrap;
}
.live-solar-hud.previewing .live-dot{
  background:#ffd76a;
  box-shadow:0 0 10px rgba(255,215,106,.76);
}
.live-solar-hud.previewing .live-solar-meta{
  background:rgba(23,16,6,.72);
}
.live-solar-hud.transitioning .live-dot{
  animation:solarDatePulse .55s ease-in-out infinite alternate;
}
@keyframes solarDatePulse{
  from{transform:scale(.72);opacity:.45}
  to{transform:scale(1.18);opacity:1}
}
#solarViewNote{
  min-height:12px;
}
@media(max-width:760px){
  .live-solar-hud{
    top:62px !important;
    width:calc(100vw - 12px) !important;
  }
  .solar-hud-row{
    gap:6px;
  }
  .live-solar-hud .live-solar-meta{
    padding:7px 10px;
  }
  .solar-date-controls{
    padding:5px 6px 5px 9px;
    gap:5px;
  }
  .solar-date-controls label{
    display:none;
  }
  .solar-date-controls input{
    width:132px;
    min-height:32px;
    font-size:10px;
  }
  .solar-date-controls button{
    min-height:32px;
    padding:5px 8px;
    font-size:9px;
  }
  .live-solar-hud .solar-view-note{
    max-width:95vw !important;
  }
}


/* ===== V14.7 LANGUAGE SWITCH ===== */
.language-switch{
  display:flex;
  align-items:center;
  gap:3px;
  padding:3px;
  border-radius:999px;
  background:rgba(7,16,31,.64);
  box-shadow:0 8px 24px rgba(0,0,0,.18);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  user-select:none;
  -webkit-user-select:none;
}
.lang-btn{
  min-height:31px;
  border:0;
  border-radius:999px;
  padding:6px 10px;
  background:transparent;
  color:#aebcd0;
  cursor:pointer;
  font:800 10px "SF Pro Text","SF Pro Display","San Francisco",-apple-system,BlinkMacSystemFont,"Helvetica Neue","Segoe UI",Arial,sans-serif;
  transition:background .18s ease,color .18s ease,transform .18s ease;
  caret-color:transparent;
}
.lang-btn:hover{color:#fff;background:rgba(255,255,255,.06)}
.lang-btn.active{
  color:#06111b;
  background:linear-gradient(135deg,#ffe27b,#84e9ff);
  box-shadow:0 4px 12px rgba(113,224,255,.18);
}
.lang-btn:active{transform:scale(.96)}
@media(max-width:760px){
  .navlinks{width:100%;justify-content:space-between}
  .language-switch{order:-1}
  .lang-btn{padding:6px 8px;font-size:9px;min-height:30px}
}


/* ===== V14.8 3D SPACEY MASCOT ===== */
.home-spacey{
  align-items:center;
  gap:18px;
}
.mini-spacey,
.spacey-chat-face,
.mascot-btn,
.spacey-music-face{
  position:relative;
  border-radius:0 !important;
  background:transparent url('spacey-3d-mascot.png') center center / contain no-repeat !important;
  box-shadow:none !important;
  border:0 !important;
  overflow:visible !important;
  filter:drop-shadow(0 10px 22px rgba(58,192,255,.22)) drop-shadow(0 6px 18px rgba(0,0,0,.28));
}
.mini-spacey:before,
.mini-spacey:after,
.spacey-chat-face:before,
.spacey-chat-face:after,
.mascot-btn:before,
.mascot-btn:after,
.spacey-music-face:before,
.spacey-music-face:after{
  content:none !important;
  display:none !important;
}
.mini-spacey{
  width:82px;
  height:96px;
  flex:0 0 82px;
}
.home-spacey div:last-child{padding-right:8px}
.mascot-float{
  right:14px;
  bottom:10px;
}
.mascot-btn{
  width:100px;
  height:118px;
  border:0;
  cursor:pointer;
  background-color:transparent;
}
.spacey-chat{
  bottom:114px;
}
.spacey-chat-head{
  align-items:center;
}
.spacey-chat-face{
  width:60px;
  height:72px;
  flex:0 0 60px;
}
.spacey-chat-title b{
  font-size:16px;
}
.spacey-music-player{
  align-items:center;
}
.spacey-music-now{
  gap:10px;
}
.spacey-music-face{
  width:48px;
  height:58px;
  flex:0 0 48px;
}
.spacey-music-eye,
.spacey-music-mouth{
  display:none !important;
}
.spacey-music-player.playing .spacey-music-face,
body.spacey-music-playing .mascot-btn{
  animation:spaceyMascotBob3d .72s ease-in-out infinite alternate;
}
body.spacey-music-playing .mascot-btn:after,
.spacey-music-player.playing .spacey-music-face:after{
  content:none !important;
  display:none !important;
}
@keyframes spaceyMascotBob3d{from{transform:translateY(0) scale(1)}to{transform:translateY(-4px) scale(1.02)}}
@media (max-width:760px){
  .mini-spacey{
    width:70px;
    height:82px;
    flex:0 0 70px;
  }
  .home-spacey{
    gap:12px;
  }
  .mascot-btn{
    width:86px;
    height:102px;
  }
  .spacey-chat{
    right:10px;
    width:min(370px,calc(100vw - 18px));
  }
  .spacey-chat-face{
    width:54px;
    height:65px;
    flex-basis:54px;
  }
  .spacey-music-face{
    width:42px;
    height:50px;
    flex-basis:42px;
  }
}


/* ===== V14.9 CONTENT READABILITY + INTERACTIVE MISSION GAMES ===== */
/* Story cards: keep button text readable and separate title/subtitle lines. */
.ritual-grid{gap:14px !important}
.ritual-card{
  color:var(--text) !important;
  display:grid !important;
  grid-template-columns:42px 1fr !important;
  grid-template-rows:auto auto !important;
  column-gap:12px !important;
  row-gap:3px !important;
  align-items:center !important;
  min-height:86px !important;
  text-align:left !important;
  background:linear-gradient(145deg,rgba(18,35,60,.94),rgba(8,17,34,.96)) !important;
  border:1px solid rgba(158,203,255,.20) !important;
}
.ritual-card:hover,.ritual-card.active{
  background:linear-gradient(145deg,rgba(24,53,78,.98),rgba(10,24,44,.98)) !important;
  border-color:rgba(130,236,255,.55) !important;
}
.ritual-card .ritual-emoji{
  grid-row:1 / 3;
  grid-column:1;
  font-size:27px;
  display:grid;
  place-items:center;
  align-self:center;
}
.ritual-card b{
  grid-column:2;
  display:block !important;
  color:#f3f8ff !important;
  font-size:15px;
  line-height:1.22;
  margin:0 !important;
}
.ritual-card span{
  grid-column:2;
  display:block !important;
  color:#9eb0ca !important;
  font-size:11px;
  line-height:1.25;
  margin:0 !important;
}
.story-fact{display:flex !important;flex-direction:column !important;align-items:flex-start !important;gap:5px !important}
.story-fact > div{margin-bottom:4px}
.story-fact b{display:block !important;color:#f4f8ff !important;line-height:1.2 !important;margin:0 !important}
.story-fact span{display:block !important;color:#d1dbea !important;line-height:1.45 !important;margin:0 !important}

/* Generic game shell */
.mission-game{
  margin:20px 0 30px;
  padding:22px;
  border-radius:30px;
  background:
    radial-gradient(circle at 12% 10%,rgba(89,200,255,.08),transparent 25%),
    linear-gradient(155deg,rgba(9,21,42,.96),rgba(4,10,23,.98));
  box-shadow:0 24px 70px rgba(0,0,0,.34);
  overflow:hidden;
}
.game-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px;flex-wrap:wrap}
.game-head h2{margin:5px 0 5px}
.game-head p{max-width:720px;margin:0}
.game-badge{padding:8px 11px;border-radius:999px;background:rgba(130,236,255,.09);color:#bff6ff;font-size:11px;font-weight:900;letter-spacing:.06em;white-space:nowrap}
.game-console{padding:18px;border-radius:24px;background:rgba(4,11,26,.72);box-shadow:inset 0 0 0 1px rgba(145,192,255,.08)}
.game-result{min-height:72px;margin-top:13px;padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.035);color:#cdd9e8;line-height:1.45}
.game-result strong{color:#fff}
.game-result.success{background:rgba(72,220,164,.09);color:#c9ffea}
.game-result.fail{background:rgba(255,99,99,.08);color:#ffd2d2}
.stat-chips{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.stat-chip{padding:7px 9px;border-radius:999px;background:rgba(255,255,255,.055);font-size:11px;color:#dce9f6}

/* Chapter 4 — Lunar landing game */
.lunar-game-layout{display:grid;grid-template-columns:minmax(0,1.28fr) minmax(310px,.72fr);gap:18px;align-items:stretch}
.lunar-game-map{
  position:relative;
  min-height:520px;
  overflow:hidden;
  border-radius:26px;
  background:
    radial-gradient(circle at 32% 28%,rgba(255,255,255,.10) 0 2%,transparent 2.4%),
    radial-gradient(circle at 69% 36%,rgba(0,0,0,.30) 0 5%,rgba(255,255,255,.04) 5.5% 7%,transparent 7.5%),
    radial-gradient(circle at 28% 72%,rgba(0,0,0,.32) 0 8%,rgba(255,255,255,.035) 8.5% 11%,transparent 11.5%),
    radial-gradient(circle at 76% 72%,rgba(0,0,0,.35) 0 4%,rgba(255,255,255,.04) 4.5% 6.5%,transparent 7%),
    radial-gradient(circle at 50% 45%,#7b8492 0%,#565f6e 34%,#303947 72%,#151d29 100%);
  box-shadow:inset -60px -30px 90px rgba(0,0,0,.48), inset 24px 18px 60px rgba(255,255,255,.07);
}
.lunar-game-map:before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(1px 1px at 20% 22%,rgba(255,255,255,.28) 99%,transparent),radial-gradient(1px 1px at 82% 12%,rgba(255,255,255,.18) 99%,transparent);
}
.lunar-site{
  position:absolute;transform:translate(-50%,-50%);width:58px;height:58px;border-radius:50%;border:2px solid rgba(225,239,255,.75);
  background:rgba(5,15,31,.66);color:#fff;font-weight:950;font-size:15px;cursor:pointer;z-index:4;
  box-shadow:0 0 0 6px rgba(255,255,255,.025),0 8px 22px rgba(0,0,0,.28);
  transition:.2s transform,.2s background,.2s box-shadow;
}
.lunar-site:hover{transform:translate(-50%,-50%) scale(1.08)}
.lunar-site.selected{background:#82ecff;color:#07131e;border-color:#eaffff;box-shadow:0 0 0 8px rgba(130,236,255,.12),0 0 28px rgba(130,236,255,.38)}
.lunar-site small{display:block;font-size:8px;font-weight:800;margin-top:1px}
.lunar-lander{position:absolute;left:50%;top:8%;z-index:6;font-size:44px;transform:translate(-50%,-50%);filter:drop-shadow(0 8px 8px rgba(0,0,0,.4));transition:filter .2s}
.lunar-lander.burning:after{content:"🔥";position:absolute;left:50%;top:73%;font-size:23px;transform:translateX(-50%);filter:blur(.1px)}
.lunar-map-label{position:absolute;left:14px;top:14px;padding:7px 10px;border-radius:999px;background:rgba(3,9,20,.60);font-size:10px;color:#c9daed;font-weight:800;z-index:3}
.mission-pick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0 16px}
.mission-pick{min-height:88px;border:0;border-radius:16px;background:rgba(255,255,255,.045);color:#e8f3ff;padding:10px;cursor:pointer;text-align:center;font-weight:850}
.mission-pick span{font-size:24px;display:block;margin-bottom:5px}
.mission-pick.active{background:linear-gradient(145deg,rgba(255,222,111,.14),rgba(130,236,255,.14));box-shadow:inset 0 0 0 1px rgba(130,236,255,.35)}
.landing-meter{position:relative;height:62px;border-radius:18px;background:linear-gradient(90deg,rgba(255,97,97,.16),rgba(255,204,96,.12) 38%,rgba(73,220,160,.17) 58%,rgba(255,204,96,.12) 75%,rgba(255,97,97,.16));overflow:hidden;margin:13px 0 8px}
.landing-meter:before{content:"TOO EARLY";position:absolute;left:8px;top:7px;font-size:8px;color:#afbed1}.landing-meter:after{content:"TOO LATE";position:absolute;right:8px;top:7px;font-size:8px;color:#afbed1}
.safe-zone{position:absolute;top:25px;height:25px;border-radius:9px;background:rgba(91,255,179,.18);box-shadow:inset 0 0 0 1px rgba(91,255,179,.48)}
.landing-needle{position:absolute;left:0;top:19px;width:4px;height:37px;border-radius:4px;background:#fff;box-shadow:0 0 12px #fff,0 0 18px #82ecff;transform:translateX(-2px)}
.landing-instruction{font-size:11px;color:#aebdd0;line-height:1.45}

/* Chapter 5 — Field Shift card game */
.field-game-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(330px,.95fr);gap:18px}
.field-scan{
  min-height:420px;border-radius:26px;padding:18px;display:flex;flex-direction:column;justify-content:space-between;
  background:
    linear-gradient(180deg,rgba(95,199,255,.13),transparent 28%),
    repeating-linear-gradient(90deg,rgba(52,137,73,.36) 0 10%,rgba(41,111,59,.34) 10% 20%),
    linear-gradient(#31583b,#16281c);
  overflow:hidden;position:relative;
}
.field-scan:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.10) 48%,transparent 61%);transform:translateX(-120%);animation:satelliteSweep 5s ease-in-out infinite;pointer-events:none}
@keyframes satelliteSweep{55%,100%{transform:translateX(120%)}}
.field-scan-top{position:relative;z-index:2;display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.field-round{padding:8px 10px;border-radius:999px;background:rgba(3,10,18,.62);font-size:11px;font-weight:850}
.field-weather-icon{font-size:56px;filter:drop-shadow(0 7px 12px rgba(0,0,0,.28))}
.field-readings{position:relative;z-index:2;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.field-reading{padding:12px;border-radius:16px;background:rgba(3,10,18,.70);backdrop-filter:blur(8px)}
.field-reading span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#99abc0}.field-reading b{display:block;font-size:20px;margin-top:3px}
.crop-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0 15px}
.crop-choice{min-height:90px;border:0;border-radius:18px;padding:12px;background:rgba(255,255,255,.045);color:#eff7ff;cursor:pointer;text-align:left;display:grid;grid-template-columns:40px 1fr;gap:10px;align-items:center}
.crop-choice .crop-icon{font-size:30px}.crop-choice b{display:block;font-size:15px}.crop-choice small{display:block;color:#aebdd0;margin-top:3px;line-height:1.25}.crop-choice.selected{background:rgba(130,236,255,.11);box-shadow:inset 0 0 0 1px rgba(130,236,255,.45)}
.field-score-row{display:flex;gap:10px;align-items:center;justify-content:space-between;margin:8px 0 3px}.field-score-row b{font-size:23px;color:#ffd86e}

/* Chapter 6 — SAR anomaly hunt */
.sar-game-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:18px}
.sar-canvas-wrap{position:relative;border-radius:26px;overflow:hidden;background:#030812;min-height:460px}
#sarHuntCanvas{width:100%;height:100%;min-height:460px;display:block;cursor:crosshair;border-radius:26px}
.sar-overlay-label{position:absolute;left:13px;top:13px;padding:7px 10px;border-radius:999px;background:rgba(3,10,20,.72);font-size:10px;color:#c8e4ff;font-weight:850;pointer-events:none}
.sar-event-grid{display:grid;grid-template-columns:1fr;gap:8px;margin:12px 0}
.sar-event-btn{border:0;border-radius:15px;padding:11px 12px;background:rgba(255,255,255,.045);color:#e8f3ff;text-align:left;cursor:pointer;font-weight:850}.sar-event-btn.active{background:rgba(130,236,255,.11);box-shadow:inset 0 0 0 1px rgba(130,236,255,.38)}
.sar-event-btn span{display:block;font-size:10px;color:#aabbd0;font-weight:600;margin-top:3px}
.sar-lives{display:flex;gap:6px;margin:9px 0}.sar-life{font-size:18px}.sar-life.used{opacity:.2;filter:grayscale(1)}
.sar-hunt-stat{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:12px}.sar-hunt-stat:last-child{border-bottom:0}.sar-hunt-stat b{color:#fff}
.sar-ping{position:absolute;width:28px;height:28px;border:2px solid #ff8585;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;animation:sarPing .65s ease-out forwards}@keyframes sarPing{to{width:72px;height:72px;opacity:0}}

@media(max-width:900px){
  .lunar-game-layout,.field-game-layout,.sar-game-layout{grid-template-columns:1fr}
  .lunar-game-map{min-height:440px}
}
@media(max-width:600px){
  .mission-game{padding:14px;border-radius:22px}
  .ritual-card{grid-template-columns:36px 1fr !important;min-height:80px !important}
  .mission-pick-grid{grid-template-columns:1fr}
  .crop-choice-grid{grid-template-columns:1fr}
  .lunar-game-map{min-height:390px}
  #sarHuntCanvas,.sar-canvas-wrap{min-height:380px}
}


/* ===== V14.10 GAMEPLAY + READABILITY FIXES ===== */
/* Flame in Freefall: never squeeze the three status lines together */
.ai-risk-status{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:7px !important;
  align-items:start;
  margin-top:16px;
  padding:14px 15px;
  border-radius:17px;
  background:rgba(255,255,255,.045);
}
.ai-risk-status > *{display:block !important;line-height:1.35 !important;margin:0 !important}
.ai-risk-status .ai-risk-kicker{color:#9fb4cb;text-transform:uppercase;letter-spacing:.08em;font-size:10px}
.ai-risk-status #riskLabel{font-size:20px;color:#fff;letter-spacing:.02em}
.ai-risk-status .ai-risk-desc{color:#c9d6e6;font-size:12px}

/* Skip transition: direct next-chapter flight with Spacey encouragement */
.skip-flight-toast{
  position:fixed;left:50%;bottom:28px;z-index:180;
  width:min(560px,calc(100vw - 24px));
  display:grid;grid-template-columns:66px 1fr auto;gap:13px;align-items:center;
  padding:13px 16px;border-radius:22px;
  background:linear-gradient(145deg,rgba(8,23,48,.97),rgba(4,10,25,.98));
  box-shadow:0 24px 70px rgba(0,0,0,.48),0 0 30px rgba(101,239,255,.11);
  opacity:0;transform:translate(-50%,18px) scale(.96);transition:.28s ease;
}
.skip-flight-toast.show{opacity:1;transform:translate(-50%,0) scale(1)}
.skip-flight-spacey{width:58px;height:68px;background:url('spacey-3d-mascot.png') center/contain no-repeat;filter:drop-shadow(0 8px 12px rgba(0,0,0,.35))}
.skip-flight-toast b{display:block;color:#83eeff;font-size:12px;margin-bottom:3px}.skip-flight-toast span{display:block;color:#e8f2ff;line-height:1.4;font-size:13px}.skip-flight-toast i{font-style:normal;font-size:24px;color:#83eeff}

/* Lunar mission: 3-burn stage UI */
.landing-stage-bar{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:11px 12px;margin:13px 0 8px;border-radius:18px;background:rgba(255,255,255,.045)}
.landing-stage-bar>div:nth-child(2){min-width:0}.landing-stage-bar b{display:block;font-size:12px;color:#f3f8ff}.landing-stage-bar small{display:block;color:#9fb1c6;margin-top:3px;line-height:1.3}.landing-stage-bar>strong{font-size:12px;color:#ffd86e;white-space:nowrap}
.landing-burn-dots{display:flex;gap:5px}.landing-burn-dots span{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.055);color:#91a4ba;font-size:10px;font-weight:900;transition:.2s}.landing-burn-dots span.active{background:#82ecff;color:#06111b;box-shadow:0 0 15px rgba(130,236,255,.35)}.landing-burn-dots span.done{background:#54dba8;color:#06150f}.landing-burn-dots span.miss{background:#ff7c7c;color:#210606}

/* Field Shift: crop choices get enough breathing room */
.crop-choice-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr)) !important;gap:14px !important;margin:15px 0 18px !important}
.crop-choice{min-height:106px !important;padding:15px !important;grid-template-columns:48px 1fr !important;gap:14px !important;align-items:start !important}
.crop-choice .crop-icon{font-size:34px !important;line-height:1}.crop-choice b{font-size:16px !important;margin-bottom:5px}.crop-choice small{font-size:11px !important;line-height:1.38 !important;color:#b8c7d8 !important}

/* SAR Change Detective */
.sar-detective-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.6fr);gap:18px;align-items:start}
.sar-compare-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sar-frame{position:relative;overflow:hidden;border-radius:23px;background:#020712;min-height:340px;box-shadow:inset 0 0 0 1px rgba(150,200,255,.08)}
.sar-frame canvas{width:100%;height:100%;min-height:340px;display:block;border-radius:0;background:#020712}
.sar-frame-label{position:absolute;left:10px;top:10px;z-index:4;padding:6px 9px;border-radius:999px;background:rgba(2,8,18,.76);color:#d7edff;font-size:9px;font-weight:900;letter-spacing:.08em;pointer-events:none}
.sar-sector-grid{position:absolute;inset:0;z-index:3;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr)}
.sar-sector-grid button{position:relative;border:1px solid rgba(211,232,255,.14);background:transparent;cursor:crosshair;color:rgba(235,247,255,.55);transition:.15s}
.sar-sector-grid button:hover{background:rgba(130,236,255,.055);border-color:rgba(130,236,255,.35)}
.sar-sector-grid button span{position:absolute;right:5px;bottom:4px;font-size:8px;font-weight:900;text-shadow:0 1px 3px #000}
.sar-sector-grid button.selected{background:rgba(130,236,255,.10);box-shadow:inset 0 0 0 2px rgba(130,236,255,.76);color:#fff}
.sar-sector-grid button.reveal{background:rgba(86,230,170,.13);box-shadow:inset 0 0 0 2px rgba(86,230,170,.72)}
.sar-after-frame.pulse-before{box-shadow:0 0 0 2px rgba(255,216,110,.55),0 0 30px rgba(255,216,110,.16)}
.sar-step-title{margin-top:17px}
.sar-event-btn{transition:.16s transform,.16s background}.sar-event-btn:hover{transform:translateY(-1px)}

@media(max-width:1050px){.sar-detective-layout{grid-template-columns:1fr}.sar-compare-pair{grid-template-columns:1fr 1fr}.sar-frame,.sar-frame canvas{min-height:300px}}
@media(max-width:680px){.sar-compare-pair{grid-template-columns:1fr}.sar-frame,.sar-frame canvas{min-height:300px}.landing-stage-bar{grid-template-columns:1fr}.landing-stage-bar>strong{justify-self:start}.skip-flight-toast{grid-template-columns:54px 1fr auto}.skip-flight-spacey{width:50px;height:60px}.crop-choice-grid{grid-template-columns:1fr !important}}


/* ===== V14.11 intro page with Hornbill Void logo ===== */
.video-copy .pill{display:inline-flex;margin-bottom:18px}
.video-copy h3{margin:0 0 12px;line-height:1.22}
.video-copy p{margin:0 0 12px;line-height:1.6}
.video-copy .small{display:block;margin-top:2px}

.intro-page{
  min-height:100vh;
  background:
    radial-gradient(circle at 12% 18%, rgba(75,126,255,.22), transparent 28%),
    radial-gradient(circle at 84% 16%, rgba(182,96,255,.20), transparent 30%),
    linear-gradient(180deg,#050814 0%,#040911 100%);
  overflow-x:hidden;
}
.intro-tag{opacity:.95}
.intro-shell{position:relative;min-height:calc(100vh - 96px);display:grid;align-items:center;padding-top:32px;padding-bottom:36px}
.intro-hero{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);
  gap:34px;
  align-items:center;
  min-height:72vh;
}
.intro-copy{position:relative;z-index:2;max-width:650px}
.intro-copy h1{font-size:clamp(3rem,7vw,5.8rem);line-height:.96;margin:16px 0 18px;letter-spacing:-.045em}
.intro-sub{font-size:1.14rem;max-width:58ch;color:var(--muted);line-height:1.72}
.intro-actions{display:flex;gap:14px;flex-wrap:wrap;margin:26px 0 28px}
.intro-visual{
  position:relative;z-index:2;
  display:grid;gap:12px;justify-items:center;
}
.intro-visual img{
  width:min(100%,680px);
  border-radius:30px;
  box-shadow:0 30px 90px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.07);
}
.intro-caption{
  font-weight:800;color:#f3f6ff;letter-spacing:.01em;text-align:center
}
.intro-welcome-card{
  display:flex;align-items:center;gap:16px;
  padding:18px 20px;border-radius:24px;
  background:rgba(10,18,38,.78);
  box-shadow:0 18px 42px rgba(0,0,0,.28);
  backdrop-filter:blur(10px);
  max-width:620px;
}
.intro-welcome-card b{display:block;font-size:1.08rem;margin-bottom:6px}
.intro-welcome-card p{margin:0;color:#dce8f6;line-height:1.65}
.intro-spacey-avatar{
  width:76px;height:92px;flex:0 0 76px;
  background:url('spacey-3d-mascot.png') center/contain no-repeat;
  filter:drop-shadow(0 12px 22px rgba(58,192,255,.2));
}
.intro-floating-spacey{
  position:absolute;right:14px;bottom:12px;z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:8px;
  animation:introFloat 3.2s ease-in-out infinite;
}
.intro-floating-spacey img{
  width:120px;height:auto;display:block;
  filter:drop-shadow(0 18px 30px rgba(0,0,0,.3));
}
.speech-bubble{
  padding:10px 14px;border-radius:18px;
  background:rgba(12,20,40,.86);
  color:#eef6ff;font-weight:800;white-space:nowrap;
  box-shadow:0 12px 30px rgba(0,0,0,.25);
}
.intro-page::before{
  content:"";position:fixed;inset:0;pointer-events:none;
  background-image:radial-gradient(circle at center, rgba(255,255,255,.95) 0 1px, transparent 1.5px);
  background-size:48px 48px;opacity:.22;
}
.intro-page::after{
  content:"";position:fixed;inset:0;pointer-events:none;
  background:radial-gradient(circle at 50% 50%, rgba(255,255,255,.06), rgba(0,0,0,0) 36%);
}
@keyframes introFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@media (max-width: 980px){
  .intro-hero{grid-template-columns:1fr;gap:24px}
  .intro-copy{max-width:none}
  .intro-visual{order:-1}
  .intro-visual img{width:min(100%,560px)}
  .intro-floating-spacey{right:4px;bottom:-8px}
}
@media (max-width: 760px){
  .intro-shell{padding-top:18px;padding-bottom:26px;min-height:calc(100vh - 80px)}
  .intro-copy h1{font-size:clamp(2.6rem,15vw,4rem)}
  .intro-sub{font-size:1rem}
  .intro-welcome-card{padding:16px;gap:12px}
  .intro-spacey-avatar{width:60px;height:74px;flex-basis:60px}
  .intro-floating-spacey{position:static;margin-top:10px;align-items:flex-start}
  .intro-floating-spacey img{width:88px}
  .speech-bubble{white-space:normal;max-width:240px}
}


/* ===== V14.11.1 intro cleanup ===== */
.intro-topbar{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:0;box-shadow:none;min-height:18px}
.intro-nav{min-height:16px;padding-top:2px;padding-bottom:2px}
.intro-page .topbar .logo,
.intro-page .topbar .navlinks,
.intro-page .intro-tag{display:none !important}
.intro-visual img{width:min(100%,760px);border-radius:26px}
.intro-caption{display:none}
.intro-floating-spacey{right:-6px;bottom:24px;flex-direction:row-reverse;align-items:center;gap:10px}
.mascot-name{font-size:1rem;letter-spacing:.01em;padding:10px 16px}
@media (max-width:980px){
  .intro-floating-spacey{right:8px;bottom:0}
}
@media (max-width:760px){
  .intro-topbar,.intro-nav{min-height:8px;padding:0}
  .intro-floating-spacey{position:static;justify-content:flex-start;flex-direction:row-reverse;gap:8px}
  .mascot-name{font-size:.95rem;padding:9px 14px}
}


/* ===== V14.12 WELCOME MUSIC + SARAWAK TITLE ===== */
.sarawak-title{
  display:inline;
  font-weight:950;
  letter-spacing:-.045em;
}
.sarawak-yellow{color:#ffd100}
.sarawak-red{color:#e31b23}
.sarawak-black{
  color:#050505;
  -webkit-text-stroke:1.15px rgba(255,255,255,.68);
  text-shadow:0 1px 0 rgba(255,209,0,.20),0 0 12px rgba(255,255,255,.08);
}
.intro-copy h1 .sarawak-title span{
  transition:filter .2s ease, text-shadow .2s ease;
}
@media(hover:hover){
  .intro-copy h1:hover .sarawak-yellow{filter:brightness(1.08);text-shadow:0 0 20px rgba(255,209,0,.18)}
  .intro-copy h1:hover .sarawak-red{text-shadow:0 0 20px rgba(227,27,35,.18)}
}
.intro-page footer{display:none !important}


/* ===== V14.12.1 painted slash title + singing Spacey ===== */
.sarawak-title{
  position:relative;
  display:inline-block;
  padding:.02em .08em .10em;
  font-weight:900;
  letter-spacing:-.05em;
  color:transparent !important;
  -webkit-text-fill-color:transparent;
  background-image:
    linear-gradient(128deg,
      #ffd84b 0%, #ffd84b 24%,
      #747782 24%, #30323a 31%, #4f525d 39%, #262830 46%,
      #e33434 46%, #c51f2b 70%,
      #ffe064 70%, #f3c82d 100%);
  background-size:100% 100%;
  background-repeat:no-repeat;
  -webkit-background-clip:text;
  background-clip:text;
  text-shadow:
    0 2px 0 rgba(0,0,0,.18),
    0 8px 24px rgba(0,0,0,.30);
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.28));
}
.sarawak-title::before{
  content:"";
  position:absolute;
  left:-.01em; right:-.01em; top:.50em;
  height:.28em;
  transform:rotate(-8deg);
  background:linear-gradient(90deg,#ffd84b 0 27%, #777a84 27% 34%, #2e3038 34% 49%, #d92b34 49% 72%, #ffd84b 72% 100%);
  opacity:.25;
  filter:blur(4px);
  pointer-events:none;
}
.intro-copy h1 .grad{background:none !important;color:inherit !important;-webkit-text-fill-color:inherit !important}

.singing-spacey{
  right:6px;
  bottom:16px;
  gap:12px;
}
.singing-spacey img{
  width:132px;
  animation:introFloat 3.2s ease-in-out infinite, spaceySingerBounce 1.1s ease-in-out infinite alternate;
}
.mascot-name{
  display:flex;
  align-items:center;
  gap:8px;
}
.spacey-singing-emoji{
  display:inline-block;
  animation:micPulse 1.4s ease-in-out infinite;
}
.spacey-note-cluster{
  position:absolute;
  inset:-20px -28px -10px -18px;
  pointer-events:none;
}
.spacey-note{
  position:absolute;
  font-size:1.45rem;
  font-weight:900;
  color:#9ef6ff;
  text-shadow:0 0 10px rgba(142,241,255,.72), 0 4px 12px rgba(0,0,0,.2);
  opacity:0;
  animation:spaceyNotes 2.8s ease-in-out infinite;
}
.note-1{left:8px; top:22px; animation-delay:0s}
.note-2{left:32px; top:2px; animation-delay:.45s}
.note-3{right:18px; top:12px; animation-delay:.95s}
.note-4{right:-2px; top:36px; animation-delay:1.4s}
.note-5{left:56px; bottom:10px; animation-delay:1.9s}
.intro-welcome-card{
  overflow:hidden;
}
.intro-welcome-card::after{
  content:'♪';
  position:absolute;
  right:16px;
  top:10px;
  color:rgba(158,246,255,.7);
  font-size:1.1rem;
  text-shadow:0 0 10px rgba(158,246,255,.4);
}
@keyframes spaceySingerBounce{
  0%{transform:translateY(0) rotate(-1deg)}
  100%{transform:translateY(-6px) rotate(1deg)}
}
@keyframes micPulse{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.16) rotate(-8deg)}
}
@keyframes spaceyNotes{
  0%{opacity:0; transform:translate(0,8px) scale(.78)}
  20%{opacity:1}
  70%{opacity:.95}
  100%{opacity:0; transform:translate(8px,-28px) scale(1.2)}
}
@media (max-width:760px){
  .sarawak-title{display:inline}
  .sarawak-title::before{height:.22em; top:.52em; transform:rotate(-7deg)}
  .singing-spacey{gap:8px}
  .singing-spacey img{width:96px}
  .spacey-note{font-size:1.18rem}
}


/* ===== V14.12.2 expressive Spacey system ===== */
/* Keep the Sarawak black stripe visible on a dark background. */
.sarawak-title{
  -webkit-text-stroke:.35px rgba(255,236,164,.22);
}
.sarawak-title::after{
  content:"";
  position:absolute;
  left:20%; top:30%;
  width:35%; height:12%;
  border-radius:999px;
  transform:rotate(-8deg);
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.26),rgba(255,255,255,0));
  filter:blur(2px);
  pointer-events:none;
}

/* Emoji expression badges for the 3D Spacey model. */
.spacey-expression-target{
  position:relative !important;
  overflow:visible !important;
}
.spacey-expression-target::after{
  content:attr(data-expression) !important;
  display:grid !important;
  place-items:center;
  position:absolute !important;
  right:-8px !important;
  top:-8px !important;
  left:auto !important;
  bottom:auto !important;
  width:30px !important;
  height:30px !important;
  border-radius:50% !important;
  transform:none !important;
  background:rgba(6,17,35,.90) !important;
  border:1px solid rgba(164,230,255,.30) !important;
  color:#fff !important;
  font:700 18px/1 system-ui,sans-serif !important;
  box-shadow:0 8px 20px rgba(0,0,0,.32),0 0 14px rgba(130,236,255,.16) !important;
  z-index:20 !important;
  pointer-events:none !important;
}
.home-spacey .mini-spacey.spacey-expression-target::after,
.spacey-brief .mini-spacey.spacey-expression-target::after{
  right:-4px !important;
  top:-5px !important;
}

/* Musical notes are shared by every Spacey avatar when the soundtrack is playing. */
.spacey-note-burst{
  position:absolute;
  inset:-24px -34px -28px -30px;
  z-index:18;
  pointer-events:none;
  overflow:visible;
}
.spacey-note-burst i{
  position:absolute;
  display:block;
  opacity:0;
  font-style:normal;
  font-weight:900;
  color:#a6f4ff;
  text-shadow:0 0 9px rgba(126,236,255,.86),0 5px 10px rgba(0,0,0,.24);
  animation:spaceyMusicNote 2.6s ease-out infinite;
  animation-play-state:paused;
}
.spacey-note-burst i:nth-child(1){left:8%;top:55%;font-size:16px;animation-delay:0s}
.spacey-note-burst i:nth-child(2){left:28%;top:18%;font-size:22px;animation-delay:.42s}
.spacey-note-burst i:nth-child(3){right:18%;top:8%;font-size:18px;animation-delay:.86s}
.spacey-note-burst i:nth-child(4){right:0;top:43%;font-size:23px;animation-delay:1.28s}
.spacey-note-burst i:nth-child(5){left:49%;bottom:0;font-size:17px;animation-delay:1.72s}
body.spacey-music-playing .spacey-note-burst i{
  animation-play-state:running;
}
body.spacey-music-playing .mini-spacey,
body.spacey-music-playing .mascot-btn,
body.spacey-music-playing .spacey-chat-face,
body.spacey-music-playing .spacey-music-face{
  animation:spaceySingerLife .68s ease-in-out infinite alternate !important;
}
@keyframes spaceyMusicNote{
  0%{opacity:0;transform:translate(0,12px) scale(.72) rotate(-8deg)}
  15%{opacity:1}
  65%{opacity:.92}
  100%{opacity:0;transform:translate(8px,-38px) scale(1.22) rotate(8deg)}
}
@keyframes spaceySingerLife{
  from{transform:translateY(0) scale(1)}
  to{transform:translateY(-4px) scale(1.025)}
}

/* The floating Spacey should visibly sing on the menu and chapter pages. */
body.spacey-music-playing .mascot-float{
  filter:drop-shadow(0 0 16px rgba(130,236,255,.15));
}
body.spacey-music-playing .spacey-music-player{
  box-shadow:0 16px 44px rgba(0,0,0,.42),0 0 24px rgba(130,236,255,.12);
}

/* Make different expressions feel like reactions rather than static stickers. */
.spacey-expression-pop::after{
  animation:spaceyExpressionPop .48s cubic-bezier(.2,.9,.25,1.35);
}
@keyframes spaceyExpressionPop{
  0%{transform:scale(.3) rotate(-12deg) !important;opacity:0}
  70%{transform:scale(1.18) rotate(4deg) !important;opacity:1}
  100%{transform:scale(1) rotate(0) !important;opacity:1}
}

@media(max-width:760px){
  .spacey-expression-target::after{
    width:27px !important;height:27px !important;font-size:16px !important;
    right:-5px !important;top:-5px !important;
  }
  .spacey-note-burst{inset:-20px -26px -22px -24px}
}


/* ===== V14.12.3: 3D Spacey expression upgrade ===== */
.mini-spacey,
.spacey-chat-face,
.mascot-btn{
  position:relative;
  border:0 !important;
  background-repeat:no-repeat !important;
  background-position:center !important;
  background-size:contain !important;
  box-shadow:none !important;
  overflow:visible !important;
}
.mini-spacey::before,
.mini-spacey::after,
.spacey-chat-face::before,
.spacey-chat-face::after,
.mascot-btn::before,
.mascot-btn::after,
.spacey-music-face,
.spacey-music-face::before,
.spacey-music-face::after{
  content:none !important;
  background:none !important;
  border:0 !important;
  box-shadow:none !important;
}
.mini-spacey,
.spacey-chat-face{
  background-image:url('spacey-avatar-base.png') !important;
}
.mini-spacey{
  width:64px;height:64px;flex:0 0 64px;
}
.spacey-chat-face{
  width:76px;height:76px;flex:0 0 76px;
}
.mascot-btn{
  width:106px !important;
  height:106px !important;
  border-radius:0 !important;
  background-image:url('spacey-3d-mascot.png') !important;
  background-size:contain !important;
  background-position:center bottom !important;
  background-color:transparent !important;
}
.mascot-float{right:18px;bottom:18px}
@media(max-width:760px){
  .mascot-btn{width:84px !important;height:84px !important}
  .mini-spacey{width:56px;height:56px;flex-basis:56px}
}
.spacey-expression-target::after{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  right:-10px !important;
  top:-10px !important;
  width:42px !important;
  height:42px !important;
  border-radius:50% !important;
  background-color:rgba(8,16,30,.92) !important;
  background-repeat:no-repeat !important;
  background-position:center !important;
  background-size:110% !important;
  border:1px solid rgba(143,231,255,.38) !important;
  box-shadow:0 10px 24px rgba(0,0,0,.34), 0 0 18px rgba(96,224,255,.15) !important;
  z-index:26 !important;
}
.mini-spacey.spacey-expression-target::after{display:none !important}
.spacey-expression-target[data-expression='happy']::after{background-image:url('spacey-exp-happy.png') !important}
.spacey-expression-target[data-expression='excited']::after{background-image:url('spacey-exp-excited.png') !important}
.spacey-expression-target[data-expression='thinking']::after{background-image:url('spacey-exp-thinking.png') !important}
.spacey-expression-target[data-expression='surprised']::after{background-image:url('spacey-exp-surprised.png') !important}
.spacey-expression-target[data-expression='winking']::after{background-image:url('spacey-exp-winking.png') !important}
.spacey-expression-target[data-expression='cheerful']::after{background-image:url('spacey-exp-cheerful.png') !important}
.mini-spacey .spacey-note-burst,
.spacey-chat-face .spacey-note-burst{display:none !important}
.mascot-btn .spacey-note-burst{inset:-16px -22px -18px -18px}
body:not(.spacey-music-playing) .mascot-btn .spacey-note-burst i{animation-play-state:paused !important; opacity:0 !important}
body.spacey-music-playing .mascot-btn .spacey-note-burst i{animation-play-state:running !important}
body.spacey-music-playing .mascot-btn{animation:spaceySingerLife .72s ease-in-out infinite alternate !important}
body.spacey-music-playing .spacey-chat-face,
body.spacey-music-playing .mini-spacey{animation:none !important}
.spacey-music-now{display:block !important}
.spacey-music-copy{padding-left:0 !important}
.spacey-music-player{min-width:280px}
.spacey-music-player .spacey-music-now .spacey-music-face{display:none !important}
.skip-flight-spacey.spacey-expression-target::after{right:-6px !important;top:-8px !important;width:34px !important;height:34px !important}


/* ===== V14.12.4: cleaner Spacey placement + welcome logo zoom ===== */
.mascot-float{top:96px !important;right:18px !important;bottom:auto !important;left:auto !important;z-index:96 !important;cursor:grab;touch-action:none}
.mascot-float.dragging{cursor:grabbing}
.mascot-btn{width:116px !important;height:116px !important;background-image:url('spacey-3d-mascot.png') !important;background-size:contain !important;background-position:center bottom !important;background-repeat:no-repeat !important;background-color:transparent !important;filter:drop-shadow(0 14px 30px rgba(0,0,0,.42));animation:spaceyFloatBob 3.4s ease-in-out infinite}
.mascot-btn.spacey-expression-target::after,.mascot-btn .spacey-note-burst{display:none !important}
@keyframes spaceyFloatBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.spacey-chat{right:18px !important;top:220px !important;bottom:auto !important;z-index:97 !important}
@media (max-width:900px){.mascot-float{top:86px !important;right:12px !important}.mascot-btn{width:92px !important;height:92px !important}.spacey-chat{top:182px !important;right:10px !important}}
@media (max-width:640px){.spacey-chat{width:min(350px, calc(100vw - 16px)) !important}}
.intro-visual{position:relative}.intro-logo-zoom{cursor:zoom-in;transition:transform .22s ease,filter .22s ease}.intro-logo-zoom:hover{transform:scale(1.02);filter:drop-shadow(0 16px 40px rgba(0,0,0,.34))}.intro-logo-hint{margin-top:10px;color:#b9cbe2;font-size:.95rem;text-align:center}
.logo-lightbox{position:fixed;inset:0;z-index:140;background:rgba(3,8,18,.84);display:none;align-items:center;justify-content:center;padding:28px;backdrop-filter:blur(8px)}.logo-lightbox.open{display:flex}.logo-lightbox-panel{position:relative;width:min(980px,100%);max-height:min(88vh,100%);display:flex;align-items:center;justify-content:center}.logo-lightbox-panel img{width:auto;max-width:100%;max-height:84vh;border-radius:24px;box-shadow:0 26px 80px rgba(0,0,0,.45)}.logo-lightbox-close{position:absolute;top:-10px;right:-10px;width:48px;height:48px;border:0;border-radius:50%;background:rgba(13,22,38,.9);color:#fff;font-size:28px;cursor:pointer;box-shadow:0 12px 35px rgba(0,0,0,.35)}.logo-lightbox-tip{position:absolute;left:50%;bottom:-18px;transform:translateX(-50%);white-space:nowrap;padding:8px 14px;border-radius:999px;background:rgba(13,22,38,.78);color:#d8e7fa;font-size:.9rem}


/* ===== V14.12.5: Spacey facial expressions cleanup ===== */
.mascot-btn{background-image:url('spacey-mascot-happy.png') !important;border-radius:0 !important;overflow:visible !important}
.mini-spacey,.spacey-chat-face{background-image:url('spacey-avatar-happy.png') !important}
/* disable old tiny expression badge */
.spacey-expression-target::after,
.mascot-btn.spacey-expression-target::after{display:none !important;content:none !important}
/* map 3D expression images directly */
.mascot-btn[data-expression='happy']{background-image:url('spacey-mascot-happy.png') !important}
.mascot-btn[data-expression='excited']{background-image:url('spacey-mascot-excited.png') !important}
.mascot-btn[data-expression='thinking']{background-image:url('spacey-mascot-thinking.png') !important}
.mascot-btn[data-expression='surprised']{background-image:url('spacey-mascot-surprised.png') !important}
.mascot-btn[data-expression='winking']{background-image:url('spacey-mascot-winking.png') !important}
.mascot-btn[data-expression='cheerful']{background-image:url('spacey-mascot-cheerful.png') !important}
.mascot-btn[data-expression='singing']{background-image:url('spacey-mascot-singing.png') !important}
.mini-spacey[data-expression='happy'], .spacey-chat-face[data-expression='happy']{background-image:url('spacey-avatar-happy.png') !important}
.mini-spacey[data-expression='excited'], .spacey-chat-face[data-expression='excited']{background-image:url('spacey-avatar-excited.png') !important}
.mini-spacey[data-expression='thinking'], .spacey-chat-face[data-expression='thinking']{background-image:url('spacey-avatar-thinking.png') !important}
.mini-spacey[data-expression='surprised'], .spacey-chat-face[data-expression='surprised']{background-image:url('spacey-avatar-surprised.png') !important}
.mini-spacey[data-expression='winking'], .spacey-chat-face[data-expression='winking']{background-image:url('spacey-avatar-winking.png') !important}
.mini-spacey[data-expression='cheerful'], .spacey-chat-face[data-expression='cheerful']{background-image:url('spacey-avatar-cheerful.png') !important}
.mini-spacey[data-expression='singing'], .spacey-chat-face[data-expression='singing']{background-image:url('spacey-avatar-singing.png') !important}
/* keep music notes around floating mascot */
.mascot-btn .spacey-note-burst{display:block !important;inset:-18px -24px -24px -20px;pointer-events:none}
body:not(.spacey-music-playing) .mascot-btn .spacey-note-burst i{animation-play-state:paused !important;opacity:0 !important}
body.spacey-music-playing .mascot-btn .spacey-note-burst i{animation-play-state:running !important;opacity:0}
body.spacey-music-playing .mascot-btn{animation:spaceySingerLife .72s ease-in-out infinite alternate !important}
body.spacey-music-playing .spacey-chat-face{filter:drop-shadow(0 0 12px rgba(101,239,255,.18))}
/* make top-right mascot easier to see */
.mascot-float{width:118px;height:148px;align-items:flex-start;justify-content:center}
.mascot-btn{width:118px !important;height:148px !important;background-position:center top !important}
@media (max-width:900px){.mascot-float{width:96px;height:122px}.mascot-btn{width:96px !important;height:122px !important}}


/* ===== V14.12.8: corrected Spacey face on every page ===== */
/* Use a clean full-body mascot for the draggable floating Spacey */
.mascot-btn,
.mascot-btn[data-expression],
.mascot-btn[data-expression='happy'],
.mascot-btn[data-expression='excited'],
.mascot-btn[data-expression='thinking'],
.mascot-btn[data-expression='surprised'],
.mascot-btn[data-expression='winking'],
.mascot-btn[data-expression='cheerful'],
.mascot-btn[data-expression='singing']{
  background-image:url('spacey-3d-mascot.png') !important;
  background-size:contain !important;
  background-repeat:no-repeat !important;
  background-position:center top !important;
}
.mascot-btn::before,.mascot-btn::after,.spacey-expression-target::after{content:none !important;display:none !important}
.mascot-btn{width:112px !important;height:136px !important;filter:drop-shadow(0 14px 28px rgba(0,0,0,.34)) !important;border:0 !important;border-radius:0 !important;overflow:visible !important}
.mascot-float{top:90px !important;right:16px !important;bottom:auto !important;width:112px !important;height:136px !important;z-index:96 !important}
@media (max-width:900px){.mascot-btn{width:88px !important;height:108px !important}.mascot-float{width:88px !important;height:108px !important;top:82px !important;right:10px !important}}
/* Music notes visible only while music is playing */
.mascot-btn .spacey-note-burst{display:block !important;inset:-14px -22px -18px -22px !important;pointer-events:none}
body:not(.spacey-music-playing) .mascot-btn .spacey-note-burst i{opacity:0 !important;animation-play-state:paused !important}
body.spacey-music-playing .mascot-btn .spacey-note-burst i{opacity:0;animation-play-state:running !important}
/* Briefing/chat/skip faces: use clean 3D face cards from the reference image */
.mini-spacey,.spacey-chat-face,.skip-flight-spacey{
  background-repeat:no-repeat !important;
  background-position:center center !important;
  background-size:contain !important;
  background-color:transparent !important;
  border:0 !important;
  border-radius:18px !important;
  box-shadow:0 10px 24px rgba(0,0,0,.18) !important;
  overflow:hidden !important;
}
.mini-spacey::before,.mini-spacey::after,.spacey-chat-face::before,.spacey-chat-face::after,.skip-flight-spacey::before,.skip-flight-spacey::after,.spacey-music-face::before,.spacey-music-face::after{content:none !important;display:none !important}
.mini-spacey{width:86px !important;height:66px !important;flex:0 0 86px !important;background-image:url('spacey-facecard-happy.png') !important}
.spacey-chat-face{width:102px !important;height:78px !important;flex:0 0 102px !important;background-image:url('spacey-facecard-happy.png') !important}
.skip-flight-spacey{width:78px !important;height:60px !important;background-image:url('spacey-facecard-cheerful.png') !important;filter:none !important}
.mini-spacey[data-expression='happy'], .spacey-chat-face[data-expression='happy'], .skip-flight-spacey[data-expression='happy']{background-image:url('spacey-facecard-happy.png') !important}
.mini-spacey[data-expression='excited'], .spacey-chat-face[data-expression='excited'], .skip-flight-spacey[data-expression='excited']{background-image:url('spacey-facecard-excited.png') !important}
.mini-spacey[data-expression='thinking'], .spacey-chat-face[data-expression='thinking'], .skip-flight-spacey[data-expression='thinking']{background-image:url('spacey-facecard-thinking.png') !important}
.mini-spacey[data-expression='surprised'], .spacey-chat-face[data-expression='surprised'], .skip-flight-spacey[data-expression='surprised']{background-image:url('spacey-facecard-surprised.png') !important}
.mini-spacey[data-expression='winking'], .spacey-chat-face[data-expression='winking'], .skip-flight-spacey[data-expression='winking']{background-image:url('spacey-facecard-winking.png') !important}
.mini-spacey[data-expression='cheerful'], .spacey-chat-face[data-expression='cheerful'], .skip-flight-spacey[data-expression='cheerful']{background-image:url('spacey-facecard-cheerful.png') !important}
.mini-spacey[data-expression='singing'], .spacey-chat-face[data-expression='singing'], .skip-flight-spacey[data-expression='singing']{background-image:url('spacey-facecard-singing.png') !important}
.home-spacey,.spacey-brief{align-items:flex-start !important;gap:14px !important}
.spacey-chat-head{align-items:center !important;gap:10px !important}


/* ===== V14.12.10: Spacey expressions fully regenerated (not cropped from user reference) ===== */
.mascot-btn::before,.mascot-btn::after,.mini-spacey::before,.mini-spacey::after,.spacey-chat-face::before,.spacey-chat-face::after,.skip-flight-spacey::before,.skip-flight-spacey::after{content:none !important;display:none !important}
.mascot-btn,.mini-spacey,.spacey-chat-face,.skip-flight-spacey{background-repeat:no-repeat !important}
.mascot-btn{width:112px !important;height:136px !important;border:0 !important;border-radius:0 !important;overflow:visible !important;background-size:contain !important;background-position:center top !important;background-image:url('spacey-mascot-happy.png') !important}
.mascot-btn[data-expression='happy']{background-image:url('spacey-mascot-happy.png') !important}
.mascot-btn[data-expression='excited']{background-image:url('spacey-mascot-excited.png') !important}
.mascot-btn[data-expression='thinking']{background-image:url('spacey-mascot-thinking.png') !important}
.mascot-btn[data-expression='surprised']{background-image:url('spacey-mascot-surprised.png') !important}
.mascot-btn[data-expression='winking']{background-image:url('spacey-mascot-winking.png') !important}
.mascot-btn[data-expression='cheerful']{background-image:url('spacey-mascot-cheerful.png') !important}
.mascot-btn[data-expression='singing']{background-image:url('spacey-mascot-singing.png') !important}
.mini-spacey,.spacey-chat-face,.skip-flight-spacey{background-color:transparent !important;border:0 !important;box-shadow:none !important;background-size:contain !important;background-position:center center !important;background-image:url('spacey-avatar-happy.png') !important}
.mini-spacey{width:86px !important;height:74px !important;flex:0 0 86px !important}
.spacey-chat-face{width:102px !important;height:88px !important;flex:0 0 102px !important}
.skip-flight-spacey{width:78px !important;height:68px !important}
.mini-spacey[data-expression='happy'], .spacey-chat-face[data-expression='happy'], .skip-flight-spacey[data-expression='happy']{background-image:url('spacey-avatar-happy.png') !important}
.mini-spacey[data-expression='excited'], .spacey-chat-face[data-expression='excited'], .skip-flight-spacey[data-expression='excited']{background-image:url('spacey-avatar-excited.png') !important}
.mini-spacey[data-expression='thinking'], .spacey-chat-face[data-expression='thinking'], .skip-flight-spacey[data-expression='thinking']{background-image:url('spacey-avatar-thinking.png') !important}
.mini-spacey[data-expression='surprised'], .spacey-chat-face[data-expression='surprised'], .skip-flight-spacey[data-expression='surprised']{background-image:url('spacey-avatar-surprised.png') !important}
.mini-spacey[data-expression='winking'], .spacey-chat-face[data-expression='winking'], .skip-flight-spacey[data-expression='winking']{background-image:url('spacey-avatar-winking.png') !important}
.mini-spacey[data-expression='cheerful'], .spacey-chat-face[data-expression='cheerful'], .skip-flight-spacey[data-expression='cheerful']{background-image:url('spacey-avatar-cheerful.png') !important}
.mini-spacey[data-expression='singing'], .spacey-chat-face[data-expression='singing'], .skip-flight-spacey[data-expression='singing']{background-image:url('spacey-avatar-singing.png') !important}
.home-spacey,.spacey-brief{align-items:center !important;gap:12px !important}

/* ===== V14.12.13 balanced randomized quiz answers ===== */
.quiz-top::after{
  content:"Answer positions shuffle each quiz";
  display:block;
  width:100%;
  margin-top:-8px;
  color:rgba(205,226,247,.62);
  font-size:.78rem;
  letter-spacing:.02em;
}

/* ===== V14.12.14 normal mouse cursor ===== */
html, body { cursor: default !important; }
a, button, [role="button"], input[type="button"], input[type="submit"],
input[type="date"], select, .chapter-card a, .intro-logo-zoom {
  cursor: pointer;
}
input[type="text"], input[type="search"], textarea {
  cursor: text;
}

/* ===== V14.12.15 meteor shower effect ===== */
.space-meteor-layer{
  position:fixed;
  inset:0;
  pointer-events:none;
  overflow:hidden;
  z-index:0;
}
.space-meteor{
  position:absolute;
  width:var(--meteor-length,160px);
  height:2px;
  opacity:0;
  transform:rotate(-28deg) scale(var(--meteor-scale,1));
  transform-origin:left center;
  background:linear-gradient(90deg, rgba(255,255,255,.98) 0%, rgba(173,225,255,.9) 18%, rgba(108,196,255,.52) 45%, rgba(108,196,255,0) 100%);
  border-radius:999px;
  box-shadow:0 0 10px rgba(154,224,255,.55), 0 0 18px rgba(154,224,255,.32);
  animation:meteorFall var(--meteor-duration,1.8s) linear var(--meteor-delay,0s) forwards;
}
.space-meteor::before{
  content:'';
  position:absolute;
  left:-6px;
  top:50%;
  width:10px;
  height:10px;
  transform:translateY(-50%);
  border-radius:50%;
  background:radial-gradient(circle at 35% 35%, #ffffff 0 22%, #dff6ff 28%, rgba(120,195,255,.98) 62%, rgba(120,195,255,0) 75%);
  box-shadow:0 0 12px rgba(197,241,255,.95), 0 0 20px rgba(115,205,255,.48);
}
@keyframes meteorFall{
  0%{opacity:0; transform:translate3d(0,0,0) rotate(-28deg) scale(var(--meteor-scale,1));}
  6%{opacity:var(--meteor-opacity,.75);}
  70%{opacity:var(--meteor-opacity,.75);}
  100%{opacity:0; transform:translate3d(360px,230px,0) rotate(-28deg) scale(var(--meteor-scale,1));}
}
body > *{position:relative; z-index:1;}
body .space-meteor-layer{z-index:0;}


/* ===== V14.12.16 realistic meteor cursor + meteor rain ===== */
html.meteor-cursor-mode,
html.meteor-cursor-mode body,
html.meteor-cursor-mode a,
html.meteor-cursor-mode button,
html.meteor-cursor-mode input,
html.meteor-cursor-mode textarea,
html.meteor-cursor-mode select,
html.meteor-cursor-mode [role='button']{
  cursor:none !important;
}

.space-meteor-rain-layer{
  position:fixed;
  inset:0;
  overflow:hidden;
  pointer-events:none;
  z-index:6;
}

.space-rain-meteor{
  position:absolute;
  width:var(--meteor-length,180px);
  height:var(--meteor-width,2px);
  opacity:0;
  transform:rotate(-32deg) scale(var(--meteor-scale,1));
  transform-origin:left center;
  border-radius:999px;
  background:linear-gradient(90deg,
    rgba(255,255,255,.98) 0%,
    rgba(232,248,255,.95) 9%,
    rgba(152,223,255,.82) 28%,
    rgba(82,185,255,.42) 58%,
    rgba(82,185,255,0) 100%);
  box-shadow:0 0 12px rgba(207,242,255,.72), 0 0 28px rgba(120,198,255,.42);
  animation:spaceMeteorRain var(--meteor-duration,1.9s) linear var(--meteor-delay,0s) forwards;
  mix-blend-mode:screen;
}
.space-rain-meteor::before{
  content:'';
  position:absolute;
  left:-7px;
  top:50%;
  width:12px;
  height:12px;
  transform:translateY(-50%);
  border-radius:50%;
  background:radial-gradient(circle at 38% 38%, #ffffff 0 24%, #ebffff 30%, #9ddfff 62%, rgba(157,223,255,0) 78%);
  box-shadow:0 0 14px rgba(255,255,255,.92), 0 0 24px rgba(144,220,255,.58);
}
.space-rain-meteor::after{
  content:'';
  position:absolute;
  left:10px;
  top:50%;
  width:calc(var(--meteor-length,180px) * .65);
  height:12px;
  transform:translateY(-50%);
  border-radius:999px;
  background:linear-gradient(90deg, rgba(223,247,255,.3), rgba(105,196,255,0));
  filter:blur(5px);
  opacity:.95;
}
@keyframes spaceMeteorRain{
  0%{opacity:0;transform:translate3d(0,0,0) rotate(-32deg) scale(var(--meteor-scale,1));}
  6%{opacity:var(--meteor-opacity,.92);}
  72%{opacity:var(--meteor-opacity,.92);}
  100%{opacity:0;transform:translate3d(var(--meteor-dx,380px),var(--meteor-dy,290px),0) rotate(-32deg) scale(var(--meteor-scale,1));}
}

.space-cursor-meteor{
  --cursor-angle:-26deg;
  --cursor-tail:160px;
  --cursor-glow:1;
  position:fixed;
  left:0;
  top:0;
  width:34px;
  height:34px;
  transform:translate(-50%,-50%) rotate(var(--cursor-angle)) scale(var(--cursor-glow));
  transform-origin:center center;
  pointer-events:none;
  z-index:9999;
  opacity:0;
  will-change:transform,left,top,opacity;
  transition:opacity .12s linear;
  mix-blend-mode:screen;
}
.space-cursor-meteor::before{
  content:'';
  position:absolute;
  left:0;
  top:0;
  width:34px;
  height:34px;
  border-radius:50%;
  background:radial-gradient(circle at 35% 35%,
    #ffffff 0 12%,
    #f7ffff 16%,
    #e0f7ff 28%,
    #99e2ff 48%,
    rgba(77,182,255,.66) 68%,
    rgba(77,182,255,0) 82%);
  box-shadow:0 0 18px rgba(255,255,255,.95), 0 0 34px rgba(125,210,255,.65), 0 0 62px rgba(54,162,255,.36);
}
.space-cursor-meteor::after{
  content:'';
  position:absolute;
  left:18px;
  top:50%;
  width:var(--cursor-tail);
  height:9px;
  transform:translateY(-50%);
  transform-origin:left center;
  border-radius:999px;
  background:linear-gradient(90deg,
    rgba(255,255,255,.92) 0%,
    rgba(223,247,255,.86) 12%,
    rgba(145,224,255,.6) 38%,
    rgba(85,190,255,.26) 68%,
    rgba(85,190,255,0) 100%);
  filter:blur(1.6px);
  box-shadow:0 0 12px rgba(224,247,255,.46), 0 0 28px rgba(84,174,255,.2);
}

.space-cursor-meteor > span,
.space-cursor-meteor > i{display:none}

.space-cursor-spark{
  position:fixed;
  left:0;
  top:0;
  width:var(--spark-size,4px);
  height:var(--spark-size,4px);
  border-radius:50%;
  pointer-events:none;
  z-index:9998;
  background:radial-gradient(circle, rgba(255,255,255,.98) 0 26%, rgba(164,234,255,.92) 45%, rgba(98,194,255,.0) 72%);
  box-shadow:0 0 10px rgba(186,237,255,.88), 0 0 22px rgba(114,202,255,.38);
  animation:cursorSparkTrail .68s ease-out forwards;
}
@keyframes cursorSparkTrail{
  from{opacity:.95; transform:translate(-50%,-50%) scale(1);}
  to{opacity:0; transform:translate(calc(-50% + var(--spark-dx)), calc(-50% + var(--spark-dy))) scale(.1);}
}

@media(hover:none),(pointer:coarse){
  .space-cursor-meteor,.space-cursor-spark{display:none !important;}
}


/* ===== V14.12.17 straight shooting-star cursor ===== */
/* Disable every previous background meteor / comet layer. */
.space-meteor-rain-layer,
.space-rain-meteor,
.space-meteor-layer,
.space-meteor,
.space-cursor-comet,
.space-particle,
.space-cursor-meteor,
.space-cursor-spark{
  display:none !important;
}

/* Mouse cursor becomes a thin, straight shooting star. */
html.shooting-star-cursor-mode,
html.shooting-star-cursor-mode body,
html.shooting-star-cursor-mode a,
html.shooting-star-cursor-mode button,
html.shooting-star-cursor-mode input,
html.shooting-star-cursor-mode textarea,
html.shooting-star-cursor-mode select,
html.shooting-star-cursor-mode [role="button"]{
  cursor:none !important;
}

.space-cursor-shooting-star{
  --shoot-angle:-18deg;
  --shoot-tail:145px;
  --shoot-stretch:1;
  position:fixed;
  left:0;
  top:0;
  width:18px;
  height:18px;
  transform:
    translate(-50%,-50%)
    rotate(var(--shoot-angle))
    scaleX(var(--shoot-stretch));
  transform-origin:center;
  pointer-events:none;
  z-index:99999;
  opacity:0;
  will-change:left,top,transform,opacity;
  transition:opacity .1s linear;
  filter:drop-shadow(0 0 5px rgba(255,255,255,.9))
         drop-shadow(0 0 12px rgba(136,205,255,.52));
}

/* Tiny luminous head — no fireball / rock shape. */
.shooting-star-core{
  position:absolute;
  left:0;
  top:50%;
  width:8px;
  height:8px;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:
    radial-gradient(circle,
      #ffffff 0 28%,
      #e9f8ff 31%,
      #a9dcff 54%,
      rgba(117,190,255,.35) 72%,
      rgba(117,190,255,0) 100%);
  box-shadow:
    0 0 5px rgba(255,255,255,.98),
    0 0 11px rgba(172,222,255,.88),
    0 0 22px rgba(76,161,255,.34);
}

/* Long straight trail like a real shooting star. */
.shooting-star-tail{
  position:absolute;
  left:2px;
  top:50%;
  width:var(--shoot-tail);
  height:2px;
  transform:translateY(-50%);
  transform-origin:left center;
  border-radius:999px;
  background:linear-gradient(90deg,
    rgba(255,255,255,.98) 0%,
    rgba(235,249,255,.94) 5%,
    rgba(189,226,255,.78) 18%,
    rgba(125,192,255,.46) 42%,
    rgba(74,146,255,.16) 68%,
    rgba(74,146,255,0) 100%);
  box-shadow:
    0 0 4px rgba(255,255,255,.62),
    0 0 9px rgba(130,199,255,.26);
}

/* Fine inner line makes the trail sharper and less cartoon-like. */
.shooting-star-tail::after{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:72%;
  height:1px;
  transform:translateY(-50%);
  background:linear-gradient(90deg,
    rgba(255,255,255,.94),
    rgba(219,241,255,.56),
    rgba(148,205,255,0));
  filter:blur(.15px);
}

/* Small white pulse on click without changing the shape. */
.space-cursor-shooting-star.flash .shooting-star-core{
  animation:shootingStarClick .34s ease-out;
}
@keyframes shootingStarClick{
  0%{transform:translate(-50%,-50%) scale(1)}
  45%{transform:translate(-50%,-50%) scale(1.75)}
  100%{transform:translate(-50%,-50%) scale(1)}
}

@media (hover:none),(pointer:coarse){
  .space-cursor-shooting-star{display:none !important}
}


/* ===== V14.12.18 static realistic fire meteor cursor ===== */
/* Remove all previous background meteor / cursor meteor effects. */
.space-meteor-rain-layer,
.space-rain-meteor,
.space-meteor-layer,
.space-meteor,
.space-cursor-comet,
.space-cursor-shooting-star,
.space-cursor-meteor,
.space-cursor-spark,
.shooting-star-core,
.shooting-star-tail{
  display:none !important;
}

html.fire-meteor-cursor-mode,
html.fire-meteor-cursor-mode body,
html.fire-meteor-cursor-mode a,
html.fire-meteor-cursor-mode button,
html.fire-meteor-cursor-mode input,
html.fire-meteor-cursor-mode textarea,
html.fire-meteor-cursor-mode select,
html.fire-meteor-cursor-mode [role="button"]{
  cursor:none !important;
}

.space-cursor-fire-meteor{
  position:fixed;
  left:0;
  top:0;
  width:128px;
  height:128px;
  opacity:0;
  pointer-events:none;
  z-index:99999;
  transform:translate(-26%,-76%);
  background:url('meteor-cursor-fire.png') center/contain no-repeat;
  filter:drop-shadow(0 0 6px rgba(255,165,60,.55)) drop-shadow(0 0 18px rgba(255,105,20,.28));
  will-change:left,top,opacity;
  transition:opacity .12s linear;
}

@media (hover:none),(pointer:coarse){
  .space-cursor-fire-meteor{display:none !important;}
}


/* ===== V14.12.19 minimized native meteor cursor ===== */
.space-cursor-fire-meteor,
.space-cursor-comet,
.space-cursor-shooting-star,
.space-cursor-meteor,
.space-cursor-spark,
.space-meteor-rain-layer,
.space-rain-meteor,
.space-meteor-layer,
.space-meteor,
.shooting-star-core,
.shooting-star-tail{
  display:none !important;
}

html.meteor-web-cursor-mode,
html.meteor-web-cursor-mode body,
html.meteor-web-cursor-mode *{
  cursor:url('meteor-cursor-32.png') 6 6, auto;
}

html.meteor-web-cursor-mode a,
html.meteor-web-cursor-mode button,
html.meteor-web-cursor-mode summary,
html.meteor-web-cursor-mode [role="button"],
html.meteor-web-cursor-mode input[type="button"],
html.meteor-web-cursor-mode input[type="submit"]{
  cursor:url('meteor-cursor-48.png') 8 8, pointer;
}

@media (hover:none),(pointer:coarse){
  html.meteor-web-cursor-mode,
  html.meteor-web-cursor-mode body,
  html.meteor-web-cursor-mode *{ cursor:auto !important; }
}

/* ===== V14.12.20 meteor cursor on every page ===== */
html,
body,
body *,
a,
button,
summary,
[role="button"],
input,
textarea,
select,
label,
canvas {
  cursor: url('meteor-cursor-32.png') 6 6, auto !important;
}

a,
button,
summary,
[role="button"],
input[type="button"],
input[type="submit"] {
  cursor: url('meteor-cursor-48.png') 8 8, pointer !important;
}

@media (hover:none),(pointer:coarse) {
  html,
  body,
  body * {
    cursor: auto !important;
  }
}


/* ===== V14.12.21 locked display text / no flashing text caret ===== */
body,
body p,
body span,
body div,
body section,
body article,
body header,
body footer,
body nav,
body h1,
body h2,
body h3,
body h4,
body h5,
body h6,
body b,
body strong,
body small,
body label,
body a,
body button,
body li,
body ul,
body ol{
  user-select:none;
  -webkit-user-select:none;
  caret-color:transparent;
}

/* Inputs still behave normally when typing is actually required. */
input[type="text"],
input[type="search"],
input[type="password"],
input[type="email"],
input[type="number"],
textarea,
[contenteditable="true"]{
  user-select:text !important;
  -webkit-user-select:text !important;
  caret-color:auto !important;
}


/* ===== V14.12.22 final chapter celebration ===== */
.bonus-stories-heading .pill{display:inline-flex;margin-bottom:20px !important}
.bonus-stories-heading h2{margin-top:0 !important;margin-bottom:10px !important}

.finale-celebrate-btn{
  position:fixed;left:50%;bottom:22px;transform:translate(-50%,24px) scale(.94);opacity:0;z-index:118;
  min-width:260px;border:1px solid rgba(150,232,255,.32);border-radius:22px;padding:12px 18px;
  background:linear-gradient(135deg,rgba(13,29,57,.96),rgba(24,14,58,.96));color:#f4fbff;
  box-shadow:0 18px 54px rgba(0,0,0,.42),0 0 34px rgba(121,221,255,.16);
  display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto;column-gap:10px;text-align:left;align-items:center;
  transition:opacity .35s ease,transform .45s cubic-bezier(.2,.9,.2,1)
}
.finale-celebrate-btn.show{opacity:1;transform:translate(-50%,0) scale(1)}
.finale-celebrate-btn>span{grid-row:1/3;font-size:26px;color:#ffe88e;text-shadow:0 0 18px rgba(255,224,100,.55)}
.finale-celebrate-btn b{font-size:14px;line-height:1.1}.finale-celebrate-btn small{font-size:10px;color:#bcd9ee;margin-top:3px}
.finale-complete-overlay{position:fixed;inset:0;z-index:160;display:flex;align-items:center;justify-content:center;padding:22px;background:rgba(2,7,18,.82);backdrop-filter:blur(14px);opacity:0;visibility:hidden;transition:opacity .28s ease,visibility .28s ease}
.finale-complete-overlay.open{opacity:1;visibility:visible}
.finale-complete-card{position:relative;width:min(620px,100%);padding:32px 30px 28px;border-radius:32px;overflow:hidden;text-align:center;background:radial-gradient(circle at 50% 0%,rgba(107,91,255,.19),transparent 42%),linear-gradient(180deg,rgba(13,28,54,.98),rgba(6,13,28,.99));box-shadow:0 28px 90px rgba(0,0,0,.5),inset 0 0 0 1px rgba(153,228,255,.18);transform:translateY(18px) scale(.97);transition:transform .36s cubic-bezier(.2,.9,.2,1)}
.finale-complete-overlay.open .finale-complete-card{transform:translateY(0) scale(1)}
.finale-complete-spacey{width:170px;height:170px;margin:-4px auto 4px;background:url('spacey-mascot-cheerful.png') center/contain no-repeat;filter:drop-shadow(0 16px 30px rgba(82,195,255,.18))}
.finale-complete-card h2{font-size:clamp(2rem,5vw,3.5rem);margin:12px 0 8px}.finale-complete-card>p{max-width:470px;margin:0 auto 14px;color:#c5d9ea}
.finale-spacey-says{margin:18px auto 12px;width:min(420px,100%);padding:15px 18px;border-radius:20px;background:rgba(118,230,255,.08);box-shadow:inset 0 0 0 1px rgba(137,230,255,.14)}
.finale-spacey-says b{display:block;color:#8eeaff;font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px}.finale-spacey-says span{display:block;font-size:1.45rem;font-weight:950;color:#fff}
.finale-music-note{font-size:.9rem !important;color:#91aeca !important}.finale-complete-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:20px}
.finale-complete-stars{position:absolute;inset:0;pointer-events:none}.finale-complete-stars i{position:absolute;font-style:normal;color:#ffe980;text-shadow:0 0 14px rgba(255,228,96,.55);animation:finaleStarPulse 1.8s ease-in-out infinite alternate}
.finale-complete-stars i:nth-child(1){left:8%;top:14%;font-size:22px}.finale-complete-stars i:nth-child(2){right:10%;top:20%;font-size:16px;animation-delay:.3s}.finale-complete-stars i:nth-child(3){left:15%;bottom:18%;font-size:14px;animation-delay:.55s}.finale-complete-stars i:nth-child(4){right:14%;bottom:14%;font-size:20px;animation-delay:.75s}
@keyframes finaleStarPulse{from{opacity:.35;transform:scale(.8)}to{opacity:1;transform:scale(1.18)}}
.finale-inline-btn{animation:finaleButtonPulse 1.35s ease-in-out infinite alternate}@keyframes finaleButtonPulse{from{box-shadow:0 0 0 rgba(126,230,255,0)}to{box-shadow:0 0 28px rgba(126,230,255,.24)}}
@media(max-width:640px){.finale-celebrate-btn{bottom:12px;min-width:235px}.finale-complete-card{padding:26px 18px 22px}.finale-complete-spacey{width:140px;height:140px}}


/* ===== V14.12.23 hidden hover navigation + Spacey logo ===== */

/* Replace the old round logo mark with smiling Spacey. */
.logo-mark{
  width:42px !important;
  height:42px !important;
  flex:0 0 42px;
  border-radius:0 !important;
  background:url('spacey-avatar-happy.png') center / contain no-repeat !important;
  box-shadow:none !important;
  filter:drop-shadow(0 5px 12px rgba(72,190,255,.28));
}

/* Desktop: keep the top bar almost completely hidden.
   Hovering the thin reveal area at the top expands it. */
@media (hover:hover) and (pointer:fine){
  body:not(.intro-page) .topbar{
    position:fixed !important;
    top:0;
    left:0;
    right:0;
    width:100%;
    z-index:120;
    transform:translateY(calc(-100% + 9px));
    transition:transform .32s cubic-bezier(.22,.8,.25,1),
               background .25s ease,
               box-shadow .25s ease;
    box-shadow:none;
  }

  body:not(.intro-page) .topbar::after{
    content:"";
    position:absolute;
    left:50%;
    bottom:0;
    width:88px;
    height:3px;
    transform:translateX(-50%);
    border-radius:999px 999px 0 0;
    background:rgba(125,219,255,.72);
    box-shadow:0 0 12px rgba(93,192,255,.42);
    transition:width .28s ease, opacity .28s ease;
    opacity:.82;
  }

  body:not(.intro-page) .topbar:hover,
  body:not(.intro-page) .topbar:focus-within{
    transform:translateY(0);
    background:rgba(2,7,15,.88);
    box-shadow:0 12px 34px rgba(0,0,0,.28);
  }

  body:not(.intro-page) .topbar:hover::after,
  body:not(.intro-page) .topbar:focus-within::after{
    width:150px;
    opacity:.28;
  }

  /* Give content breathing room without reserving the full hidden bar height. */
  body:not(.intro-page) main{
    padding-top:46px;
  }
}

/* Touch devices cannot hover, so keep navigation usable and visible. */
@media (hover:none),(pointer:coarse){
  body:not(.intro-page) .topbar{
    position:sticky !important;
    transform:none !important;
  }
}

/* First-page control matches the existing navigation chips. */
.first-page-link{
  white-space:nowrap;
}
