:root{
  --paper:#f4f2ec; --ink:#101419; --muted:#626970; --rule:#cbc7bc; --panel:#ebe8df;
  --space:#0c1118; --space2:#151c25; --accent:#ad4327; --blue:#3e6f91; --yellow:#d29b42;
  --max:1440px;
  /* Grade 4–8 EN: distinguish letter/number shapes, retain an editorial science hierarchy. */
  --font-reading:"Atkinson Hyperlegible Next",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-display:"Source Serif 4",Georgia,"Times New Roman",serif;
  --font-data:"Atkinson Hyperlegible Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  /* Learning-first type roles; visual model micro-labels stay domain-specific. */
  --type-learning-body:1rem;
  --type-learning-control:.875rem;
  --type-learning-context:.875rem;
  --type-learning-reference:.9375rem;
}
/* Self-hosted Latin subset, variable weights 400–700, SIL OFL 1.1; no font CDN. */
@font-face{font-family:"Atkinson Hyperlegible Next";font-style:normal;font-weight:400 700;font-display:swap;src:url("../fonts/atkinson-hyperlegible-next-latin.woff2") format('woff2')}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400 700;font-display:swap;src:url("../fonts/source-serif-4-latin.woff2") format('woff2')}
@font-face{font-family:"Atkinson Hyperlegible Mono";font-style:normal;font-weight:400 700;font-display:swap;src:url("../fonts/atkinson-hyperlegible-mono-latin.woff2") format('woff2')}
*{box-sizing:border-box}
html{scroll-behavior:auto}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-reading);line-height:1.45;overflow-x:hidden}
a{color:inherit}
button,input{font:inherit}
.wrap{max-width:var(--max);margin:auto;padding-inline:28px}
header{position:sticky;top:0;z-index:20;background:rgba(244,242,236,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--rule)}
.header-row{height:66px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px}
.brand{font:700 17px/1.1 var(--font-data);letter-spacing:.04em;text-decoration:none;display:flex;align-items:center;gap:10px;min-width:0}
.brand-mark{width:34px;height:34px;flex:none}
.brand small{display:block;color:var(--muted);font:500 10px/1.3 var(--font-data);margin-top:4px;letter-spacing:.08em}
header nav{display:flex;gap:18px;font-size:13px;align-items:center}
header nav a{text-decoration:none;border-bottom:1px solid transparent;padding:23px 0 20px;white-space:nowrap}
header nav a:hover{border-color:var(--ink)}
.nav-mobile{display:none}
.utility{justify-self:end;font-size:12px;color:var(--muted)}

/* Navigation Dropdowns */
.nav-dropdown{position:relative}
.nav-drop-btn{background:none;border:none;cursor:pointer;font-size:13px;padding:23px 0 20px;display:inline-flex;align-items:center;gap:4px;color:var(--ink);border-bottom:1px solid transparent}
.nav-drop-btn:hover,.nav-dropdown:hover .nav-drop-btn{border-color:var(--ink)}
.nav-drop-btn .caret{font-size:10px;color:var(--muted);transition:transform .2s ease}
.nav-dropdown.nav-open .nav-drop-btn .caret{transform:rotate(180deg)}
.nav-dropdown.nav-section-active .nav-drop-btn{font-weight:700;border-bottom-color:var(--accent)}
.nav-drop-menu a[aria-current="page"]{background:rgba(173,67,39,.09);box-shadow:inset 3px 0 0 var(--accent)}
.nav-mobile-section.nav-section-active{font-weight:700;color:var(--ink);border-bottom:2px solid var(--accent)}
.nav-drop-menu{position:absolute;top:100%;left:-12px;background:rgba(244,242,236,.98);border:1px solid var(--rule);min-width:260px;box-shadow:0 8px 24px rgba(0,0,0,.08);backdrop-filter:blur(10px);display:none;padding:8px 0;z-index:30;border-radius:0 0 4px 4px}
.nav-dropdown.nav-open .nav-drop-menu{display:block}
.nav-drop-menu a{display:block;padding:8px 16px;text-decoration:none;border-bottom:none;white-space:normal;line-height:1.25}
.nav-drop-menu a:hover{background:rgba(0,0,0,.04)}
.nav-drop-menu a b{display:block;font-size:12px;font-weight:600;color:var(--ink)}
.nav-drop-menu a span{display:block;font-size:10px;color:var(--muted);margin-top:2px}

/* Search Trigger & Search Modal */
.search-trigger{background:rgba(0,0,0,.04);border:1px solid var(--rule);border-radius:4px;padding:6px 12px;cursor:pointer;font-size:12px;font-weight:500;display:inline-flex;align-items:center;gap:6px;color:var(--ink);transition:all .15s ease}
.search-trigger:hover{background:rgba(0,0,0,.08);border-color:var(--ink)}
.search-trigger kbd{background:#fff;border:1px solid var(--rule);border-radius:3px;padding:1px 5px;font-size:10px;font-family:var(--font-data);color:var(--muted)}
.search-trigger-mobile{display:none;align-items:center;justify-content:center;flex:none;width:42px;height:42px;border:1px solid var(--rule);border-radius:4px;background:transparent;color:var(--ink);cursor:pointer}
.search-trigger-mobile:hover{background:var(--panel);border-color:var(--ink)}
.search-trigger-mobile:focus-visible,.search-trigger:focus-visible,.nav-mobile a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}

