/* Observatory: isolated hero presentation; all lower sections retain their styling. */
.hero{min-height:720px;height:100svh}
.hero .hero-art{inset:0;transform:none!important}
.hero .hero-copy{position:absolute;top:16%;left:0;right:0;padding:0 4.4vw;text-align:center}
.hero #hero-title{font-size:min(6.4vw,100px);text-shadow:0 3px 30px #0d0919}
.expedition-label{font:10px/1.6 monospace;text-transform:uppercase;letter-spacing:.28em;color:#e9c999;margin:0 0 20px}
.hero .hero-shade{background:linear-gradient(180deg,rgba(12,8,20,.22),transparent 35%,transparent 65%,rgba(28,16,29,.36))}
.observatory-hud{position:absolute;bottom:78px;left:4.4vw;right:4.4vw;z-index:4;display:flex;justify-content:space-between;align-items:end;gap:40px;pointer-events:none}
.obs-terminal,.obs-instruments{font:11px/1.8 'Courier New',monospace;color:#bbd8a4;text-shadow:0 0 16px #91b98230}
.obs-terminal{width:330px;padding:16px 18px;background:linear-gradient(110deg,#11121ad9,#17131d80);border-left:1px solid #b4c69870}
.obs-panel-label{font-size:9px;letter-spacing:.12em;display:flex;align-items:center;gap:8px;margin-bottom:14px;color:#d9d5bd}.obs-panel-label>span:last-child{margin-left:auto;font-size:8px;color:#a8ad9b}
.obs-status{display:inline-block;width:4px;height:4px;border-radius:50%;background:#bdeda0;box-shadow:0 0 10px #a7e87e}
.obs-terminal p{margin:2px 0}.obs-caption{font-size:8px;letter-spacing:.1em;margin-top:17px;color:#b7b3a5}
.obs-instruments{width:270px;background:#17121b80;padding:12px 14px;border-top:1px solid #d0b78d60}
.obs-instruments svg{width:100%;height:42px;display:block;overflow:hidden}.obs-grid{fill:none;stroke:#b4c698;stroke-opacity:.12;stroke-width:.6}.obs-wave{fill:none;stroke:#c0dba5;stroke-width:1}.obs-scan{stroke:#fff3c4;stroke-width:1;opacity:.8}
.obs-graph-label{display:flex;justify-content:space-between;letter-spacing:.12em;font-size:8px;color:#bfc7aa}
.obs-spectrum{height:35px;display:flex;gap:3px;align-items:end;margin-top:4px;overflow:hidden}.obs-spectrum i{flex:1;height:var(--bar);background:linear-gradient(#dcc08d,#8b986c30);transform-origin:bottom}

.obs-photons,.obs-disk{transform-origin:0 0}.hero .obs-disk{animation:disk-orbit 60s linear infinite}.obs-disk-front{animation-direction:normal}
@keyframes photon-spin{to{transform:rotate(-360deg)}}
@keyframes jet-flow{to{stroke-dashoffset:-126}}
@keyframes jet-breathe{0%,100%{opacity:.6}50%{opacity:1}}
@keyframes signal-scan{from{transform:translateX(0)}to{transform:translateX(280px)}}
@keyframes spectrum-flow{0%,100%{transform:scaleY(.45)}50%{transform:scaleY(1)}}
@keyframes cursor-glow{0%,100%{opacity:.2}50%{opacity:1}}
@media(prefers-reduced-motion:no-preference){.obs-photons{animation:photon-spin 35s linear infinite}.obs-jet-particles{animation:jet-flow 5s linear infinite}.obs-jet{animation:jet-breathe 9s ease-in-out infinite}.obs-scan{animation:signal-scan 8s linear infinite}.obs-spectrum i{animation:spectrum-flow 5s ease-in-out infinite;animation-delay:var(--delay)}.obs-cursor{animation:cursor-glow 3s ease-in-out infinite}}
.hero[data-motion-paused="true"] *, .hero[data-motion-paused="true"] *::before{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.hero *, .hero *::before{animation:none!important;transition:none!important}}
@media(max-width:800px){.hero{min-height:850px}.hero .hero-copy{top:15%}.expedition-label{font-size:8px;letter-spacing:.15em}.observatory-visual{width:150%;max-width:none;margin-left:-25%}.obs-annotations{display:none}.observatory-hud{bottom:95px;gap:16px}.obs-terminal{width:53%;padding:12px}.obs-instruments{width:43%;padding:10px}.obs-terminal{font-size:9px}.obs-caption{font-size:7px}.obs-panel-label{font-size:8px}.obs-panel-label>span:last-child{font-size:7px}.hero .scroll-cue{bottom:26px}}
@media(max-width:500px){.hero{min-height:860px}.hero .hero-copy{top:15%}.observatory-visual{height:82%;margin-top:4%;width:190%;margin-left:-45%}.observatory-hud{bottom:98px;left:24px;right:24px;display:grid;grid-template-columns:1fr;gap:14px}.obs-terminal{width:100%;font-size:10px;padding:10px 12px}.obs-terminal .obs-panel-label{margin-bottom:7px}.obs-caption{margin-top:8px}.obs-instruments{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:0 14px;padding:8px 12px}.obs-instruments .obs-panel-label{grid-column:1/-1;margin-bottom:5px}.obs-instruments svg{grid-row:3;grid-column:1}.obs-spectrum{grid-row:3;grid-column:2;height:36px}.hero .scroll-cue{left:auto;right:24px;transform:none;font-size:8px;gap:10px}.hero .scroll-line{height:14px}}

.hero .obs-annotations{opacity:.8}.hero .obs-terminal{font-size:11px}
/* Immersive 3D canvas and translucent instrument glass. */
.cosmic-canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .35s ease}
.webgl-ready .cosmic-canvas{opacity:1}.webgl-ready .observatory-visual{visibility:hidden}
.hero .hero-copy{top:12%}.hero .hero-shade{background:linear-gradient(180deg,#0d07172b,transparent 40%,transparent 70%,#24132726)}
.hero .obs-terminal,.hero .obs-instruments{border:1px solid #ffedcc30;border-radius:22px;background:linear-gradient(135deg,#fff3da13,#ffffff04 45%,#d8aa8a10);backdrop-filter:blur(24px) saturate(135%);-webkit-backdrop-filter:blur(24px) saturate(135%);box-shadow:inset 0 1px 0 #fff5df38,inset 0 -1px 0 #fff5df0a,0 16px 48px #00000020;text-shadow:0 1px 8px #0008;padding:20px 22px}
.hero .obs-terminal{width:350px;color:#cdf4b2;font-size:12px;line-height:1.9}.obs-terminal p{margin:4px 0}.obs-instruments{width:290px}.obs-panel-label{color:#e2d8c2}.obs-panel-label>span:last-child{color:#d5cfbf}.obs-caption{color:#c9c1b4}.obs-graph-label{color:#ded9c7;font-size:9px}
@media(max-width:800px){.hero .obs-terminal{width:53%;font-size:10px;padding:16px}.hero .obs-instruments{width:43%;padding:16px}}
@media(max-width:500px){.hero .hero-copy{top:13%}.hero .obs-terminal,.hero .obs-instruments{width:100%;padding:12px 16px;border-radius:18px}.hero .obs-terminal{font-size:10px}.observatory-hud{bottom:90px;gap:10px}.hero .obs-panel-label{font-size:8px}.hero .obs-graph-label{font-size:8px}}
@media(prefers-reduced-motion:reduce){.cosmic-canvas{transition:none}}

.hero .obs-terminal,.hero .obs-instruments{background-color:rgba(17,12,20,.32)}
/* A single dark universe carries the horizon through the entire page. */
html,body{background:#08060d!important}
.cosmic-backdrop{position:fixed;inset:0;z-index:0;pointer-events:none;background:#08060d;overflow:hidden}
.cosmic-ready .cosmic-canvas{opacity:1}
main{position:relative;z-index:1}
.hero,html[data-theme="light"] .hero,.hero .hero-art,html[data-theme="light"] .hero-art{background:transparent!important}
.introduction,.projects,.about,html[data-theme="light"] .introduction,html[data-theme="light"] .projects,html[data-theme="light"] .about{background:rgba(8,6,13,.38)!important;color:#fff2df}
.hero::after,.introduction::before,.introduction::after,.projects::before,.projects::after,.about::before{background:none!important}
.cosmic-field,.project-shade,.about-shade{opacity:0!important}
.horizon-reveal{opacity:var(--horizon-opacity,1)!important;transform:translate3d(0,var(--horizon-rise,0),0)!important;animation:none!important;will-change:opacity,transform}
.horizon-reveal:focus-within{opacity:1!important;transform:none!important}
.project-row.horizon-reveal>.project-logo-link{animation:none!important}.project-row.horizon-reveal>.project-logo-echo{display:none}

@media(prefers-reduced-motion:reduce){.horizon-reveal{opacity:1!important;transform:none!important;will-change:auto}}
/* Keep the always-available motion control clear of copy and footer. */

@media(max-width:500px){}
/* The hero exits with the page; only the gravity well continues below it. */
.cosmic-backdrop{position:absolute;inset:0}
.hero{isolation:isolate}
.horizon-journey{position:relative;isolation:isolate;background:#08060d}
.gravity-spine{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden;color:#b98a55}
.gravity-funnel{position:absolute;width:min(100%,1100px);height:600px;left:50%;top:-50px;transform:translateX(-50%);opacity:.35;filter:drop-shadow(0 0 8px #e8b45b30)}
.gravity-thread{position:absolute;top:470px;bottom:65px;left:50%;width:1px;background:linear-gradient(#eac47f99,#9b734d60 60%,#efca8a);box-shadow:0 0 14px #d9a25b30}
.gravity-thread::after{content:"";position:absolute;inset:0 -6px;border-left:1px solid #d5b28314;border-right:1px solid #d5b28314}
.gravity-end{position:absolute;bottom:52px;left:50%;width:13px;height:13px;border:1px solid #e7bd78;border-radius:50%;transform:translateX(-50%);box-shadow:0 0 20px #e7bd7855}
.horizon-journey .introduction{padding:170px 24px 180px;background:transparent!important;text-align:center}
.horizon-journey .introduction h2{max-width:760px;font-size:clamp(28px,3vw,44px);text-shadow:0 2px 18px #08060d}
.horizon-journey .projects{background:transparent!important;padding:90px max(7vw,24px) 180px;min-height:0;overflow:visible}
.horizon-journey .project-list{max-width:1080px;margin:auto;gap:140px;align-items:stretch}
.horizon-journey .project-row{width:36%;max-width:360px;margin:0;--cascade-offset:0%;padding:24px 0}
.horizon-journey .project-row:nth-child(even){margin-left:auto}
.project-index{display:block;font:9px/1.5 monospace;letter-spacing:.18em;color:#d5b283;margin-bottom:26px}
.project-context{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid #d5b28324;margin-top:26px;padding-top:16px;font:11px/1.5 monospace;color:#b6ada4}
.project-row .project-visit{font:11px/1.5 monospace;color:#efcf9b;letter-spacing:0}
.horizon-journey .project-row::before{content:"";position:absolute;height:1px;width:38%;left:100%;top:50%;background:linear-gradient(90deg,#d5b28314,#d5b28375)}
.horizon-journey .project-row:nth-child(even)::before{left:auto;right:100%;background:linear-gradient(90deg,#d5b28375,#d5b28314)}
.horizon-reveal{transform:translate3d(var(--horizon-x,0),var(--horizon-rise,0),0)!important}
.about,html[data-theme="light"] .about{background:#08060d!important;min-height:100svh}
@media(max-width:600px){.horizon-journey .introduction{padding:120px 24px 140px}.gravity-funnel{width:900px;left:24px;top:-50px;opacity:.2}.gravity-thread,.gravity-end{left:24px}.horizon-journey .projects{padding:20px 24px 120px}.horizon-journey .project-list{gap:80px}.horizon-journey .project-row,.horizon-journey .project-row:nth-child(even){width:calc(100% - 56px);max-width:none;margin-left:56px}.horizon-journey .project-row::before,.horizon-journey .project-row:nth-child(even)::before{left:auto;right:100%;width:56px;background:linear-gradient(90deg,#d5b28375,#d5b28314)}.project-context{font-size:9px}.project-index{margin-bottom:20px}.gravity-thread{top:465px}}
@media(prefers-reduced-motion:reduce){.horizon-reveal{transform:none!important;opacity:1!important}}

.horizon-journey .project-row::before{width:var(--branch-length,130px)}
.gravity-funnel{opacity:.5}
@media(max-width:600px){.horizon-journey .project-row::before,.horizon-journey .project-row:nth-child(even)::before{width:56px}.gravity-funnel{opacity:.3}}
.horizon-journey{overflow:hidden;overflow:clip}
/* Introduction is a terminal transmission branching from the gravity spine. */
.horizon-journey .introduction{padding:510px max(7vw,24px) 80px;text-align:left;overflow:visible}
.intro-terminal{position:relative;width:44%;max-width:475px;margin-left:50%;padding:22px 26px;border:1px solid #d5b28326;border-radius:12px;background:linear-gradient(120deg,#24231f50,#15121d66);backdrop-filter:blur(16px);box-shadow:inset 0 1px 0 #fff2d50a}
.intro-terminal::before{content:"";position:absolute;left:-26px;top:40px;width:26px;height:1px;background:#d5b28380}
.intro-terminal-label,.intro-terminal-next{display:block;font:9px/1.5 monospace;letter-spacing:.12em;color:#b4bc9f}
.intro-terminal-label{margin-bottom:14px}.intro-terminal-next{margin-top:18px;font-size:8px;color:#b1a58b}
.horizon-journey .introduction .intro-terminal h2{font:clamp(15px,1.4vw,18px)/1.75 'Courier New',monospace;letter-spacing:0;margin:0;color:#d2e7bc;text-shadow:none;animation:none}
.terminal-prompt{color:#e2c18c}
.horizon-journey .projects{padding-top:50px}
@media(max-width:600px){.horizon-journey .introduction{padding:510px 24px 50px}.intro-terminal{margin-left:32px;width:calc(100% - 32px);max-width:none;padding:18px}.intro-terminal::before{left:-33px;width:32px}.horizon-journey .introduction .intro-terminal h2{font-size:15px}.intro-terminal-label{font-size:8px}.intro-terminal-next{font-size:7px}.horizon-journey .projects{padding-top:30px}}
@media(min-width:601px){.intro-terminal{margin-left:calc(50% + 26px);width:calc(44% - 26px)}}
/* Scroll directly orbits the turbine, then releases it into the descending beam. */
.hero-orbit-stage{position:relative;height:185svh;min-height:1400px}
.hero-orbit-stage .hero{position:sticky;top:0;height:100svh;min-height:720px}
.hero-orbit-stage .hero::after{height:160px;background:linear-gradient(180deg,transparent,#08060d)!important}
.hero-orbit-stage .hero::before{content:"";position:absolute;bottom:0;left:calc(50% - 1px);width:2px;height:110px;z-index:4;background:linear-gradient(transparent,#f0cc92);box-shadow:0 15px 18px #e6b77355;pointer-events:none}
.gravity-thread{top:0;width:2px;background:linear-gradient(#f0cc92,#b98a5580 35%,#efca8a);box-shadow:0 0 12px #d9a25b55}
.gravity-thread::after{inset:0 -3px;border-color:#d5b28328}
.beam-bridge{display:none}
.horizon-journey .introduction{padding-top:160px;padding-bottom:80px}
@media(max-width:600px){.hero-orbit-stage{height:185svh;min-height:1570px}.hero-orbit-stage .hero{min-height:860px}.beam-bridge{display:block;position:absolute;left:0;top:0;width:100%;height:180px;overflow:visible;fill:none;stroke:#f0cc92;stroke-width:1.5;filter:drop-shadow(0 0 5px #e6b77366)}.gravity-thread{top:179px}.horizon-journey .introduction{padding-top:230px;padding-bottom:50px}}
@media(prefers-reduced-motion:reduce){.hero-orbit-stage{height:auto;min-height:0}.hero-orbit-stage .hero{position:relative}}
/* The same volumetric jet continues in world space; no substitute drawn rail. */
.cosmic-backdrop{position:fixed;inset:0;height:100svh;z-index:0}
.horizon-journey,.horizon-journey .introduction,.horizon-journey .projects{background:transparent!important}
.hero-orbit-stage .hero::before,.hero-orbit-stage .hero::after,.intro-terminal::before,.horizon-journey .project-row::before{display:none!important}
.hero .hero-art{visibility:hidden}.hero:not(.webgl-ready) .hero-art{visibility:visible}
.horizon-journey .project-context{border-top:0}
.intro-terminal{background:linear-gradient(120deg,#16101bcc,#17131b99);border-color:#e7bc7c22}
.project-index,.project-context{text-shadow:0 2px 12px #000}
.horizon-journey .project-row{filter:drop-shadow(0 3px 12px #08060d)}
@media(max-width:600px){.intro-terminal{margin-left:0;width:100%}.horizon-journey .project-row,.horizon-journey .project-row:nth-child(even){margin-left:0;width:100%;max-width:320px;padding:24px 16px;background:linear-gradient(110deg,#100b16b3,#100b1670);border-radius:18px}.horizon-journey .project-list{align-items:center;gap:100px}.horizon-journey .introduction{padding-top:140px}.horizon-journey .projects{padding-top:20px}}
@media(prefers-reduced-motion:reduce){.cosmic-backdrop{position:absolute}}
@media(max-width:600px){.horizon-journey .project-row,.horizon-journey .project-row:nth-child(even){background:rgba(12,8,17,.28);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}}

/* Uninterrupted light behind the logos; scene fades as one into the bio. */
.cosmic-backdrop{height:auto}
.horizon-journey .project-row,.horizon-journey .project-row:nth-child(even){background:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border-radius:0;box-shadow:none}
.hero .hero-shade,html[data-theme="light"] .hero .hero-shade{background:transparent!important}
.about,html[data-theme="light"] .about{background:transparent!important}
.hero .observatory-hud,.hero .hero-copy,.hero .scroll-cue{opacity:var(--hero-presence,1)}
@media(prefers-reduced-motion:reduce){.cosmic-backdrop{height:100svh}.about,html[data-theme="light"] .about{background:#08060d!important}}
html[data-theme="light"] .horizon-journey .introduction,html[data-theme="light"] .horizon-journey .projects{background:transparent!important}
/* A smaller mobile logo scale, with the surrounding layout unchanged. */
@media(max-width:600px){.horizon-journey .project-row .project-logo-link{width:80%}.horizon-journey .project-row .project-logo-link--patelzick{font-size:10.48cqw}.horizon-journey .project-row .project-logo-link--sync{font-size:14.4cqw}.horizon-journey .project-row .project-logo-link--calendar{font-size:7.04cqw}}
.terminal-typed::after{content:"▌";display:inline;color:#c4e7a5;margin-left:.12em;animation:terminal-blink 1.2s steps(1,end) infinite}
.obs-terminal p:not(:last-of-type):not(.terminal-is-typing) .terminal-typed::after{display:none}
@keyframes terminal-blink{0%,55%{opacity:1}56%,100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.terminal-typed::after{animation:none}}
.terminal-type-layout{display:grid}.terminal-reserve,.terminal-typed{grid-area:1/1}.terminal-reserve{visibility:hidden;pointer-events:none}
/* Transparent scientific inset above the signal diagnostics. */
.horizon-diagram{position:absolute;right:0;bottom:calc(100% + 4px);width:240px;margin:0;color:#fff0cc;pointer-events:none}
.horizon-mesh{display:block;width:100%;overflow:visible}
.mesh-wire{fill:none;stroke:#f4e6cc;stroke-width:.6;opacity:.55}
.mesh-band{fill:none;stroke:#ffe247;stroke-width:3;filter:drop-shadow(0 0 4px #ffcd26)}
.mesh-leader{fill:none;stroke:#ffe68a;stroke-width:.9}.mesh-dot{fill:#fff0a0}
.horizon-diagram figcaption{display:flex;align-items:center;flex-direction:column;gap:9px;text-shadow:0 2px 8px #000}
.horizon-diagram figcaption>span{font:9px 'Courier New',monospace;letter-spacing:.18em}
.horizon-diagram math{font-size:22px;color:#fff2d2}
@media(max-width:800px){.horizon-diagram{width:210px}}
@media(max-width:500px){.horizon-diagram{width:155px;right:-5px;bottom:calc(100% + 14px)}.horizon-diagram math{font-size:17px}.horizon-diagram figcaption{gap:6px}.horizon-diagram figcaption>span{font-size:8px}}

/* Label sits at the outer left endpoint of the horizon callout. */
.horizon-diagram figcaption{position:absolute;right:calc(100% + 34px);top:var(--callout-y,65%);transform:translateY(-50%);width:170px;align-items:flex-end;text-align:right}
.horizon-diagram{height:auto}
@media(max-width:500px){.horizon-diagram figcaption{right:calc(100% + 22px);width:145px}.horizon-diagram math{font-size:17px}}
/* Give the horizon inset breathing room above the lower HUD. */
.horizon-diagram{bottom:calc(100% + 36px)}
@media(max-width:500px){.horizon-diagram{bottom:calc(100% + 44px)}}
/* Local listening-room preview, matching the flight-log glass. */
.obs-audio{position:absolute;left:0;bottom:calc(100% + 20px);width:350px;box-sizing:border-box;padding:16px 20px;border:1px solid #ffedcc30;border-radius:22px;background:linear-gradient(135deg,#fff3da13,#ffffff04 45%,#d8aa8a10);backdrop-filter:blur(24px) saturate(135%);-webkit-backdrop-filter:blur(24px) saturate(135%);box-shadow:inset 0 1px 0 #fff5df38,0 16px 48px #0002;color:#e2d8c2;font:10px/1.5 'Courier New',monospace;pointer-events:auto}
.obs-audio .obs-panel-label{font-size:8px;margin-bottom:12px}.obs-audio .obs-panel-label span{font-size:7px}
.audio-heading{display:flex;gap:12px;align-items:center}.audio-play{width:36px;height:36px;flex:none;border:1px solid #ffe8b55c;border-radius:50%;background:#fff2d510;color:#e9dbb0;cursor:pointer}.audio-play:disabled{opacity:.4;cursor:default}.audio-track{font-size:11px;color:#e8e4d6;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audio-status{font-size:8px;margin:4px 0;color:#c0c2ab}.audio-spectrum{display:block;width:100%;height:48px;margin:10px 0;opacity:.85}.audio-controls{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:9px}.audio-file-label{position:relative;padding:5px 8px;border:1px solid #ded1b53d;border-radius:8px;cursor:pointer}.audio-file{position:absolute;inset:0;width:100%;opacity:0;cursor:pointer}.audio-volume-label{display:flex;align-items:center;gap:8px}.audio-volume{width:72px;accent-color:#d3c697}.audio-play:focus-visible,.audio-file-label:focus-within,.audio-volume:focus-visible{outline:2px solid #d3e5b2;outline-offset:3px}
@media(max-width:800px){.obs-audio{width:330px}}
@media(max-width:500px){.hero-orbit-stage .hero{min-height:1100px}.obs-audio{position:relative;bottom:auto;left:auto;width:100%;padding:14px 16px;grid-row:1}.hero .hero-copy{top:10%}.audio-track{max-width:245px}}
.audio-playlist{min-width:0;width:120px;background:#17131d;color:#e2d8c2;border:1px solid #ded1b53d;border-radius:6px;padding:5px;font:9px 'Courier New',monospace}.audio-prev,.audio-next{background:transparent;color:#e2d8c2;border:0;font-size:20px;cursor:pointer;padding:4px}.audio-controls{gap:5px}.audio-volume-label{font-size:0}.audio-volume{width:58px}.audio-playlist:focus-visible,.audio-prev:focus-visible,.audio-next:focus-visible{outline:2px solid #d3e5b2;outline-offset:2px}
/* Keep listening controls compact; the playlist advances without a menu. */
.audio-playlist{display:none}
.audio-controls{justify-content:flex-start;gap:12px}
.audio-volume-label{margin-left:auto}
/* Mobile: keep the diagram in the HUD flow, below the black-hole view. */
@media(max-width:500px){
 .hero-orbit-stage .hero{min-height:1390px}
 .hero .hero-copy{top:110px}
 .observatory-hud .horizon-diagram{position:relative;grid-row:1;justify-self:end;right:0;bottom:auto;margin:0 0 30px;width:155px}
 .observatory-hud .obs-audio{grid-row:2}
 .observatory-hud .obs-terminal{grid-row:3}
 .observatory-hud .obs-instruments{grid-row:4}
}
/* The tall mobile HUD must remain legible until its panels leave the viewport. */
@media(max-width:600px){.hero .observatory-hud{opacity:1}}
.mobile-hero-equation{display:none}
#hero-title .terminal-typed::after{content:'|';font-size:.7em;margin-left:.08em;color:#e9dfc7}
.newsletter #newsletter-title,.newsletter #newsletter-title a,.newsletter .newsletter-caption{font-family:'Courier New',monospace;color:#cdf4b2;text-shadow:0 0 16px #91b98230}
.newsletter #newsletter-title{font-size:clamp(21px,3vw,30px);letter-spacing:0;text-transform:none;line-height:1.4}
.newsletter .newsletter-caption{font-size:clamp(14px,1.5vw,17px);line-height:1.9}
.newsletter-caption::after{content:'▌';display:inline-block;margin-left:.18em;color:#cdf4b2;animation:terminal-blink 1.2s steps(1,end) infinite}
@media(max-width:500px){
 .mobile-hero-equation{display:flex;justify-content:center;margin-top:20px;color:#f4e3bd;font-size:21px}
 .observatory-hud .horizon-diagram figcaption{display:none}
 #hero-title{font-size:clamp(22px,6.1vw,31px)}
 .hero-orbit-stage .hero{min-height:1390px}
}
@media(prefers-reduced-motion:reduce){.newsletter-caption::after{animation:none}}