.search-modal-backdrop{position:fixed;inset:0;background:rgba(12,17,24,.6);backdrop-filter:blur(4px);z-index:100;display:flex;align-items:flex-start;justify-content:center;padding-top:10vh}
.search-modal-backdrop[hidden]{display:none}
.search-modal{background:var(--paper);border:1px solid var(--rule);width:90%;max-width:640px;border-radius:6px;box-shadow:0 16px 40px rgba(0,0,0,.2);overflow:hidden;animation:modalPop .15s ease-out}
@keyframes modalPop{from{opacity:0;transform:scale(.98) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}
.search-box-row{display:flex;align-items:center;padding:14px 18px;border-bottom:1px solid var(--rule);gap:12px;background:#fff}
.search-modal-icon{font-size:16px;opacity:.6}
.search-box-row input{flex:1;border:none;outline:none;font-size:15px;background:transparent;color:var(--ink)}
.search-modal-close{background:none;border:none;font-size:16px;cursor:pointer;color:var(--muted);padding:4px}
.search-modal-close:hover{color:var(--ink)}
.search-results{max-height:60vh;overflow-y:auto;padding:8px}
.search-hint{padding:16px;text-align:center;font-size:12px;color:var(--muted)}
.search-hint kbd{background:#eee;padding:2px 6px;border-radius:3px;border:1px solid #ccc;font-size:10px}
.search-empty{padding:24px;text-align:center;font-size:13px;color:var(--muted)}
.search-item{display:block;padding:12px 14px;border-radius:4px;text-decoration:none;margin-bottom:4px;transition:background .15s ease}
.search-item:hover,.search-item[data-active="1"]{background:rgba(0,0,0,.05)}
.search-item-kicker{font:600 10px var(--font-data);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.search-item-title{font-size:14px;font-weight:600;color:var(--ink);margin:3px 0}
.search-item-desc{font-size:11px;color:var(--muted);line-height:1.35}

/* Breadcrumbs */
.breadcrumb-wrap{padding-top:14px;font:500 11px/1.5 var(--font-data);color:var(--muted);display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;min-width:0}
.breadcrumb-wrap a{text-decoration:none;color:inherit}
.breadcrumb-wrap a:hover{color:var(--ink);text-decoration:underline}
.breadcrumb-wrap a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.breadcrumb-category{font-weight:600;color:var(--ink)}
#atlas-directory,.cluster-column[id^="topics-"]{scroll-margin-top:160px}
.nav-mobile-all{font-weight:700;text-decoration:underline;text-underline-offset:4px}
.breadcrumb-sep{opacity:.4}
.breadcrumb-current{color:var(--ink);font-weight:600}
.hero{border-bottom:1px solid var(--rule)}
.hero-grid{display:grid;grid-template-columns:minmax(320px,.78fr) minmax(580px,1.42fr);min-height:620px}
.intro{padding:78px 52px 70px 0;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--rule)}
.kicker{font:600 11px/1.3 var(--font-data);letter-spacing:.12em;color:var(--accent);text-transform:uppercase;margin-bottom:18px}
h1{font:600 clamp(46px,5.4vw,82px)/.96 var(--font-display);letter-spacing:-.045em;margin:0 0 28px;max-width:720px}
.lead{font-size:18px;max-width:580px;color:#3b4146;margin:0 0 34px}
.intro-note{border-top:1px solid var(--rule);padding-top:20px;display:grid;grid-template-columns:92px 1fr;gap:16px;font-size:12px;color:var(--muted)}
.intro-note strong{color:var(--ink);font-weight:650}
.scene-shell{position:relative;background:var(--space);min-height:620px;overflow:hidden;color:#f4f6f8}
#threeCanvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:2;touch-action:none}
#sceneFallback{position:absolute;inset:0;overflow:hidden;z-index:1;background:radial-gradient(circle at 45% 42%,#253040 0,#121821 42%,#090e14 100%)}
#sceneFallback:before{content:"";position:absolute;inset:0;background-image:radial-gradient(#fff 0.6px,transparent 0.7px);background-size:56px 56px;opacity:.18}
.sun{position:absolute;width:126px;height:126px;border-radius:50%;left:46%;top:41%;transform:translate(-50%,-50%);background:radial-gradient(circle at 38% 35%,#fff3b5 0,#f3b449 28%,#c96927 58%,#9e351d 100%);box-shadow:0 0 70px rgba(240,152,53,.35)}
.orbit{position:absolute;left:46%;top:41%;border:1px solid rgba(255,255,255,.17);border-radius:50%;transform:translate(-50%,-50%) rotate(-8deg)}

.p{position:absolute;border-radius:50%;box-shadow:inset -9px -10px 20px rgba(0,0,0,.38)}
.earth{width:34px;height:34px;left:66%;top:40%;background:radial-gradient(circle at 35% 32%,#8ebad1,#3e7597 47%,#315240)}

.jupiter{width:82px;height:82px;left:74%;top:59%;background:repeating-linear-gradient(0deg,#d2b38b 0 9px,#b77d62 9px 16px,#ddc5a0 16px 24px)}

.scene-top{position:absolute;z-index:4;left:22px;right:22px;top:20px;display:flex;justify-content:space-between;gap:16px;pointer-events:none}
.scene-label{font:600 11px var(--font-data);letter-spacing:.1em;text-transform:uppercase}
.scene-mode{font:500 10px var(--font-data);color:#b9c0c7;text-align:right}
.scene-help{position:absolute;z-index:4;left:22px;bottom:18px;font-size:11px;color:#bfc6cc;max-width:360px;pointer-events:none}
.scene-panel{position:absolute;z-index:5;right:18px;bottom:18px;width:248px;background:rgba(10,14,20,.86);border:1px solid rgba(255,255,255,.18);padding:15px 16px 14px;backdrop-filter:blur(10px)}
.scene-panel .eyebrow{font:600 9px var(--font-data);letter-spacing:.12em;text-transform:uppercase;color:#aeb8c2;margin-bottom:8px}
.scene-panel .panel-title{font:600 24px var(--font-display);margin:0 0 6px}
.scene-panel p{font-size:11px;line-height:1.45;color:#c6ccd1;margin:0 0 10px}
.scene-panel dl{display:grid;grid-template-columns:1fr auto;gap:5px 10px;margin:0;font-size:10px;border-top:1px solid rgba(255,255,255,.14);padding-top:9px}
.scene-panel dt{color:#9ea8b2}.scene-panel dd{margin:0}
.verify-line{margin:8px 0 0;font-size:9px;color:#8b939b}.verify-line-spaced{margin-top:16px}.verify-line a{color:#a9c2d6}
.scene-controls{position:absolute;z-index:5;left:22px;top:56px;display:flex;flex-wrap:wrap;gap:6px;max-width:440px}
.scene-controls button{background:rgba(12,17,24,.75);color:#e9edf0;border:1px solid rgba(255,255,255,.25);padding:6px 9px;font-size:10px;cursor:pointer;border-radius:2px;transition:all .15s ease}
.scene-controls button:hover,.scene-controls button.active{background:#eae8e1;color:#111;border-color:#eae8e1;font-weight:600}
.planet-quick-bar{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}
.planet-quick-bar button{font-size:9px;padding:4px 7px;background:rgba(20,28,38,.8);border:1px solid rgba(255,255,255,.18);color:#ccd3db}
.planet-quick-bar button:hover,.planet-quick-bar button.active{background:#3e6f91;color:#fff;border-color:#5a8fae}
#sceneTooltip{position:absolute;z-index:6;pointer-events:none;background:rgba(16,20,25,.92);color:#f4f2ec;padding:4px 8px;font:600 10px var(--font-data);letter-spacing:.05em;border:1px solid rgba(255,255,255,.3);border-radius:3px;transform:translate(-50%,-130%);display:none;white-space:nowrap;box-shadow:0 4px 12px rgba(0,0,0,.4)}

.section{padding:72px 0;border-bottom:1px solid var(--rule)}
.section-last{border-bottom:0}
.section-head{display:grid;grid-template-columns:260px 1fr;gap:42px;margin-bottom:38px}
.section-id{font:600 11px var(--font-data);color:var(--accent);letter-spacing:.1em;text-transform:uppercase;padding-top:8px}
h2{font:600 clamp(32px,3.2vw,48px)/1.04 var(--font-display);letter-spacing:-.03em;margin:0 0 10px}
.section-head p{margin:0;color:var(--muted);max-width:760px}
.learning-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;border-top:1px solid var(--rule)}
.step{padding:24px 0 36px;min-height:0;position:relative}
.resource-choice{cursor:pointer}.resource-choice summary{list-style:none}.resource-choice summary::-webkit-details-marker{display:none}
.step-no{font:600 11px var(--font-data);color:var(--accent);margin-bottom:24px}
.step h3{font:600 22px/1.1 var(--font-display);margin:0 0 10px}.step p{font-size:var(--type-learning-body);line-height:1.55;color:var(--muted);margin:0;max-width:46ch}
.step .micro{position:absolute;right:22px;top:22px;width:86px;height:54px}
.scale-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:0;border:1px solid var(--rule);min-width:0}
.scale-viz{padding:34px 34px 30px;border-right:1px solid var(--rule);background:#ece9e1;display:flex;flex-direction:column;justify-content:space-between;min-width:0}
.scale-viz>div{min-width:0}
.scale-viz h3,.source-panel h3{font:600 24px var(--font-display);margin:0 0 7px}.scale-viz p{font-size:var(--type-learning-body);line-height:1.55;color:var(--muted);margin:0 0 20px}
.planets-row{display:flex;align-items:flex-end;gap:14px;min-height:235px;padding-bottom:20px;border-bottom:1px solid #aaa59a;overflow-x:auto}
.planet-item{background:transparent;border:0;appearance:none;display:flex;flex-direction:column;align-items:center;gap:9px;min-width:46px;font:500 9px var(--font-data);color:#53585c;cursor:pointer;padding:6px;border-radius:4px;transition:background .15s ease}
.planet-item:hover,.planet-item.active{background:rgba(0,0,0,.06);color:var(--ink)}
.planet-item:focus-visible{outline:none}
.planet-item:focus-visible .ball{outline:3px solid var(--accent);outline-offset:5px}
.planet-item.active .ball{outline:2px solid var(--accent);outline-offset:3px}
.ball{border-radius:50%;background:#777;flex:0 0 auto;box-shadow:inset -8px -9px 14px rgba(0,0,0,.25);transition:transform .2s ease}
.planets-row-static{justify-content:safe center}
.planets-row-static .planet-item{cursor:default}
.planet-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* Scale Lab Live Fact Box & Intuition Question */
.scale-fact-box{margin-top:20px;padding:16px 18px;background:#ded9cd;border-left:3px solid var(--accent);font-size:12px;line-height:1.45}
.scale-fact-box strong{font-family:var(--font-display);font-size:16px;display:block;margin-bottom:4px;color:var(--ink)}
.source-panel .verify-line,.scale-viz>div>.verify-line{color:var(--muted)}.source-panel .verify-line a,.scale-viz>div>.verify-line a{color:inherit;border-bottom:1px solid #8d8980}
.scale-quiz{margin-top:28px;border-top:1px dashed var(--rule);padding-top:20px}
.scale-quiz-compact{margin-top:0;border-top:0;padding-top:0}
.scale-viz-full{border-right:0}
.scale-quiz-title{font:600 10px var(--font-data);letter-spacing:.1em;color:var(--accent);text-transform:uppercase;margin-bottom:8px}
.scale-quiz p{margin:0 0 12px;font-size:var(--type-learning-body);line-height:1.55;color:var(--ink);font-weight:500}
.quiz-options{display:flex;gap:8px;flex-wrap:wrap}
.quiz-options button{font:500 var(--type-learning-control)/1.4 var(--font-data);min-height:40px;padding:7px 12px;border:1px solid #9e9a8f;background:transparent;cursor:pointer;border-radius:3px}
.quiz-options button:hover{background:#d5cfbf}
.quiz-options button.correct{background:#315240;color:#fff;border-color:#315240}
.quiz-options button.wrong{background:var(--accent);color:#fff;border-color:var(--accent);opacity:.7}
.quiz-feedback{margin-top:10px;font-size:var(--type-learning-context);line-height:1.55;color:#464a4e;display:none}
.quiz-feedback-label{font-weight:600}.quiz-feedback-label.correct{color:#2b663b}.quiz-feedback-label.wrong{color:var(--accent)}
.quiz-retry{margin-top:12px;font:600 var(--type-learning-control)/1.4 var(--font-data);min-height:40px;padding:7px 12px;border:1px solid var(--accent);background:transparent;color:var(--accent);cursor:pointer;border-radius:3px}
.quiz-retry:hover{background:var(--accent);color:#fff}

.source-panel{padding:34px}
.source-panel ol{margin:20px 0 0;padding:0;list-style:none;border-top:1px solid var(--rule)}
.source-panel li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:13px;padding:16px 0;border-bottom:1px solid var(--rule);align-items:start}
.source-panel .num{font:600 10px var(--font-data);color:var(--accent);padding-top:3px}.source-panel b{font-size:15px;line-height:1.4}.source-panel span{display:block;font-size:var(--type-learning-context);line-height:1.5;color:var(--muted);margin-top:3px}.source-panel a{font-size:13px;line-height:1.45;text-decoration:none;border-bottom:1px solid #8d8980;white-space:normal}.source-panel li > a{grid-column:2}
.truth-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px}
.truth{border-top:2px solid var(--ink);padding:18px 0}.truth h3{font:600 20px var(--font-display);margin:0 0 8px}.truth p{font-size:var(--type-learning-body);line-height:1.55;color:var(--muted);margin:0}.truth code{font:600 10px var(--font-data);color:var(--accent)}
.truth-hint{display:inline-block;margin-top:10px;font:600 10px/1.5 var(--font-data);letter-spacing:.06em;color:var(--accent);text-transform:uppercase;cursor:pointer}
.truth-disclosure summary{list-style:none}
.truth-disclosure summary::-webkit-details-marker{display:none}
.truth-disclosure summary::after{content:" ↓"}
.truth-disclosure[open] summary::after{content:" ↑"}
.truth-disclosure:not([open]) > .truth-example,.galaxy-example:not([open]) > .truth-example{display:none}
.truth-disclosure summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.truth-example{font-size:11px;line-height:1.55;color:var(--ink);background:var(--panel);padding:12px 14px;margin:10px 0 0;border-radius:2px}
.truth-viz{width:100%;height:84px;margin-bottom:14px;background:#101419;border-radius:3px;overflow:hidden}
.truth-viz svg{width:100%;height:100%;display:block}
@keyframes scanSweep{0%{transform:translateX(-110%)}100%{transform:translateX(110%)}}
@keyframes orbitSpin{to{transform:rotate(360deg)}}
@keyframes pulseGlow{0%,100%{opacity:.45}50%{opacity:1}}
.viz-scan-line{animation:scanSweep 2.6s ease-in-out infinite}
.viz-orbit-group{transform-origin:50px 42px;animation:orbitSpin 5s linear infinite}
.viz-pulse{animation:pulseGlow 1.8s ease-in-out infinite}
.truth:hover .viz-orbit-group{animation-duration:1.6s}
.truth:hover .viz-scan-line{animation-duration:1s}
@media(prefers-reduced-motion:reduce){.viz-scan-line,.viz-orbit-group,.viz-pulse{animation:none}}
.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.ref-table{font-variant-numeric:tabular-nums;width:100%;min-width:640px;border-collapse:collapse;border-top:2px solid var(--ink);font-size:var(--type-learning-reference);line-height:1.5}.ref-table th,.ref-table td{text-align:left;padding:14px 12px;border-bottom:1px solid var(--rule);vertical-align:top}.ref-table th{font:600 12px/1.45 var(--font-data);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.ref-table a{text-decoration:none;border-bottom:1px solid #8d8980}.tag{font:600 9px var(--font-data);text-transform:uppercase;letter-spacing:.05em;color:var(--accent)}

/* Editorial Ad Slot Styles */
.ad-slot-wrapper{box-sizing:border-box;width:100%;max-width:var(--max);min-width:0;margin:40px auto;padding:18px 28px;min-height:132px;background:rgba(235,232,223,.35);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);display:flex;flex-direction:column;align-items:center;justify-content:center}
.ad-label{font:600 9px var(--font-data);letter-spacing:.12em;color:var(--muted);text-transform:uppercase;margin-bottom:12px;display:block;text-align:center}
@media(max-width:599px){.ad-slot-wrapper{padding:16px 12px}}
.adsbygoogle[data-ad-status="unfilled"]{display:none!important}
.ad-slot-wrapper:has(> .adsbygoogle[data-ad-status="unfilled"]){display:none}

/* Global footer: one alignment container, semantic navigation, mobile-first reading order. */
.site-footer{padding:42px 0 26px;color:var(--muted)}
.site-footer-main{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(30px,5vw,80px);padding-bottom:34px}
.site-footer-about,.site-footer-nav,.site-footer-link-group{min-width:0}
.site-footer-label{font:700 10px/1.4 var(--font-data);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0 0 13px}
.site-footer-heading{font:600 clamp(21px,2.4vw,29px)/1.2 var(--font-display);letter-spacing:-.02em;color:var(--ink);margin:0 0 12px}
.site-footer-description{max-width:560px;font-size:12px;line-height:1.7;margin:0}
.site-footer-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 30px;align-items:start}
.site-footer-link-group h2{font:700 10px/1.4 var(--font-data);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}
.site-footer-nav a{display:block;padding:7px 0;font-size:12px;line-height:1.5;color:var(--ink);text-decoration:none;border:0;white-space:normal}
.site-footer-nav a:hover{text-decoration:underline;text-underline-offset:4px}
.site-footer-nav a:focus-visible,.site-footer-bottom a:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.site-footer-bottom{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:10px 24px;border-top:1px solid var(--rule);padding-top:16px;font:500 10px/1.6 var(--font-data)}
.site-footer-bottom a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){.site-footer{padding-top:30px}.site-footer-main{grid-template-columns:1fr;gap:30px}.site-footer-nav{gap:12px 24px}}
@media(max-width:380px){.site-footer-bottom{align-items:flex-start;flex-direction:column}}
@media(max-width:980px){.header-row{grid-template-columns:minmax(0,1fr) auto;gap:16px;height:72px}.header-row nav{display:none}.utility{display:flex;justify-self:end;align-items:center}.search-trigger{display:none}.search-trigger-mobile{display:inline-flex}.nav-mobile{display:flex;align-items:center;gap:22px;overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:12px;padding:0 28px;white-space:nowrap;min-height:44px}.nav-mobile a{display:inline-flex;align-items:center;flex:0 0 auto;min-height:44px;padding:10px 0 11px;border:0;text-decoration:none;color:var(--muted);line-height:1.4}.nav-mobile a.nav-mobile-all{text-decoration:underline}.nav-mobile a:hover{color:var(--ink)}.hero-grid{grid-template-columns:1fr}.intro{border-right:0;border-bottom:1px solid var(--rule);padding:44px 0}.scene-shell{min-height:520px}.learning-grid,.truth-grid{grid-template-columns:1fr}.scale-grid{grid-template-columns:1fr}.scale-viz{border-right:0;border-bottom:1px solid var(--rule)}.section-head{grid-template-columns:1fr;gap:10px}.section{padding:44px 0}}
@media(max-width:620px){.wrap{padding-inline:16px}.nav-mobile{padding-inline:16px}
.scene-panel{width:auto;left:12px;right:12px;bottom:8px;padding:10px 12px 9px;max-height:38vh;overflow-y:auto}
.scene-panel .panel-title{font-size:16px;margin:0 0 3px}
.scene-panel p{font-size:10px;margin:0 0 6px;line-height:1.3}
.scene-panel dl{grid-template-columns:1fr auto;font-size:9px;gap:3px 8px;padding-top:6px}
.scene-panel .eyebrow{margin-bottom:4px}
.verify-line{margin-top:5px;font-size:8px}
.scene-controls{right:8px;left:8px;top:48px;max-width:none}
.scene-controls>div:first-child{flex-wrap:wrap;gap:4px}
.scene-controls button{flex:1 1 calc(50% - 4px);text-align:center;padding:5px 4px;font-size:9px}
.planet-quick-bar{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px}
.planet-quick-bar button{flex:0 0 auto}
.scene-help{display:none}
.scene-mode{display:none}
.scene-top{left:8px;right:8px;top:10px}
.scene-label{font-size:9px}
.hero-grid{min-height:auto}
.scene-shell{min-height:560px}
.planets-row{gap:8px}
.intro-note{grid-template-columns:1fr}}
@media(max-width:420px){h1{letter-spacing:-.03em}.scene-controls button{font-size:9px;padding:6px 4px}.planet-quick-bar button{font-size:8px;padding:4px 5px}.scale-viz,.source-panel{padding:24px 20px}}

/* Moon Phases page (/moon/phases/) — split system/Earth view lab */
.page-intro{padding:64px 0 44px;border-bottom:1px solid var(--rule)}
.page-intro h1{font-size:clamp(36px,4.4vw,58px)}
.page-intro .lead{margin-bottom:0}
.phase-lab{border:1px solid var(--rule)}
.phase-views{display:grid;grid-template-columns:1.3fr 1fr}
.phase-view-system{position:relative;background:var(--space);min-height:380px;overflow:hidden;color:#f4f6f8;border-right:1px solid var(--rule)}
.phase-view-system canvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:crosshair;touch-action:pan-y}
.phase-sunlight-guide{position:absolute;left:16px;top:52px;z-index:2;pointer-events:none;color:#ffd38a;display:flex;align-items:flex-start;flex-direction:column;gap:4px;text-shadow:0 1px 3px #080c11}
.phase-sunlight-guide span{font:500 12px/1.35 var(--font-reading)}
.phase-sunlight-guide strong{font:650 16px/1.1 var(--font-data);letter-spacing:.02em}
.phase-system-key{position:absolute;bottom:9px;left:16px;right:14px;z-index:2;margin:0;pointer-events:none;color:#b9cad7;font-size:12px;line-height:1.4;text-shadow:0 1px 3px #080c11}
.phase-transport{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:14px 0 17px}
.phase-transport button{background:var(--ink);color:#fff;border:1px solid var(--ink);border-radius:3px;cursor:pointer;font:600 14px/1.4 var(--font-reading);padding:9px 15px;min-height:42px}
.phase-transport button:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}
.phase-transport button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.phase-transport button:disabled{opacity:.55;cursor:not-allowed}
.phase-transport button[aria-pressed="true"]{background:#a43f26}
.phase-transport p{font-size:13px;line-height:1.5;color:var(--muted);margin:0;flex:1;min-width:185px}
.phase-geometry-note{display:block;font-size:14px;line-height:1.5;color:var(--ink);margin-top:10px}
.phase-intermediate{margin-top:12px;margin-bottom:14px;padding-top:11px;border-top:1px solid var(--rule)}
.phase-intermediate summary{font-size:14px;font-weight:600;cursor:pointer;color:var(--ink);padding:7px 0}
.phase-intermediate summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.phase-intermediate .query-preset-row{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}


.phase-view-label{position:absolute;z-index:2;left:16px;top:14px;font:600 10px var(--font-data);letter-spacing:.1em;text-transform:uppercase;color:#b9c0c7;pointer-events:none}
.phase-view-earth{background:#ece9e1;padding:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.phase-view-earth .phase-view-label{position:static;color:var(--muted);margin-bottom:14px}
#moonEarthView{background:#101419;border-radius:50%;box-shadow:0 0 0 1px var(--rule)}
.phase-name{margin-top:14px;font:600 20px var(--font-display)}
.phase-controls{padding:18px 22px;border-top:1px solid var(--rule);background:#ece9e1}
.phase-controls input[type="range"]{width:100%;accent-color:var(--accent)}
.phase-hint{margin-top:8px;font-size:var(--type-learning-context);line-height:1.55;color:var(--muted)}
.phase-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:28px}
.phase-facts div{border-top:2px solid var(--ink);padding:12px 0;font-size:11px;color:var(--muted)}
.phase-facts strong{display:block;font:600 14px var(--font-display);color:var(--ink);margin-bottom:2px}
@media(max-width:980px){.phase-views{grid-template-columns:1fr}.phase-view-system{border-right:0;border-bottom:1px solid var(--rule)}.phase-facts{grid-template-columns:1fr 1fr}}

/* Not to Scale page (/learn/not-to-scale/) */
.mode-toggle{display:flex;gap:8px;margin-bottom:20px}
.mode-toggle button{font:600 11px var(--font-data);padding:9px 16px;border:1px solid var(--rule);background:transparent;color:var(--muted);cursor:pointer;border-radius:3px}
.mode-toggle button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.scale-compare{border:1px solid var(--rule);background:#ece9e1;padding:30px 34px 34px}
.mode-panel{display:none}
.mode-panel.active{display:block}
.scale-track-window{width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:thin;border-bottom:1px solid #aaa59a}
.scale-track-window:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.scale-track{position:relative;height:90px;border-bottom:1px solid #aaa59a;margin-top:10px}
.scale-track-window .scale-track{box-sizing:border-box;width:calc(100% - 110px);min-width:650px;margin:10px 55px 0;border-bottom:0}
.scale-dot{position:absolute;bottom:0;width:10px;height:10px;border-radius:50%;background:var(--accent);transform:translateX(-50%)}
.scale-dot-label{position:absolute;bottom:16px;transform:translateX(-50%);font:500 9px var(--font-data);color:#53585c;white-space:nowrap}
.scale-caption{margin-top:14px;font-size:12px;color:var(--muted)}
@media(max-width:620px){.scale-compare{padding:22px 18px 26px}}

/* Planet Size Comparison page */
.compare-picker{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.compare-picker select{font:600 13px var(--font-data);padding:8px 12px;border:1px solid var(--rule);background:#fff;border-radius:3px}
.compare-picker .vs{font:700 12px var(--font-data);color:var(--muted)}
.compare-stage{display:flex;align-items:flex-end;justify-content:center;gap:24px;min-height:220px;padding:20px 0;min-width:0}
.compare-planet{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:0}
.compare-planet .ball{transition:width .3s ease,height .3s ease}
.compare-planet span{font:600 12px var(--font-data)}
.compare-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;border-top:1px solid #aaa59a;padding-top:18px}
.compare-stats div{text-align:center}
.compare-stats strong{display:block;font:600 22px var(--font-display);color:var(--ink)}
.compare-stats span{font-size:11px;color:var(--muted)}
@media(max-width:620px){.compare-stats{grid-template-columns:1fr}}

/* Astronomical Unit page */
.au-picker{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.au-picker button{font:500 11px var(--font-data);padding:7px 12px;border:1px solid var(--rule);background:transparent;color:var(--ink);cursor:pointer;border-radius:3px}
.au-picker button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.au-custom{display:flex;align-items:center;gap:10px;margin-bottom:24px;font-size:12px;color:var(--muted)}
.au-custom input{width:80px;font:600 13px var(--font-data);padding:6px 8px;border:1px solid var(--rule);border-radius:3px}
.au-track{position:relative;height:110px;border-bottom:1px solid #aaa59a;margin-top:10px}
.au-dot{position:absolute;bottom:0;width:10px;height:10px;border-radius:50%;background:var(--accent);transform:translateX(-50%)}
.au-dot-label{position:absolute;bottom:16px;transform:translateX(-50%);font:500 9px var(--font-data);color:#53585c;white-space:nowrap;text-align:center}
.au-dot-label b{display:block;color:var(--ink);font-size:10px}

/* Distance Scale page — stacked real-vs-compressed comparison */
.dist-compare-label{font:600 10px var(--font-data);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:26px 0 6px}
.dist-compare-label:first-child{margin-top:0}
.dist-track{position:relative;height:56px;border-bottom:1px solid #aaa59a}
.dist-dot{position:absolute;bottom:0;width:9px;height:9px;border-radius:50%;background:var(--accent);transform:translateX(-50%)}
.dist-dot-label{position:absolute;bottom:14px;transform:translateX(-50%);font:500 9px var(--font-data);color:#53585c;white-space:nowrap}

/* Eclipses page */
.eclipse-lab{border:1px solid var(--rule)}
.eclipse-view{position:relative;background:var(--space);min-height:420px;overflow:hidden;color:#f4f6f8}
.eclipse-view canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.eclipse-controls{padding:18px 22px;border-top:1px solid var(--rule);background:#ece9e1;display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.eclipse-controls input[type="range"]{flex:1 1 260px;min-width:180px;accent-color:var(--accent)}
.eclipse-controls button{font:500 11px var(--font-data);padding:7px 12px;border:1px solid var(--rule);background:transparent;color:var(--ink);cursor:pointer;border-radius:3px}
.eclipse-controls button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.eclipse-controls label{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted)}
.eclipse-readout{padding:14px 22px;border-top:1px solid var(--rule);font-size:12px;color:var(--ink);background:#ece9e1}
.eclipse-readout strong{font-family:var(--font-display);font-size:15px}

/* Shared static-first readiness notice: readable, not a fake loading spinner. */
.interaction-init-note{font:500 11px/1.6 var(--font-data);color:var(--muted);margin:12px 0 16px}
.interaction-init-note[hidden]{display:none}
.ly-picker button:disabled,.query-preset-row button:disabled,.compare-picker select:disabled{opacity:.65;cursor:wait}
/* Light-year page */
.ly-picker{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}
.ly-picker button{font:500 11px var(--font-data);padding:9px 14px;border:1px solid var(--rule);background:transparent;color:var(--ink);cursor:pointer;border-radius:3px;text-align:left}
.ly-picker button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.ly-readout{border-top:1px solid #aaa59a;padding-top:20px}
.ly-readout .big{font:600 34px var(--font-display);color:var(--ink)}
.ly-readout p{font-size:13px;color:var(--muted);max-width:560px;margin:8px 0 0}
.ly-ladder{border-top:1px solid var(--rule);margin-top:10px}
.ly-ladder li{display:grid;grid-template-columns:130px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--rule);align-items:baseline;list-style:none}
.ly-ladder b{font:600 13px var(--font-data);color:var(--accent)}
.ly-ladder span{font-size:13px;color:var(--ink)}

/* Universe scale page */
.zoom-stage{text-align:center;padding:10px 0 6px}
.zoom-step-no{font:600 10px var(--font-data);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.zoom-title{font:600 32px var(--font-display);margin:8px 0 4px}
.zoom-size{font:600 15px var(--font-data);color:var(--muted)}
.zoom-desc{max-width:560px;margin:14px auto 0;font-size:13px;color:var(--ink)}
.zoom-factor{display:inline-block;margin-top:18px;padding:8px 16px;background:var(--ink);color:#fff;font:600 12px var(--font-data);border-radius:3px}
.zoom-nav{display:flex;justify-content:space-between;align-items:center;margin-top:28px}
.zoom-nav button{font:600 11px var(--font-data);padding:9px 16px;border:1px solid var(--rule);background:transparent;color:var(--ink);cursor:pointer;border-radius:3px}
.zoom-nav button:disabled{opacity:.35;cursor:default}
.zoom-dots{display:flex;gap:6px}
.zoom-dots span{width:7px;height:7px;border-radius:50%;background:var(--rule)}
.zoom-dots span.active{background:var(--accent)}


/* Space Atlas: logarithmic scale and manipulable photon journey, no decorative 3D. */
.cosmic-visual,.ly-distance-map,.ly-journey{margin-top:24px;padding-top:20px;border-top:1px solid var(--rule)}
.cosmic-visual-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px 22px;margin-bottom:12px}
.cosmic-visual-head strong{font:600 17px/1.3 var(--font-display);letter-spacing:-.02em}
.cosmic-visual-head>span{font:600 10px/1.4 var(--font-data);color:var(--muted);letter-spacing:.02em}
.cosmic-ruler-viewport,.ly-distance-scroll{overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:thin;max-width:100%;border:1px solid var(--rule);background:#f4f1eb}
.cosmic-ruler-viewport:focus-visible,.ly-distance-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.cosmic-ruler-plot{position:relative;min-width:720px}
.cosmic-ruler-plot svg,.ly-distance-scroll svg{display:block;width:100%;min-width:720px;height:auto}
.cosmic-axis-base{stroke:#888b85;stroke-width:1.7}
.cosmic-axis-grid{stroke:#cecbc4;stroke-width:1;stroke-dasharray:3 4}
.cosmic-axis-text{fill:#525c5c;font:600 11px var(--font-data)}
.cosmic-axis-highlight{stroke:#b4472b;stroke-width:3;pointer-events:none}
.cosmic-stop-layer{position:absolute;inset:0;pointer-events:none}
.cosmic-stop{position:absolute;left:var(--point-left);top:50%;transform:translate(-50%,-50%);width:26px;height:26px;border:2px solid #f4f1eb;border-radius:50%;background:#626f73;color:white;cursor:pointer;pointer-events:auto;font:700 10px var(--font-data);display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 1px #424b4e;transition:background .15s ease,box-shadow .15s ease}
.cosmic-stop.selected,.cosmic-stop[aria-pressed="true"]{background:#b4472b;box-shadow:0 0 0 3px #e1b8a6;color:#fff}
.cosmic-stop:disabled{cursor:wait;opacity:.65}
.cosmic-stop:focus-visible{outline:3px solid #0a5962;outline-offset:4px;z-index:2}
.cosmic-visual-note{font-size:11px;line-height:1.6;color:#626565;margin:10px 0 0}
.cosmic-jump{padding:18px 0 0;min-height:110px}
.cosmic-jump>strong{font:600 14px/1.5 var(--font-data)}
.cosmic-jump>p{font-size:12px;line-height:1.6;color:var(--muted);margin:9px 0 0;max-width:800px}
.cosmic-decades{display:flex;flex-wrap:wrap;gap:5px;margin:12px 0 0;align-items:center}
.cosmic-tenfold{background:#1b292e;color:#f3f1eb;border-radius:2px;padding:8px 9px;font:700 11px var(--font-data)}
.cosmic-tenfold-tail{background:#a94429}
.ly-distance-map{margin-top:10px;margin-bottom:20px}
.ly-scale-point{fill:#64767a;stroke:#f4f1eb;stroke-width:1.7}
.ly-scale-point.active{fill:#b4472b;stroke:#fde7d4;stroke-width:3}
.ly-source-position{margin:8px 0 0;font:600 11px/1.5 var(--font-data);color:var(--ink)}
.ly-source-position strong{color:var(--accent)}
.ly-path-labels{display:flex;justify-content:space-between;gap:10px;font:600 11px var(--font-data);line-height:1.4;color:var(--ink)}
.ly-journey svg{display:block;width:100%;height:auto;overflow:visible;margin:8px 0}
.ly-photon-base{stroke:#a7aaa5;stroke-width:12;stroke-linecap:round}
.ly-photon-progress{stroke:#b4472b;stroke-width:12;stroke-linecap:round}
.ly-emitter{fill:#f1bf5d;stroke:#8b5d13;stroke-width:2}
.ly-receiver{fill:#346d8c;stroke:#eff2f2;stroke-width:2}
.ly-photon-marker{fill:#f8cb64;stroke:#a34226;stroke-width:6}
.ly-journey-slider-label{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font:600 11px/1.5 var(--font-data);margin:2px 0 6px}
.ly-journey-slider-label output{font-size:17px;color:var(--accent);font-variant-numeric:tabular-nums}
#lyPhotonSlider{width:100%;accent-color:var(--accent);cursor:pointer}
#lyPhotonSlider:disabled{cursor:wait;opacity:.65}
.ly-journey-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:13px 0 4px}
.ly-journey-results>div{padding:12px 14px;border-left:2px solid #b4472b;background:#f4f1eb;min-width:0}
.ly-journey-results span{display:block;font:600 10px/1.5 var(--font-data);color:var(--muted)}
.ly-journey-results strong{font:600 clamp(15px,2.2vw,23px)/1.4 var(--font-display);overflow-wrap:anywhere}
.ly-journey-explanation{font-size:13px;line-height:1.6;color:var(--ink);margin:12px 0 0}
@media(max-width:620px){
.cosmic-visual-head{gap:5px}.cosmic-visual-head strong{font-size:15px}
.cosmic-stop{width:28px;height:28px}
.ly-journey-results{grid-template-columns:1fr;gap:6px}
.ly-distance-scroll{min-height:97px}
.cosmic-jump{min-height:120px}
.zoom-nav{gap:8px}.zoom-nav button{padding:9px 10px}
}
@media(prefers-reduced-motion:reduce){.cosmic-stop{transition:none}}

/* Gravity comparison page */
.weight-input{display:flex;align-items:center;gap:10px;margin-bottom:24px}
.weight-input input{width:110px;font:600 20px var(--font-display);padding:8px 12px;border:1px solid var(--rule);border-radius:3px}
.weight-input select{font:600 13px var(--font-data);padding:8px 10px;border:1px solid var(--rule);border-radius:3px;background:#fff}
.weight-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.weight-cell{background:#ece9e1;padding:16px 14px;text-align:center}
.weight-cell.you{background:#ded9cd}
.weight-cell .planet{font:600 10px var(--font-data);letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.weight-cell .val{font:600 22px var(--font-display);margin:6px 0 2px}
.weight-cell .sub{font-size:10px;color:var(--muted)}
@media(max-width:620px){.weight-grid{grid-template-columns:repeat(2,1fr)}}

/* Causal gravity learning lab: symbolic radius + manipulable mass and distance. */
.gravity-mechanism{margin-top:28px;border-top:1px solid var(--rule);padding-top:24px}
.gravity-mechanism-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,310px);gap:24px;align-items:center}
.gravity-mechanism-head h3{font:600 clamp(22px,2.7vw,30px)/1.14 var(--font-display);margin:7px 0 10px}
.gravity-mechanism-head p{font-size:13px;line-height:1.6;color:var(--muted);max-width:680px}
.gravity-equation{padding:18px 15px;border-block:1px solid var(--rule);font:600 17px/1.6 var(--font-data);text-align:center;letter-spacing:-.03em}
.gravity-scenarios{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}
.gravity-scenarios button{font:600 11px var(--font-data);border:1px solid var(--rule);border-radius:3px;background:transparent;padding:9px 12px;color:var(--ink);cursor:pointer}
.gravity-scenarios button[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.gravity-scenarios button:disabled,.gravity-mechanism-controls input:disabled{opacity:.55;cursor:wait}
.gravity-mechanism-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:22px;align-items:center}
.gravity-mechanism-controls{display:grid;gap:8px}
.gravity-mechanism-controls label{display:flex;justify-content:space-between;gap:8px;font:600 12px/1.4 var(--font-data);margin-top:8px}
.gravity-mechanism-controls output{color:var(--accent);font-variant-numeric:tabular-nums}
.gravity-mechanism-controls input{width:100%;margin:7px 0 12px;accent-color:var(--accent)}
.gravity-mechanism-diagram{min-width:0}
.gravity-mechanism-diagram svg{display:block;width:100%;max-width:420px;margin:auto;height:auto;background:#e8e5de;border:1px solid var(--rule);border-radius:3px}
.gravity-svg-label{font:600 10px var(--font-data);fill:var(--ink)}
.gravity-radius-label{font-size:11px;fill:#27343b;paint-order:stroke fill;stroke:#e8e5de;stroke-width:1.4px;stroke-linejoin:round}
.gravity-symbol-note{font-size:11px;line-height:1.5;color:var(--muted);margin:7px 0 0}
.gravity-cause-result{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;padding:14px 0;border-block:1px solid var(--rule)}
.gravity-cause-fraction{display:flex;align-items:baseline;flex-wrap:wrap;gap:7px;font:600 11px var(--font-data);color:var(--muted)}
.gravity-cause-fraction strong{font-size:20px;color:var(--ink);font-variant-numeric:tabular-nums}
.gravity-cause-answer{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px;font:600 11px var(--font-data)}
.gravity-cause-answer output{font:600 26px var(--font-display);color:var(--accent);font-variant-numeric:tabular-nums}
.gravity-cause-explanation{font-size:13px;line-height:1.6;max-width:760px;margin:12px 0 0}
@media(max-width:700px){.gravity-mechanism-head,.gravity-mechanism-workspace{grid-template-columns:1fr}.gravity-mechanism-head{gap:12px}.gravity-scenarios button{flex:1 1 calc(50% - 8px)}.gravity-equation{font-size:14px}}
/* Gravity and orbits page — cannonball sandbox */
.orbit-sandbox{border:1px solid var(--rule)}
.orbit-canvas-wrap{position:relative;background:var(--space);overflow:hidden;scroll-margin-top:125px}
.orbit-stage-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:#121f2b;border-bottom:1px solid #345064}
.orbit-canvas-viewport{position:relative;height:420px;overflow:hidden}
.orbit-canvas-viewport canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.orbit-status{position:absolute;z-index:2;left:16px;top:14px;font:600 11px/1.35 var(--font-data);letter-spacing:.06em;text-transform:uppercase;color:#e9edf0;background:rgba(10,14,20,.7);padding:6px 10px;border-radius:3px}
.orbit-stage-toolbar .orbit-status{position:static;background:transparent;padding:0;min-width:0}
.orbit-stage-toolbar button{background:#244e63;color:#fff;padding:10px 15px;min-height:44px;border:1px solid #93b7c4;font:600 12px/1.35 var(--font-mono);cursor:pointer;flex-shrink:0}
.orbit-stage-toolbar button[aria-pressed=true]{background:#a35435;border-color:#e5b38c}
.orbit-stage-toolbar button:focus-visible{outline:3px solid #f5d6ac;outline-offset:2px}
.orbit-scene-legend{position:absolute;z-index:2;bottom:9px;left:12px;right:12px;display:flex;justify-content:center;align-items:center;gap:clamp(7px,3vw,24px);flex-wrap:wrap;pointer-events:none;color:#e9f0ef;font:600 10px/1.35 var(--font-data);text-shadow:0 1px 3px #051019}
.orbit-scene-legend[hidden]{display:none}
.orbit-scene-legend span{display:inline-flex;align-items:center;gap:5px;padding:4px 6px;background:rgba(8,18,29,.84)}
.orbit-scene-legend i{display:block;width:15px;height:3px}
.orbit-line-collision{background:#e79f7c}.orbit-line-bound{background:#e6cb8d}.orbit-line-escape{background:#91d7db}
@media(max-width:620px){
 .orbit-stage-toolbar{display:grid;grid-template-columns:minmax(0,1fr);gap:5px;padding:8px 11px}
 .orbit-stage-toolbar button{width:100%;min-height:44px;padding:9px 10px}
 .orbit-status{font-size:9px}
 .orbit-canvas-viewport{height:clamp(290px,52dvh,420px)}
 .orbit-scene-legend{left:4px;right:4px;gap:3px;font-size:8px}
 .orbit-scene-legend span{gap:3px;padding:3px 4px}
 .orbit-scene-legend i{width:10px}
}
.orbit-controls{padding:18px 22px;border-top:1px solid var(--rule);background:#ece9e1;display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.orbit-controls input[type="range"]{flex:1 1 220px;min-width:160px;accent-color:var(--accent)}
.orbit-controls button{font:600 11px var(--font-data);padding:9px 16px;border:1px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;border-radius:3px}
.orbit-controls .speed-val{font:600 13px var(--font-data);min-width:70px}

/* Temperature comparison page */
.temp-chart{display:flex;align-items:flex-end;gap:14px;height:260px;padding-top:20px;border-bottom:1px solid #aaa59a}
.temp-bar-col{flex:1;min-width:34px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
@media(max-width:620px){.temp-chart{overflow-x:auto;-webkit-overflow-scrolling:touch;gap:10px}.temp-bar-col{flex:0 0 auto;width:38px}}
.temp-bar{width:100%;max-width:56px;border-radius:2px 2px 0 0;position:relative}
.temp-bar .temp-val{position:absolute;top:-20px;left:0;right:0;text-align:center;font:600 11px var(--font-data)}
.temp-bar-col .name{margin-top:8px;font:600 10px var(--font-data);color:var(--muted)}


/* Pluto page — criteria checklist */
.criteria-table{width:100%;border-collapse:collapse;border-top:2px solid var(--ink)}
.criteria-table th,.criteria-table td{text-align:center;padding:14px 10px;border-bottom:1px solid var(--rule)}
.criteria-table th:first-child,.criteria-table td:first-child{text-align:left}
.criteria-table th{font:600 10px var(--font-data);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.criteria-table .yes{color:#2b663b;font-weight:700}
.criteria-table .no{color:var(--accent);font-weight:700}

/* Seasons page */
.season-lab{border:1px solid var(--rule)}
.season-view{position:relative;background:var(--space);min-height:420px;overflow:hidden;color:#f4f6f8}
.season-view canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.season-readout{position:absolute;z-index:2;left:16px;top:14px;background:rgba(10,14,20,.75);padding:10px 14px;border-radius:3px}
.season-readout .label{font:600 9px var(--font-data);letter-spacing:.08em;text-transform:uppercase;color:#9ea8b2;margin-bottom:4px}
.season-readout .val{font:600 18px var(--font-display)}
.season-controls{padding:18px 22px;border-top:1px solid var(--rule);background:#ece9e1}
.season-controls input[type="range"]{width:100%;accent-color:var(--accent)}
.season-months{display:flex;justify-content:space-between;font:500 9px var(--font-data);color:var(--muted);margin-top:6px}

/* Stellar pathways: sequential stage comparison, never a time-proportional animation. */
.life-explainer{font-size:14px;margin:0 0 20px;max-width:790px;line-height:1.6}
.mass-toggle{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.mass-toggle button{font:600 11px var(--font-data);padding:10px 15px;border:1px solid var(--rule);background:transparent;color:var(--ink);cursor:pointer;border-radius:3px;scroll-margin-top:110px}
.mass-toggle button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.mass-toggle button:focus-visible,.life-stage:focus-visible,.life-navigation button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.life-duration-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 0 10px}
.life-duration-compare div{border-top:1px solid var(--rule);padding:13px 0 5px}
.life-duration-compare span{font:600 11px var(--font-data);color:var(--muted);display:block;margin-bottom:8px}
.life-duration-compare strong{font:600 clamp(20px,2.5vw,30px) var(--font-display)}
.life-timescale-note{font-size:11px;line-height:1.6;color:var(--muted);margin:0 0 23px}
.life-stages{list-style:none;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;align-items:stretch;counter-reset:stellar-stage;padding:0;margin:0 0 24px}
.life-stages li{min-width:0;counter-increment:stellar-stage}
.life-stage{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:100%;height:100%;min-height:119px;text-align:center;border:1px solid var(--rule);background:transparent;padding:13px 7px;cursor:pointer;color:var(--ink);border-radius:2px}
.life-stage:before{content:counter(stellar-stage,decimal-leading-zero);align-self:flex-start;font:600 10px var(--font-data);color:var(--muted)}
.life-stage:hover{border-color:var(--ink)}
.life-stage.active{border:2px solid var(--ink);background:#e0dbd0;padding:12px 6px}
.life-stage .dot{width:32px;height:32px;background:var(--life-color);border:2px solid var(--ink);border-radius:50%;display:block;flex-shrink:0}
.life-stage .lbl{font:600 11px/1.3 var(--font-data)}
.life-stage-panel{background:var(--space2);color:#f4f2ec;padding:25px 28px 21px;min-height:221px}
.life-stage-count{font:600 10px var(--font-data);color:#b8c6d1;letter-spacing:.08em;text-transform:uppercase}
.life-stage-panel h3{font:600 27px var(--font-display);margin:11px 0 12px}
.life-stage-panel p{font-size:13px;line-height:1.6;max-width:800px;margin:0 0 12px;color:#e0e5eb}
.life-stage-panel .life-cause{color:#bad1dd;font-size:12px}
.life-navigation{display:flex;justify-content:space-between;flex-wrap:wrap;gap:9px;margin-top:20px}
.life-navigation button{font-size:14px;min-height:44px;line-height:1.45;background:transparent;color:#fff;border:1px solid #95a7b5;padding:10px 13px;cursor:pointer;border-radius:2px}
.life-navigation button:hover:not(:disabled){background:#364b59}
.life-navigation button.life-switch{border-color:#a9c2d6;background:#2c4251;font-weight:600}
.life-navigation button:disabled{opacity:.35;cursor:not-allowed}
.life-model-note{font-size:11px;color:var(--muted);line-height:1.6;margin:17px 0 0;max-width:840px}
@media(max-width:850px){.life-stages{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.life-stages{grid-template-columns:repeat(2,minmax(0,1fr))}.life-stage{min-height:100px}.life-duration-compare{grid-template-columns:1fr;gap:4px}.life-stage-panel{padding:20px 17px}.life-stage-panel h3{font-size:24px}}

/* Black holes page — labeled schematic */
.bh-diagram{background:var(--space);padding:20px}
.bh-diagram svg{width:100%;height:auto;display:block}
.bh-legend{border-top:1px solid var(--rule);margin-top:0}
.bh-legend li{display:grid;grid-template-columns:28px 1fr;gap:13px;padding:14px 0;border-bottom:1px solid var(--rule);list-style:none}
.bh-legend .num{font:600 10px var(--font-data);color:var(--accent)}
.bh-legend b{font-size:13px;display:block;margin-bottom:2px}
.bh-legend span{font-size:12px;color:var(--muted)}

/* Electromagnetic spectrum: log-spaced, physically meaningful ruler. */
.spectrum-explainer{font-size:13px;max-width:790px;color:var(--muted);margin:0 0 20px}
.spectrum-explainer strong{color:var(--ink)}
.spectrum-band-picker{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:28px}
.spectrum-band-picker button{background:transparent;color:var(--ink);border:1px solid #b7b2a6;padding:8px 13px;border-radius:2px;font-size:12px;cursor:pointer}
.spectrum-band-picker button:hover{border-color:var(--ink)}
.spectrum-band-picker button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.spectrum-band-picker button:focus-visible,.spectrum-signal button:focus-visible,.spectrum-slider:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.spectrum-log-track{position:relative;display:flex;height:40px;border:1px solid #252d37;background:#151c25;isolation:isolate}
.spectrum-segment{height:100%;border-right:1px solid rgba(255,255,255,.18)}
.spectrum-radio{width:14.2857%;background:#343f67}
.spectrum-microwave{width:14.2857%;background:#52517a}
.spectrum-infrared{width:22.535%;background:#81526e}
.spectrum-optical{width:1.736%;min-width:0;background:linear-gradient(90deg,#a6505b,#cf8052,#dbc95e,#76b488,#6f8dcb,#8a65ae)}
.spectrum-uv{width:11.443%;background:#644f8b}
.spectrum-xray{width:21.4286%;background:#3c6684}
.spectrum-gamma{flex:1;background:#34546c;border-right:none}
.spectrum-cursor{position:absolute;z-index:1;top:-6px;bottom:-6px;width:2px;background:#fff;box-shadow:0 0 0 1px #101419,0 0 0 3px #fff;pointer-events:none;left:51.85%;transition:left .12s ease-out}
.spectrum-ticks{height:23px;position:relative;font:500 10px var(--font-data);color:var(--muted);margin-top:7px}
.spectrum-ticks span{position:absolute;white-space:nowrap;transform:translateX(-50%)}
.spectrum-ticks span:nth-child(1){left:0;transform:none}
.spectrum-ticks span:nth-child(2){left:28.5714%}
.spectrum-ticks span:nth-child(3){left:57.1429%}
.spectrum-ticks span:nth-child(4){left:85.7143%}
.spectrum-ticks span:nth-child(5){right:0;transform:none}
.spectrum-slider-label{display:block;font:500 11px var(--font-data);color:var(--muted);margin:9px 0}
.spectrum-slider{width:100%;display:block;margin:0 0 22px;accent-color:var(--ink);cursor:pointer}
.spectrum-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-bottom:22px}
.spectrum-facts div{padding:14px 8px 16px 0;min-width:0}
.spectrum-facts span{display:block;font:600 10px var(--font-data);color:var(--muted);letter-spacing:.03em;margin-bottom:5px}
.spectrum-facts output{font:600 clamp(17px,2.5vw,26px)/1.15 var(--font-display);font-variant-numeric:tabular-nums}
.spectrum-signal{background:var(--space2);color:#f4f2ec;padding:18px 20px 14px}
.spectrum-signal-head{display:flex;justify-content:space-between;align-items:center;gap:15px;font:600 10px var(--font-data);letter-spacing:.03em}
.spectrum-signal button{border:1px solid #96a1ad;background:transparent;color:#f4f2ec;padding:7px 11px;cursor:pointer;font-size:11px;border-radius:2px}
.spectrum-signal button:hover:not(:disabled){background:#334354}
.spectrum-signal button:disabled{opacity:.55;cursor:not-allowed}
.spectrum-signal svg{display:block;width:100%;height:116px;margin:8px 0 1px}
.spectrum-signal p{font-size:11px;color:#c4ccd2;line-height:1.5;margin:4px 0 0}
.spectrum-readout{border-top:1px solid #aaa59a;margin-top:20px;padding-top:18px;min-height:104px}
.spectrum-readout .band{font:600 24px var(--font-display)}
.spectrum-readout p{font-size:13px;color:var(--ink);max-width:750px;margin:8px 0 0}
.spectrum-reference{margin-top:30px}
.spectrum-reference h3{font:600 20px var(--font-display);margin:0 0 6px}
.spectrum-reference p{font-size:12px;color:var(--muted);margin:0 0 16px;max-width:700px}
.spectrum-table-scroll{overflow-x:auto}
.spectrum-reference table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}
.spectrum-reference th,.spectrum-reference td{padding:10px 14px 10px 0;border-top:1px solid var(--rule)}
.spectrum-reference thead th{font:600 10px var(--font-data);text-transform:uppercase;color:var(--muted)}
.spectrum-reference tbody th{font-weight:600}
@media(max-width:620px){.spectrum-band-picker{gap:5px}.spectrum-band-picker button{padding:7px 9px;font-size:11px}.spectrum-signal{padding:15px}.spectrum-ticks{font-size:9px}.spectrum-ticks span:nth-child(3){display:none}.spectrum-facts div{padding-right:5px}.spectrum-facts output{font-size:17px}}
@media(prefers-reduced-motion:reduce){.spectrum-cursor{transition:none}}

/* Planet interiors: representative layers compared at the same conceptual depth. */
.ptype-intro{font-size:14px;max-width:780px;margin:0 0 19px}
.ptype-controls{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}
.ptype-controls button{border:1px solid var(--rule);background:transparent;color:var(--ink);padding:9px 14px;font:600 11px var(--font-data);border-radius:2px;cursor:pointer}
.ptype-controls button:hover{border-color:var(--ink)}
.ptype-controls button[aria-pressed=true]{color:#fff;background:var(--ink);border-color:var(--ink)}
.ptype-controls button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.ptype-caveat{font-size:12px;color:var(--muted);margin:0 0 24px;max-width:850px}
.ptype-caveat strong{color:var(--ink)}
.ptype-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.ptype-card{border-top:2px solid var(--ink);padding:17px 0;min-width:0}
.ptype-card svg{width:100%;height:160px;display:block;margin:0 0 13px;background:var(--space2)}
.ptype-card h3{font:600 21px var(--font-display);margin:0 0 5px}
.ptype-card h3 small{display:block;font:600 10px var(--font-data);color:var(--muted);margin-top:5px}
.ptype-family{font-size:12px;color:var(--muted);margin:0 0 20px}
.ptype-target{fill:none;stroke:#fff;stroke-width:2.5;stroke-dasharray:4 3;opacity:0;transition:opacity .18s ease}
.ptype-card[data-focus=outer] .ptype-target-outer,.ptype-card[data-focus=deep] .ptype-target-deep,.ptype-card[data-focus=center] .ptype-target-center{opacity:1}
.ptype-detail{border-top:1px solid var(--rule);padding-top:15px}
.ptype-detail h4{font:600 18px var(--font-display);margin:0 0 9px}
.ptype-detail p{font-size:12px;line-height:1.55;color:var(--ink);margin:0 0 12px}
.ptype-detail .ptype-evidence{font-size:11px;color:var(--muted);border-left:2px solid var(--accent);padding-left:9px}
.ptype-static-guide{border-top:1px solid var(--rule);margin-top:24px;padding-top:18px}
.ptype-static-guide h3{font:600 20px var(--font-display);margin:0 0 10px}
.ptype-static-guide p{font-size:13px;line-height:1.6;max-width:950px;margin:0 0 12px;color:var(--muted)}
@media(max-width:780px){.ptype-grid{grid-template-columns:1fr;gap:16px}.ptype-card{display:grid;grid-template-columns:140px 1fr;column-gap:18px}.ptype-card svg{grid-row:span 3;height:140px}.ptype-card .ptype-detail{grid-column:1/-1;margin-top:8px}.ptype-family{margin-bottom:12px}}
@media(max-width:420px){.ptype-card{grid-template-columns:110px 1fr;column-gap:14px}.ptype-card svg{height:130px}.ptype-card h3{font-size:19px}.ptype-controls button{padding:8px 9px;font-size:10px}}
@media(prefers-reduced-motion:reduce){.ptype-target{transition:none}}

/* Earth-Moon true scale page */
.emscale-outer{position:relative}
.emscale-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-top:1px solid #aaa59a;border-bottom:1px solid #aaa59a;padding:30px 0}
.emscale-track{position:relative;height:70px;width:2030px}
.emscale-body{position:absolute;bottom:0;border-radius:50%;box-shadow:inset -6px -8px 14px rgba(0,0,0,.3)}
.emscale-label{position:absolute;bottom:-22px;font:600 10px var(--font-data);color:var(--muted);white-space:nowrap}
.emscale-hint{margin-top:10px;font-size:11px;color:var(--muted)}
.emscale-fade{position:absolute;top:1px;bottom:1px;right:0;width:70px;background:linear-gradient(90deg,transparent,#ece9e1 85%);pointer-events:none;transition:opacity .3s ease}
.emscale-fade.hidden{opacity:0}
.emscale-scrollcue{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:var(--accent);color:#fff;font:600 10px var(--font-data);padding:7px 12px;border-radius:14px;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.2);animation:emscaleNudge 1.6s ease-in-out infinite;transition:opacity .3s ease}
.emscale-scrollcue.hidden{opacity:0;pointer-events:none}
@keyframes emscaleNudge{0%,100%{transform:translate(0,-50%)}50%{transform:translate(6px,-50%)}}
@media(prefers-reduced-motion:reduce){.emscale-scrollcue{animation:none}}

/* Tides page */
.tide-diagram{background:var(--space);padding:20px}
.tide-diagram svg{width:100%;height:auto;display:block;max-width:480px;margin:0 auto}

/* Transit lesson: static-first projected geometry and quantitative light curve */
.transit-lab{border:1px solid var(--rule);background:#0b1016}
.transit-orbit-wrap svg,.transit-graph-wrap svg{display:block;width:100%;height:auto;max-height:260px}
.transit-graph-wrap{border-top:1px solid rgba(255,255,255,.15)}
.transit-model-label{margin:0;padding:9px 14px;color:#e3e8ed;background:#111b25;font-size:12px;line-height:1.5}
.transit-controls{display:grid;gap:10px;padding:16px 22px;border-top:1px solid var(--rule);background:#ece9e1}
.transit-controls label{display:block;font-weight:600}
.transit-controls input[type="range"]{width:100%;accent-color:var(--accent)}
.transit-controls input:disabled{cursor:progress;opacity:.6}
.transit-controls output{display:block;font-size:13px;line-height:1.55;min-height:2em}
.transit-controls p{margin:0;font-size:12px;line-height:1.5}
@media(max-width:380px){.transit-controls{padding:14px}}

/* Cluster Directory Grid on Homepage */
.cluster-directory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;border-top:1px solid var(--rule);padding-top:28px}
.cluster-column{display:flex;flex-direction:column;gap:14px}
.cluster-header h3{font:600 18px var(--font-display);margin:0 0 4px;color:var(--ink)}
.cluster-header p{font-size:11px;color:var(--muted);margin:0;line-height:1.35}
.cluster-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--rule)}
.cluster-list li{border-bottom:1px solid var(--rule)}
.cluster-list a{display:block;padding:9px 0;text-decoration:none;transition:background .15s ease}
.cluster-list a:hover strong{color:var(--accent)}
.cluster-list strong{display:block;font-size:12px;font-weight:600;color:var(--ink)}
.cluster-list span{display:block;font-size:10px;color:var(--muted);margin-top:2px}
@media(max-width:960px){.cluster-directory-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:580px){.cluster-directory-grid{grid-template-columns:1fr}}

/* Next in series */
.next-series-card{background:rgba(0,0,0,.02);padding:18px;border:1px solid var(--rule);border-radius:4px;transition:background .15s ease,border-color .15s ease}
.next-series-card .step-no{margin-bottom:0}
.next-series-card h3{margin-top:8px}
.next-series-card:hover{background:rgba(0,0,0,0.05)!important;border-color:var(--accent)!important}



.query-preset-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.query-preset-row button{font:500 var(--type-learning-control)/1.4 var(--font-data);min-height:40px;padding:7px 11px;border:1px solid var(--rule);background:#fff;color:var(--ink);cursor:pointer;border-radius:3px}
.query-preset-row button:hover,.query-preset-row button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.tool-readout{font-variant-numeric:tabular-nums;margin-top:12px;font:500 var(--type-learning-context)/1.55 var(--font-data);color:var(--muted)}

/* Teacher-distribution validation: compact, limited to the three flagship pages. */
.teacher-use-section{padding-top:52px;padding-bottom:52px}
.teacher-use-list{margin:0;border-top:2px solid var(--ink)}
.teacher-use-list>div{display:grid;grid-template-columns:190px 1fr;gap:26px;padding:16px 0;border-bottom:1px solid var(--rule)}
.teacher-use-list dt{font:600 12px/1.45 var(--font-data);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.teacher-use-list dd{margin:0;min-width:0;font-size:var(--type-learning-body);line-height:1.55;color:var(--ink);max-width:780px}
.teacher-use-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:20px}
.teacher-use-actions a{font-size:12px;text-decoration:none;border-bottom:1px solid #8d8980}
.teacher-classroom-share{font-weight:600}
@media(max-width:620px){.teacher-use-list>div{grid-template-columns:1fr;gap:5px}.teacher-use-section{padding-top:38px;padding-bottom:38px}}
@media(max-width:620px){.ref-table{min-width:720px}}


/* Read space images: an observational example first, then a source-reading reference. */
.image-evidence-key{margin-top:44px;padding-top:28px;border-top:1px solid var(--rule)}
.image-evidence-key-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:32px;align-items:baseline;margin-bottom:22px}
.image-evidence-key-head h3{font:600 clamp(22px,2.2vw,30px)/1.15 var(--font-display);letter-spacing:-.025em;margin:0}
.image-evidence-key-head p,.image-evidence-note{font-size:12px;line-height:1.65;color:var(--muted);margin:0}
.image-evidence-rows{margin:0;border-top:2px solid var(--ink)}
.image-evidence-rows>div{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:28px;padding:20px 0;border-bottom:1px solid var(--rule)}
.image-evidence-rows dt span{display:block;font:700 10px/1.45 var(--font-data);letter-spacing:.055em;color:var(--accent);margin-bottom:9px}
.image-evidence-rows dt strong{display:block;font:600 20px/1.25 var(--font-display)}
.image-evidence-rows dd{margin:0;min-width:0}
.image-evidence-rows dd p{margin:0;font-size:12px;line-height:1.65;color:var(--muted)}
.image-evidence-rows dd .image-evidence-test{color:var(--ink);margin-top:8px}
.image-evidence-test b{font:700 10px var(--font-data);color:var(--accent);text-transform:uppercase;margin-right:9px}
.image-evidence-note{max-width:820px;margin:19px 0 0}
@media(max-width:700px){.image-evidence-key-head,.image-evidence-rows>div{grid-template-columns:1fr;gap:10px}.image-evidence-rows>div{padding:18px 0}}

/* Observational image provenance lab: full NASA dual-source composite, no synthetic pixels. */
.truth-disclosure[open] .truth-hint{color:var(--ink)}
.truth .viz-pulse,.truth .viz-orbit-group,.truth .viz-scan-line,.truth:hover .viz-orbit-group,.truth:hover .viz-scan-line{animation:none}

.image-provenance-lab{margin-top:12px;padding-top:12px}
.provenance-intro .kicker{margin-bottom:12px}
.provenance-intro h3{font:600 clamp(27px,3vw,36px)/1.1 var(--font-display);letter-spacing:-.025em;margin:0 0 12px}
.provenance-intro p{max-width:760px;color:var(--muted);font-size:14px;line-height:1.6;margin:0 0 20px}
.provenance-intro p strong{color:var(--ink)}
.provenance-controls{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.provenance-controls[hidden]{display:none}
.provenance-controls button{background:transparent;border:1px solid #a9a69e;border-radius:2px;padding:10px 13px;font:600 11px var(--font-data);color:var(--ink);cursor:pointer}
.provenance-controls button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}
.provenance-controls button:hover{border-color:var(--ink)}
.provenance-controls button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.provenance-figure{margin:0}
.provenance-viewport{background:var(--space);width:100%;aspect-ratio:1600 / 773;overflow:hidden;position:relative}
.provenance-viewport img{width:100%;height:100%;max-width:none;display:block;transform:none;object-fit:fill}
.image-provenance-lab[data-view=hubble] .provenance-viewport,.image-provenance-lab[data-view=webb] .provenance-viewport{aspect-ratio:800 / 773}
.image-provenance-lab[data-view=hubble] .provenance-viewport img,.image-provenance-lab[data-view=webb] .provenance-viewport img{width:200%}
.image-provenance-lab[data-view=webb] .provenance-viewport img{transform:translateX(-50%)}
.provenance-figure figcaption{font-size:11px;color:var(--muted);line-height:1.55;padding:10px 0 18px;border-bottom:1px solid var(--rule)}
.provenance-readout{min-height:175px;padding:23px 0 21px;max-width:860px}
.provenance-readout-label{font:600 10px var(--font-data);letter-spacing:.05em;text-transform:uppercase;color:var(--accent);margin:0 0 9px}
.provenance-readout h4{font:600 25px/1.12 var(--font-display);margin:0 0 12px}
.provenance-readout>p:not(.provenance-readout-label){font-size:13px;line-height:1.6;margin:0 0 11px;color:var(--muted)}
.provenance-method{border-top:1px solid var(--rule);padding-top:24px}
.provenance-method h4{font:600 22px var(--font-display);margin:0 0 16px}
.provenance-table-scroll{overflow-x:auto;width:100%;-webkit-overflow-scrolling:touch}
.provenance-method table{border-collapse:collapse;width:100%;min-width:650px;font-size:12px;line-height:1.5;text-align:left}
.provenance-method th,.provenance-method td{padding:10px 14px 11px 0;vertical-align:top;border-top:1px solid var(--rule)}
.provenance-method thead th{font:600 10px var(--font-data);text-transform:uppercase;color:var(--muted)}
.provenance-method tbody th{min-width:130px;font-weight:600}
.provenance-method td{width:42%}
.provenance-method>p{font-size:12px;line-height:1.65;color:var(--muted);max-width:950px}
.provenance-method .provenance-credit{font-size:11px;margin:20px 0 0}
.provenance-credit a{text-decoration:underline;text-underline-offset:3px;color:var(--ink)}
@media(max-width:620px){.image-provenance-lab{margin-top:34px;padding-top:24px}.provenance-controls{gap:5px}.provenance-controls button{font-size:10px;padding:9px 10px}.provenance-readout{min-height:220px}.provenance-readout h4{font-size:23px}.provenance-method table{min-width:620px}}


/* Planet exterior: opt-in WebGL supplement to sourced internal cross-sections. */
.ptype-surface-lab{margin-top:42px;padding-top:32px;border-top:2px solid var(--ink)}
.ptype-surface-intro .kicker{margin-bottom:10px}
.ptype-surface-intro h3{font:600 clamp(25px,3vw,34px)/1.12 var(--font-display);max-width:800px;margin:0 0 12px}
.ptype-surface-intro p{font-size:13px;line-height:1.65;color:var(--muted);max-width:850px;margin:0 0 18px}
.ptype-surface-intro strong{color:var(--ink)}
.ptype-surface-start{font:600 12px var(--font-data);background:var(--ink);color:#fff;padding:12px 18px;border:1px solid var(--ink);cursor:pointer;border-radius:2px;min-height:44px}
.ptype-surface-interface[hidden],.ptype-surface-start[hidden]{display:none}
.ptype-surface-interface{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,1fr);column-gap:24px;margin:18px 0}
.ptype-surface-picker{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}
.ptype-surface-picker button{font:600 11px var(--font-data);background:transparent;color:var(--ink);padding:10px 17px;min-width:80px;border:1px solid var(--rule);border-radius:2px;cursor:pointer}
.ptype-surface-picker button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.ptype-surface-picker button:hover{border-color:var(--ink)}
.ptype-surface-lab button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.ptype-surface-stage{min-width:0;background:#0b1016;color:#dbe2e9}
.ptype-surface-viewport{height:320px;position:relative}
.ptype-surface-viewport canvas{display:block;width:100%;height:100%;touch-action:pan-y}
.ptype-surface-stage-footer{border-top:1px solid #354351;padding:11px 15px;display:flex;gap:14px;align-items:center;justify-content:space-between}
.ptype-surface-stage-footer span{font:500 10px/1.5 var(--font-data);color:#b9c8d1;max-width:300px}
.ptype-surface-rotate{display:flex;gap:5px;white-space:nowrap}
.ptype-surface-rotate button{background:transparent;color:#f5f4f1;border:1px solid #8294a1;border-radius:2px;padding:7px 10px;font-size:12px;cursor:pointer}
.ptype-surface-rotate button:hover{background:#263542}
.ptype-surface-fact{border-top:2px solid var(--ink);padding:18px 0 12px;min-width:0}
.ptype-surface-label{font:600 10px/1.5 var(--font-data);color:var(--accent);margin-bottom:9px;text-transform:uppercase}
.ptype-surface-fact h4{font:600 25px/1.15 var(--font-display);margin:0 0 13px}
.ptype-surface-fact p{font-size:12px;line-height:1.65;margin:0 0 13px;color:var(--ink)}
.ptype-surface-fact .ptype-surface-evidence{font-size:11px;color:var(--muted);border-left:2px solid var(--accent);padding-left:11px}
.ptype-surface-fallback{font-size:11px;line-height:1.6;color:var(--muted);margin:14px 0}
.ptype-surface-sources{margin-top:20px;padding-top:14px;border-top:1px solid var(--rule)}
.ptype-surface-sources h4{font:600 18px var(--font-display);margin:0 0 9px}
.ptype-surface-sources p{font-size:11px;line-height:1.7;color:var(--muted);max-width:980px;margin:0 0 10px}
.ptype-surface-sources a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){.ptype-surface-interface{grid-template-columns:1fr;gap:17px}.ptype-surface-picker{grid-column:1;margin:0}.ptype-surface-viewport{height:300px}.ptype-surface-fact{padding-top:15px}.ptype-surface-stage-footer{flex-wrap:wrap}}
@media(max-width:390px){.ptype-surface-picker button{min-width:0;flex:1;padding:10px 11px}.ptype-surface-viewport{height:255px}}

/* Measured Earth–Moon scroll ruler controls; the physical scale never changes. */
.emscale-toolbar{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}
.emscale-toolbar button,.emscale-navigation button{border:1px solid var(--rule);color:var(--ink);background:transparent;border-radius:2px;padding:9px 12px;font:600 11px var(--font-data);cursor:pointer}
.emscale-toolbar button[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.emscale-toolbar button:hover,.emscale-navigation button:hover{border-color:var(--ink)}
.emscale-toolbar button:focus-visible,.emscale-navigation button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.emscale-domain,.emscale-note{font-size:12px;line-height:1.6;color:var(--muted);max-width:880px}
.emscale-domain{margin:0 0 17px}
.emscale-navigation{display:flex;gap:9px;justify-content:space-between;margin-top:14px}
.emscale-note{margin:8px 0 0;font-size:11px}
.emscale-hint{font-variant-numeric:tabular-nums}
.compare-scale-note,.compare-ruler{font-size:12px;line-height:1.55;color:var(--muted);margin:0 0 14px}
.compare-ruler{margin:12px 0 15px;font:500 11px/1.65 var(--font-data)}
@media(max-width:620px){
 .compare-stage{gap:12px}
 .emscale-toolbar button{padding:8px 10px;font-size:10px;flex:1;min-width:88px}
 .emscale-navigation button{font-size:10px;padding:10px}
 .emscale-scrollcue{animation:none}
 .compare-planet span{font-size:10px}
}
@media(prefers-reduced-motion:reduce){.compare-planet .ball{transition:none}}

/* Evidence-led galaxy learning: measured radial ruler and geometric projection. */
.mw-address-lab,.galaxy-view-lab{margin-top:30px;padding-top:25px;border-top:1px solid var(--rule);text-align:left}
.mw-address-heading h3,.galaxy-view-intro h3{font:600 clamp(23px,2.8vw,30px)/1.18 var(--font-display);margin:0 0 9px}
.mw-address-heading p,.galaxy-view-intro p{font-size:13px;color:var(--muted);line-height:1.6;max-width:800px;margin:0 0 18px}
.mw-address-layout,.galaxy-view-layout{display:grid;grid-template-columns:minmax(220px,.9fr) minmax(260px,1.1fr);align-items:center;gap:23px}
.mw-address-map,.galaxy-view-image{display:block;width:min(100%,330px);height:auto;justify-self:center}
.mw-address-tools,.galaxy-view-tools{min-width:0}
.mw-address-tools label,.galaxy-view-tools label{font:600 12px/1.5 var(--font-data);display:block;margin-bottom:11px}
.mw-address-tools input[type=range],.galaxy-view-tools input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer;min-height:35px}
.mw-address-marks,.galaxy-view-marks{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font:500 10px/1.5 var(--font-data)}
.mw-address-readout,.galaxy-view-readout{font:600 13px/1.6 var(--font-display);color:var(--ink);margin:18px 0 14px}
.mw-address-tools button,.galaxy-view-presets button{border:1px solid var(--ink);background:transparent;color:var(--ink);border-radius:2px;cursor:pointer;padding:10px 12px;font:600 11px var(--font-data)}
.mw-address-tools button:hover,.galaxy-view-presets button:hover{background:var(--ink);color:#fff}
.mw-address-tools button:focus-visible,.galaxy-view-presets button:focus-visible,.galaxy-example summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.mw-address-caveat,.galaxy-view-note,.mw-address-source,.galaxy-view-evidence{font-size:11px;color:var(--muted);line-height:1.65;margin:14px 0 0}
.mw-address-source,.galaxy-view-evidence{border-top:1px solid var(--rule);padding-top:13px;margin-top:20px}
.mw-address-source a,.galaxy-view-evidence a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
.galaxy-view-presets{display:flex;gap:6px;flex-wrap:wrap}
.galaxy-view-presets button[aria-pressed=true]{background:var(--ink);color:#fff}
.galaxy-category-grid .truth{cursor:default}
.galaxy-example{margin-top:10px}
.galaxy-example summary{cursor:pointer;font:600 11px/1.5 var(--font-data);color:var(--accent);list-style:none}
.galaxy-example summary::-webkit-details-marker{display:none}
.galaxy-example .truth-example{margin-top:8px}
@media(max-width:700px){
 .mw-address-layout,.galaxy-view-layout{grid-template-columns:1fr;gap:12px}
 .mw-address-map,.galaxy-view-image{width:min(100%,320px)}
 .mw-address-lab,.galaxy-view-lab{margin-top:20px;padding-top:18px}
}
@media(prefers-reduced-motion:reduce){.mw-address-map,.galaxy-view-image{transition:none}}

/* Official IAU 2006 classification: visual decision sequence over the static reference table. */
.planet-rule-explorer{margin-top:24px;padding:22px 0 8px;border-top:1px solid var(--rule)}
.planet-rule-intro h3{font:600 clamp(21px,2.8vw,29px)/1.18 var(--font-display);margin:0 0 8px}
.planet-rule-intro p{font-size:13px;line-height:1.6;color:var(--muted);max-width:780px;margin:0 0 14px}
.planet-rule-picker{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 20px}
.planet-rule-picker button{background:transparent;color:var(--ink);border:1px solid var(--rule);padding:10px 14px;border-radius:2px;cursor:pointer;font:600 11px var(--font-data)}
.planet-rule-picker button:hover{border-color:var(--ink)}
.planet-rule-picker button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.planet-rule-picker button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.planet-rule-steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 15px}
.planet-rule-steps li{border-top:2px solid var(--ink);padding:16px 10px 12px 0;display:flex;gap:10px;min-width:0}
.planet-rule-steps li .rule-mark{display:flex;align-items:center;justify-content:center;border-radius:50%;width:28px;height:28px;flex:0 0 28px;background:#dedfd7;color:#365a44;font:700 17px var(--font-display)}
.planet-rule-steps li.fails .rule-mark{color:#9d2e16;background:#f1dcd2}
.planet-rule-steps li strong{font:600 14px/1.25 var(--font-display);display:block;margin:0 0 8px}
.planet-rule-steps li div span{font-size:11px;line-height:1.5;color:var(--muted);display:block}
.planet-rule-outcome{background:#e6e1d6;border-left:3px solid var(--accent);padding:13px 16px;font:600 13px/1.55 var(--font-display);max-width:830px}
.planet-rule-caveat,.planet-rule-source{font-size:11px;line-height:1.6;max-width:830px;color:var(--muted);margin:11px 0}
.planet-rule-source a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.planet-rule-ready{font-size:12px;color:var(--muted);margin:0 0 14px}
.planet-rule-picker button:disabled{cursor:progress;opacity:.72}
.planet-rule-picker button{scroll-margin-top:160px}
.planet-rule-neighborhood{margin:0 0 21px}
.planet-rule-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.planet-rule-compare-side{min-width:0;border:1px solid var(--rule);background:#f0eee8;padding:12px}
.planet-rule-compare-side h4{font:600 14px/1.3 var(--font-display);margin:0 0 11px}
.planet-rule-compare-side svg{display:block;width:100%;height:auto}
.planet-rule-compare-side p{font-size:12px;line-height:1.55;margin:12px 0 0;color:var(--ink)}
.planet-rule-diagram-note{font-size:11px;line-height:1.6;color:var(--muted);max-width:950px;margin:12px 0}
@media(max-width:750px){.planet-rule-compare{grid-template-columns:1fr}}
@media(max-width:750px){.planet-rule-steps{grid-template-columns:1fr;gap:0}.planet-rule-steps li{border-top:1px solid var(--rule);padding:13px 0;align-items:flex-start}.planet-rule-picker button{padding:9px 10px}}


/* Scientific temperature / tide / distance explanatory labs; no motion dependency */
.temp-compare-controls{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:14px}
.temp-compare-controls label,.distance-focus-pick label,.tide-equilibrium-controls label{display:flex;flex-direction:column;gap:6px;font:600 11px/1.5 var(--font-data);color:var(--ink)}
.temp-compare-controls select,.distance-focus-pick select{min-height:40px;border:1px solid var(--rule);border-radius:2px;background:#fff;color:var(--ink);padding:7px 12px;min-width:155px}
.temp-compare-readout,.distance-focus-readout,.tide-model-readout{font:600 17px/1.4 var(--font-display);color:var(--ink);margin:14px 0;max-width:850px}
.temp-axis{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;font:600 10px var(--font-data);color:var(--muted);margin:12px 75px 9px 95px;justify-items:start}
.temp-axis span:last-child{justify-self:end}
.temp-chart{display:flex;flex-direction:column;align-items:stretch;height:auto;min-height:0;gap:0;border-bottom:0;padding-top:0;overflow:visible}
.temp-row{display:grid;grid-template-columns:80px minmax(0,1fr) 58px;align-items:center;gap:12px;min-height:36px;padding:5px 7px;border-bottom:1px solid var(--rule);font:600 11px var(--font-data);color:var(--ink)}
.temp-row.selected{background:#e4dfd3}
.temp-name{min-width:0}
.temp-number{text-align:right;font-variant-numeric:tabular-nums}
.temp-plot{position:relative;height:17px;background:linear-gradient(to right,transparent 33.23%,#999 33.23%,#999 33.43%,transparent 33.43%);min-width:0}
.temp-zero{position:absolute;top:-4px;bottom:-4px;left:33.333%;width:1px;background:#666}
.temp-extent{position:absolute;top:2px;height:13px;border-radius:2px;min-width:1px}
.temp-extent.warm{background:#bd4c2f}
.temp-extent.cold{background:#3e6f91}
.temp-static-facts{border-top:1px solid var(--rule);padding-top:21px;margin-top:24px}
.temp-static-facts h3,.tide-equilibrium-lab h3,.distance-focus-lab h3{font:600 clamp(22px,2.9vw,29px)/1.15 var(--font-display);margin:0 0 10px}
.temp-static-facts p,.tide-equilibrium-lab p,.distance-focus-lab p{font-size:12px;line-height:1.65;color:var(--muted);max-width:950px}
.temp-table-scroll{width:100%;overflow-x:auto}
.temp-facts-table{border-collapse:collapse;min-width:450px;width:100%;font-size:12px}
.temp-facts-table th,.temp-facts-table td{text-align:left;padding:8px 12px;border-top:1px solid var(--rule)}
.temp-facts-table tbody th{font-weight:600}
.temp-facts-source a,.tide-model-source a,.distance-focus-source a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.tide-equilibrium-lab,.distance-focus-lab{margin-top:25px;padding-top:22px;border-top:1px solid var(--rule)}
.tide-equilibrium-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,1.15fr);align-items:center;gap:22px;margin-top:16px}
#tideEquilibriumDiagram{width:100%;max-width:440px;display:block;justify-self:center}
.tide-equilibrium-controls{min-width:0}
.tide-equilibrium-controls input[type=range]{width:100%;accent-color:var(--accent);height:34px;cursor:pointer}
.tide-range-labels{display:flex;justify-content:space-between;gap:10px;font:500 10px var(--font-data);color:var(--muted)}
.tide-angle-presets{display:flex;gap:6px;flex-wrap:wrap;margin:16px 0}
.tide-angle-presets button{font:600 11px var(--font-data);background:transparent;border:1px solid var(--rule);color:var(--ink);padding:9px 12px;cursor:pointer;border-radius:2px}
.tide-angle-presets button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.tide-model-readout{font-size:16px}
.distance-focus-pick{margin:15px 0;max-width:260px}
.distance-focus-scales{display:grid;gap:22px;margin:24px 0}
.distance-focus-title{display:flex;justify-content:space-between;gap:15px;font-size:11px;margin-bottom:11px}
.distance-focus-title span{color:var(--muted);font-size:10px;text-align:right}
.distance-focus-track{height:36px;position:relative;border-bottom:2px solid var(--rule);background:linear-gradient(to right,#b8b1a3 0,#b8b1a3 1px,transparent 1px)}
.distance-focus-sun{position:absolute;bottom:13px;left:1px;font:600 9px var(--font-data);color:var(--muted)}
.distance-focus-marker{position:absolute;top:3px;bottom:0;border-left:2px solid var(--accent)}
.distance-focus-marker::after{content:'';position:absolute;bottom:-6px;left:-5px;width:9px;height:9px;border-radius:50%;background:var(--accent)}
.distance-focus-marker.scene-marker{border-color:var(--blue)}
.distance-focus-marker.scene-marker::after{background:var(--blue)}
.temp-compare-controls select:focus-visible,.distance-focus-pick select:focus-visible,.tide-equilibrium-controls input:focus-visible,.tide-angle-presets button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
@media(max-width:720px){.tide-equilibrium-layout{grid-template-columns:1fr;gap:14px}.temp-axis{margin-left:86px;margin-right:65px}.temp-row{grid-template-columns:73px minmax(0,1fr) 53px;gap:7px;padding-inline:2px;font-size:10px}.distance-focus-title{flex-direction:column;gap:3px}.distance-focus-title span{text-align:left}}

/* Four axis labels follow the actual -250,0,+250,+500 linear coordinates. */
.temp-axis{display:block;position:relative;height:24px;margin-left:99px;margin-right:77px}
.temp-axis span{position:absolute;top:0;white-space:nowrap}
.temp-axis span:nth-child(1){left:0}
.temp-axis span:nth-child(2){left:33.333%;transform:translateX(-50%)}
.temp-axis span:nth-child(3){left:66.667%;transform:translateX(-50%)}
.temp-axis span:nth-child(4){left:100%;transform:translateX(-100%)}
@media(max-width:720px){.temp-axis{margin-left:75px;margin-right:55px}.temp-axis span{font-size:9px}}

/* Narrow screens: avoid colliding tick labels while preserving the exact zero coordinate. */
@media(max-width:720px){
  .temp-axis{margin-left:82px;margin-right:62px;height:38px}
  .temp-axis span:nth-child(3){display:none}
  .temp-axis span:nth-child(1),.temp-axis span:nth-child(4){top:16px}
}


/* Kepler explainer — model evidence stays readable when JavaScript is absent. */
.kepler-law-lab{margin-top:28px;padding-top:24px;border-top:1px solid var(--rule);max-width:940px}
.kepler-law-lab h3{font:600 clamp(23px,2.8vw,30px)/1.18 var(--font-display);margin:0 0 10px}
.kepler-law-lab p{font-size:12px;line-height:1.65;color:var(--muted);max-width:800px;margin:0 0 12px}
.kepler-law-lab label{display:block;font:600 11px/1.6 var(--font-data);color:var(--ink);margin-top:18px}
.kepler-law-lab select{display:block;min-height:44px;min-width:180px;max-width:100%;border:1px solid var(--rule);padding:8px 12px;border-radius:2px;background:#fff;color:var(--ink);font:600 12px var(--font-data);margin:6px 0 16px}
.kepler-law-lab select:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.kepler-law-chart{display:block;width:min(100%,640px);height:auto;margin:0 auto 12px;overflow:visible}
.kepler-readout{font:600 15px/1.55 var(--font-display);color:var(--ink);border-left:3px solid var(--accent);padding:9px 12px;margin:12px 0 15px}
.kepler-law-lab .kepler-disclaimer,.kepler-law-lab .kepler-source{font-size:11px}
.kepler-source a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}

.kepler-chart-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.kepler-chart-scroll .kepler-law-chart{min-width:490px}
.kepler-chart-hint{display:none}
@media(max-width:630px){.kepler-chart-hint{display:block;font:500 10px/1.5 var(--font-data);color:var(--muted)}}


/* Updates: information architecture for learners, teachers and maintainers. */
.updates-hero{padding-bottom:30px}
.updates-hero h1{font:600 clamp(40px,6vw,70px)/1.05 var(--font-display);margin:12px 0 19px;letter-spacing:-.025em}
.updates-hero .lead{max-width:850px;line-height:1.6}
.updates-audiences{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:30px 0 0}
.updates-audiences a{display:grid;grid-template-columns:1fr auto;gap:7px 12px;border:1px solid var(--rule);padding:18px 17px;text-decoration:none;color:var(--ink);min-width:0}
.updates-audiences strong{font:600 17px/1.15 var(--font-display)}
.updates-audiences span:nth-child(2){font-size:12px;line-height:1.5;color:var(--muted);grid-row:2;grid-column:1/-1}
.updates-audiences span:last-child{font:600 13px var(--font-data);grid-column:2;grid-row:1}
.updates-audiences a:hover,.updates-audiences a:focus-visible{border-color:var(--ink);background:rgba(0,0,0,.025)}
.updates-readers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.updates-readers>div{padding-top:10px;border-top:2px solid var(--ink);scroll-margin-top:110px}
.updates-readers h2{font:600 21px/1.2 var(--font-display);margin:9px 0}
.updates-readers p{font-size:12px;line-height:1.65;color:var(--muted);margin:0}
.updates-reader-guide{padding-top:0}
.updates-timeline{max-width:1010px}
.updates-release{padding:28px 0 30px;border-top:1px solid var(--rule);scroll-margin-top:120px}
.updates-release-meta{display:flex;gap:12px;flex-wrap:wrap;align-items:center;color:var(--muted);font:600 11px/1.6 var(--font-data)}
.updates-release-meta span{padding-left:12px;border-left:1px solid var(--rule)}
.updates-release h3{font:600 clamp(24px,3vw,32px)/1.14 var(--font-display);margin:12px 0;max-width:760px;letter-spacing:-.01em}
.updates-release>p{max-width:860px;font-size:13px;line-height:1.7;color:var(--ink);margin:0 0 16px}
.updates-audience-copy{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:16px 0}
.updates-audience-copy>div{border-left:2px solid var(--rule);padding-left:14px}
.updates-audience-copy h4{font:600 10px/1.5 var(--font-data);text-transform:uppercase;margin:0 0 6px;color:var(--muted)}
.updates-audience-copy p{font-size:12px;line-height:1.65;margin:0}
.updates-release-links{border-top:1px solid var(--rule);padding:13px 0}
.updates-release-links strong{font:600 11px var(--font-data);display:block;margin-bottom:8px}
.updates-release-links ul{padding:0;margin:0;display:flex;flex-wrap:wrap;gap:9px 19px;list-style:none}
.updates-release-links li a{font-size:12px;line-height:1.5;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.updates-technical{margin-top:6px;border-top:1px dashed var(--rule);padding:11px 0}
.updates-technical summary{font:600 11px/1.6 var(--font-data);cursor:pointer;list-style:none;color:var(--ink)}
.updates-technical summary::-webkit-details-marker{display:none}
.updates-technical summary::after{content:' ↓'}
.updates-technical[open] summary::after{content:' ↑'}
.updates-technical summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.updates-technical p{font-size:11px;line-height:1.7;margin:10px 0 0;color:var(--muted)}
.updates-technical code{font-size:11px}
.updates-technical a,.updates-transparency a{color:var(--ink);text-decoration:underline}
.updates-transparency h2{font:600 25px var(--font-display);margin:0 0 12px}
.updates-transparency p{max-width:850px;font-size:12px;color:var(--muted);line-height:1.7}
.home-update-note{margin:20px 0 10px;padding:12px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);display:flex;flex-wrap:wrap;align-items:center;gap:14px;font-size:12px}
.home-update-note span{font:600 10px var(--font-data);text-transform:uppercase;color:var(--muted)}
.home-update-note a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){.updates-audiences,.updates-readers{grid-template-columns:1fr;gap:10px}.updates-audiences{margin-top:22px}.updates-audiences a{padding:13px 14px}.updates-readers{gap:20px}.updates-audience-copy{grid-template-columns:1fr;gap:12px}.updates-release{padding:23px 0}}

/* Moon phases CER: three equally sized, purposeful prediction diagrams + teacher-ready activity. */
.moon-cer-prediction{background:#eae7df;padding-top:52px;padding-bottom:50px}
.cer-prediction-fieldset{min-width:0;margin:0;padding:0;border:0}
.cer-prediction-fieldset legend{font-size:13px;font-weight:600;margin-bottom:16px;padding:0;color:var(--ink)}
.cer-phase-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:2px solid var(--ink);border-bottom:1px solid var(--rule)}
.cer-phase-choice{display:flex;align-items:center;gap:20px;padding:20px;cursor:pointer;min-width:0;border-right:1px solid var(--rule);position:relative}
.cer-phase-choice:last-child{border-right:0}
.cer-phase-choice:hover,.cer-phase-choice:has(input:checked){background:#dcd8cd}
.cer-phase-choice:focus-within{outline:3px solid var(--accent);outline-offset:-3px}
.cer-phase-choice input{width:18px;height:18px;accent-color:var(--accent);flex:none}
.cer-phase-choice span{display:flex;flex-direction:column;gap:3px;min-width:0}
.cer-phase-choice strong{font:600 19px/1.2 var(--font-display);color:var(--ink)}
.cer-phase-choice small{font-size:12px;color:var(--muted)}
.cer-phase-icon{width:96px;height:96px;max-width:34%;flex:none}
.cer-check-row{display:flex;align-items:center;gap:24px;margin-top:18px;flex-wrap:wrap}
#moonCerCheck{padding:12px 18px;background:var(--ink);color:#fff;border:1px solid var(--ink);font-weight:600;font-size:12px;cursor:pointer;border-radius:3px}
#moonCerCheck:hover{background:var(--accent);border-color:var(--accent)}
#moonCerCheck:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
#moonCerFeedback{margin:0;max-width:670px;color:#394047;font-size:15px;line-height:1.55}
/* Student guess and physical observation are separate; never animate a wrong guess
   as if it were the Moon's actual phase. */
.cer-compare-grid{margin-top:20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.cer-compare-grid[hidden],.cer-compare-item[hidden]{display:none}
.cer-compare-item{display:flex;align-items:flex-start;flex-direction:column;padding:15px 20px;min-width:0}
.cer-compare-item+.cer-compare-item{border-left:1px solid var(--rule)}
.cer-compare-item h3{font:650 17px/1.35 var(--font-display);margin:0 0 9px;color:var(--ink)}
.cer-compare-disc{width:84px;height:84px;flex:none}
.cer-compare-disc svg{display:block;width:100%;height:100%;max-width:none}
.cer-compare-item p{font-size:14px;line-height:1.5;margin:9px 0 0;color:var(--ink)}
.cer-compare-actual{background:#dfebe6}
@media(max-width:600px){.cer-compare-grid{grid-template-columns:1fr}.cer-compare-item+.cer-compare-item{border-left:0;border-top:1px solid var(--rule)}}

.cer-explanation{margin-top:19px;padding-top:14px;border-top:1px solid var(--rule);max-width:900px}
.cer-explanation summary,.cer-reasoning-guide summary{cursor:pointer;font-size:13px;font-weight:650;text-decoration:underline;text-underline-offset:3px}
.cer-explanation p{max-width:850px;font-size:13px;line-height:1.65;color:#394047}
.cer-setup-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px;margin-top:36px;padding-top:28px;border-top:1px solid var(--rule);align-items:start}
.cer-setup-instructions h3,.cer-reasoning-guide h3{font:600 26px/1.18 var(--font-display);margin:0 0 18px}
.cer-setup-instructions ol{padding-left:20px;margin:0;display:grid;gap:11px}
.cer-setup-instructions li{font-size:var(--type-learning-body);line-height:1.55;max-width:680px;padding-left:4px}
.cer-caution{font-size:12px;color:#5b4240;border-left:3px solid var(--accent);padding-left:12px;line-height:1.5;margin-top:20px}
.cer-setup-figure{margin:0;min-width:0}
.cer-setup-figure svg{display:block;width:100%;height:auto;max-height:400px}
.cer-setup-figure .cer-setup-mobile{display:none}
.cer-setup-figure figcaption{color:var(--muted);font-size:12px;line-height:1.55;margin-top:10px}
.cer-reasoning-guide{border-top:1px solid var(--rule);margin-top:38px;padding-top:28px}
.cer-reasoning-guide dl{margin:0 0 18px;display:grid;gap:0}
.cer-reasoning-guide dl>div{display:grid;grid-template-columns:160px minmax(0,1fr);gap:22px;border-bottom:1px solid var(--rule);padding:12px 0}
.cer-reasoning-guide dt{font-weight:700;color:var(--ink);font-size:13px}
.cer-reasoning-guide dd{margin:0;font-size:var(--type-learning-body);line-height:1.55;color:#394047}
.cer-reasoning-guide p{font-size:var(--type-learning-body);line-height:1.55;max-width:910px}
.cer-reasoning-guide details p{border-left:3px solid #527185;padding-left:13px}
.cer-print-link{font-weight:700;color:var(--accent)!important}
.cer-source-line{margin:22px 0 0;color:var(--muted);font-size:11px;line-height:1.6;max-width:940px}
.cer-source-line a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:1100px){.cer-phase-choice{gap:13px;padding:14px}.cer-phase-icon{width:76px;height:76px}.cer-phase-choice strong{font-size:17px}}
@media(max-width:800px){.cer-setup-layout{grid-template-columns:1fr}.cer-setup-figure{max-width:610px}}
@media(max-width:660px){.cer-setup-figure .cer-setup-desktop{display:none}.cer-setup-figure .cer-setup-mobile{display:block}.cer-setup-figure figcaption{font-size:14px;line-height:1.55}}
@media(max-width:660px){.cer-phase-choices{grid-template-columns:1fr}.cer-phase-choice{border-right:0;border-bottom:1px solid var(--rule)}.cer-phase-choice:last-child{border-bottom:0}.cer-phase-icon{width:78px;height:78px;max-width:none}.cer-check-row{align-items:stretch;gap:12px}.cer-reasoning-guide dl>div{grid-template-columns:1fr;gap:4px}.moon-cer-prediction{padding-top:38px;padding-bottom:38px}}

/* Lesson-level acknowledgments remain one line unless the reader opts in. */
.lesson-acknowledgments{padding:0;background:var(--paper);border-top:1px solid var(--rule)}
.lesson-acknowledgments details{max-width:950px;margin:0}
.lesson-acknowledgments summary{display:flex;align-items:center;gap:15px;list-style:none;cursor:pointer;padding:19px 0;color:var(--ink)}
.lesson-acknowledgments summary::-webkit-details-marker{display:none}
.lesson-acknowledgments summary::after{content:"+";font-size:20px;line-height:1;margin-left:auto;font-weight:400;color:var(--muted)}
.lesson-acknowledgments details[open] summary::after{content:"−"}
.lesson-acknowledgments summary>span{font-weight:650;font-size:13px}
.lesson-acknowledgments summary>small{font-size:11px;line-height:1.35;color:var(--muted)}
.lesson-acknowledgments summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.lesson-acknowledgments-body{padding:2px 0 24px}
.lesson-acknowledgments-body ol{list-style:none;padding:0;margin:0;border-top:1px solid var(--rule)}
.lesson-acknowledgments-item{display:grid;grid-template-columns:100px minmax(0,1fr);gap:15px;padding:14px 0;border-bottom:1px solid var(--rule)}
.lesson-acknowledgments-item time{font-size:11px;color:var(--muted)}
.lesson-acknowledgments-item strong{font:600 16px/1.3 var(--font-display)}
.lesson-acknowledgments-item p{font-size:12px;line-height:1.6;margin:5px 0;color:#444b50;max-width:780px}
.lesson-acknowledgments-item span{display:block;font-size:11px;color:var(--muted)}
.lesson-acknowledgments-note{font-size:11px;line-height:1.6;color:var(--muted);margin:15px 0 8px}
.lesson-acknowledgments-body>a{font-size:12px;text-decoration:underline;text-underline-offset:3px}
@media(max-width:600px){.lesson-acknowledgments summary{flex-wrap:wrap;gap:4px 12px}.lesson-acknowledgments summary small{flex-basis:calc(100% - 28px);order:2}.lesson-acknowledgments summary::after{order:1}.lesson-acknowledgments-item{grid-template-columns:1fr;gap:4px}}
@media(max-width:600px){.lesson-acknowledgments summary{flex-wrap:nowrap}.lesson-acknowledgments summary small{display:none}}


/* Zero-tilt hypothesis experiment, native closed disclosure. */
.teacher-hypothesis-test{margin-top:24px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.teacher-hypothesis-test>summary{list-style:none;display:flex;align-items:center;gap:12px;padding:18px 0;cursor:pointer;font:600 15px/1.4 var(--font-display);color:var(--ink)}
.teacher-hypothesis-test>summary::-webkit-details-marker{display:none}
.teacher-hypothesis-test>summary::before{content:"+";flex:0 0 16px;color:var(--accent);font:600 19px/1 var(--font-data)}
.teacher-hypothesis-test[open]>summary::before{content:"−"}
.teacher-hypothesis-test>summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.teacher-hypothesis-test>summary span{margin-left:auto;font:500 11px/1.4 var(--font-data);color:var(--muted);text-align:right}
.teacher-hypothesis-body{padding:0 0 24px 26px;max-width:880px}
.teacher-hypothesis-body>p,.teacher-hypothesis-body li{font-size:var(--type-learning-body);line-height:1.55;color:var(--ink)}
.teacher-hypothesis-body ol{padding-left:22px;margin:14px 0 18px;display:grid;gap:11px}
.teacher-hypothesis-body li{padding-left:3px}
.teacher-hypothesis-source{color:var(--muted)!important;font-size:11px!important;margin-top:18px}
.teacher-hypothesis-source a{text-decoration:underline;text-underline-offset:2px}
@media(max-width:620px){.teacher-hypothesis-test>summary{flex-wrap:wrap;gap:7px}.teacher-hypothesis-test>summary span{width:100%;text-align:left;margin-left:28px}.teacher-hypothesis-body{padding-left:0}}

/* Black-hole inquiry lab. The default is a complete static educational diagram;
   extra WebGL and motion are loaded only on the learner's request. */
.bh-diagram{position:relative;aspect-ratio:2.15/1;min-height:300px;padding:0;overflow:hidden;background:#080d16}
.bh-diagram>svg{display:block;width:100%;height:100%;object-fit:contain}
.bh-scene{width:100%;height:100%;position:absolute;inset:0;display:block;touch-action:pan-y;cursor:grab}
.bh-scene:active{cursor:grabbing}
.bh-scene[hidden],.bh-scene-caption[hidden],.bh-controls[hidden]{display:none}
.bh-scene-caption{position:absolute;bottom:10px;left:12px;right:12px;pointer-events:none;color:#e6d9c1;background:#111923c9;font-size:12px;line-height:1.45;padding:6px 9px;border-left:2px solid #ecaa5c}
.bh-lab-controls{padding:20px 22px 22px;border-bottom:1px solid #bdb8ae;background:#f0ede5}
.bh-lab-intro{display:flex;align-items:center;justify-content:space-between;gap:16px}
.bh-lab-intro h3{font:650 23px/1.25 var(--font-display);margin:0 0 7px}
.bh-lab-intro p{font-size:15px;line-height:1.55;color:#424749;max-width:55ch;margin:0}
.bh-activate,.bh-presets button{border:1px solid #555850;border-radius:2px;padding:10px 13px;min-height:42px;font:600 14px/1.35 var(--font-reading);background:#fcfbf7;color:#18222a;cursor:pointer}
.bh-activate{background:#18222a;color:#fff;flex-shrink:0}
.bh-presets button[aria-pressed="true"],.bh-activate[aria-pressed="true"]{background:#a74b25;border-color:#a74b25;color:#fff}
.bh-activate:focus-visible,.bh-presets button:focus-visible,.bh-controls input:focus-visible{outline:3px solid #af4e24;outline-offset:3px}
.bh-presets button:disabled{opacity:.5;cursor:not-allowed}
.bh-controls{display:grid;gap:9px;margin-top:20px;padding:16px 0;border-top:1px solid #c5bfb3}
.bh-controls label{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:15px;font-weight:600}
.bh-controls output{font:600 14px/1.35 var(--font-data)}
.bh-controls input[type=range]{width:100%;accent-color:#a94d25;cursor:pointer;min-height:32px}
.bh-presets{display:flex;gap:8px;flex-wrap:wrap}
.bh-transport{margin-top:5px}
.bh-lab-readout{display:block;margin:14px 0 10px;font:500 15px/1.6 var(--font-reading);color:#1e303b}
.bh-lab-note{font-size:13px;line-height:1.65;color:#45494d;margin:8px 0 0;max-width:90ch}
.bh-lab-note a{color:#82411f}
.bh-legend b{font-size:16px}
.bh-legend span{font-size:14px;line-height:1.55}
@media(max-width:620px){
 .bh-diagram{aspect-ratio:4/3;min-height:240px}
 .bh-lab-intro{align-items:stretch;flex-direction:column}
 .bh-lab-intro h3{font-size:21px}
 .bh-activate{width:100%}
 .bh-lab-controls{padding:18px 15px}
 .bh-presets button{flex:1 1 auto}
}
@media(prefers-reduced-motion:reduce){.bh-scene,.bh-activate,.bh-presets button{animation:none;transition:none}}

/* Keep lab controls below sticky header when keyboard focus scrolls. */
.bh-activate,.bh-presets button,.bh-controls input{scroll-margin-top:148px}

/* Eclipse nodes: a separate side-on evidence channel for the 3D orbit. */
.eclipse-node-controls{background:#ece9e1;padding:16px 22px;border-top:1px solid var(--rule);display:grid;gap:10px}
.eclipse-node-controls label{display:flex;align-items:baseline;flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:15px;font-weight:600}
.eclipse-node-controls output{font:500 13px/1.4 var(--font-data)}
.eclipse-node-controls input[type=range]{width:100%;accent-color:var(--accent);min-height:35px}
.eclipse-node-controls p{margin:0;color:#50575b;font-size:14px;line-height:1.55}
.eclipse-node-presets{display:flex;flex-wrap:wrap;gap:8px}
.eclipse-node-presets button,.eclipse-play-row button{border:1px solid #aba79e;background:#f9f8f3;border-radius:3px;color:#202b34;min-height:42px;padding:9px 12px;cursor:pointer;font:600 14px/1.45 var(--font-reading)}
.eclipse-node-presets button:hover,.eclipse-play-row button:hover:not(:disabled){background:#e3e0d6}
.eclipse-node-presets button:focus-visible,.eclipse-play-row button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.eclipse-node-presets button:disabled,.eclipse-play-row button:disabled{opacity:.56;cursor:not-allowed}
.eclipse-node-presets button,.eclipse-play-row button,.eclipse-controls button{scroll-margin-top:145px}
.eclipse-side-view{margin:0;padding:14px 22px 17px;background:#e6e9e7;border-top:1px solid #bbbfbf}
.eclipse-side-view svg{width:100%;height:auto;max-height:280px;display:block}
.eclipse-side-view .eclipse-side-mobile{display:none}
.eclipse-side-view figcaption{font-size:14px;line-height:1.55;color:#414b51;margin-top:8px}
.eclipse-play-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;background:#ece9e1;padding:15px 22px;border-top:1px solid var(--rule)}
.eclipse-play-row span{font-size:13px;line-height:1.5;color:#4c5458}
.eclipse-controls button{font-size:14px;min-height:40px}
.eclipse-controls label{font-size:14px;line-height:1.45}
.eclipse-readout{font-size:15px;line-height:1.55}
@media(max-width:620px){.eclipse-node-controls,.eclipse-play-row,.eclipse-side-view{padding-left:15px;padding-right:15px}.eclipse-node-presets button{width:100%}.eclipse-view{min-height:300px}.eclipse-side-view .eclipse-side-desktop{display:none}.eclipse-side-view .eclipse-side-mobile{display:block}}


/* Solstice sunlight evidence: measurements are synchronized with Earth geometry. */
.season-evidence{padding:20px 22px;background:#e7eae7;border-top:1px solid #b9c1be}
.season-evidence h3{font:600 23px/1.3 var(--font-display);margin:0 0 7px}
.season-evidence>p{font-size:15px;line-height:1.6;color:#38464a;max-width:82ch;margin:0 0 14px}
.season-evidence-grid{display:grid;gap:15px}
.season-evidence-row{display:grid;grid-template-columns:60px minmax(0,1fr) 280px;gap:14px;align-items:center;font-size:15px}
.season-evidence-row output{font:600 14px/1.4 var(--font-reading)}
.season-day-bar{height:21px;position:relative;background:#b9c6cd;border:1px solid #8e9aa0}
.season-day-bar span{position:absolute;left:0;top:0;bottom:0;background:#cc813f}
.season-evidence-row:nth-child(2) .season-day-bar span{background:#3f819f}
.season-evidence .season-sunlight-readout{margin-top:17px;font-size:15px;font-weight:600}
.season-evidence .season-evidence-note{font-size:13px;margin:0}
@media(max-width:750px){.season-evidence-row{grid-template-columns:50px minmax(0,1fr)}.season-evidence-row output{grid-column:2}.season-evidence{padding:18px 15px}}


/* Tidal lock: follow the same physical lunar marker in a separate top view. */
.lock-observer-figure{margin:0;padding:17px 22px 20px;border-top:1px solid var(--rule);background:#e7ebe9}
.lock-observer-figure svg{display:block;width:100%;height:auto;max-height:270px}
.lock-observer-figure figcaption{font-size:15px;line-height:1.6;margin-top:10px;color:#32444e}
@media(max-width:620px){.lock-observer-figure{padding:12px 14px}.lock-observer-figure figcaption{font-size:14px}}

/* Newton sandbox: prediction and motion/force vectors use consistent names. */
.orbit-vectors-option{display:flex;align-items:center;gap:8px;font-size:14px;line-height:1.5;cursor:pointer}
.orbit-vectors-option input{accent-color:var(--accent);width:18px;height:18px}
.orbit-prediction{margin:14px 20px 4px;padding:12px 14px;border-left:3px solid #a65b33;background:#e8e8e2;font-size:15px;line-height:1.6;color:#273640}
.orbit-vector-legend{margin:6px 20px 12px;font-size:13px;line-height:1.55;color:#404c53}

/* Tidal-force combination: consistent comparison across all Moon angles. */
.tide-force-bars{padding:16px 0;display:grid;gap:10px}
.tide-force-bars>div:not(.tide-force-track){display:grid;grid-template-columns:minmax(125px,220px) minmax(0,1fr);align-items:center;gap:12px}
.tide-force-bars span{font-size:14px;line-height:1.4}
.tide-force-track{height:19px;border:1px solid #a3b0b5;background:#dce3e5;position:relative}
.tide-force-track>span{display:block;height:100%;max-width:100%}
.tide-force-track .moon{width:66.6667%;background:#497d99}
.tide-force-track>span.sun{position:static;transform:none;border-radius:0;box-shadow:none;width:33.3333%;height:100%;background:#cd9b54}
.tide-force-track .combined{background:#ab603f}
.tide-force-bars output{font:600 15px/1.5 var(--font-reading)}
@media(max-width:500px){.tide-force-bars>div:not(.tide-force-track){grid-template-columns:1fr;gap:4px}}

/* Bounded timeline explorations: never imply physically proportional durations. */
.ly-motion-controls{display:flex;align-items:center;gap:13px;padding:13px 0;flex-wrap:wrap}
.ly-motion-controls button,.life-navigation #lifePlay{border:1px solid #455966;background:#15394f;color:#fff;font:600 14px/1.45 var(--font-reading);padding:10px 14px;min-height:44px;cursor:pointer;scroll-margin-top:140px}
.ly-motion-controls button:disabled,.life-navigation #lifePlay:disabled{opacity:.55;cursor:not-allowed}
.ly-motion-controls p,.life-motion-note{margin:0;font-size:14px;line-height:1.6;color:#46515a;max-width:66ch}
.life-motion-note{margin:13px 20px 8px}
.ly-motion-controls button:focus-visible,.life-navigation #lifePlay:focus-visible{outline:3px solid var(--accent);outline-offset:3px}

/* Exact wavelength/energy ratio comparison; colors identify reference and current. */
.spectrum-compare{padding:17px 20px;background:#e9ebea;border-top:1px solid #c0c4c2}
.spectrum-compare-title{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.spectrum-compare-title h3{font:600 19px/1.35 var(--font-display);margin:0}
.spectrum-compare-title button{font:600 14px/1.4 var(--font-reading);border:1px solid #59646b;background:#f9faf7;color:#213440;min-height:43px;padding:9px 12px;cursor:pointer}
.spectrum-compare-title button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.spectrum-compare-track{height:20px;border:1px solid #8b999f;background:linear-gradient(90deg,#adc3cf,#677d90);position:relative;margin:15px 0}
.spectrum-compare-track .reference-tick,.spectrum-compare-track .current-tick{position:absolute;top:-3px;bottom:-3px;width:4px;transform:translateX(-50%);background:#f4e4ae;border:1px solid #6b5732}
.spectrum-compare-track .current-tick{top:4px;bottom:4px;width:7px;background:#a3482f;border-color:#462b23}
.spectrum-compare output{font:500 15px/1.6 var(--font-reading);color:#273944;display:block}

/* Opt-in spatial galaxy from deterministic simulated stars; 2D remains first. */
.galaxy-view-visual{position:relative;min-width:0;aspect-ratio:320/220;background:#0c1420}
.galaxy-view-visual>svg,.galaxy-view-visual>canvas{display:block;width:100%;height:100%}
.galaxy-view-visual>canvas{position:absolute;inset:0}
.galaxy-view-visual>svg[hidden],.galaxy-view-visual>canvas[hidden]{display:none}
 .galaxy-3d-canvas:not([hidden]){cursor:grab;touch-action:none;overscroll-behavior:contain}
.galaxy-3d-canvas:not([hidden]):active{cursor:grabbing}
.galaxy-3d-overlay{position:absolute;left:12px;right:12px;bottom:12px;pointer-events:none;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:#f2e4c6;text-shadow:0 1px 8px #050912;font:600 10px/1.5 var(--font-data);letter-spacing:.075em}
.galaxy-3d-overlay[hidden],.galaxy-zoom-actions[hidden]{display:none}
.galaxy-3d-actions{display:flex;flex-wrap:wrap;gap:8px}
.galaxy-zoom-actions{display:flex;flex-wrap:wrap;gap:8px;width:100%}
.galaxy-3d-actions button{background:#172b3b;color:#fff;border:1px solid #72848d;padding:10px 12px;min-height:44px;font:600 14px/1.4 var(--font-reading);cursor:pointer}
.galaxy-3d-actions button[aria-pressed=true]{background:#a15b34}
.galaxy-3d-actions button:disabled{opacity:.5;cursor:not-allowed}
.galaxy-3d-actions button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.galaxy-3d-note{font-size:14px;line-height:1.6;color:#48535a;margin:10px 0}
@media(max-width:600px){.galaxy-3d-actions button{width:100%}}

/* Learner-flow review: expose 3D at the figure, without implicit WebGL downloads. */
.bh-figure-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#101b27;padding:9px 12px;color:#dce6ef}
.bh-figure-toolbar .bh-activate{min-height:44px;max-width:100%;border-color:#bfcbd1}
.bh-figure-toolbar>span{font-size:13px;line-height:1.5;flex:1 1 130px}
.bh-scene-caption:not([hidden]){bottom:10px}
.galaxy-view-preview{display:flex;flex-direction:column;min-width:0;gap:8px;align-self:start}
.galaxy-view-switch{width:100%;min-height:44px;background:#192d3d;color:#fff;border:1px solid #758c98;font:600 14px/1.45 var(--font-reading);padding:10px 12px;text-align:center;cursor:pointer}
.galaxy-view-switch[aria-pressed=true]{background:#a15b34}
.galaxy-view-switch:disabled{opacity:.65;cursor:not-allowed}
.galaxy-view-switch:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
@media(max-width:620px){.bh-figure-toolbar .bh-activate{width:100%}.bh-figure-toolbar>span{flex-basis:100%;text-align:center}}

/* A motion preference is an intentional accessibility state, not a broken button. */
.motion-preference-note{display:none;font:500 14px/1.55 var(--font-reading);color:#544735;max-width:68ch;margin:4px 0}
@media (prefers-reduced-motion: reduce) {.motion-preference-note{display:block}}
.bh-transport .motion-preference-note{flex:1 1 100%;font-size:14px}
.eclipse-play-row .motion-preference-note,.transit-play-controls .motion-preference-note,.ly-motion-controls .motion-preference-note,.galaxy-3d-actions .motion-preference-note{flex:1 1 100%}

/* Touch-first scientific model controls: tested at 390px. */
.ly-picker button{min-height:44px;font-size:14px;line-height:1.35}
.tide-angle-presets button{min-height:44px;font-size:14px}
.mass-toggle button{min-height:44px;font-size:14px}
.galaxy-view-presets button{min-height:44px;font-size:14px}
.season-controls button{min-height:44px}
.eclipse-node-presets button{min-height:44px}
.spectrum-band-picker button{min-height:44px;font-size:14px}
#transitPlay{min-height:44px}
#orbitLaunch,#orbitReset{min-height:44px}
#btnLocked,#btnUnlocked{min-height:44px}
.eclipse-play-row button,.eclipse-controls button{min-height:44px}

/* Recoverable 3D loading failure: never leave an unexplained dead control. */
.viz-load-status{flex:1 1 100%;font:500 14px/1.55 var(--font-reading);color:#ffded2;margin:0}
.viz-load-status[hidden]{display:none}
.galaxy-view-preview .viz-load-status{color:#553626;background:#f7e4d8;padding:9px 12px}

/* Second responsive pass: wide-screen lesson controls must also meet touch size. */
#btnSpring,#btnNeap,#spectrumWaveToggle{min-height:44px}

.bh-figure-toolbar .bh-activate:disabled,.galaxy-view-switch:disabled{cursor:not-allowed;opacity:.65}
.viz-noscript-note{font-size:14px;line-height:1.6;margin:3px 0;color:inherit}


/* Local teacher-only preview, never included in normal production markup. */
.classroom-preview-notice{background:#e7eee9;color:#21372f;padding:12px 20px;font:500 14px/1.5 var(--font-reading);border-bottom:2px solid #2f6b51}
.classroom-preview-notice strong{font-weight:700}

/* The camera stage is the primary interaction on the galaxy-type lesson.
   Keep the text and physical caveats adjacent, but don't confine space to a thumbnail. */
.galaxy-view-layout{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:16px}
.galaxy-view-visual{width:100%;box-sizing:border-box;aspect-ratio:16/9;min-height:290px;max-height:min(620px,70dvh);overflow:hidden;border:1px solid #24374b}
.galaxy-view-tools{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;align-content:start}
.galaxy-3d-actions{align-items:center}
.galaxy-zoom-actions button{min-width:104px}
@media(max-width:600px){
 .galaxy-view-visual{aspect-ratio:6/5;min-height:265px;max-height:56dvh}
 .galaxy-3d-overlay{font-size:9px;left:9px;right:9px;bottom:9px}
 .galaxy-3d-actions button{width:auto;flex:1 1 120px}
 .galaxy-zoom-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .galaxy-zoom-actions button{min-width:0;width:100%}
}

/* Opt-in cosmic scale scene; the physically accurate logarithmic ruler stays below. */
.scale-compare .zoom-stage{padding:0;display:flex;flex-direction:column;gap:0}
.zoom-cinema-frame{position:relative;isolation:isolate;overflow:hidden;background:#070f21;width:100%;box-sizing:border-box;aspect-ratio:16/7;min-height:280px;max-height:min(620px,66dvh);border:1px solid #243c53}
.zoom-cinema-frame[hidden]{display:none}
.zoom-cinema-frame canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab;overscroll-behavior:contain}
.zoom-cinema-frame canvas:active{cursor:grabbing}
.zoom-cinema-frame canvas:focus-visible{outline:3px solid #f9bd73;outline-offset:-4px}
.zoom-cinema-legend{pointer-events:none;position:absolute;inset:auto 16px 12px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;color:#f1deba;text-shadow:0 1px 7px #050b14;font:700 10px/1.5 var(--font-data);letter-spacing:.08em}

/* Always-visible source and full credit attached to the active reference photo. */
.zoom-cinema-credit{margin:0;padding:12px 16px 10px;background:#e8eceb;text-align:left;font:500 11px/1.55 var(--font-reading);color:#29465a;border:1px solid #c5d1d4;border-top:0;overflow-wrap:anywhere}
.zoom-cinema-credit[hidden]{display:none}
.zoom-cinema-credit a{color:#1a5272;text-decoration:underline;text-underline-offset:2px}
@media(max-width:600px){.zoom-cinema-credit{padding:10px 12px;font-size:10px}}
.cosmic-cinema-sources{margin:8px 18px 14px;color:#445866;font:400 12px/1.6 var(--font-reading)}
.cosmic-cinema-sources summary{cursor:pointer;font-weight:700;color:#2d526b}
.cosmic-cinema-sources p{margin:7px 0 0;max-width:90ch}
.cosmic-cinema-sources a{color:#1b5a76;text-decoration:underline;text-underline-offset:2px}
@media(max-width:600px){.cosmic-cinema-sources{margin:7px 12px 12px}}
/* Cosmic documentary: restrained telemetry, layered canvas, and a progress trace. */
.zoom-cinema-frame{background:#030814;min-height:340px;aspect-ratio:16/8;max-height:min(640px,70dvh);box-shadow:inset 0 0 0 1px rgba(158,185,204,.18)}
.zoom-cinema-telemetry{position:absolute;top:19px;left:20px;pointer-events:none;max-width:min(57%,420px);color:#f4f0e4;text-shadow:0 2px 12px #02050c;font-family:var(--font-reading)}
.zoom-cinema-meta{display:flex;flex-wrap:wrap;align-items:center;gap:9px;font:700 10px/1.5 var(--font-data);letter-spacing:.12em;color:#bfcbcf}
.zoom-cinema-meta span:first-child{color:#f3c38d;font-size:12px}
.zoom-cinema-measure{margin-top:7px;font:600 clamp(12px,1.25vw,17px)/1.35 var(--font-display)}
.zoom-cinema-progress{height:2px;background:rgba(233,229,216,.28);margin-top:11px;width:min(260px,100%)}
.zoom-cinema-progress span{display:block;width:calc((var(--chapter) + 1)*12.5%);max-width:100%;height:100%;background:#e1b585;transition:width 1.15s cubic-bezier(.2,.75,.2,1)}
.zoom-cinema-legend{color:#d6e0e4;font-size:9px;letter-spacing:.1em}
@media(max-width:600px){
 .zoom-cinema-frame{min-height:320px;aspect-ratio:4/5;max-height:56dvh}
 .zoom-cinema-telemetry{top:13px;left:12px;max-width:84%}
 .zoom-cinema-legend{font-size:7px;inset:auto 10px 8px}
 .zoom-cinema-progress{max-width:180px}
}
@media(prefers-reduced-motion:reduce){.zoom-cinema-progress span{transition:none}}

.scale-compare .zoom-stage-copy{padding:24px 20px 8px}
.scale-compare .zoom-stage-copy .zoom-title{font-size:clamp(30px,4vw,44px)}
.zoom-cinema-init{display:grid;justify-items:center;gap:10px;margin:18px auto 22px;text-align:center}
.zoom-cinema-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;width:100%}
.zoom-cinema-actions button{min-height:44px;border:1px solid #29445d;background:#102b43;color:#fff;padding:11px 16px;font:600 13px var(--font-reading);cursor:pointer}
.zoom-cinema-actions button[hidden]{display:none}
.zoom-cinema-actions button[aria-pressed=true]{background:#a25633}
.zoom-cinema-actions button:disabled{opacity:.55}
.zoom-cinema-actions button:focus-visible{outline:3px solid #a25633;outline-offset:3px}
.zoom-cinema-init p{max-width:66ch;font-size:12px;line-height:1.5;color:var(--muted);margin:0 auto}
@media(max-width:600px){.zoom-cinema-init{margin:14px auto 18px;gap:9px}.zoom-cinema-actions{display:grid;grid-template-columns:minmax(0,1fr);max-width:360px;gap:8px}.zoom-cinema-actions button{width:100%;white-space:normal}.zoom-cinema-init p{padding:0 8px}}
@media(max-width:600px){.zoom-cinema-frame{aspect-ratio:5/6;min-height:275px;max-height:55dvh}.zoom-cinema-legend{inset:auto 9px 8px;font-size:8px}.scale-compare .zoom-stage-copy{padding:20px 12px 5px}}

/* Only the active opt-in black-hole canvas captures gestures. Other scrolling stays native. */
.bh-scene:not([hidden]){touch-action:none;overscroll-behavior:contain}
.bh-transport button[id^=bhZoom]{min-width:102px}
@media(max-width:620px){.bh-transport button{flex:1 1 120px}}

/* Exoplanet transit: focus the observed silhouette, not a false simulated atmosphere. */
.transit-orbit-wrap{background:radial-gradient(ellipse at 50% 50%,#12233a 0%,#070e1d 70%)}
.transit-orbit-wrap svg{max-height:380px;min-height:210px}
.transit-stellar-atmosphere{transition:opacity .26s ease}
.transit-playing .transit-stellar-atmosphere{opacity:.86}
.transit-graph-wrap #transitCurveMarker{filter:drop-shadow(0 0 3px rgba(255,207,143,.72))}
.transit-play-controls button#transitFocus{background:#f8f5ec;border:1px solid #7c868e;color:#193247;min-height:44px;padding:9px 14px;font:600 14px var(--font-reading);cursor:pointer}
.transit-play-controls button#transitFocus[aria-pressed=true]{background:#24435e;color:#fff}
.transit-play-controls button#transitFocus:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
@media(max-width:600px){.transit-orbit-wrap svg{min-height:190px;max-height:300px}.transit-play-controls button#transitFocus{width:100%}}
@media(prefers-reduced-motion:reduce){.transit-stellar-atmosphere{transition:none}}

/* Stellar evolution: stage-driven appearance, no perpetual animation. */
.stellar-cinema{position:relative;isolation:isolate;overflow:hidden;background:#080f20;width:100%;box-sizing:border-box;aspect-ratio:18/7;min-height:290px;max-height:min(600px,62dvh);border:1px solid #33445c;margin:14px 0 12px}
.stellar-cinema canvas,.stellar-cinema svg{width:100%;height:100%;display:block}
.stellar-cinema canvas[hidden],.stellar-cinema svg[hidden]{display:none}
.stellar-cinema-caption{position:absolute;inset:auto 16px 12px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;pointer-events:none;color:#f0e1bd;font:700 11px/1.5 var(--font-data);letter-spacing:.08em;text-shadow:0 1px 6px #000}
.stellar-cinema-evidence{color:#42484c;font-size:13px;line-height:1.65;max-width:900px;margin:0 0 20px}
.stellar-cinema-evidence strong{font-weight:650}
@media(max-width:620px){.stellar-cinema{aspect-ratio:5/4;min-height:230px;max-height:50dvh}.stellar-cinema-caption{inset:auto 9px 8px;font-size:9px}}
@media(prefers-reduced-motion:reduce){.stellar-cinema,.stellar-cinema canvas{animation:none;transition:none}}

/* Sources field-guide: five semantic illustration cues and readable action affordance. */
.resource-choice-grid{column-gap:22px;row-gap:0;border-top-color:#c6c2ba}
.resource-choice{padding:0;min-height:0;border-bottom:1px solid #c8c3b8;cursor:auto;transition:background .18s ease}
.resource-choice summary{list-style:none;display:flex;flex-direction:column;gap:14px;min-height:208px;padding:24px 12px 20px;cursor:pointer;outline-offset:-3px}
.resource-choice summary::-webkit-details-marker{display:none}
.resource-choice summary:focus-visible{outline:3px solid var(--accent)}
.resource-choice:hover,.resource-choice[open]{background:#e8e3d9}
.resource-choice-icon{width:58px;height:58px;border:1px solid #b9a99a;background:#eee8dc;color:#a54d2e;display:grid;place-items:center;flex:none;transition:transform .18s ease,background .18s ease}
.resource-choice summary:hover .resource-choice-icon,.resource-choice[open] .resource-choice-icon{transform:translateY(-3px);background:#f3e9d9}
.resource-choice-icon svg{display:block;width:34px;height:34px}
.resource-choice-body{display:grid;gap:8px;align-content:start}
.resource-choice .step-no{font:700 10px/1.4 var(--font-data);letter-spacing:.07em;color:#ac4929;text-transform:uppercase;margin:0}
.resource-choice h3{font:600 clamp(20px,2vw,26px)/1.15 var(--font-display);color:var(--ink);margin:0;max-width:24ch}
.resource-choice-action{font:600 11px/1.4 var(--font-data);color:#58636a;letter-spacing:.015em;display:block;margin-top:5px}
.resource-choice[open] .resource-choice-action{color:#a54d2e}
.resource-choice>p{font-size:14px;line-height:1.62;padding:14px 12px 22px;margin:0;border-top:1px solid #c6beb2}
.resource-choice>p a{color:#813919;font-weight:700;text-underline-offset:3px}
@media(max-width:980px){.resource-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px}.resource-choice summary{min-height:205px}}
@media(max-width:550px){.resource-choice-grid{grid-template-columns:1fr;gap:0}.resource-choice summary{min-height:0;display:grid;grid-template-columns:56px minmax(0,1fr);align-items:start;padding:17px 8px;gap:15px}.resource-choice-icon{width:52px;height:52px}.resource-choice-icon svg{width:32px;height:32px}.resource-choice h3{font-size:20px}.resource-choice-body{gap:5px}.resource-choice>p{padding:10px 12px 18px}}
@media(prefers-reduced-motion:reduce){.resource-choice,.resource-choice-icon{transition:none}}

/* Milky Way address: interactive outer-galaxy perspective plus exact radial ruler. */
.mw-spatial-experience{margin:24px 0 28px;border:1px solid #bdb8ae;background:#e9e5dd;overflow:hidden}
.mw-spatial-heading{display:flex;justify-content:space-between;align-items:center;gap:22px;padding:21px 23px}
.mw-spatial-heading h3{font:600 clamp(21px,2.6vw,30px)/1.2 var(--font-display);margin:0 0 7px}
.mw-spatial-heading p{font:400 14px/1.55 var(--font-reading);color:#485057;max-width:680px;margin:0}
.mw-spatial-heading button,.mw-spatial-actions button{font:600 13px/1.4 var(--font-reading);padding:10px 13px;min-height:44px;cursor:pointer;border:1px solid #7d929e;background:#173347;color:#fff}
.mw-spatial-heading button[aria-pressed=true]{background:#ad522f}
.mw-spatial-heading button:disabled{opacity:.6;cursor:wait}
.mw-spatial-frame{position:relative;width:100%;box-sizing:border-box;aspect-ratio:17/8;min-height:310px;max-height:min(610px,65dvh);background:#080f1d;overflow:hidden}
.mw-spatial-frame[hidden],.mw-spatial-actions[hidden]{display:none}
.mw-spatial-frame canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none;overscroll-behavior:contain}
.mw-spatial-frame canvas:active{cursor:grabbing}
.mw-spatial-overlay{pointer-events:none;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;position:absolute;inset:auto 14px 12px;color:#e5edf3;text-shadow:0 1px 6px #000;font:600 10px/1.5 var(--font-data);letter-spacing:.04em}
.mw-spatial-pin{color:#bdf9ed}
.mw-spatial-actions{display:flex;flex-wrap:wrap;gap:8px;padding:14px 22px 0}
.mw-spatial-actions button{flex:1 1 140px}
.mw-spatial-actions button:focus-visible,.mw-spatial-heading button:focus-visible{outline:3px solid #b14d2e;outline-offset:3px}
.mw-spatial-readout{font:600 13px/1.55 var(--font-reading);color:#183a4b;padding:15px 23px 0;margin:0}
.mw-spatial-caveat{font:400 12px/1.7 var(--font-reading);color:#465058;padding:9px 23px 23px;margin:0}
.mw-spatial-caveat strong{font-weight:700}
@media(max-width:700px){.mw-spatial-heading{padding:18px 15px;display:block}.mw-spatial-heading button{width:100%;margin-top:16px}.mw-spatial-frame{aspect-ratio:5/5;min-height:260px;max-height:53dvh}.mw-spatial-actions{padding:12px 12px 0}.mw-spatial-actions button{flex:1 1 130px}.mw-spatial-overlay{inset:auto 9px 9px;font-size:9px}.mw-spatial-readout{padding:12px 14px 0}.mw-spatial-caveat{padding:9px 14px 17px}}

/* Earth–Moon: user-driven perspective journey, with exact-scale strip retained. */
.em-flight-experience{margin:16px 0 22px;border:1px solid #c0b8ab;background:#e9e5dd}
.em-flight-heading{display:flex;justify-content:space-between;gap:22px;align-items:center;padding:21px 23px}
.em-flight-heading h3{font:600 clamp(22px,2.8vw,32px)/1.17 var(--font-display);margin:0 0 8px}
.em-flight-heading p{font-size:14px;line-height:1.5;color:#465058;max-width:680px;margin:0}
.em-flight-heading button,.em-flight-actions button{border:1px solid #415e74;background:#193c52;color:#fff;font:600 13px/1.4 var(--font-reading);min-height:44px;padding:10px 14px;cursor:pointer}
.em-flight-heading button[aria-pressed=true]{background:#ad5937}
.em-flight-heading button:disabled{opacity:.55;cursor:wait}
.em-flight-frame{position:relative;width:100%;box-sizing:border-box;aspect-ratio:17/7;background:#060d1a;overflow:hidden;min-height:280px;max-height:min(580px,65dvh)}
.em-flight-frame>svg,.em-flight-frame>canvas{width:100%;height:100%;display:block}
.em-flight-frame>canvas:not([hidden]){cursor:grab;touch-action:none;overscroll-behavior:contain}
.em-flight-frame>canvas:not([hidden]):active{cursor:grabbing}
.em-flight-frame>canvas[hidden],.em-flight-frame>svg[hidden]{display:none}
.em-flight-overlay{position:absolute;pointer-events:none;inset:auto 14px 12px;color:#f3e2bd;text-shadow:0 1px 7px #000;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font:700 10px/1.5 var(--font-data);letter-spacing:.05em}
.em-flight-controls{background:#e9e5dd;border-top:1px solid #c4beb3;padding:18px 23px 12px}
.em-flight-controls[hidden]{display:none}
.em-flight-controls label{display:flex;gap:12px;justify-content:space-between;align-items:center;font-size:14px;font-weight:650}
.em-flight-controls output{font:700 15px var(--font-data)}
.em-flight-controls input[type=range]{width:100%;accent-color:#a34b2f;min-height:42px}
.em-flight-actions{display:flex;gap:9px;flex-wrap:wrap;margin:10px 0}
.em-flight-actions button{flex:1 1 160px}
.em-flight-actions button[aria-pressed=true]{background:#b04d2e}
.em-flight-actions button:disabled{opacity:.55;cursor:not-allowed}
.em-flight-status{font:600 13px/1.6 var(--font-reading);padding:12px 23px;color:#18384a;margin:0}
.em-flight-caveat{font:400 12px/1.65 var(--font-reading);color:#4b545b;margin:0;padding:4px 23px 22px}
.em-exact-ruler{border:1px solid #bcb7ad;margin:24px 0 18px}
.em-exact-ruler>summary{cursor:pointer;background:#e4dfd5;padding:18px 22px;font:700 16px var(--font-display);list-style:none}
.em-exact-ruler>summary::-webkit-details-marker{display:none}
.em-exact-ruler>summary::before{content:'+';font:700 20px var(--font-data);color:#a34b2f;margin-right:12px}
.em-exact-ruler[open]>summary::before{content:'−'}
.em-exact-ruler>summary span{display:block;font:500 12px/1.6 var(--font-reading);margin:5px 0 0 32px;color:#616364}
.em-exact-ruler .emscale-outer{margin:18px 18px 0}
.em-exact-ruler .emscale-navigation{padding:12px 18px}
.em-flight-actions button:focus-visible,.em-flight-heading button:focus-visible,.em-flight-controls input:focus-visible,.em-exact-ruler summary:focus-visible{outline:3px solid #a34b2f;outline-offset:3px}
@media(max-width:700px){.em-flight-heading{padding:17px 14px;display:block}.em-flight-heading button{width:100%;margin-top:16px}.em-flight-frame{aspect-ratio:5/5;min-height:280px;max-height:52dvh}.em-flight-overlay{inset:auto 9px 9px;font-size:9px}.em-flight-controls{padding:16px 14px 0}.em-flight-status{padding:12px 14px}.em-flight-caveat{padding:4px 14px 17px}.em-exact-ruler>summary{padding:15px}}
@media(prefers-reduced-motion:reduce){.em-flight-frame,.em-exact-ruler{animation:none;transition:none}}
.em-flight-actions button,.em-flight-heading button,.em-exact-ruler summary{scroll-margin-top:158px}

/* Controls remain within the picture instead of scrolling under the sticky navbar. */
.em-flight-quick-actions{position:absolute;z-index:5;inset:auto 14px 40px;display:flex;gap:8px;justify-content:center}
.em-flight-quick-actions[hidden]{display:none}
.em-flight-quick-actions button{min-height:44px;min-width:96px;flex:0 1 160px;border:1px solid rgba(197,217,232,.72);background:rgba(13,31,52,.92);color:#fff;font:600 13px/1.3 var(--font-reading);padding:10px 14px;cursor:pointer;backdrop-filter:blur(6px)}
.em-flight-quick-actions button[aria-pressed=true]{background:#aa502d}
.em-flight-quick-actions button:disabled{opacity:.55;cursor:not-allowed}
.em-flight-quick-actions button:focus-visible{outline:3px solid #f1c88f;outline-offset:2px}
@media(max-width:700px){.em-flight-quick-actions{inset:auto 8px 44px;gap:5px}.em-flight-quick-actions button{min-width:0;flex:1 1 auto;font-size:12px;padding:9px 8px}}

/* Gravity: deliberately user-initiated 3D mass-radius physics test bench. */
.gravity-immersive{background:#e9e4db;border:1px solid #c2bcaf;margin:24px 0}
.gravity-immersive-intro{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:22px 24px}
.gravity-immersive-intro h4{font:600 clamp(22px,2.5vw,30px)/1.2 var(--font-display);margin:0 0 8px}
.gravity-immersive-intro p{font:400 13px/1.6 var(--font-reading);color:#53565b;margin:0;max-width:670px}
.gravity-immersive-intro button,.gravity-immersive-controls button{border:1px solid #486277;background:#17374b;color:#fff;font:600 13px/1.3 var(--font-reading);padding:10px 13px;min-height:44px;cursor:pointer}
.gravity-immersive-intro button[aria-pressed=true]{background:#ae5938}
.gravity-immersive-intro button:disabled,.gravity-immersive-controls button:disabled{opacity:.55;cursor:wait}
.gravity-immersive-stage{position:relative;background:#080f1f;width:100%;box-sizing:border-box;aspect-ratio:16/7;min-height:290px;max-height:min(600px,64dvh);overflow:hidden}
.gravity-immersive-stage[hidden],.gravity-immersive-controls[hidden]{display:none}
.gravity-immersive-stage canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:none;overscroll-behavior:contain}
.gravity-immersive-stage canvas:active{cursor:grabbing}
.gravity-immersive-overlay{position:absolute;inset:auto 13px 12px;pointer-events:none;color:#d8e8f9;text-shadow:0 1px 6px #000;font:700 10px/1.4 var(--font-data);display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;letter-spacing:.04em}
.gravity-immersive-controls{display:flex;flex-wrap:wrap;gap:9px;padding:17px 20px 5px}
.gravity-immersive-controls button{flex:1 1 160px}
.gravity-immersive-controls button[aria-pressed=true]{background:#a95334}
.gravity-immersive-intro button:focus-visible,.gravity-immersive-controls button:focus-visible{outline:3px solid #bb522e;outline-offset:3px}
.gravity-immersive-status{font:600 13px/1.65 var(--font-reading);color:#183746;margin:0;padding:13px 20px 4px}
.gravity-immersive-note{font:400 12px/1.65 var(--font-reading);color:#4b5359;margin:0;padding:10px 20px 22px}
@media(max-width:700px){.gravity-immersive-intro{display:block;padding:17px 14px}.gravity-immersive-intro button{width:100%;margin-top:13px}.gravity-immersive-stage{aspect-ratio:5/5;min-height:250px;max-height:53dvh}.gravity-immersive-controls{padding:13px 12px 0;gap:6px}.gravity-immersive-controls button{flex:1 1 128px}.gravity-immersive-overlay{inset:auto 9px 9px;font-size:9px}.gravity-immersive-status{padding:11px 14px 4px}.gravity-immersive-note{padding:9px 14px 15px}}

/* Keep learner-controlled variables and their cinematic outcome together. */
.gravity-experiment-layout{display:grid;grid-template-columns:minmax(205px,.37fr) minmax(0,1fr);gap:20px;align-items:start;margin-top:23px}
.gravity-experiment-layout>.gravity-mechanism-controls{position:sticky;top:94px;padding:20px 17px;background:#e9e4db;border:1px solid #c2bcaf}
.gravity-experiment-layout>.gravity-immersive{min-width:0;margin:0}
.gravity-experiment-layout .gravity-immersive-intro{padding:18px 19px}
.gravity-experiment-layout .gravity-immersive-stage{aspect-ratio:14/8;min-height:290px}
#gravityMechanism .gravity-mechanism-workspace{display:block;max-width:460px;margin:22px auto 0}
@media(max-width:820px){.gravity-experiment-layout{grid-template-columns:1fr;gap:11px}.gravity-experiment-layout>.gravity-mechanism-controls{position:static;top:auto;padding:15px}.gravity-experiment-layout .gravity-immersive-stage{aspect-ratio:5/4;min-height:245px}}
/* Contain WebGL fractional-pixel layout overflow without altering ad hosts. */
.gravity-mechanism{overflow-x:clip}

/* Educational photon beam, not an image of actual gamma/X-ray light. */
.spectrum-beam{position:relative;isolation:isolate;height:clamp(130px,18vw,210px);overflow:hidden;background:radial-gradient(ellipse at center,rgba(30,69,100,.31) 0%,#050e1d 75%);border:1px solid rgba(115,146,180,.36);margin:16px 0 6px;--beam-glow:hsl(var(--beam-hue) 100% 68%);--beam-core:hsl(var(--beam-hue) 100% 84%)}
.spectrum-beam>*:not(.spectrum-beam-readout){pointer-events:none}
.spectrum-beam-halo,.spectrum-beam-core,.spectrum-beam-rays{position:absolute;inset:0;will-change:auto}
.spectrum-beam-halo{background:radial-gradient(ellipse 65% calc(17% + var(--beam-focus)*25%) at 50% 50%,hsl(var(--beam-hue) 100% 56% / .68) 0%,hsl(var(--beam-hue) 100% 40% / .26) 38%,transparent 100%);filter:blur(10px)}
.spectrum-beam-core{inset:43% -2%;height:14%;background:linear-gradient(180deg,transparent 0%,hsl(var(--beam-hue) 100% 63% / .43) 32%,#f8ffff 50%,hsl(var(--beam-hue) 100% 64% / .6) 73%,transparent 100%);filter:drop-shadow(0 0 8px var(--beam-glow));clip-path:polygon(0 42%,49% 0,100% 42%,100% 58%,49% 100%,0 58%)}
.spectrum-beam-rays{background:repeating-linear-gradient(174deg,transparent 0 13%,hsl(var(--beam-hue) 100% 72% / .24) 13.2%,transparent 13.5% 20%),linear-gradient(90deg,transparent 0%,hsl(var(--beam-hue) 100% 74% / .12) 45%,transparent 100%);opacity:calc(.42 + .55*var(--beam-energy));mix-blend-mode:screen;mask-image:linear-gradient(0deg,transparent 10%,#000 48%,transparent 91%)}
.spectrum-beam-particle{position:absolute;top:calc(37% + var(--beam-pos)*22%);left:calc(var(--beam-pos)*100%);width:clamp(3px,1vw,9px);height:clamp(3px,1vw,9px);border-radius:50%;background:#fff;box-shadow:0 0 6px 2px var(--beam-glow),0 0 18px 3px var(--beam-glow);opacity:calc(.45 + var(--beam-energy)*.5)}
.spectrum-beam-readout{position:absolute;inset:auto 10px 9px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;font:700 10px/1.4 var(--font-data);color:#eff8ff;text-shadow:0 2px 4px #030812;letter-spacing:.04em}
.spectrum-beam.beam-running .spectrum-beam-particle{animation:spectrum-beam-travel 2.3s linear infinite;animation-delay:calc(var(--beam-pos)*-2.3s)}
.spectrum-beam.beam-running .spectrum-beam-rays{animation:spectrum-beam-warp 5s linear infinite}
@keyframes spectrum-beam-travel{from{transform:translateX(-100vw);opacity:0}15%,80%{opacity:1}to{transform:translateX(100vw);opacity:0}}
@keyframes spectrum-beam-warp{from{transform:translateX(-3%)}to{transform:translateX(3%)}}
.spectrum-beam-caveat{max-width:94ch;margin:8px 0 10px!important;font-size:12px!important;line-height:1.6!important;color:#dbe7ef!important}
@media(max-width:620px){.spectrum-beam{height:150px}.spectrum-beam-halo{filter:blur(4px)}.spectrum-beam-core{filter:none}.spectrum-beam-rays{opacity:.43}.spectrum-beam.beam-running .spectrum-beam-rays{animation:none}}
@media(prefers-reduced-motion:reduce){.spectrum-beam *{animation:none!important;transition:none!important}}

/* A textual interpretation remains accessible outside the purely decorative ray. */
.spectrum-beam-meaning{color:#eff1f6!important;font:600 12px/1.55 var(--font-reading)!important;margin:12px 0 3px!important;max-width:92ch}
.spectrum-beam[aria-hidden=true]{pointer-events:none}
.spectrum-beam.beam-running .spectrum-beam-core{animation:spectrum-core-pulse 2.3s ease-in-out infinite alternate}
@keyframes spectrum-core-pulse{from{opacity:.75;filter:drop-shadow(0 0 4px var(--beam-glow))}to{opacity:1;filter:drop-shadow(0 0 16px var(--beam-glow))}}
@media(max-width:620px){.spectrum-beam.beam-running .spectrum-beam-core{animation:none}}
@media(prefers-reduced-motion:reduce){.spectrum-beam.beam-running .spectrum-beam-core{animation:none}}

/* Opt-in equilibrium tidal shell: Earth's rigid globe remains distinct from water. */
.tide-cinema{background:#e9e5dd;border:1px solid #bcb9b1;margin:23px 0 28px;overflow:hidden}
.tide-cinema-heading{display:flex;gap:20px;justify-content:space-between;align-items:center;padding:20px 23px}
.tide-cinema-heading h4{font:600 clamp(22px,2.7vw,31px)/1.2 var(--font-display);margin:0 0 7px}
.tide-cinema-heading p{font:400 13px/1.6 var(--font-reading);color:#45515b;max-width:670px;margin:0}
.tide-cinema-heading button,.tide-cinema-actions button{min-height:44px;border:1px solid #4b687b;background:#16354b;color:#fff;font:600 13px/1.4 var(--font-reading);cursor:pointer;padding:10px 14px}
.tide-cinema-heading button[aria-pressed=true]{background:#ad5634}
.tide-cinema-heading button:disabled,.tide-cinema-actions button:disabled{opacity:.55;cursor:not-allowed}
.tide-cinema-stage{position:relative;width:100%;box-sizing:border-box;aspect-ratio:17/8;min-height:310px;max-height:min(610px,64dvh);overflow:hidden;background:#070f21}
.tide-cinema-stage[hidden],.tide-cinema-controls[hidden]{display:none}
.tide-cinema-stage canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none;overscroll-behavior:contain}
.tide-cinema-stage canvas:active{cursor:grabbing}
.tide-cinema-overlay{position:absolute;inset:auto 13px 12px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;pointer-events:none;color:#daf4ff;text-shadow:0 1px 7px #000;font:700 10px/1.5 var(--font-data);letter-spacing:.04em}
.tide-cinema-controls{padding:16px 20px 0}
.tide-cinema-sliders{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.tide-cinema-sliders label{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;font:600 13px/1.45 var(--font-reading)}
.tide-cinema-sliders output{color:#a55331;font:700 14px var(--font-data)}
.tide-cinema-sliders input{display:block;flex:1 0 100%;width:100%;min-height:38px;accent-color:#b35435}
.tide-cinema-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 4px}
.tide-cinema-actions button{flex:1 1 145px}
.tide-cinema-actions button[aria-pressed=true]{background:#a34f31}
.tide-cinema-heading button:focus-visible,.tide-cinema-actions button:focus-visible,.tide-cinema-sliders input:focus-visible{outline:3px solid #bd5837;outline-offset:3px}
.tide-cinema-status{font:600 13px/1.6 var(--font-reading);color:#163d50;margin:0;padding:13px 20px 2px}
.tide-cinema-caveat{font:400 12px/1.65 var(--font-reading);color:#48545c;margin:0;padding:8px 20px 20px}
@media(max-width:700px){.tide-cinema-heading{display:block;padding:17px 14px}.tide-cinema-heading button{width:100%;margin-top:14px}.tide-cinema-stage{aspect-ratio:5/5;min-height:275px;max-height:53dvh}.tide-cinema-overlay{inset:auto 8px 8px;font-size:9px}.tide-cinema-controls{padding:14px 12px 0}.tide-cinema-sliders{grid-template-columns:1fr;gap:12px}.tide-cinema-actions{gap:6px}.tide-cinema-actions button{flex:1 1 120px}.tide-cinema-status{padding:10px 12px 3px}.tide-cinema-caveat{padding:6px 12px 17px}}
@media(prefers-reduced-motion:reduce){.tide-cinema-stage,.tide-cinema{transition:none;animation:none}}

/* Kepler observatory: cinematic-but-accurate temporal ratios, not actual AU scale. */
.kepler-observatory{background:#eae6de;border:1px solid #beb9b1;margin:22px 0 28px;overflow:hidden}
.kepler-observatory-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px}
.kepler-observatory-head h4{font:600 clamp(21px,2.6vw,30px)/1.2 var(--font-display);margin:0 0 7px}
.kepler-observatory-head p{max-width:620px;margin:0;color:#52606a;font:400 13px/1.6 var(--font-reading)}
.kepler-observatory button{min-height:44px;cursor:pointer}
.kepler-observatory button:focus-visible,.kepler-orbit-controls select:focus-visible,.kepler-orbit-controls input:focus-visible{outline:3px solid #c85b31;outline-offset:2px}
.kepler-observatory-head button,.kepler-orbit-buttons button{background:#15354d;border:1px solid #46637a;color:#fff;font:600 12px/1.45 var(--font-reading);padding:11px 13px}
.kepler-observatory-head button[aria-pressed=true],.kepler-orbit-buttons button[aria-pressed=true]{background:#ac5435}
.kepler-observatory-head button:disabled,.kepler-orbit-buttons button:disabled{opacity:.5;cursor:wait}
.kepler-orbit-stage{position:relative;background:#080e1c;width:100%;box-sizing:border-box;aspect-ratio:17/9;min-height:300px;max-height:min(560px,65dvh);overflow:hidden}
.kepler-orbit-stage canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none;overscroll-behavior:contain}
.kepler-orbit-stage canvas[hidden],.kepler-orbit-fallback[hidden],.kepler-orbit-controls[hidden]{display:none}
.kepler-orbit-stage canvas:active{cursor:grabbing}
.kepler-orbit-fallback{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:15px;background:radial-gradient(ellipse at center,#1b344f,#0c182b 55%,#080e1c);color:#e5edf4;text-align:center;isolation:isolate;padding:35px;overflow:hidden}
.kepler-orbit-fallback:before,.kepler-orbit-fallback:after{content:"";position:absolute;border:1px solid rgba(161,194,226,.32);border-radius:50%;width:min(40vw,340px);aspect-ratio:1;transform:scaleY(.56);z-index:-1;box-shadow:0 0 0 35px rgba(129,160,188,.08),0 0 0 75px rgba(129,160,188,.06),0 0 0 115px rgba(129,160,188,.05)}
.kepler-orbit-fallback:after{width:min(23vw,220px);border-color:rgba(228,205,142,.38)}
.kepler-fallback-sun{height:45px;width:45px;border-radius:50%;background:radial-gradient(circle at 35% 32%,#fff9dc,#f2c26d 52%,#a5683f);box-shadow:0 0 40px 12px rgba(243,183,92,.4);flex:none}
.kepler-orbit-fallback p{max-width:40ch;color:#f0f4f9!important;font:600 13px/1.55 var(--font-reading)!important;margin:0!important;text-shadow:0 2px 8px #060b16}
.kepler-orbit-stage-overlay{position:absolute;inset:auto 12px 11px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font:700 10px/1.5 var(--font-data);color:#dceaf9;text-shadow:0 1px 6px #080f1f;pointer-events:none}
.kepler-orbit-chip-list{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:5px;padding:15px 12px 0}
.kepler-orbit-chip-list button{font:600 11px/1.2 var(--font-data);padding:9px 3px;border:1px solid #a9a7a0;background:#f1eee8;color:#293944;min-width:0;overflow-wrap:anywhere}
.kepler-orbit-chip-list button[aria-pressed=true]{background:#183b51;color:#fff;border-color:#183b51}
.kepler-observatory-selected{margin:0!important;padding:14px 17px 6px;color:#183b51!important;font:700 14px/1.55 var(--font-reading)!important}
.kepler-orbit-controls{padding:12px 17px 10px;border-top:1px solid #c7c2b7;display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,1.5fr);gap:15px;align-items:end}
.kepler-orbit-controls>label{font:600 12px/1.45 var(--font-reading);display:grid;gap:7px;color:#293944;margin:0}
.kepler-orbit-controls select{max-width:100%;min-height:44px;font:600 12px var(--font-data);background:#fbfaf6;border:1px solid #a9a29b;padding:7px}
.kepler-orbit-controls output{font:700 13px var(--font-data);color:#a34a2f}
.kepler-orbit-controls input[type=range]{width:100%;min-height:35px;accent-color:#ae5636}
.kepler-orbit-buttons{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:7px}
.kepler-orbit-buttons button{flex:1 1 125px}
.kepler-orbit-frame-status{padding:8px 17px;margin:0!important;color:#203949!important;font:600 12px/1.55 var(--font-reading)!important}
.kepler-orbit-caveat{padding:4px 17px 20px;margin:0!important;font:400 11px/1.6 var(--font-reading)!important;color:#4a555c!important}
@media(max-width:700px){.kepler-observatory-head{display:block;padding:16px 12px}.kepler-observatory-head button{width:100%;margin-top:11px}.kepler-orbit-stage{aspect-ratio:5/5;max-height:53dvh;min-height:280px}.kepler-orbit-chip-list{grid-template-columns:repeat(4,minmax(0,1fr));padding:11px 9px 0;gap:6px}.kepler-orbit-chip-list button{font-size:11px}.kepler-orbit-controls{grid-template-columns:1fr;padding:12px}.kepler-orbit-buttons{grid-column:1}.kepler-orbit-fallback p{font-size:12px!important}.kepler-observatory-selected,.kepler-orbit-frame-status{padding-left:12px}.kepler-orbit-caveat{padding:6px 12px 16px}.kepler-orbit-stage-overlay{font-size:9px}}
@media(prefers-reduced-motion:reduce){.kepler-observatory *{animation:none!important;transition:none!important}}

/* A solar-system scale lens with correct relative AU markers and optional tiny physical bodies. */
.true-scale-flight{border:1px solid #beb8ac;background:#eae6de;margin-bottom:30px;overflow:hidden}
.true-scale-flight-head{display:flex;gap:18px;justify-content:space-between;align-items:center;padding:19px 21px}
.true-scale-flight-head h3{font:600 clamp(22px,2.9vw,31px)/1.14 var(--font-display);margin:0 0 7px}
.true-scale-flight-head p{max-width:650px;margin:0;color:#4c5b65;font:400 13px/1.6 var(--font-reading)}
.true-scale-flight button{min-height:44px;cursor:pointer}
.true-scale-flight button:focus-visible,.true-scale-flight select:focus-visible,.true-scale-flight input:focus-visible{outline:3px solid #bc5436;outline-offset:3px}
.true-scale-flight-head button,.true-scale-control-row>button,.true-scale-focus-preset button{background:#153951;border:1px solid #436179;color:#fff;font:600 12px/1.3 var(--font-reading);padding:10px 13px}
.true-scale-flight-head button[aria-pressed=true],.true-scale-control-row>button[aria-pressed=true]{background:#a65033}
.true-scale-flight-head button:disabled,.true-scale-control-row>button:disabled{opacity:.55;cursor:not-allowed}
.true-scale-stage{position:relative;background:#070f20;width:100%;box-sizing:border-box;aspect-ratio:16/8;min-height:290px;max-height:min(610px,65dvh);overflow:hidden}
.true-scale-stage canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:none;overscroll-behavior:contain}
.true-scale-stage canvas:active{cursor:grabbing}
.true-scale-stage canvas[hidden],.true-scale-fallback[hidden],.true-scale-controls[hidden]{display:none}
.true-scale-fallback{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:13px;padding:32px;background:radial-gradient(ellipse at center,#214366,#0b1b34 68%,#060d19);color:#fff;text-align:center;overflow:hidden;isolation:isolate}
.true-scale-fallback:before{content:"";position:absolute;z-index:-1;inset:19% auto auto 50%;border:1px solid rgba(165,205,226,.4);height:min(40vw,250px);width:min(40vw,250px);border-radius:50%;transform:translateX(-50%) scaleY(.65);box-shadow:0 0 0 45px rgba(124,161,200,.13),0 0 0 90px rgba(124,161,200,.085),0 0 0 135px rgba(124,161,200,.055)}
.true-scale-sun{border-radius:50%;width:55px;height:55px;flex:none;background:radial-gradient(circle at 35% 34%,#fff7c3,#f4c36d 48%,#d27a40);box-shadow:0 0 35px 15px rgba(249,187,96,.29)}
.true-scale-fallback p{font:600 13px/1.6 var(--font-reading);max-width:48ch;color:#f7f8fd;margin:0;text-shadow:0 2px 8px #050b16}
.true-scale-stage-legend{position:absolute;inset:auto 10px 10px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;pointer-events:none;font:700 9px/1.6 var(--font-data);color:#dfedfc;text-shadow:0 1px 5px #000}
.true-scale-controls{padding:17px 19px 10px;display:grid;gap:13px}
.true-scale-focus-preset{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.true-scale-focus-preset button{background:#f6f2e9;border-color:#b8b1a5;color:#213a4a}
.true-scale-focus-preset button{scroll-margin-top:145px}
.true-scale-controls>label{font:600 13px/1.6 var(--font-reading);display:grid;gap:5px}
.true-scale-controls input[type=range]{width:100%;accent-color:#b95d34;min-height:35px}
.true-scale-control-row{display:flex;align-items:center;flex-wrap:wrap;gap:9px}
.true-scale-control-row>button{flex:1 1 110px}
.true-scale-control-row label{display:flex;align-items:center;gap:8px;font:600 12px/1.4 var(--font-reading)}
.true-scale-control-row select{min-height:44px;font:600 12px var(--font-reading);background:#fff;border:1px solid #a9a39b;padding:7px}
.true-scale-checkbox{flex:1 1 190px;cursor:pointer}
.true-scale-checkbox input{height:19px;width:19px;accent-color:#a75330}
.true-scale-readout,.true-scale-selected{font:600 12px/1.6 var(--font-reading);padding:6px 19px 0;margin:0;color:#19394b}
.true-scale-selected{color:#4f5c63}
.true-scale-caveat{font:400 11px/1.65 var(--font-reading);color:#52606a;padding:9px 19px 18px;margin:0}
@media(max-width:700px){.true-scale-flight-head{display:block;padding:16px 13px}.true-scale-flight-head button{width:100%;margin-top:13px}.true-scale-stage{aspect-ratio:5/5;max-height:52dvh;min-height:268px}.true-scale-focus-preset{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.true-scale-focus-preset button{padding:9px 6px}.true-scale-controls{padding:12px;gap:9px}.true-scale-control-row label{flex:1 1 auto}.true-scale-stage-legend{font-size:8px}.true-scale-readout,.true-scale-selected{padding:7px 12px 0}.true-scale-caveat{padding:9px 12px 16px}}
@media(prefers-reduced-motion:reduce){.true-scale-flight *{transition:none!important;animation:none!important}}
/* Subpixel explanation stays by its checkbox, never over the camera. */


/* Physical-size camera: anchored planet close-up to outer-orbit scale on one ruler. */
.true-scale-physics{padding:14px 16px;background:#f8f5ef;border:1px solid #c4beb1;display:grid;gap:12px}
.true-scale-physics[hidden]{display:none}
.true-scale-physics-head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:6px 14px;color:#253b4b;font:600 14px/1.4 var(--font-reading)}
.true-scale-physics-head span{font:600 11px/1.5 var(--font-data);color:#52606a}
.true-scale-pixel-guide{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}
.true-scale-guide-label{font:600 10px/1.3 var(--font-data);color:#52606a}
.true-scale-guide-label:nth-child(2){text-align:center;color:#a04d30}
.true-scale-guide-label:nth-child(3){text-align:right}
.true-scale-guide-track{grid-column:1/-1;position:relative;height:10px;background:linear-gradient(to right,#bdcad1 0 50%,#365b70 50% 100%);border:1px solid #8697a1}
.true-scale-guide-threshold{position:absolute;left:50%;top:-5px;bottom:-5px;width:2px;background:#bc593b}
.true-scale-guide-pointer{position:absolute;top:-6px;left:50%;height:20px;width:5px;background:#f7bb68;border:1px solid #553a24;transform:translateX(-50%);transition:left .08s linear}
.true-scale-physics-readout{margin:0;font:600 12px/1.6 var(--font-reading);color:#233e50}
.true-scale-texture-source{margin:0;font:400 11px/1.6 var(--font-reading);color:#52606a}
.true-scale-texture-source a{color:#185072;text-decoration:underline;text-underline-offset:2px}
.true-scale-source-details{font:400 11px/1.5 var(--font-reading);color:#52606a}
.true-scale-source-details summary{cursor:pointer;font:600 11px/1.5 var(--font-reading);color:#35546b}
.true-scale-source-details[open] p{margin:7px 0 0}

.true-scale-guide-toggle{display:flex;align-items:center;gap:8px;font:600 12px/1.5 var(--font-reading)}
.true-scale-guide-toggle input{width:19px;height:19px;accent-color:#a75330;flex:none}
.true-scale-guide-toggle span{font-weight:400;color:#536773}
@media(max-width:700px){.true-scale-physics{padding:12px}.true-scale-guide-label{font-size:9px}.true-scale-physics-head{font-size:12px}}
@media(prefers-reduced-motion:reduce){.true-scale-guide-pointer{transition:none}}

/* Light-year: opt-in cinematic perspective with strict normalized-distance caveat. */
.ly-cinema{background:#ede8df;border:1px solid #b9b5aa;margin:18px 0 28px;overflow:hidden}
.ly-cinema-head{display:flex;gap:18px;justify-content:space-between;align-items:center;padding:20px}
.ly-cinema-head h3{font:600 clamp(22px,2.8vw,31px)/1.14 var(--font-display);margin:0 0 7px}
.ly-cinema-head p{max-width:650px;font:400 13px/1.6 var(--font-reading);color:#46545f;margin:0}
.ly-cinema-head button,.ly-cinema-quick button{min-height:44px;background:#183d56;color:#fff;border:1px solid #476880;padding:10px 15px;cursor:pointer;font:600 13px/1.35 var(--font-reading)}
.ly-cinema-head button[aria-pressed=true],.ly-cinema-quick button[aria-pressed=true]{background:#b15935}
.ly-cinema-head button:disabled,.ly-cinema-quick button:disabled{opacity:.5;cursor:not-allowed}
.ly-cinema-head button:focus-visible,.ly-cinema-quick button:focus-visible{outline:3px solid #c65b31;outline-offset:3px}
.ly-cinema-stage{position:relative;background:#070e1c;width:100%;box-sizing:border-box;aspect-ratio:17/8;min-height:285px;max-height:min(570px,62dvh);overflow:hidden}
.ly-cinema-stage canvas{display:block;width:100%;height:100%;touch-action:none;overscroll-behavior:contain;cursor:grab}
.ly-cinema-stage canvas:active{cursor:grabbing}
.ly-cinema-stage canvas[hidden],.ly-cinema-fallback[hidden],.ly-cinema-quick[hidden]{display:none}
.ly-cinema-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap;align-content:center;background:radial-gradient(ellipse at center,#213c59,#0a162d 65%,#050d1b);color:#f1eee4;padding:25px}
.ly-cinema-source-symbol{font:700 60px/1 var(--font-display);color:#f5d190;text-shadow:0 0 22px #f6bd60}
.ly-cinema-link{width:min(32%,220px);height:3px;background:linear-gradient(90deg,#f5ca77,#c7eaff);box-shadow:0 0 17px #c8eaff}
.ly-cinema-earth-symbol{width:72px;height:72px;border-radius:50%;background:radial-gradient(circle at 35% 25%,#b9efde,#377aa7 54%,#071b37);box-shadow:0 0 23px #6bc7e18c}
.ly-cinema-fallback p{flex:1 0 100%;font:600 13px/1.5 var(--font-reading);color:#e9f4fa!important;text-align:center;margin:0!important;max-width:58ch}
.ly-cinema-overlay{position:absolute;left:12px;top:12px;color:#daeaf9;text-shadow:0 1px 6px #020915;font:700 10px/1.5 var(--font-data);pointer-events:none;letter-spacing:.04em}
.ly-cinema-quick{position:absolute;z-index:2;left:50%;bottom:17px;transform:translateX(-50%);display:flex;gap:7px;width:min(82%,430px)}
.ly-cinema-quick button{flex:1;min-width:0;background:rgba(15,44,65,.89);backdrop-filter:blur(6px)}
.ly-cinema-status{font:600 13px/1.65 var(--font-reading);color:#1c4057;margin:0!important;padding:13px 18px 3px}
.ly-cinema-disclaimer{font:400 11px/1.6 var(--font-reading);color:#53606a;margin:0!important;padding:9px 18px 20px}
@media(max-width:700px){.ly-cinema-head{display:block;padding:15px 13px}.ly-cinema-head button{width:100%;margin-top:12px}.ly-cinema-stage{aspect-ratio:5/6;min-height:320px;max-height:53dvh}.ly-cinema-overlay{font-size:9px;right:8px}.ly-cinema-quick{width:calc(100% - 22px);bottom:9px;gap:5px}.ly-cinema-quick button{font-size:12px;padding:8px}.ly-cinema-status{padding:9px 12px 3px}.ly-cinema-disclaimer{padding:8px 12px 16px}}
@media(prefers-reduced-motion:reduce){.ly-cinema *{animation:none!important;transition:none!important}}

/* Filmic lookback camera: four accessible transport controls without clipping. */
@media(max-width:700px){.ly-cinema-quick{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.ly-cinema-quick button{font-size:11px;padding:8px 3px;white-space:normal}}

/* Narrow phones: 4:3 black-hole stage must not grow past its grid column
   when min-height would override the aspect-ratio's computed width. */
@media(max-width:360px){.bh-diagram{min-height:0}}

/* Source matcher: add guidance without replacing any crawlable official links. */
.resource-matcher{padding:18px 0 20px;border-top:1px solid #bcb7ae;border-bottom:1px solid #c6c2ba;margin-bottom:18px;display:grid;gap:10px}
.resource-matcher>label{font:600 15px/1.45 var(--font-reading)}
.resource-matcher-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}
.resource-matcher-controls select,.resource-matcher-controls button{min-width:0;min-height:44px;padding:9px 12px;font:600 13px/1.45 var(--font-reading);border:1px solid #8d938e}
.resource-matcher-controls button{color:#fff;background:#173952;cursor:pointer}
.resource-matcher-controls button:disabled{opacity:.5;cursor:default}
.resource-matcher-controls select:focus-visible,.resource-matcher-controls button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.resource-matcher>p{color:#4e6068;margin:0;font-size:13px;line-height:1.55}
.resource-choice.resource-choice-target{box-shadow:inset 3px 0 #a34e2a;background:#ebe5d9}
.transit-play-controls button#transitTrack{background:#f8f5ec;border:1px solid #7c868e;color:#193247;min-height:44px;padding:9px 14px;font:600 14px var(--font-reading);cursor:pointer}
.transit-play-controls button#transitTrack[aria-pressed=true]{background:#24435e;color:#fff}
.transit-play-controls button#transitTrack:focus-visible,#spectrumTour:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
#spectrumTour{min-height:44px;border:1px solid #536b7b;background:#173b55;color:#fff;padding:9px 12px;cursor:pointer}
#spectrumTour[aria-pressed=true]{background:#a6502e}
#spectrumTour:disabled{opacity:.55;cursor:default}
@media(max-width:600px){.resource-matcher-controls{grid-template-columns:minmax(0,1fr)}.transit-play-controls button#transitTrack{width:100%}.spectrum-signal-head{flex-wrap:wrap}.spectrum-signal-head>span{flex:1 1 100%}.spectrum-signal-head button{flex:1 1 120px}}

/* AU walking journey — precise measured ruler and quiet editorial controls. */
.au-expedition{margin-top:28px;border-top:1px solid #a5a69d;padding-top:22px;display:grid;gap:13px}
.au-expedition-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:end}
.au-expedition-head h3{font:600 clamp(21px,3vw,29px)/1.15 var(--font-display);margin:2px 0 9px}
.au-expedition-head p{font-size:14px;line-height:1.55;margin:0;max-width:62ch}
.au-expedition-eyebrow{font:600 11px/1.5 var(--font-mono);text-transform:uppercase;letter-spacing:.09em;color:#5a615b}
.au-expedition-distance{text-align:right;min-width:172px;font:12px/1.5 var(--font-mono)}
.au-expedition-distance strong{font:600 28px/1.1 var(--font-display);display:block;color:#21475b}
.au-expedition-distance span{display:block;color:#555e65;max-width:185px}
#auExpeditionCanvas{display:block;width:100%;height:auto;aspect-ratio:960/300;background:#0c1b2b;border:1px solid #3b4d59;border-radius:3px}
.au-expedition>label{display:flex;justify-content:space-between;gap:8px;font:600 12px/1.4 var(--font-mono)}
#auExpeditionProgress{width:100%;accent-color:#9e5131;min-height:35px}
.au-expedition-buttons{display:flex;gap:8px;flex-wrap:wrap}
.au-expedition-buttons button,.au-expedition-buttons select{min-height:44px;padding:8px 12px;font:600 12px/1.3 var(--font-mono);border:1px solid #74848a;background:#f5f2e9;color:#183b4d;cursor:pointer;border-radius:2px}
.au-expedition-buttons #auExpeditionPlay{background:#1a4055;color:#fff;border-color:#1a4055}
.au-expedition-buttons button:focus-visible,.au-expedition-buttons select:focus-visible{outline:3px solid #9b522f;outline-offset:3px}
.au-expedition-note{font:13px/1.5 var(--font-reading);min-height:40px;margin:0;color:#394c5b}
@media(max-width:620px){.au-expedition-head{grid-template-columns:minmax(0,1fr);gap:7px}.au-expedition-distance{text-align:left}.au-expedition-distance span{max-width:none}.au-expedition-buttons{display:grid;grid-template-columns:1fr 1fr}.au-expedition-buttons select{grid-column:1/-1;width:100%}.au-expedition>label{font-size:11px}}

/* Temperature source-comparison: one linear axis; no invented thermal simulation. */
.thermal-evidence{border-top:1px solid #a5aaa4;margin:25px 0 34px;padding:24px 0;display:grid;gap:15px}
.thermal-evidence-header{max-width:75ch}.thermal-evidence-header h3{font:600 clamp(22px,3.1vw,30px)/1.15 var(--font-display);margin:5px 0 9px}.thermal-evidence-header p{font:14px/1.55 var(--font-reading);margin:0}
.thermal-kicker{font:600 11px/1.3 var(--font-mono);letter-spacing:.11em;text-transform:uppercase;color:#5f6764}
.thermal-evidence-plot{border:1px solid #a0abae;background:#122b39;padding:18px 20px 25px;display:grid;gap:16px;color:#e9f0f0}
.thermal-axis{display:flex;justify-content:space-between;font:11px var(--font-mono);color:#bfd0d6}
.thermal-evidence-row{display:grid;grid-template-columns:90px minmax(0,1fr) 120px;gap:12px;align-items:center;font:600 12px var(--font-mono)}
.thermal-evidence-row>small{font:11px var(--font-mono);text-align:right;color:#c7d7da}
.thermal-evidence-line{height:52px;position:relative;border-bottom:1px solid #6a8490;background:linear-gradient(90deg,transparent 28.57%,rgba(210,232,233,.12) 28.57%,rgba(210,232,233,.12) 28.7%,transparent 28.7%)}
.thermal-range{position:absolute;top:19px;height:4px;background:#e2b078}
.thermal-point{position:absolute;top:12px;transform:translateX(-50%);width:17px;height:17px;border-radius:50%;border:3px solid #203441;background:#d9d6c8;box-shadow:0 0 0 1px #e7f3f1}
.thermal-point.venus{background:#eeb169;border-color:#4f2b20}
.thermal-end{position:absolute;top:36px;font:10px var(--font-mono);transform:translateX(-50%);font-style:normal;color:#efc899}
.thermal-evidence-controls{display:flex;gap:8px;flex-wrap:wrap}
.thermal-evidence-controls button{background:#f4f0e7;border:1px solid #8f9897;min-height:44px;padding:9px 14px;color:#153a4b;font:600 12px var(--font-mono);cursor:pointer}
.thermal-evidence-controls button[aria-pressed=true]{background:#153a4b;color:#f8f4eb;border-color:#153a4b}
.thermal-evidence-controls button:focus-visible{outline:3px solid #ac5d33;outline-offset:3px}
.thermal-evidence-result{font:15px/1.6 var(--font-reading);min-height:64px;padding-left:14px;border-left:3px solid #a65b35}
@media(max-width:650px){.thermal-evidence-plot{padding:16px 8px 24px}.thermal-evidence-row{grid-template-columns:60px minmax(0,1fr);gap:8px}.thermal-evidence-row>small{grid-column:2;justify-self:end}.thermal-evidence-controls{display:grid;grid-template-columns:1fr}.thermal-evidence-result{font-size:14px}}

/* Scientific eclipse model: quiet three-view camera selector. */
.eclipse-camera{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:13px 14px 4px}
.eclipse-camera>span{font:600 11px/1.35 var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:#586b76;margin-right:8px}
.eclipse-camera button{min-height:44px;padding:9px 13px;border:1px solid #79949c;background:#eef1ed;color:#1b3a4b;font:600 12px/1.3 var(--font-mono);cursor:pointer}
.eclipse-camera button[aria-pressed=true]{background:#173b51;color:#fff;border-color:#173b51}
.eclipse-camera button:focus-visible{outline:3px solid #a55f32;outline-offset:3px}
.eclipse-camera-note{font:13px/1.45 var(--font-reading);padding:5px 16px 12px;color:#3c5260;margin:0}
@media(max-width:600px){.eclipse-camera{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.eclipse-camera>span{grid-column:1/-1}.eclipse-camera button:last-child{grid-column:1/-1}}

/* NASA image forensics. Native source crops only; no artificial alignment. */
.provenance-detail-lab{margin:28px 0;padding-top:24px;border-top:1px solid #96a5a7;display:grid;gap:15px}
.provenance-detail-head h4{font:600 clamp(22px,3vw,29px)/1.18 var(--font-display);margin:5px 0 10px}
.provenance-detail-head p{font:14px/1.55 var(--font-reading);max-width:76ch;margin:0}
.provenance-detail-controls{display:flex;gap:8px;flex-wrap:wrap}
.provenance-detail-controls button{font:600 12px/1.3 var(--font-mono);min-height:44px;padding:9px 13px;background:#f1efea;color:#17384a;border:1px solid #8c9799;cursor:pointer}
.provenance-detail-controls button[aria-pressed=true]{background:#193f56;color:#fff}
.provenance-detail-controls button:focus-visible{outline:3px solid #9b512f;outline-offset:3px}
.provenance-detail-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;background:#132432;padding:12px}
.provenance-detail-pair figure{margin:0;min-width:0}.provenance-detail-frame{width:100%;aspect-ratio:800/773;background-color:#132432;background-repeat:no-repeat;background-size:calc(200% * var(--detail-zoom)) calc(100% * var(--detail-zoom));background-position:var(--detail-left-x) var(--detail-y);transition:background-size .65s ease,background-position .65s ease}
.provenance-detail-webb{background-position:var(--detail-right-x) var(--detail-y)}
.provenance-detail-pair figcaption{font:12px/1.5 var(--font-reading);padding:9px 0 2px;color:#dbe5e9}
.provenance-detail-pair figcaption strong{color:#fff}
.provenance-detail-note{font:13px/1.55 var(--font-reading);color:#44555f;margin:0}
@media(max-width:620px){.provenance-detail-pair{grid-template-columns:minmax(0,1fr);gap:18px}.provenance-detail-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.provenance-detail-controls button{padding:8px 4px;font-size:11px}}
@media(prefers-reduced-motion:reduce){.provenance-detail-frame{transition:none}}

/* Mobile model walking frame needs vertical room for true-distance labels. */
#auExpeditionCanvas{height:clamp(190px,22vw,300px);aspect-ratio:auto}

/* Seasons on the ground: solar elevation is the real variable, not fake weather. */
.season-ground-lab{margin:24px 0 14px;display:grid;gap:13px;border-top:1px solid #9faeac;padding:20px 0 7px}
.season-ground-header h4{font:600 clamp(21px,3vw,28px)/1.16 var(--font-display);margin:4px 0 9px}.season-ground-header p{font:14px/1.5 var(--font-reading);margin:0;max-width:64ch}
.season-ground-controls{display:flex;gap:8px;flex-wrap:wrap}
.season-ground-controls button{border:1px solid #788a90;background:#eeeae1;padding:9px 17px;min-height:44px;font:600 12px var(--font-mono);color:#203e50;cursor:pointer}
.season-ground-controls button[aria-pressed=true]{background:#143950;color:#f8f3e8}
.season-ground-controls button:focus-visible{outline:3px solid #ad6637;outline-offset:3px}
#seasonGroundSVG{max-width:100%;height:auto;display:block;border:1px solid #355063}
.season-ground-readout{font:13px/1.55 var(--font-reading);min-height:40px;color:#2e4955;padding-left:12px;border-left:3px solid #b76c42}
@media(max-width:620px){.season-ground-controls{display:grid;grid-template-columns:1fr 1fr}.season-ground-header h4{font-size:22px}}

/* Lunar locking: limited manual orbit, no idle three.js loop. */
.lock-motion-controls{display:flex;align-items:center;gap:14px;padding:10px 22px 13px;flex-wrap:wrap}
.lock-motion-controls button{min-height:44px;padding:9px 15px;background:#143b54;border:1px solid #143b54;color:#fff;font:600 12px/1.3 var(--font-mono);cursor:pointer}
.lock-motion-controls button:disabled{opacity:.45;cursor:default}
.lock-motion-controls button:focus-visible{outline:3px solid #a85c32;outline-offset:3px}
.lock-motion-controls span{font:12px/1.55 var(--font-reading);color:#556470;flex:1 1 260px}

/* One exact diameter ratio with an optional camera pullback. */
.diameter-lens{margin-top:30px;padding-top:23px;border-top:1px solid #a7adaa;display:grid;gap:12px}
.diameter-lens-head{max-width:70ch}.diameter-lens-head h3{font:600 clamp(21px,3vw,29px)/1.2 var(--font-display);margin:4px 0 9px}.diameter-lens-head p{font:14px/1.55 var(--font-reading);margin:0}
#diameterLensCanvas{display:block;width:100%;height:clamp(210px,26vw,320px);border:1px solid #35515b;background:#0e2532}
.diameter-lens-label{display:flex;justify-content:space-between;gap:8px;font:600 12px/1.4 var(--font-mono)}
#diameterLensProgress{width:100%;min-height:34px;accent-color:#a35435}
.diameter-lens-stage{border:1px solid #35515b;background:#0e2532;scroll-margin-top:125px}
.diameter-lens-stage #diameterLensCanvas{border:0}
.diameter-lens-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap;padding:9px 12px;border-bottom:1px solid #416276;background:#17354a}
.diameter-lens-actions button{min-height:44px;padding:9px 13px;border:1px solid #758d95;background:#f2eee7;font:600 12px var(--font-mono);color:#19394a;cursor:pointer}
.diameter-lens-actions #diameterLensPlay{background:#164054;color:#fff}
.diameter-lens-actions button:disabled{opacity:.48}
.diameter-lens-actions button:focus-visible{outline:3px solid #a65e33;outline-offset:3px}
.diameter-lens-readout{font:13px/1.55 var(--font-reading);border-left:3px solid #a35435;padding-left:12px;color:#42535c;margin:0}
@media(max-width:620px){
 .diameter-lens-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:8px}
 .diameter-lens-actions button{min-width:0;font-size:10px;line-height:1.35;padding:7px 6px}
}

/* Newton thought experiment: three generated paths, never static clip art. */
/* Comparison is one secondary experiment, inset like the prediction and legend.
   The action, explanatory copy, and computed outcome share a single grid. */
.orbit-comparison{margin:12px 20px 0;padding:14px;border:1px solid #c7c4ba;background:#f0efe9}
.orbit-trio-controls{display:block;padding:0}
.orbit-trio-controls p{margin:0;min-width:0;font:13px/1.55 var(--font-reading);color:#455c68}
.orbit-trio-readout{margin-top:12px;padding:10px 13px;border-left:3px solid #ab7643;background:#e5e6e1;font:13px/1.55 var(--font-reading);color:#2f4858}
#orbitSpeedNote{margin:8px 20px 17px}
@media(max-width:620px){
 .orbit-comparison{margin:12px 12px 0;padding:12px}
 .orbit-trio-controls p{font-size:12px}
 .orbit-trio-readout{padding:10px 11px;font-size:12px}
 .orbit-prediction{margin-right:12px;margin-left:12px}
 .orbit-vector-legend{margin-right:12px;margin-left:12px}
 #orbitSpeedNote{margin:9px 12px 16px}
}

/* Phase-based local solar time: a quiet clock, not a sky-position forecast. */
.moon-sky-clock{border-top:1px solid #adb6b5;margin:19px 0;padding:22px 0 12px;display:grid;gap:13px}
.moon-sky-header h3{font:600 clamp(20px,3vw,27px)/1.18 var(--font-display);margin:5px 0 9px}.moon-sky-header p{font:14px/1.55 var(--font-reading);margin:0;max-width:74ch}
.moon-sky-clock-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#a3acb1;border:1px solid #a3acb1}
.moon-sky-clock-values>div{padding:16px 13px;background:#f3f1ec;min-width:0}.moon-sky-clock-values span{display:block;font:600 11px var(--font-mono);text-transform:uppercase;color:#546674}.moon-sky-clock-values strong{display:block;font:600 clamp(18px,4vw,29px)/1.25 var(--font-display);color:#123c51;margin-top:6px}
.moon-sky-day-ribbon{padding:8px 0}.moon-sky-band{height:40px;position:relative;background:#132639;border:1px solid #30495e}.moon-sky-daylight{position:absolute;left:25%;width:50%;height:100%;background:#b19b74}.moon-sky-mark{position:absolute;top:-6px;height:50px;width:4px;transform:translateX(-50%);background:#f5eee2;border:1px solid #10293c;z-index:2}.moon-sky-ticks{display:flex;justify-content:space-between;font:11px/1.5 var(--font-mono);color:#566773}
.moon-sky-explanation{font:13px/1.55 var(--font-reading);color:#394c5a;min-height:44px;padding-left:13px;border-left:3px solid #bc7549}

/* Source → measured constraint → inferred interior, not decorative cutaways. */
.ptype-evidence-chain{padding:23px 0;margin:7px 0 29px;border-top:1px solid #a9b0ad;border-bottom:1px solid #a9b0ad;display:grid;gap:16px}
.ptype-chain-intro h3{font:600 clamp(22px,3.1vw,30px)/1.15 var(--font-display);margin:6px 0 10px}.ptype-chain-intro p{font:14px/1.55 var(--font-reading);max-width:73ch;margin:0}
.ptype-evidence-controls{display:flex;gap:8px;flex-wrap:wrap}.ptype-evidence-controls button{min-height:44px;padding:9px 13px;border:1px solid #8a9a9b;background:#f0eee7;color:#183b4a;font:600 12px/1.3 var(--font-mono);cursor:pointer}.ptype-evidence-controls button[aria-pressed=true]{background:#163b52;color:#fff;border-color:#163b52}.ptype-evidence-controls button:focus-visible{outline:3px solid #a75e38;outline-offset:3px}
.ptype-chain-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #a5b0b4;border-bottom:1px solid #a5b0b4}.ptype-chain-flow>div{padding:18px 15px;border-right:1px solid #a5b0b4;min-width:0}.ptype-chain-flow>div:last-child{border-right:0}.ptype-chain-flow span{display:block;font:600 10px/1.3 var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:#536970;margin-bottom:16px}.ptype-chain-flow strong{font:600 16px/1.3 var(--font-display);display:block;color:#153d50}.ptype-chain-flow p{font:13px/1.55 var(--font-reading);color:#445760;margin:9px 0 0}
.ptype-chain-caution{font:13px/1.5 var(--font-reading);margin:0;border-left:3px solid #ab6b43;padding-left:12px;color:#42545e}
@media(max-width:640px){.ptype-chain-flow{grid-template-columns:1fr}.ptype-chain-flow>div{border-right:0;border-bottom:1px solid #a5b0b4;padding:14px 9px}.ptype-chain-flow>div:last-child{border-bottom:0}.ptype-chain-flow span{margin-bottom:7px}.ptype-evidence-controls{display:grid;grid-template-columns:1fr}}

/* A period-ratio drawing with explicit physical limitations, not orbital cinema. */
.pluto-resonance-lab{border-top:1px solid #abb0a9;border-bottom:1px solid #abb0a9;padding:24px 0 16px;margin:22px 0 32px;display:grid;gap:13px}
.pluto-resonance-head h3{font:600 clamp(23px,3.2vw,31px)/1.16 var(--font-display);margin:5px 0 9px}.pluto-resonance-head p{font:14px/1.55 var(--font-reading);margin:0;max-width:76ch}
#plutoResonanceSVG{display:block;width:100%;height:auto;background:#0d2333;border:1px solid #405968}
.pluto-resonance-lab>label{display:flex;justify-content:space-between;gap:9px;font:600 12px/1.4 var(--font-mono)}
#plutoResonanceTime{width:100%;min-height:33px;accent-color:#ac653f}
.pluto-resonance-actions{display:flex;gap:8px;flex-wrap:wrap}
.pluto-resonance-actions button{min-height:44px;padding:9px 13px;border:1px solid #688390;font:600 12px/1.4 var(--font-mono);background:#f3eee4;color:#17374c;cursor:pointer}
.pluto-resonance-actions #plutoResonancePlay{background:#183e57;color:white}
.pluto-resonance-actions button:focus-visible{outline:3px solid #ab673f;outline-offset:3px}
.pluto-resonance-readout{display:block;min-height:50px;padding-left:13px;border-left:3px solid #ad7652;font:13px/1.55 var(--font-reading);color:#425765}
@media(max-width:620px){.pluto-resonance-actions{display:grid;grid-template-columns:1fr 1fr}.pluto-resonance-lab>label{font-size:11px}}

/* Two ruler models: animate *the evidence*, not a decorative 3D scene. */
.distance-guided-experiment{display:grid;gap:12px;border-top:1px solid #a8aeab;padding-top:18px;margin:20px 0 18px}
.distance-guided-experiment h4{font:600 clamp(19px,2.8vw,26px)/1.2 var(--font-display);margin:4px 0 7px}.distance-guided-experiment p{font:13px/1.55 var(--font-reading);max-width:70ch;margin:0}
.distance-guided-actions{display:flex;gap:8px;flex-wrap:wrap}
.distance-guided-actions button{padding:9px 13px;min-height:44px;background:#f0eee7;border:1px solid #798c94;color:#183e51;font:600 12px/1.3 var(--font-mono);cursor:pointer}
.distance-guided-actions button:first-child{background:#18435b;color:#fff}.distance-guided-actions button:focus-visible{outline:3px solid #ad673e;outline-offset:3px}
.distance-guided-experiment output{font:13px/1.5 var(--font-reading);color:#425561;min-height:26px}
.distance-focus-lab .distance-focus-marker{transition:left .75s cubic-bezier(.36,.05,.25,1)}
@media(prefers-reduced-motion:reduce){.distance-focus-lab .distance-focus-marker{transition:none}}
@media(max-width:640px){.distance-guided-actions{display:grid;grid-template-columns:1fr 1fr}}

/* Homepage editorial inquiry index: native disclosures, no generic AI cards. */
.home-inquiry-rows{border-top:1px solid #9ca7a9}.home-inquiry-row{border-bottom:1px solid #9ca7a9;padding:0;margin:0}
.home-inquiry-row summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,155px) minmax(0,1fr) minmax(0,170px);align-items:baseline;gap:20px;padding:20px 5px;min-height:70px}.home-inquiry-row summary::-webkit-details-marker{display:none}
.home-inquiry-row summary span{font:600 11px/1.5 var(--font-mono);letter-spacing:.04em;color:#536d75;text-transform:uppercase}
.home-inquiry-row summary strong{font:600 clamp(17px,2.1vw,22px)/1.2 var(--font-display);color:#163a4f}
.home-inquiry-row summary em{font:12px/1.5 var(--font-mono);color:#63747b;font-style:normal;text-align:right}
.home-inquiry-row summary:focus-visible{outline:3px solid #ae7241;outline-offset:3px}
.home-inquiry-row[open] summary strong{color:#9c4c2c}
.home-inquiry-step{padding:0 13px 19px 175px;display:flex;gap:8px 17px;flex-wrap:wrap;align-items:baseline}.home-inquiry-step p{margin:0;flex:1 1 230px;font:13px/1.6 var(--font-reading);color:#3e515d}.home-inquiry-step a{display:inline-block;font:600 12px/1.45 var(--font-mono);text-decoration:underline;text-underline-offset:3px;color:#1e5b76}
.home-inquiry-caveat{font:12px/1.6 var(--font-reading);color:#64717a;margin-top:15px}
@media(max-width:720px){.home-inquiry-row summary{grid-template-columns:minmax(0,1fr);gap:5px;padding:17px 3px}.home-inquiry-row summary em{text-align:left}.home-inquiry-step{padding:0 3px 19px}.home-inquiry-step p{flex:1 1 100%}}

/* 2026 ED138 — editorial observation, measured inference and explicit uncertainty.
   No imagined planet textures: only Rubin data and one shared linear ruler. */
.ed138-intro .lead{max-width:75ch}
.ed138-intro-note{font:14px/1.7 var(--font-reading);max-width:78ch;color:#405562;margin:19px 0 4px}
.ed138-source-figure{margin:0;border:1px solid #adb2ad;background:#102431}
.ed138-source-figure img{display:block;max-width:100%;height:auto;width:100%;aspect-ratio:1280/646;object-fit:contain}
.ed138-source-figure figcaption{padding:15px 19px;color:#d1dce0;font:12px/1.65 var(--font-reading);border-top:1px solid #45606e}
.ed138-source-figure figcaption strong{color:#fff}
.ed138-source-figure figcaption a{color:#c7e6f5;text-decoration:underline;text-underline-offset:2px}
.ed138-facts{margin:22px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #b7b4ac;border-bottom:1px solid #b7b4ac}
.ed138-facts>div{padding:16px 14px 19px;border-right:1px solid #b7b4ac;min-width:0}
.ed138-facts>div:nth-child(3n){border-right:0}
.ed138-facts>div:nth-child(n+4){border-top:1px solid #b7b4ac}
.ed138-facts dt{font:600 11px/1.5 var(--font-mono);text-transform:uppercase;letter-spacing:.035em;color:#64727b}
.ed138-facts dt span{font-weight:400;text-transform:none;letter-spacing:0}
.ed138-facts dd{font:600 clamp(17px,2.3vw,25px)/1.25 var(--font-display);color:#162e3b;margin:9px 0 0;overflow-wrap:anywhere}
.ed138-data-note{max-width:84ch;font:14px/1.7 var(--font-reading);color:#465964;margin:17px 0 0}
.ed138-lab{border-top:1px solid #a6adaa;padding-top:18px;margin:6px 0 0;display:grid;gap:16px}
.ed138-lab-header{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:24px;align-items:end}
.ed138-lab-header h3{font:600 clamp(22px,3.1vw,31px)/1.15 var(--font-display);margin:4px 0 9px;color:#142f40}
.ed138-lab-header p{font:14px/1.6 var(--font-reading);margin:0;max-width:64ch}
.ed138-overline{font:600 11px/1.5 var(--font-mono)!important;text-transform:uppercase;letter-spacing:.08em;color:#a15335}
.ed138-primary-number{text-align:right;min-width:0}
.ed138-primary-number strong{font:600 clamp(23px,3.2vw,36px)/1.1 var(--font-display);display:block;color:#1a455d;white-space:nowrap}
.ed138-primary-number span{font:11px/1.5 var(--font-mono);color:#516772}
#ed138SizeChart{display:block;width:100%;height:auto;border:1px solid #365261;background:#102533;max-width:100%;box-sizing:border-box}
.ed138-lab-controls{display:grid;gap:12px}
.ed138-lab-controls>label{display:flex;justify-content:space-between;gap:9px;font:600 13px/1.5 var(--font-mono);color:#1b3c4c}
#ed138Albedo{width:100%;accent-color:#a55b37;min-height:34px}
.ed138-presets{display:flex;flex-wrap:wrap;gap:9px}
.ed138-presets button{background:#f1eee6;border:1px solid #879597;color:#1c4054;padding:10px 14px;min-height:44px;font:600 12px/1.3 var(--font-mono);cursor:pointer}
.ed138-presets button[aria-pressed=true]{background:#1c4458;color:#fff;border-color:#1c4458}
.ed138-presets button:focus-visible{outline:3px solid #a75a36;outline-offset:3px}
.ed138-readout{font:14px/1.6 var(--font-reading);min-height:55px;color:#354f5d;border-left:3px solid #b16a3f;padding:4px 0 4px 13px;margin:0}
.ed138-criteria{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid #aab1b2;border-bottom:1px solid #aab1b2}
.ed138-criteria>div{padding:21px 19px;border-right:1px solid #aab1b2;min-width:0}
.ed138-criteria>div:nth-child(even){border-right:0}
.ed138-criteria>div:nth-child(n+3){border-top:1px solid #aab1b2}
.ed138-criteria span{font:600 11px/1.5 var(--font-mono);text-transform:uppercase;color:#64747b;display:block;margin-bottom:8px}
.ed138-criteria strong{font:600 19px/1.3 var(--font-display);color:#193d50}
.ed138-criteria p{font:13px/1.6 var(--font-reading);color:#4d5c64;margin:8px 0 0}
.ed138-timeline{list-style:none;padding:0;margin:0;border-top:1px solid #a9afb0;counter-reset:phase}
.ed138-timeline li{display:grid;grid-template-columns:150px minmax(0,1fr);gap:24px;align-items:baseline;padding:17px 2px;border-bottom:1px solid #a9afb0}
.ed138-timeline time{font:600 12px/1.5 var(--font-mono);color:#9e5433}
.ed138-timeline p{margin:0;font:14px/1.65 var(--font-reading);color:#384e5b}
.ed138-qa{border-top:1px solid #a4acad}
.ed138-qa section{padding:18px 1px;border-bottom:1px solid #a4acad;display:grid;grid-template-columns:minmax(0,310px) minmax(0,1fr);gap:30px}
.ed138-qa h3{font:600 18px/1.35 var(--font-display);color:#173b51;margin:0}
.ed138-qa p{font:14px/1.65 var(--font-reading);color:#405461;margin:0}
.ed138-related{border-top:1px solid #a9b1b1}
.ed138-related a{display:flex;justify-content:space-between;gap:18px;align-items:baseline;border-bottom:1px solid #a9b1b1;padding:17px 3px;text-decoration:none;color:#14364d}
.ed138-related a:hover strong,.ed138-related a:focus-visible strong{text-decoration:underline;text-underline-offset:3px}
.ed138-related a strong{font:600 17px/1.4 var(--font-display)}
.ed138-related a span{font:12px/1.5 var(--font-mono);color:#596e78;max-width:47ch}
.ed138-source-footer{font:12px/1.7 var(--font-reading);color:#607079;max-width:95ch;margin:25px 0 0}
@media(max-width:700px){
 .ed138-lab-header{grid-template-columns:minmax(0,1fr);gap:8px}
 .ed138-primary-number{text-align:left}
 .ed138-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
 .ed138-facts>div:nth-child(3n){border-right:1px solid #b7b4ac}
 .ed138-facts>div:nth-child(even){border-right:0}
 .ed138-facts>div:nth-child(n+3){border-top:1px solid #b7b4ac}
 .ed138-qa section{grid-template-columns:1fr;gap:7px}
 .ed138-criteria{grid-template-columns:minmax(0,1fr)}
 .ed138-criteria>div{border-right:0;border-top:1px solid #aab1b2}
 .ed138-criteria>div:first-child{border-top:0}
 .ed138-timeline li{grid-template-columns:1fr;gap:3px}
 .ed138-related a{display:grid;gap:5px}
}
@media(max-width:460px){
 .ed138-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
 .ed138-presets button{font-size:10px;padding:8px 3px}
 .ed138-source-figure figcaption{padding:12px}
 #ed138SizeChart{min-height:150px}
 .ed138-facts>div{padding:13px 10px 16px}
}


/* GRAVITY LAB — one controlled experiment with a photographic NASA reference.
   No generic card grid; real-world quantities dominate the information hierarchy. */
.gl-intro .lead{max-width:82ch}
.gl-experiment-section{padding:20px 0 46px}
.gl-shell{border:1px solid #a8b4b8;background:#e7e7df;overflow:hidden}
.gl-topline{display:flex;justify-content:space-between;align-items:end;flex-wrap:wrap;gap:14px;padding:22px 24px 19px}
.gl-eyebrow{color:#9f4c31;font:700 10px/1.4 var(--font-data);letter-spacing:.13em}
.gl-topline h2{margin:5px 0 0;font:700 clamp(23px,3vw,34px)/1.12 var(--font-display);letter-spacing:-.024em}
.gl-rule{display:flex;gap:11px 20px;flex-wrap:wrap;font:600 11px/1.5 var(--font-data);color:#385165}
.gl-rule span{border-left:2px solid #b86542;padding-left:8px}
.gl-world-control{background:#f4f1eb;display:grid;grid-template-columns:auto minmax(175px,1fr) auto;align-items:center;gap:12px 18px;padding:16px 24px;border-top:1px solid #c2c8c7;border-bottom:1px solid #c2c8c7}
.gl-world-control label{font:700 13px var(--font-reading);color:#243949}
.gl-world-control select{width:100%;min-height:45px;padding:10px 12px;border:1px solid #849aa5;border-radius:0;background:white;color:#142938;font:600 14px var(--font-reading)}
.gl-world-readout{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;color:#263f50}
.gl-world-readout strong{font:700 19px var(--font-data)}
.gl-world-readout span{font:500 11px var(--font-reading)}
.gl-view{position:relative;height:clamp(400px,51vw,610px);background:#04101d;overflow:hidden;isolation:isolate}
.gl-view canvas{display:block;width:100%;height:100%;touch-action:none;outline-offset:-3px}
.gl-visual-fallback{position:absolute;inset:0;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center}
.gl-visual-fallback[hidden],.gl-hud[hidden]{display:none}
.gl-visual-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,13,25,.94),rgba(4,16,28,.62) 58%,rgba(3,13,25,.22)),linear-gradient(0deg,#071322 0%,transparent 28%)}
.gl-poster-copy{position:relative;z-index:1;color:#f0f5f5;max-width:670px;padding:0 38px;margin-right:auto}
.gl-poster-copy strong{display:block;margin-top:15px;font:700 clamp(27px,4vw,54px)/1.13 var(--font-display);letter-spacing:-.025em}
.gl-poster-copy p{font:400 15px/1.6 var(--font-reading);color:#cbd8df;max-width:48ch}
.gl-poster-copy button{margin-top:10px;padding:13px 23px;border:1px solid #d2b08b;color:#161b20;background:#ead1a3;font:700 13px var(--font-reading);cursor:pointer}
.gl-visual-fallback>p{position:absolute;left:22px;right:16px;bottom:8px;font:500 10px/1.4 var(--font-reading);color:#d8e1e2;z-index:1}
.gl-hud{position:absolute;inset:0;pointer-events:none;z-index:2;color:#edf5f8}
.gl-hud-corner{position:absolute;left:20px;top:18px;display:grid;gap:3px;text-shadow:0 1px 12px #020910}
.gl-hud-corner span{font:700 10px/1.4 var(--font-data);letter-spacing:.09em;color:#ccdce2}
.gl-hud-corner strong{font:700 32px/1.12 var(--font-data)}
.gl-reticle{position:absolute;left:50%;top:50%;width:7px;height:7px;border:1px solid #e5ebdf;opacity:.75;transform:translate(-50%,-50%);border-radius:50%;box-shadow:0 0 0 9px rgba(22,40,54,.13)}
.gl-image-note{position:absolute;bottom:18px;left:18px;font:700 9px/1.4 var(--font-data);letter-spacing:.1em;color:#dce7e7;text-shadow:0 1px 8px #02060a}
.gl-game-actions{position:absolute;bottom:16px;right:18px;display:flex;gap:7px;pointer-events:auto;align-items:end}
.gl-game-actions button{border:1px solid #afc1c4;background:rgba(5,21,36,.88);color:#f4f5ef;min-height:44px;padding:10px 14px;font:700 12px var(--font-reading);cursor:pointer}
.gl-game-actions button:first-child{background:#e5bd84;color:#202b34;border-color:#e5bd84;font-size:15px;min-width:115px}
.gl-game-actions #gravityLabJump{touch-action:none;-webkit-user-select:none;user-select:none}
.gl-game-actions button span{font-size:10px;margin-left:5px;opacity:.8}
/* Touch controls are capability-driven, not tied to <=650px: iPad landscape
   and hybrid devices commonly use desktop-size CSS viewports. */
.gl-joystick,.gl-look{display:none}
.gl-view.gl-touch-enabled .gl-joystick{display:block;position:absolute;z-index:3;bottom:calc(80px + env(safe-area-inset-bottom,0px));left:calc(12px + env(safe-area-inset-left,0px));width:clamp(116px,13vw,132px);height:clamp(116px,13vw,132px);border:2px solid rgba(229,237,240,.72);border-radius:50%;background:rgba(11,31,49,.72);pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none}
.gl-view.gl-touch-enabled .gl-joystick:before,.gl-view.gl-touch-enabled .gl-joystick:after{content:"";position:absolute;background:rgba(207,230,235,.3);pointer-events:none}
.gl-view.gl-touch-enabled .gl-joystick:before{height:1px;left:13px;right:13px;top:50%}
.gl-view.gl-touch-enabled .gl-joystick:after{width:1px;top:13px;bottom:13px;left:50%}
.gl-view.gl-touch-enabled .gl-joystick-thumb{display:block;position:absolute;left:calc(50% - 20px);top:calc(50% - 20px);width:40px;height:40px;border-radius:50%;background:#c8d9df;border:1px solid white;box-shadow:0 0 16px #071c2d;pointer-events:none}
.gl-view.gl-touch-enabled .gl-look{display:block;position:absolute;z-index:3;right:0;top:24%;bottom:85px;width:44%;pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none}
.gl-view.gl-touch-enabled .gl-look:before{content:'SWIPE TO LOOK';position:absolute;right:12px;top:10px;color:#edf7f8;background:rgba(6,24,40,.7);border:1px solid rgba(201,228,232,.4);padding:4px 8px;font:700 9px/1.4 var(--font-data);letter-spacing:.05em;pointer-events:none}
.gl-view.gl-touch-enabled .gl-game-actions{bottom:calc(16px + env(safe-area-inset-bottom,0px));right:calc(18px + env(safe-area-inset-right,0px))}
.gl-view.gl-touch-enabled .gl-game-actions button{min-height:48px}

.gl-instrument{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:#122f41;color:#f3f1e8}
.gl-instrument>div{display:grid;gap:7px;padding:18px 24px;border-right:1px solid #3d5869}
.gl-instrument>div:last-child{border-right:0}
.gl-instrument span{font:700 10px/1.3 var(--font-data);letter-spacing:.08em;color:#bacdd5}
.gl-instrument strong{font:700 clamp(17px,2vw,26px)/1.2 var(--font-data);font-variant-numeric:tabular-nums}
.gl-controls-help{padding:16px 24px;display:grid;gap:7px;background:#f4f1eb}
.gl-controls-help p{margin:0;color:#304b5c;font:400 12px/1.6 var(--font-reading)}
.gl-controls-help p:first-child{font-weight:700;color:#1c3545}
.gl-caveat{margin:0;padding:14px 24px;border-top:1px solid #c3c4bf;font:500 11px/1.6 var(--font-reading);color:#475867}
.gl-science{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.gl-science h3{font:700 23px/1.2 var(--font-display);margin:0 0 15px}
.gl-science p,.gl-evidence p{font:400 14px/1.75 var(--font-reading);color:#374b5c}
.gl-table{width:100%;border-collapse:collapse;font:500 13px/1.5 var(--font-reading);font-variant-numeric:tabular-nums}
.gl-table th{text-align:left;background:#e8e7df}
.gl-table th,.gl-table td{padding:10px 8px;border-bottom:1px solid #c0c9c9}
.gl-small{font-size:11px!important}
.gl-evidence{max-width:96ch}
.gl-evidence a{color:#1b5a76;text-decoration:underline;text-underline-offset:2px}
@media(max-width:800px){
 .gl-topline{align-items:start;padding:18px}
 .gl-world-control{grid-template-columns:1fr;padding:15px 18px;gap:8px}
 .gl-world-readout{gap:8px}
 .gl-science{grid-template-columns:1fr;gap:18px}
}
@media(max-width:650px){
 .gl-experiment-section{padding-top:12px}
 .gl-view{height:min(63dvh,530px);min-height:390px}
 .gl-poster-copy{padding:0 20px}
 .gl-poster-copy strong{font-size:clamp(26px,8vw,39px)}
 .gl-visual-fallback>p{font-size:9px;left:14px}
 .gl-topline{gap:10px}
 .gl-rule{gap:6px 12px;font-size:9px}
 .gl-hud-corner{top:10px;left:11px}
 .gl-hud-corner strong{font-size:24px}
 .gl-instrument>div{padding:12px 10px;gap:7px}
 .gl-instrument span{font-size:8px}
 .gl-instrument strong{font-size:13px}
 .gl-controls-help{padding:13px 15px}
 .gl-caveat{padding:13px 15px}
 .gl-game-actions{bottom:9px;right:9px;gap:5px}
 .gl-game-actions button{min-height:46px;padding:8px 9px;font-size:11px}
 .gl-game-actions button:first-child{min-width:78px;font-size:13px}
 .gl-game-actions button span{display:none}
 .gl-image-note{left:11px;top:90px;bottom:auto;font-size:8px;max-width:220px}
 .gl-view.gl-touch-enabled .gl-joystick{bottom:calc(78px + env(safe-area-inset-bottom,0px));left:11px;width:116px;height:116px}
 .gl-view.gl-touch-enabled .gl-game-actions{bottom:calc(9px + env(safe-area-inset-bottom,0px));right:9px}
 .gl-view.gl-touch-enabled .gl-look{bottom:85px}
}
@media(prefers-reduced-motion:reduce){.gl-joystick-thumb,.gl-view *{transition:none!important}}

.gl-caveat a{color:#1a5977;text-decoration:underline;text-underline-offset:2px}


/* Gravity Lab image-led world selector — NASA source art, not arbitrary spheres.
   All artwork in the selector is presented at equal display scale, never size scale. */
.gl-world-control{display:block;background:#071727;color:#edf4f5;border-top:1px solid #304757;border-bottom:1px solid #304757;padding:0}
.gl-world-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;padding:20px 24px 16px;border-bottom:1px solid rgba(188,213,229,.16)}
.gl-world-heading .gl-eyebrow{color:#dfbb90}
.gl-world-heading h3{margin:5px 0 3px;color:#f1f1e9;font:700 clamp(22px,2.8vw,31px)/1.1 var(--font-display)}
.gl-world-heading p{margin:0;font:400 12px/1.5 var(--font-reading);color:#bdcbd2}
.gl-world-native{display:flex;align-items:center;gap:9px;flex-shrink:0}
.gl-world-native label{color:#aebcc8;font:600 11px/1.2 var(--font-data)}
.gl-world-native select{background:#1c3345;color:#f4f2e9;border:1px solid #5f7886;padding:9px 10px;min-height:42px;width:min(188px,43vw);font:600 12px var(--font-reading);border-radius:2px}
.gl-world-feature{display:grid;grid-template-columns:190px minmax(0,1.2fr) minmax(175px,.85fr);gap:17px;align-items:center;padding:15px 24px;background:radial-gradient(circle at 15% 40%,#18344c 0,#0b1d30 42%,#071727 83%);border-bottom:1px solid rgba(169,191,211,.18)}
.gl-world-portrait{min-height:171px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.gl-world-portrait img{width:min(100%,156px);height:156px;object-fit:contain;filter:drop-shadow(0 5px 18px rgba(0,0,0,.2))}
.gl-world-portrait span{font:600 8px/1.3 var(--font-data);letter-spacing:.035em;text-align:center;color:#9ab0bf}
.gl-world-identity{min-width:0;display:flex;flex-direction:column;align-items:flex-start}
.gl-world-index{font:700 10px/1.5 var(--font-data);color:#e5bf92;letter-spacing:.09em}
.gl-world-identity>strong{color:#f8f4e9;font:700 clamp(34px,5vw,55px)/1.1 var(--font-display);letter-spacing:-.035em;margin:4px 0}
.gl-world-kind{color:#b8c8d3;font:700 9px/1.5 var(--font-data);letter-spacing:.05em}
.gl-world-force{display:flex;align-items:baseline;gap:9px;margin-top:15px}
.gl-world-force strong{font:700 23px/1 var(--font-data);color:#f5d1a0;font-variant-numeric:tabular-nums}
.gl-world-force span{font:500 12px var(--font-reading);color:#c4d0d6}
.gl-world-force-track{position:relative;height:5px;background:#31495a;width:min(100%,270px);margin-top:9px;overflow:visible}
.gl-world-force-track>span{display:block;height:100%;background:#e7be8e;transition:width 360ms ease}
.gl-world-force-track>i{position:absolute;top:-4px;bottom:-4px;left:42.42%;border-left:1px dashed #e5f0ef;opacity:.7;pointer-events:none}
.gl-world-data{border-left:1px solid #395668;padding-left:17px;display:flex;flex-direction:column;gap:7px;align-self:stretch;justify-content:center}
.gl-world-data>span,.gl-world-prediction>span{color:#afc0cc;font:700 9px/1.4 var(--font-data);letter-spacing:.08em}
.gl-world-data .gl-world-readout{display:flex;align-items:flex-start;flex-direction:column;gap:2px;color:#f1f0e9}
.gl-world-data .gl-world-readout strong{font:700 21px/1.3 var(--font-data);color:#f5f3eb}
.gl-world-data .gl-world-readout span{font:500 11px/1.35 var(--font-reading);color:#bfcfdb}
.gl-world-prediction{display:flex;flex-direction:column;gap:5px;margin-top:10px}
.gl-world-prediction>strong{font:700 18px/1.2 var(--font-data);color:#f2c99a;white-space:nowrap}
.gl-world-rail-header{display:flex;justify-content:space-between;gap:10px;padding:14px 24px 7px;color:#b0c1cb;font:700 9px/1.5 var(--font-data);letter-spacing:.09em}
.gl-world-rail-layout{display:grid;grid-template-columns:36px minmax(0,1fr) 36px;align-items:stretch;gap:7px;padding:0 14px 7px}
.gl-world-rail-arrow{border:1px solid #385065;background:transparent;color:#ecf1ed;min-width:36px;font-size:25px;cursor:pointer}
.gl-world-rail-arrow:disabled{color:#718797;border-color:#243e51;opacity:.56;cursor:default}
.gl-world-rail-arrow:not(:disabled):hover,.gl-world-rail-arrow:not(:disabled):focus-visible{background:#27465e}
.gl-world-rail{position:relative;min-width:0;display:flex;gap:9px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;scrollbar-width:thin;scrollbar-color:#768e9e #193047;padding:2px 0 10px;touch-action:pan-x}
.gl-world-tile{position:relative;flex:0 0 137px;min-width:0;display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;scroll-snap-align:center;cursor:pointer;padding:8px 6px 12px;border:1px solid #395364;background:#0d2337;color:#e6eef0;transition:background-color 200ms ease,border-color 200ms ease,box-shadow 200ms ease,transform 200ms ease}
.gl-world-tile img{display:block;width:99px;height:99px;object-fit:contain}
.gl-world-tile strong{font:700 14px/1.22 var(--font-display)}
.gl-world-tile>span:not(.gl-world-tile-bar){font:600 10px/1.3 var(--font-data);color:#b4c6cf}
.gl-world-tile-bar{width:calc(100% - 14px);height:3px;display:block;background:linear-gradient(to right,#e3bc8d var(--gravity-fill),#385165 var(--gravity-fill));margin-top:5px}
.gl-world-tile[aria-pressed="true"]{background:#19394d;border-color:#f0cb94;box-shadow:inset 0 0 0 1px #d7b788}
.gl-world-tile[aria-pressed="true"]:after{content:"";position:absolute;bottom:0;left:20%;right:20%;height:3px;background:#f4c895}
.gl-world-tile:not([aria-pressed="true"]):hover{transform:translateY(-2px);border-color:#a3c0cf;background:#173249}
.gl-world-tile:focus-visible{outline:3px solid #f6d7a4;outline-offset:-3px}
.gl-world-rail-note{margin:0;padding:4px 24px 15px;color:#b3c0cb;font:400 10px/1.5 var(--font-reading)}
.gl-world-rail-note span{margin:0 5px;color:#627c8f}
@media(max-width:900px){
 .gl-world-feature{grid-template-columns:145px minmax(0,1fr) minmax(170px,.95fr);gap:12px;padding:14px 16px}
 .gl-world-portrait{min-height:146px}
 .gl-world-portrait img{width:132px;height:132px}
 .gl-world-data{padding-left:12px}
 .gl-world-data .gl-world-readout strong{font-size:18px}
}
@media(max-width:650px){
 .gl-world-heading{padding:15px 13px 12px;align-items:flex-start;flex-wrap:wrap;gap:9px}
 .gl-world-heading h3{font-size:24px}
 .gl-world-heading p{font-size:11px}
 .gl-world-native{width:100%;justify-content:space-between}
 .gl-world-native select{width:185px;max-width:65%}
 .gl-world-feature{grid-template-columns:112px minmax(0,1fr);gap:7px 13px;padding:10px 13px}
 .gl-world-portrait{min-height:119px}
 .gl-world-portrait img{width:112px;height:112px}
 .gl-world-portrait span{font-size:7px}
 .gl-world-index{font-size:9px}
 .gl-world-identity>strong{font-size:33px}
 .gl-world-kind{font-size:8px}
 .gl-world-force{margin-top:8px;gap:6px}
 .gl-world-force strong{font-size:18px}
 .gl-world-force span{font-size:10px}
 .gl-world-data{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between;gap:8px;padding:10px 0 0;border-left:0;border-top:1px solid #3a5364}
 .gl-world-data>span{display:none}
 .gl-world-data .gl-world-readout strong{font-size:17px}
 .gl-world-data .gl-world-readout span{font-size:10px}
 .gl-world-prediction{margin-top:0;text-align:right}
 .gl-world-prediction>strong{font-size:13px}
 .gl-world-rail-header{padding:12px 12px 6px;font-size:8px}
 .gl-world-rail-layout{grid-template-columns:29px minmax(0,1fr) 29px;gap:4px;padding:0 6px 6px}
 .gl-world-rail-arrow{min-width:29px;font-size:22px}
 .gl-world-rail{gap:7px}
 .gl-world-tile{flex-basis:113px;padding:5px 4px 9px}
 .gl-world-tile img{width:79px;height:79px}
 .gl-world-tile strong{font-size:13px}
 .gl-world-tile>span:not(.gl-world-tile-bar){font-size:9px}
 .gl-world-rail-note{padding:3px 12px 12px;font-size:9px}
}
@media(prefers-reduced-motion:reduce){
 .gl-world-tile,.gl-world-force-track>span{transition:none!important}
 .gl-world-tile:not([aria-pressed="true"]):hover{transform:none}
}

#gravityLabSelector{scroll-margin-top:125px}

.gl-world-portrait a{color:#d8e5e7;font:500 9px/1.4 var(--font-reading);text-decoration:underline;text-underline-offset:2px;text-align:center}
@media(max-width:650px){.gl-world-portrait a{font-size:8px}}


/* Gravity Flight Trials — optional assisted game mode; the unboosted lab
   remains the control condition. Architectural UI, not a fake NASA surface. */
.gl-mode-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));background:#122d40;border-top:1px solid #3b5664}
.gl-mode-switch button{display:flex;flex-direction:column;align-items:flex-start;gap:5px;text-align:left;border:0;border-right:1px solid #385467;border-bottom:3px solid transparent;background:transparent;color:#b9ccd4;min-height:74px;padding:13px 24px;cursor:pointer}
.gl-mode-switch button:last-child{border-right:0}
.gl-mode-switch button[aria-pressed="true"]{background:#234354;border-bottom-color:#f1c18b;color:#f9f4e6}
.gl-mode-switch button span{font:700 9px/1.3 var(--font-data);letter-spacing:.08em}
.gl-mode-switch button strong{font:700 clamp(17px,2vw,22px)/1.2 var(--font-display)}
.gl-mode-switch button:focus-visible{outline:3px solid #f8d5a5;outline-offset:-3px}
.gl-mode-explainer{padding:10px 24px;margin:0;background:#e6e9e6;color:#2a4959;font:500 12px/1.5 var(--font-reading)}
.gl-trial-brief{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;align-items:center;padding:19px 24px;background:#0a1b2e;color:#f1f1e9;border-top:1px solid #4d6677}
.gl-trial-brief[hidden],.gl-flight-hud[hidden],.gl-trial-result[hidden],#gravityLabBoost[hidden]{display:none!important}
.gl-trial-brief h3{margin:5px 0;color:#f6e1c3;font:700 clamp(22px,2.6vw,29px)/1.15 var(--font-display)}
.gl-trial-brief p{margin:5px 0 0;font:400 12px/1.65 var(--font-reading);color:#c1d0d9}
.gl-trial-brief>div:last-child{padding:13px 17px;border-left:2px solid #f0bd80;background:#173347}
.gl-trial-brief>div:last-child>strong{font:700 10px/1.4 var(--font-data);color:#f4c691}
.gl-flight-hud{position:absolute;top:18px;right:18px;padding:11px 14px;background:rgba(4,19,33,.89);border:1px solid #6d92a3;min-width:180px;max-width:45%;font:600 10px/1.5 var(--font-data)}
.gl-flight-hud>span{display:block;letter-spacing:.045em}
.gl-flight-hud>span:last-child{color:#b9d1dd;margin-top:6px}
.gl-flight-boost-label{display:flex;justify-content:space-between;gap:7px;margin:9px 0 5px}
.gl-flight-boost-label strong{color:#ffd397}
.gl-flight-energy{height:9px;border:1px solid #97adb5;background:#183448;overflow:hidden}
.gl-flight-energy span{display:block;height:100%;background:linear-gradient(90deg,#e8b073,#f5d49f);transition:width .08s linear}
.gl-game-actions #gravityLabBoost{touch-action:none;-webkit-user-select:none;user-select:none;background:#3b6c84;border-color:#a9dae6;color:#f3f8f8;min-width:110px}
.gl-game-actions #gravityLabBoost:active{background:#f3bd80;color:#122d40}
.gl-game-actions #gravityLabBoost:disabled{opacity:.5;cursor:not-allowed}
.gl-trial-result{margin:0;padding:13px 24px;background:#e6dbc9;border-top:2px solid #bd8c58;color:#203c49;font:700 13px/1.5 var(--font-reading)}
.gl-science-boundary{max-width:98ch;border-left:3px solid #bc8054;padding:11px 15px;background:#e9e5da;color:#304a5e;font:500 13px/1.7 var(--font-reading)}
@media(max-width:650px){
 .gl-mode-switch button{padding:12px 13px;min-height:68px}
 .gl-mode-switch button span{font-size:8px}
 .gl-mode-switch button strong{font-size:18px}
 .gl-mode-explainer{padding:9px 13px;font-size:11px}
 .gl-trial-brief{grid-template-columns:1fr;padding:14px 13px;gap:12px}
 .gl-trial-brief>div:last-child{padding:10px}
 .gl-flight-hud{right:8px;top:8px;padding:7px 9px;min-width:132px;max-width:58%;font-size:8px}
 .gl-hud-corner:has(~ .gl-flight-hud:not([hidden])){top:9px;left:9px}
 .gl-hud-corner strong{font-size:21px}
 .gl-game-actions #gravityLabBoost{min-width:67px}
 .gl-trial-result{padding:12px 13px;font-size:11px}
 .gl-image-note:has(~ .gl-game-actions #gravityLabBoost:not([hidden])){display:none}
}
@media(prefers-reduced-motion:reduce){.gl-flight-energy span{transition:none}}

.gl-instrument-note{margin:0;padding:10px 24px;background:#e8d9c1;color:#3a4651;font:700 10px/1.5 var(--font-data);letter-spacing:.04em}
.gl-instrument-note[hidden]{display:none}
@media(max-width:650px){.gl-instrument-note{padding:9px 12px;font-size:9px}}


/* 2026 Flight Trials simplified selection and earned game feedback.
   Light language: science cyan for checkpoints, copper-gold for stage clear.
   Reference vocabulary: luminous portal rim + restrained particle radial burst. */
.gl-world-compact-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 24px 9px;border-bottom:1px solid rgba(188,213,229,.14)}
.gl-world-compact-head>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.gl-world-compact-head>div:first-child strong{font:700 27px/1.1 var(--font-display);color:#f6f3e8}
.gl-world-compact-head>div:first-child>span:last-child{font:600 9px/1.5 var(--font-data);color:#b6c8d2}
.gl-world-compact-head>div:last-child{text-align:right;align-items:flex-end;color:#b5cbd8;font:500 11px/1.4 var(--font-reading)}
.gl-world-compact-head>div:last-child>strong{font:700 21px/1.2 var(--font-data);color:#f4ca98}
.gl-world-compact-head>div:last-child>span>strong{color:#f4e3c7}
.gl-world-compact .gl-world-rail-layout{padding-top:10px}
.gl-world-compact .gl-world-rail-note a{color:#f0c78e;text-decoration:underline;text-underline-offset:2px}
.gl-world-compact .gl-world-rail-note{font-size:10px}
.gl-game-actions #gravityLabJump{min-width:132px;touch-action:none}
.gl-reward{position:absolute;z-index:5;top:31%;left:50%;width:min(76%,430px);transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:7px;pointer-events:none;text-align:center;color:#e6fbff;text-shadow:0 2px 18px #06131f}
.gl-reward[hidden]{display:none}
.gl-reward-copy{position:relative;z-index:1;display:flex;flex-direction:column;gap:5px;padding:18px 18px;background:radial-gradient(ellipse at center,rgba(15,54,73,.84),rgba(3,18,31,.68) 75%,transparent);border-top:1px solid rgba(148,235,249,.7);border-bottom:1px solid rgba(148,235,249,.35);width:100%}
.gl-reward-copy>span:first-child{font:700 10px/1.3 var(--font-data);letter-spacing:.18em;color:#a8f0f8}
.gl-reward-copy strong{font:700 clamp(27px,4vw,43px)/1.08 var(--font-display);color:#f5ffff;letter-spacing:.03em}
.gl-reward-copy>span:last-child{font:600 10px/1.5 var(--font-data);letter-spacing:.11em;color:#d6f1f2}
.gl-reward-ring{position:absolute;inset:50% auto auto 50%;width:175px;height:175px;border-radius:50%;border:2px solid #b0f3ff;box-shadow:0 0 27px #62d8ee, inset 0 0 20px #3d8b9b;transform:translate(-50%,-50%);opacity:.6}
.gl-reward.is-finish .gl-reward-ring{border-color:#ffd799;box-shadow:0 0 40px #e6a95e,inset 0 0 20px #ac7135}
.gl-reward.is-finish .gl-reward-copy{border-color:rgba(255,208,126,.9);background:radial-gradient(ellipse at center,rgba(85,51,24,.94),rgba(25,27,30,.85) 75%,transparent)}
.gl-reward.is-finish .gl-reward-copy>span:first-child{color:#ffd899}
.gl-reward.is-finish .gl-reward-copy strong{color:#ffe5b7}
#gravityLabNextLevel{position:relative;z-index:3;pointer-events:auto;border:1px solid #ffe0a7;background:#f1c487;color:#1e2932;min-height:45px;padding:10px 19px;font:700 13px var(--font-reading);cursor:pointer}
#gravityLabNextLevel[hidden]{display:none}
.gl-reward.is-celebrating .gl-reward-ring{animation:gl-checkpoint-ring 870ms cubic-bezier(.14,.67,.1,1) both}
.gl-reward.is-celebrating .gl-reward-copy{animation:gl-checkpoint-copy 380ms ease-out both}
@keyframes gl-checkpoint-ring{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}45%{opacity:.9}100%{opacity:.48;transform:translate(-50%,-50%) scale(1.6)}}
@keyframes gl-checkpoint-copy{0%{opacity:0;transform:translateY(9px)}100%{opacity:1;transform:translateY(0)}}
@media(max-width:650px){
 .gl-world-compact-head{padding:12px 11px 8px;gap:7px}
 .gl-world-compact-head>div:first-child strong{font-size:23px}
 .gl-world-compact-head>div:last-child>strong{font-size:17px}
 .gl-world-compact-head>div:last-child{font-size:9px}
 .gl-world-compact-head>div:first-child>span:last-child{font-size:7px}
 .gl-game-actions #gravityLabJump{min-width:94px;font-size:14px}
 .gl-reward{top:35%;width:min(89%,340px)}
 .gl-reward-copy{padding:12px 10px}
 .gl-reward-copy strong{font-size:26px}
 .gl-reward-copy>span:first-child,.gl-reward-copy>span:last-child{font-size:8px}
 .gl-reward-ring{width:128px;height:128px}
}
@media(prefers-reduced-motion:reduce){.gl-reward *{animation:none!important;transition:none!important}}

.gl-view[data-mode="flight"] .gl-image-note{display:none}
.gl-view[data-mode="flight"] #gravityLabJump:active{background:#f5d9a8;color:#1a2931}


/* Mobile action/result proximity: lunar phase and tidal lock playback above
   their active visualizations, not after a tall canvas and sliders. */
.lock-stage-actions,.phase-stage-actions{padding:10px 17px;background:#173448;border-bottom:1px solid #486275;display:flex;justify-content:flex-end}
.lock-stage-actions button,.phase-stage-actions button{min-height:44px;padding:9px 15px;background:#153c54;border:1px solid #a1b8c3;color:#fff;font:600 12px/1.4 var(--font-reading);cursor:pointer}
.lock-stage-actions button[aria-pressed="true"],.phase-stage-actions button[aria-pressed="true"]{background:#a35435;border-color:#e3b087}
.lock-stage-actions button:focus-visible,.phase-stage-actions button:focus-visible{outline:3px solid #f3cd9c;outline-offset:2px}
.lock-stage-actions button:disabled,.phase-stage-actions button:disabled{opacity:.55;cursor:not-allowed}
.phase-transport-note{margin:12px 0 8px;font-size:13px;line-height:1.55;color:#53616b}
@media(max-width:620px){
 .lock-stage-actions,.phase-stage-actions{padding:8px 12px}
 .lock-stage-actions button,.phase-stage-actions button{width:100%;padding:9px 11px}
 .phase-transport-note{font-size:12px}
}


/* Mobile learning controls: essential action + variables are always visible.
   Secondary camera tools are explicitly disclosed, never hidden in an
   unlabeled horizontal strip. The real labels and live values stay together. */
.atlas-feedback-dock{display:none}
@media(max-width:620px){
 .atlas-feedback-dock:not([hidden]){
  display:block;min-width:0;padding:8px 9px 6px;background:#102b3e;
  border:1px solid #526c79;border-bottom:0;color:#f2f4ee;
  scroll-margin-top:126px;
 }
 .atlas-feedback-main{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;align-items:stretch}
 .atlas-feedback-item{min-width:0}
 .atlas-feedback-item.is-action{display:flex}
 .atlas-feedback-item.is-action button{width:100%;min-width:0;min-height:44px;
  justify-content:center;align-items:center;white-space:normal;
  padding:7px 9px;background:#255068;color:#fff;border:1px solid #93b5c4;
  font:600 11px/1.3 var(--font-reading);cursor:pointer}
 .atlas-feedback-item.is-action button[aria-pressed=true],
 .atlas-feedback-item.is-action button.active{background:#ad5737;border-color:#f1b887}
 .atlas-feedback-item.is-action button:disabled{opacity:.55;cursor:not-allowed}
 .atlas-feedback-main:has(>.is-field)>.is-action:first-child{grid-column:1/-1}
 .atlas-feedback-item.is-field{display:flex;flex-direction:column;gap:3px;
  align-items:stretch;justify-content:space-between;padding:6px 7px 4px;
  background:#1b3c4d;border:1px solid #476474;min-height:60px}
 .atlas-feedback-item.is-field label{min-width:0;font:600 10px/1.25 var(--font-reading);
  color:#eff2ec;overflow-wrap:anywhere}
 .atlas-feedback-item.is-field output,
 .atlas-feedback-item.is-field label strong{color:#f5cd94;font-weight:700}
 .atlas-feedback-item.is-field input[type=range]{width:100%;min-width:0;
  height:26px;accent-color:#eac28b;margin:0}
 .atlas-feedback-item.is-field select{width:100%;min-width:0;min-height:36px;
  background:#eef2eb;color:#133245;border:1px solid #8da8b6;font-size:11px}
 .atlas-feedback-main>.is-field:only-child{grid-column:1/-1;min-height:45px;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(118px,46%);
  gap:8px;align-items:center}
 .atlas-feedback-main>.is-field:only-child input[type=range]{height:32px}
 .atlas-feedback-details{margin-top:7px;border-top:1px solid #557182}
 .atlas-feedback-details[hidden]{display:none}
 .atlas-feedback-details>summary{list-style:none;display:flex;align-items:center;
  justify-content:space-between;min-height:37px;padding:7px 9px;
  cursor:pointer;color:#f8e0b8;background:#203d50;font:600 11px/1.3 var(--font-reading)}
 .atlas-feedback-details>summary::-webkit-details-marker{display:none}
 .atlas-feedback-details>summary:after{content:'+';font-size:17px;line-height:1}
 .atlas-feedback-details[open]>summary:after{content:'−'}
 .atlas-feedback-extra{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;padding:8px 0 4px;max-height:min(33dvh,180px);overflow-y:auto}
 .atlas-feedback-extra .atlas-feedback-item.is-field{grid-column:1/-1}
 .atlas-feedback-dock button:focus-visible,
 .atlas-feedback-dock summary:focus-visible,
 .atlas-feedback-dock input:focus-visible,
 .atlas-feedback-dock select:focus-visible{outline:3px solid #ffd299;outline-offset:2px}
 .atlas-feedback-dock+*{scroll-margin-top:126px}
}


/* Desktop: only the eight observed action/scene separation cases use a
   scene-adjacent task bar. Other lesson toolbars retain their own layouts. */
@media(min-width:621px){
 .atlas-feedback-dock:not([hidden]){display:flex;align-items:flex-start;gap:15px;
   padding:12px 17px;background:#142c3c;color:#fff;
   border:1px solid #537183;border-bottom:0}
 .atlas-feedback-main{display:flex;flex-wrap:wrap;align-items:center;gap:10px;
   flex:1;min-width:0}
 .atlas-feedback-item{min-width:0}
 .atlas-feedback-item.is-action button{min-height:44px;padding:9px 15px;max-width:280px;
   color:#f8f9f7;background:#235069;border:1px solid #8cadbb;
   font:600 12px/1.35 var(--font-reading);cursor:pointer}
 .atlas-feedback-item.is-action button[aria-pressed=true],
 .atlas-feedback-item.is-action button.active{background:#ac5537;border-color:#ecc08b}
 .atlas-feedback-item.is-field{display:flex;align-items:center;gap:12px;
   padding:5px 9px;color:#f1f2ef;font:600 12px var(--font-reading);
   background:#214154;border:1px solid #527080}
 .atlas-feedback-item.is-field label{color:#f1f2ef;max-width:240px}
 .atlas-feedback-item.is-field input[type=range]{width:clamp(120px,13vw,200px);accent-color:#f1c591}
 .atlas-feedback-item.is-field select{min-height:40px;max-width:200px}
 .atlas-feedback-details{min-width:140px;max-width:310px;border-left:1px solid #536c7b;padding-left:12px}
 .atlas-feedback-details[hidden]{display:none}
 .atlas-feedback-details>summary{cursor:pointer;min-height:44px;display:flex;
   align-items:center;color:#fad5a0;font:600 12px var(--font-reading)}
 .atlas-feedback-extra{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px 0}
 .atlas-feedback-extra .is-field{grid-column:span 2}
 .atlas-feedback-dock button:focus-visible,.atlas-feedback-dock summary:focus-visible,
 .atlas-feedback-dock input:focus-visible{outline:3px solid #ffd99e;outline-offset:2px}
}


/* Touch target quality: explicit minimums for interactive navigation outside
   the dedicated experiment control panels. Preserve the position/scale of
   decorative cosmic ruler stop markers; the nearby zoom navigation remains
   the accessible alternative to the small numbered markers. */
@media(max-width:620px){
 .scene-controls>div:first-child button,.planet-quick-bar button,
 .zoom-nav button,.emscale-toolbar button,.au-picker button,
 .gravity-scenarios button,.ptype-controls button,
 .planet-rule-picker button{min-height:44px;min-width:44px;
   display:inline-flex;align-items:center;justify-content:center;
   white-space:normal;line-height:1.3}
 .scene-controls,.planet-quick-bar,.au-picker,.planet-rule-picker{
   gap:6px}
 .planet-quick-bar{overflow-x:auto;overscroll-behavior-inline:contain;
   scroll-snap-type:x proximity;scrollbar-width:thin}
 .planet-quick-bar button{scroll-snap-align:start;flex-shrink:0}
 .zoom-nav button{padding:8px 12px}
}

/* On wide touch tablets the homepage 3D solar-system controls must also
   remain finger-sized; the existing phone-only rule does not cover iPads. */
@media (any-pointer: coarse), (pointer: coarse){
 .scene-controls>div:first-child button,.planet-quick-bar button{
  min-height:44px;min-width:44px;display:inline-flex;align-items:center;
  justify-content:center;line-height:1.3}
}

/* Longer scientific control labels get enough room for accurate terminology. */
@media(max-width:620px){
 .atlas-feedback-main>.atlas-feedback-item.is-wide-label{grid-column:1/-1;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(112px,45%);
  align-items:center;min-height:45px}
 .atlas-feedback-main>.atlas-feedback-item.is-wide-label input[type=range]{height:32px}
 .atlas-feedback-item.is-field output{color:#f4d39d;font-variant-numeric:tabular-nums;
  white-space:nowrap;font-weight:700}
}

/* One action followed by one experiment variable is one sequential task,
   not two half-width cards; give the value and slider an honest line. */
@media(max-width:620px){
 .atlas-feedback-main:has(>.is-action:first-child:nth-last-child(2))
  >.is-field:last-child{grid-column:1/-1;display:grid;
   grid-template-columns:minmax(0,1fr) minmax(112px,45%);
   gap:8px;align-items:center;min-height:45px}
 .atlas-feedback-main:has(>.is-action:first-child:nth-last-child(2))
  >.is-field:last-child input[type=range]{height:32px}
}

/* Light-year's live progress label and percentage must never be crushed
   into an unreadable half-column on narrow phones. */
@media(max-width:620px){
 .atlas-feedback-main:has(#lyPhotonSlider)>.atlas-feedback-item.is-field{
  display:flex;flex-direction:column;align-items:stretch;gap:3px;min-height:56px}
 .atlas-feedback-main:has(#lyPhotonSlider) .ly-journey-slider-label{
  width:100%;max-width:none;display:flex;flex-direction:row;
  justify-content:space-between;align-items:baseline;gap:6px;
  overflow-wrap:normal;word-break:normal;line-height:1.25;margin:0;
  font-size:11px}
 .atlas-feedback-main:has(#lyPhotonSlider) .ly-journey-slider-label output{
  font-size:13px;white-space:nowrap}
 .atlas-feedback-main:has(#lyPhotonSlider) #lyPhotonSlider{width:100%;height:28px}
}

/* Educational task sequence: command + current value + live visual first.
   Explanation follows, rather than hiding the visual consequence offscreen. */
.diameter-lens-scrub{padding:9px 12px 8px;background:#17354a;border-bottom:1px solid #446173}
.diameter-lens-scrub .diameter-lens-label{color:#f1f3ef;font-size:11px;margin:0 0 3px}
.diameter-lens-scrub .diameter-lens-label output{color:#f4d5a0}
.diameter-lens-scrub #diameterLensProgress{display:block;width:100%;min-height:32px;margin:0}
.distance-guided-explanation{padding:8px 0 0}
@media(max-width:620px){
 .diameter-lens-scrub{padding:6px 9px}
 .diameter-lens-scrub #diameterLensProgress{min-height:28px}
 .ed138-lab-controls{margin:9px 0;gap:9px}
}


/* At 320px the detailed SVG labels become illegible. Preserve the desktop
   scientific SVG; use readable, synced proportional comparison bars on phone. */
.ed138-mobile-chart{display:none}
@media(max-width:460px){
 #ed138SizeChart{display:none}
 .ed138-mobile-chart{display:grid;gap:14px;padding:14px 12px;
  color:#eef1ed;background:#102533;border:1px solid #365261}
 .ed138-mobile-row{display:grid;gap:6px}
 .ed138-mobile-name{display:flex;justify-content:space-between;align-items:baseline;
  gap:8px;font:600 12px/1.3 var(--font-reading)}
 .ed138-mobile-name output,.ed138-mobile-name strong{white-space:nowrap;
  font:700 13px/1.3 var(--font-data);color:#f0cb9e}
 .ed138-mobile-row:nth-child(2) .ed138-mobile-name strong{color:#aed6e5}
 .ed138-mobile-track{height:15px;background:#284551;border-radius:2px}
 .ed138-mobile-track>span{height:100%;display:block;background:#e6b986;border-radius:2px}
 .ed138-mobile-track .ed138-pluto-full{width:100%;background:#80b7c9}
 .ed138-mobile-chart p{font:11px/1.5 var(--font-reading);color:#c0cfd1;margin:0}
}

/* Disabled core steps stay in the task bar so their place in a sequence is
   discoverable; the model re-enables them without a remount or cloned node. */
.atlas-feedback-main button:disabled{
 opacity:.52;cursor:not-allowed;
}

/* Moon Orbit Catcher — purpose-built arcade-like learning cockpit; zero new libraries. */
.moon-missions-section{padding:35px 0 54px}
.moon-mission-lab{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);background:#101f2b;border:1px solid #536e80;color:#eff4f6;overflow:hidden}
.moon-mission-heading{padding:30px clamp(18px,2.9vw,38px);border-right:1px solid #4a6575}
.moon-mission-index{margin:0 0 12px;color:#f3c78d;font:650 11px/1.5 var(--font-data);letter-spacing:.09em;text-transform:uppercase}
.moon-mission-heading h2{font:600 clamp(28px,3.1vw,43px)/1.1 var(--font-display);letter-spacing:-.02em;color:#fff2d8;margin:0 0 16px}
.moon-mission-heading>p:not(.moon-mission-index){color:#d4e2e9;font:400 15px/1.7 var(--font-reading);margin:0 0 20px}
.moon-mission-heading button,.moon-mission-actions button,.moon-mission-flight button,.moon-mission-toolbar button{
 min-height:44px;border-radius:3px;border:1px solid #c3d3dd;background:#e5ecee;color:#172c36;
 font:650 14px/1.3 var(--font-reading);padding:9px 12px;cursor:pointer}
.moon-mission-heading button{background:#f2d4a6;border-color:#f2d4a6}
.moon-mission-heading button:hover,.moon-mission-flight button:hover:not(:disabled),.moon-mission-toolbar button:hover:not(:disabled){filter:brightness(1.12)}
.moon-mission-lab button:focus-visible,.moon-mission-lab summary:focus-visible,.moon-mission-lab input:focus-visible,
.moon-mission-lab svg:focus-visible,.moon-mission-lab a:focus-visible{outline:3px solid #ffcd83;outline-offset:3px}
.moon-mission-lab button,.moon-mission-lab input,.moon-mission-lab summary,.moon-mission-play{scroll-margin-top:135px}
.moon-mission-lab [hidden],.moon-mission-entry[hidden]{display:none!important}
.moon-mission-play{padding:20px clamp(17px,2.8vw,32px);min-width:0;display:grid;gap:11px;align-content:start}
.moon-mission-progress{margin:0 0 5px;font:650 12px/1.25 var(--font-data);letter-spacing:.065em;text-transform:uppercase;color:#f0c186}
.moon-mission-task h3{font:600 clamp(20px,2.2vw,26px)/1.24 var(--font-display);margin:0 0 5px;color:#fff1d8}
.moon-mission-task>p:last-child{margin:0;color:#d2e0e9;font:400 13px/1.48 var(--font-reading)}
.moon-mission-stage{position:relative;background:radial-gradient(ellipse at 58% 44%,#173548 0%,#0b1621 75%);border:1px solid #365870}
.moon-mission-arena{display:block;width:100%;max-height:240px;aspect-ratio:420/242;touch-action:none;cursor:grab}
.moon-mission-arena:active{cursor:grabbing}
.moon-mission-label{font:650 10px var(--font-data);letter-spacing:.06em;fill:#bad3dd}
#moonMissionOrbiter{filter:drop-shadow(0 0 5px #e6ca98);will-change:transform}
#moonMissionTargetArc{filter:drop-shadow(0 0 5px #e8c67e)}
#moonMissionGoal.is-near{fill:#edce91;fill-opacity:.25;stroke-width:3}
.moon-mission-radar{position:absolute;right:11px;top:10px;display:flex;gap:7px;align-items:center;font:600 10px/1.3 var(--font-data);letter-spacing:.04em;color:#c9dbdf;pointer-events:none}
.moon-mission-signal{display:flex;gap:3px}
.moon-mission-signal i{width:5px;height:8px;background:#425a65;transform:skew(-12deg)}
.moon-mission-signal.is-near i{background:#f3cd8b}
.moon-mission-signal.is-near i:nth-child(3),.moon-mission-signal.is-near i:nth-child(4){background:#f8e4b7}
.moon-mission-views{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.moon-mission-views figure{display:flex;align-items:center;justify-content:center;gap:12px;min-width:0;
 border:1px solid #476071;background:#0b1721;margin:0;padding:6px 10px}
.moon-mission-views canvas{display:block;width:70px;height:70px;flex:0 0 auto;max-width:35%;border-radius:50%;background:#0c111a}
.moon-mission-views figcaption{font:650 13px/1.3 var(--font-reading);color:#f7e9c7;min-width:0}
.moon-mission-views output{display:block;font:550 11px/1.5 var(--font-data);color:#c1dce7;margin-top:4px}
.moon-mission-controls{display:grid;gap:8px}
.moon-mission-flight{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) minmax(0,1fr);gap:7px}
.moon-mission-flight .moon-mission-capture{background:#f3c780;color:#19252d;border-color:#f3c780;font-size:16px;font-weight:800}
.moon-mission-flight .moon-mission-steer{background:#315569;border-color:#809caa;color:#f5f7f6;font-size:13px}
.moon-mission-flight .moon-mission-steer.is-held{background:#5b93a4;border-color:#f1d9ae}
.moon-mission-flight button:disabled{opacity:.6}
.moon-mission-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.moon-mission-toolbar output{color:#cde2e9;font:600 12px/1.4 var(--font-data);margin-right:auto}
.moon-mission-toolbar button{min-height:34px;padding:6px 11px;font-size:12px;background:transparent;color:#f4ede1;border-color:#7493a4}
.moon-mission-toolbar #moonMissionNext,.moon-mission-toolbar #moonMissionRestart{background:#bfe6d1;color:#10342e;border-color:#bfe6d1}
.moon-mission-precision{border-top:1px solid #365364;padding-top:7px;margin-top:1px}
.moon-mission-precision summary{cursor:pointer;font:600 12px/1.5 var(--font-reading);color:#d1e3e9;padding:5px 0}
.moon-mission-precision label{display:block;font:400 12px/1.3 var(--font-reading);color:#d1e3e9;margin:4px 0}
.moon-mission-precision input{width:100%;min-height:34px;accent-color:#ecc080}
.moon-mission-precision p{margin:0;font:12px/1.4 var(--font-reading);color:#c6d6de}
.moon-mission-feedback{margin:0;min-height:25px;font:550 13px/1.5 var(--font-reading);color:#f1e5c9}
.moon-mission-routes{border-top:1px solid #476273;display:grid;gap:5px;padding-top:8px}
.moon-mission-routes p{margin:0;font:13px/1.55 var(--font-reading);color:#d5e1ea}
.moon-mission-routes a,.moon-mission-source a{color:#ffdfa7;text-underline-offset:3px}
.moon-mission-routes a{font:650 13px/1.4 var(--font-reading)}
.moon-mission-source{grid-column:1/-1;border-top:1px solid #476273;padding:13px clamp(16px,3vw,36px);
 margin:0;color:#cbdce4;font:400 12px/1.5 var(--font-reading)}
.moon-mission-entry{display:flex;flex-wrap:wrap;align-items:center;gap:10px 15px;margin:18px 0 0;font:450 14px/1.5 var(--font-reading)}
.moon-mission-entry a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;
 padding:9px 14px;background:#203745;border:1px solid #203745;color:#fff2e7;font-weight:700;text-decoration:none;border-radius:3px}
.moon-mission-entry a:hover{background:#38576a}
.moon-mission-entry span{color:var(--muted);max-width:55ch}
@media(max-width:850px){
 .moon-mission-lab{grid-template-columns:1fr}
 .moon-mission-heading{padding:22px 18px 16px;border-right:0;border-bottom:1px solid #476273}
 .moon-mission-heading>p:not(.moon-mission-index){margin-bottom:12px}
 .moon-mission-play{padding:14px 17px}
 .moon-mission-arena{max-height:225px}
 .moon-mission-lab.is-playing .moon-mission-heading{padding:10px 17px}
 .moon-mission-lab.is-playing .moon-mission-heading h2{font-size:18px;margin:0}
 .moon-mission-lab.is-playing .moon-mission-heading>p,.moon-mission-lab.is-playing .moon-mission-index{display:none}
}
@media(max-width:460px){
 .moon-mission-play{gap:7px;padding:10px 13px}
 .moon-mission-task h3{font-size:19px;margin-bottom:1px}
 .moon-mission-task>p:last-child{font-size:12px;line-height:1.4}
 .moon-mission-stage{margin:0}
 .moon-mission-arena{max-height:185px}
 .moon-mission-views{gap:6px}
 .moon-mission-views figure{gap:6px;padding:5px 6px}
 .moon-mission-views canvas{height:48px;width:48px}
 .moon-mission-views figcaption{font-size:11px}
 .moon-mission-flight button{min-height:43px;padding:7px 5px}
 .moon-mission-flight .moon-mission-capture{font-size:13px}
 .moon-mission-flight .moon-mission-steer{font-size:11px}
 .moon-mission-radar{font-size:8px;right:5px;top:5px}
 .moon-mission-heading{padding:18px 13px}
 .moon-mission-entry{align-items:stretch;flex-direction:column}
 .moon-mission-entry a{max-width:320px;width:100%}
 .moon-mission-source{padding:12px 13px}
}
@media(max-width:380px) and (max-height:700px){
 .moon-mission-play{padding:7px 12px;gap:5px}
 .moon-mission-progress{font-size:11px;margin-bottom:2px}
 .moon-mission-task h3{font-size:17px}
 .moon-mission-task>p:last-child{display:none}
 .moon-mission-arena{max-height:159px}
 .moon-mission-views canvas{width:37px;height:37px}
 .moon-mission-views figure{padding:3px 4px}
 .moon-mission-views figcaption{font-size:10px}
 .moon-mission-flight button{min-height:40px}
 .moon-mission-precision summary{font-size:11px;padding:2px 0}
 .moon-mission-toolbar{gap:5px}
 .moon-mission-toolbar output{font-size:11px}
 .moon-mission-feedback{font-size:11px;line-height:1.35}
 .moon-mission-lab.is-playing .moon-mission-heading{padding:9px 12px}
 .moon-mission-lab.is-playing .moon-mission-heading h2{font-size:16px}
}
@media(prefers-reduced-motion:reduce){
 #moonMissionOrbiter,#moonMissionTargetArc{filter:none;will-change:auto}
 .moon-mission-lab *{scroll-behavior:auto!important;animation:none!important;transition:none!important}
}

.moon-mission-lab.is-captured .moon-mission-stage{border-color:#bce3ba;box-shadow:inset 0 0 0 2px #bce3ba}
.moon-mission-lab.is-captured #moonMissionTargetArc{stroke:#bce3ba;opacity:.9}
.moon-mission-lab.is-reduced .moon-mission-steer,.moon-mission-lab.is-reduced #moonMissionPause{display:none!important}
.moon-mission-lab.is-reduced .moon-mission-flight{grid-template-columns:1fr}
.moon-mission-lab.is-reduced .moon-mission-flight .moon-mission-capture{max-width:none}

/* Moon learner editorial flow: prediction -> cause -> model -> challenge -> check.
   Keep complete scientific/educator references, but opt-in for reading them. */
#moon-cer-activity,#moon-observation,#moon-missions,#moon-explanation,#evidence,
#educator-resources,#moonModelLimitations,#moonPhaseReference,#phaseLab{
 scroll-margin-top:142px;
}
.moon-mission-entry a[data-moon-mission-entry]{
 background:transparent;border-color:transparent;color:var(--muted);padding:8px 0;
 font-weight:600;text-decoration:underline;text-underline-offset:4px;
}
.moon-mission-entry a[data-moon-mission-entry]:hover{background:transparent;color:var(--ink)}
.moon-mission-entry a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.moon-observation .section-head{margin-bottom:22px}
.moon-observation .phase-view-earth{justify-content:flex-start;gap:0;min-width:0}
.moon-observe-prompt{max-width:36ch;margin:12px auto 10px;color:#3b4b54;font:500 14px/1.5 var(--font-reading)}
.moon-earth-controls{width:100%;max-width:530px;text-align:left;margin:0 auto}
.moon-earth-controls .phase-stage-actions{background:transparent;border:0;padding:3px 0 8px;justify-content:center}
.moon-earth-controls .phase-stage-actions button{background:#16384e;border:1px solid #315267;min-height:44px;min-width:178px}
.moon-earth-controls input[type=range]{width:100%;min-height:38px;accent-color:var(--accent);cursor:pointer}
.moon-earth-controls input[type=range]:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.moon-earth-controls .phase-transport-note{margin:5px 0 12px;font-size:12px;line-height:1.45}
.moon-earth-controls .query-preset-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}
.moon-earth-controls .query-preset-row button{min-width:0;min-height:44px;white-space:normal;padding:9px 5px}
.moon-earth-controls .phase-intermediate .query-preset-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.moon-observation .phase-view-earth .tool-readout{margin-top:12px;text-align:center;font-size:12px;line-height:1.5;color:#354958}
.moon-lab-depth,.moon-reference{border-top:1px solid var(--rule);background:#ece9e1}
.moon-lab-depth>summary,.moon-reference>summary,.moon-model-limits>summary{
 display:list-item;cursor:pointer;font:650 14px/1.5 var(--font-reading);
 color:#17394b;padding:15px 20px;min-height:48px;
}
.moon-lab-depth>summary:focus-visible,.moon-reference>summary:focus-visible,
.moon-teacher-disclosure>summary:focus-visible,.moon-model-limits>summary:focus-visible{
 outline:3px solid var(--accent);outline-offset:3px;
}
.moon-lab-depth .phase-controls{padding-top:5px}
.moon-reference{margin-top:10px;padding-bottom:2px}
.moon-reference .phase-facts,.moon-reference .table-scroll{margin:14px 20px}
.moon-concept-bridge{padding:34px 0 25px}
.moon-concept-bridge .section-head{margin-bottom:12px}
.moon-concept-bridge .section-head p{max-width:68ch}
.moon-learn-next{font:650 14px/1.5 var(--font-reading);color:#31576a;margin:0 0 8px}
.moon-game-to-check{padding:10px 20px;margin:0;border-top:1px solid #526d7e;
 font:650 13px/1.5 var(--font-reading);color:#ffe2ac}
.moon-game-to-check a{color:inherit;text-underline-offset:3px}
.moon-educator-section{padding-top:45px;padding-bottom:32px;border-top:1px solid var(--rule)}
.moon-teacher-disclosure{margin-top:17px;border:1px solid var(--rule)}
.moon-teacher-disclosure>summary{display:list-item;cursor:pointer;
 padding:17px 20px;font:650 15px/1.4 var(--font-reading);min-height:54px}
.moon-teacher-disclosure .teacher-use-section{padding:20px 0 32px}
.moon-teacher-disclosure .teacher-use-section>.wrap{padding-left:20px;padding-right:20px}
.moon-model-limits{border-top:1px solid var(--rule);margin:0 auto 30px;max-width:var(--page-width,1200px)}
.moon-model-limits>.section{padding-top:8px;padding-bottom:20px}
.moon-model-limits .learning-grid{margin-top:22px}
@media(max-width:980px){
 .moon-observation .phase-view-system{min-height:350px}
 .moon-observation .phase-view-earth{padding:17px}
}
@media(max-width:620px){
 .moon-observation .phase-view-system{min-height:330px}
 .moon-observation .phase-view-earth{padding:13px}
 .moon-observation .phase-view-earth .phase-view-label{margin-bottom:8px}
 .moon-observation .phase-view-earth #moonEarthView{width:150px;height:150px}
 .moon-observation .phase-name{font-size:18px;margin-top:8px}
 .moon-observe-prompt{font-size:13px;margin:6px 0 8px}
 .moon-earth-controls .phase-stage-actions{padding:0 0 4px}
 .moon-earth-controls .phase-transport-note{margin:3px 0 7px;font-size:11px}
 .moon-earth-controls .query-preset-row{gap:6px}
 .moon-earth-controls .query-preset-row button{font-size:12px;min-height:40px}
 .moon-reference .phase-facts,.moon-reference .table-scroll{margin:10px 13px}
 .moon-concept-bridge{padding:26px 0 13px}
 .moon-model-limits>summary{padding:16px}
}

.moon-observation .phase-view-earth{scroll-margin-top:132px}
.moon-observation #moonEarthView{scroll-margin-top:135px}
/* Stellar gallery: original, procedural scientific scene illustration.
   Night-blue image window visually distinct from the explanatory panel. */
.stellar-cinema{padding:0;margin:0 0 0;min-width:0;background:#06131e;border:1px solid #2d4b60}
.stellar-cinema-stage{position:relative;height:clamp(340px,40vw,550px);overflow:hidden;
 background:radial-gradient(ellipse at 48% 55%,#102537,#020913 72%)}
.stellar-cinema canvas{display:block;width:100%;height:100%;object-fit:cover;touch-action:pan-y}
.stellar-cinema-head,.stellar-cinema-bottom{position:absolute;left:0;right:0;
 padding-left:clamp(14px,2.8vw,30px);padding-right:clamp(14px,2.8vw,30px);
 display:flex;align-items:center;justify-content:space-between;gap:12px;
 pointer-events:none;text-shadow:0 1px 12px #010813}
.stellar-cinema-head{top:0;padding-top:21px;align-items:flex-start}
.stellar-cinema-eyebrow,.stellar-cinema-counter,.stellar-cinema-basis{
 font:600 10px/1.5 var(--font-data);letter-spacing:.1em;color:#c3d6e2}
.stellar-cinema-counter{text-align:right;white-space:nowrap;color:#e2bd87}
.stellar-cinema-bottom{bottom:0;padding-bottom:22px;align-items:flex-end;
 background:linear-gradient(0deg,rgba(1,7,16,.77),transparent);padding-top:35px}
.stellar-cinema-name{font:600 clamp(19px,3vw,32px)/1.08 var(--font-display);
 color:#fff0d8;letter-spacing:.016em}
.stellar-cinema-basis{color:#bad0da;text-align:right}
.stellar-cinema-caption{display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,28%);
 gap:18px;align-items:start;padding:15px clamp(14px,2.8vw,30px);
 color:#e6eef0;background:#102b3d;border-top:1px solid #3d5666;
 font:13px/1.5 var(--font-reading)}
.stellar-cinema-caption>div{display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px}
.stellar-cinema-caption-label{color:#ecc78e;font:700 10px/1.5 var(--font-data);letter-spacing:.08em}
.stellar-cinema-caption strong{color:#f3f5f3;font-size:13px;font-weight:500}
.stellar-cinema-truth{color:#b0c0c9;font-size:11px;line-height:1.5}
.life-stage-panel{border-top:1px solid #345264}
.life-stage .dot{border:1px solid rgba(8,21,33,.55);box-shadow:inset -5px -6px 8px rgba(0,0,0,.3),
  0 0 0 2px rgba(255,255,255,.4);background:radial-gradient(circle at 33% 30%,
  color-mix(in srgb,var(--life-color),white 52%),var(--life-color) 45%,
  color-mix(in srgb,var(--life-color),black 45%) 100%)}
@media(max-width:620px){
 .stellar-cinema-stage{height:clamp(270px,88vw,365px)}
 .stellar-cinema-head{padding-top:14px}
 .stellar-cinema-head,.stellar-cinema-bottom{flex-wrap:wrap;gap:4px}
 .stellar-cinema-eyebrow,.stellar-cinema-counter,.stellar-cinema-basis{font-size:9px}
 .stellar-cinema-name{font-size:21px}
 .stellar-cinema-bottom{padding-bottom:12px}
 .stellar-cinema-caption{grid-template-columns:1fr;gap:6px;padding:12px 14px}
 .stellar-cinema-caption>div{grid-template-columns:1fr;gap:3px}
 .stellar-cinema-caption strong{font-size:12px}
 .stellar-cinema-truth{font-size:10px}
}
@media(prefers-reduced-motion:reduce){
 .stellar-cinema,.stellar-cinema *{animation:none!important;transition:none!important}
}


/* Cinema replacement: override the old miniature canvas framing in place. */
.stellar-cinema{aspect-ratio:auto;min-height:0;max-height:none;overflow:visible}
.stellar-cinema-stage{position:relative;width:100%}
.stellar-cinema-stage canvas[hidden],.stellar-cinema-stage svg[hidden]{display:none}
.stellar-cinema-stage svg{width:100%;height:100%;display:block}
.stellar-cinema-caption{position:static;inset:auto;pointer-events:auto;
 font-family:var(--font-reading);font-weight:400;letter-spacing:normal;
 text-shadow:none}
.stellar-cinema-truth{display:block}

.stellar-cinema-reference{grid-column:1/-1;color:#e6c692;
 font:11px/1.55 var(--font-reading);text-decoration:underline;
 text-underline-offset:2px;overflow-wrap:anywhere}
.stellar-cinema-reference:hover{color:#fff0d0}
.stellar-cinema-reference[hidden]{display:none}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;
 padding:0!important;margin:-1px!important;overflow:hidden!important;
 clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}


/* The stage rail precedes its visual result: selecting a process never makes
   the scene update above the student's viewport. Previous/Next stay primary. */
.life-stage-chooser-hint{font:12px/1.45 var(--font-reading);
 color:#42515c;margin:12px 0 8px}
.life-stages{margin-bottom:10px}
@media(max-width:620px){
 .life-stages{display:grid;grid-auto-flow:column;
  grid-auto-columns:minmax(108px,38%);grid-template-columns:none;
  overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;
  scrollbar-width:thin;scrollbar-color:#8096a5 #e8e5df;
  overscroll-behavior-inline:contain;gap:7px;
  padding:3px 4px 11px 2px}
 .life-stages li{scroll-snap-align:start}
 .life-stage{min-height:88px;padding:9px 7px;gap:4px}
 .life-stage.active{padding:8px 6px}
 .life-stage .dot{width:24px;height:24px}
 .life-stage .lbl{font-size:11px;line-height:1.2}
 .life-stage-chooser-hint{font-size:11px}
}

/* Moon Orbit Catcher -> next investigation: visually grounded exploration prompt.
   The question is optional; related lessons stay reachable without an answer. */
.moon-mission-routes{
 border:1px solid #638093;
 background:#132d3d;
 padding:13px;
 gap:9px;
 scroll-margin-top:142px;
}
.moon-mission-routes .moon-discovery-index{
 margin:0;color:#f2c98e;
 font:700 11px/1.4 var(--font-data);text-transform:uppercase;letter-spacing:.075em;
}
.moon-discovery-hero{
 display:grid;grid-template-columns:minmax(0,175px) minmax(0,1fr);
 gap:12px;align-items:center;
}
.moon-discovery-preview{
 display:block;width:100%;height:auto;background:#071923;
 border:1px solid #436276;border-radius:3px;overflow:hidden;
}
.moon-discovery-preview text{fill:#cfdee7;font:650 11px/1.2 var(--font-data);letter-spacing:.015em}
.moon-discovery-copy{min-width:0}
.moon-discovery-copy h4{
 margin:0 0 5px;color:#ffedcb;
 font:650 clamp(16px,2vw,20px)/1.22 var(--font-display);
}
.moon-discovery-copy p{margin:0;color:#d5e5ec;font:400 13px/1.55 var(--font-reading)}
.moon-discovery-prediction{padding-top:10px;border-top:1px solid #48667a}
.moon-discovery-prediction>p:first-child{font:650 13px/1.5 var(--font-reading);color:#f6e7c9;margin:0 0 9px}
.moon-discovery-answers{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.moon-discovery-answers button{
 display:flex;align-items:center;justify-content:center;
 border:1px solid #9fb8c7;background:#204456;color:#f3f7f7;
 padding:10px 9px;min-height:44px;cursor:pointer;border-radius:3px;
 font:600 12px/1.35 var(--font-reading);text-align:center;
}
.moon-discovery-answers button:hover:not(:disabled){background:#345f72}
.moon-discovery-answers button.is-correct{background:#2d654c;border-color:#bfe4c7;color:#f7fff4}
.moon-discovery-answers button.is-incorrect{background:#6b453d;border-color:#ebae9b;color:#fff6f2}
.moon-discovery-answers button:focus-visible,
.moon-mission-routes>a:focus-visible{outline:3px solid #ffce8a;outline-offset:3px}
.moon-discovery-answers button:disabled{cursor:default;opacity:.88}
.moon-mission-routes .moon-discovery-feedback{
 min-height:0;margin:8px 0 0;color:#dfeee0;
 font:500 12px/1.5 var(--font-reading);
}
.moon-mission-routes .moon-discovery-feedback:empty{display:none}
.moon-mission-routes>a[data-moon-mission-route]{
 display:block;padding:12px 14px;min-height:44px;border-radius:3px;
 background:#f4d5a2;border:1px solid #f4d5a2;color:#152936;
 font:750 13px/1.45 var(--font-reading);text-decoration:none;
}
.moon-mission-routes>a[data-moon-mission-route]:hover{background:#ffedcc}
.moon-mission-routes [hidden]{display:none!important}
@media(max-width:480px){
 .moon-mission-routes{padding:11px}
 .moon-discovery-hero{grid-template-columns:minmax(0,102px) 1fr;gap:9px}
 .moon-discovery-copy h4{font-size:16px}
 .moon-discovery-copy p{font-size:12px;line-height:1.4}
 .moon-discovery-answers button{font-size:11px;padding:9px 5px}
}
@media(max-width:355px){
 .moon-discovery-hero{grid-template-columns:1fr}
 .moon-discovery-preview{width:min(100%,210px)}
}

.moon-mission-continue{
 display:flex;align-items:stretch;gap:9px;flex-wrap:wrap;
 padding-top:8px;border-top:1px solid #456276;
}
.moon-mission-continue button{
 display:inline-flex;justify-content:center;align-items:center;
 min-height:44px;padding:10px 14px;cursor:pointer;border-radius:3px;
 background:#c1e7d3;color:#14392e;border:1px solid #c1e7d3;
 font:750 13px/1.4 var(--font-reading);
}
.moon-mission-continue button:hover{background:#e4f8ed}
.moon-mission-continue button:focus-visible{outline:3px solid #ffce8a;outline-offset:3px}
.moon-mission-continue>a{
 display:inline-flex;justify-content:center;align-items:center;
 min-height:44px;padding:10px 0;color:#d5e6ef;
 font:600 12px/1.4 var(--font-reading);text-underline-offset:3px
}
@media(max-width:460px){.moon-mission-continue{gap:5px}.moon-mission-continue button{flex:1 1 100%;}}

@media(max-width:480px){
 .moon-discovery-hero{grid-template-columns:minmax(0,122px) minmax(0,1fr)}
 .moon-discovery-preview text{display:none}
}
