/* Orbital · enhancement layer — large-screen scaling, card sizes, ambient motion.
   Loaded after orbital.css; everything here is additive. */

/* ---------- ambient aurora: slow colour field tinted by server state ---------- */
body.mc-app::before {
  content: '';
  position: fixed;
  inset: -20vmax;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(40vmax 26vmax at 18% 22%, color-mix(in srgb, var(--color-accent, var(--state-accent, #34d399)) 22%, transparent), transparent 70%),
    radial-gradient(34vmax 22vmax at 82% 68%, rgba(99, 102, 241, 0.16), transparent 70%),
    radial-gradient(28vmax 18vmax at 60% 12%, rgba(56, 189, 248, 0.12), transparent 70%);
  filter: blur(8px);
  opacity: 0.9;
  transform: translate3d(calc(var(--mx, 0) * -2.2vmax), calc(var(--my, 0) * -1.6vmax + var(--sy, 0px) * -0.04), 0);
  animation: orb-aurora 46s ease-in-out infinite alternate;
}
html[data-theme='light'] body.mc-app::before { opacity: 0.38; }
html[data-bg='simple'] body.mc-app::before { display: none; }
@keyframes orb-aurora {
  0% { background-position: 0 0, 0 0, 0 0; filter: blur(8px) hue-rotate(0deg); }
  50% { filter: blur(10px) hue-rotate(-18deg); }
  100% { filter: blur(8px) hue-rotate(14deg); }
}
/* horizon scan: a faint line that sweeps the viewport, like a tracking radar */
body.mc-app::after {
  content: '';
  position: fixed;
  left: 0; right: 0; top: 0;
  height: 2px;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--color-accent, var(--state-accent, #34d399)) 55%, transparent), transparent);
  box-shadow: 0 0 18px color-mix(in srgb, var(--color-accent, var(--state-accent, #34d399)) 40%, transparent);
  opacity: 0.22;
  animation: orb-scan 14s linear infinite;
}
html[data-bg='simple'] body.mc-app::after { display: none; }
@keyframes orb-scan { from { transform: translateY(-4vh); } to { transform: translateY(104vh); } }

/* ---------- pointer depth: HUD and globe lean toward the cursor ---------- */
.hero-grid { perspective: 1400px; }
.hero-main { transform: rotateX(calc(var(--my, 0) * -1.1deg)) rotateY(calc(var(--mx, 0) * 1.4deg)); transform-style: preserve-3d; }
.hero-orbit { transform: translate3d(calc(var(--mx, 0) * -12px), calc(var(--my, 0) * -9px), 0); }
.hero-orbit .orbit-frame::after {
  content: ''; position: absolute; inset: -1px; pointer-events: none; border-radius: inherit;
  background: conic-gradient(from calc(var(--mx, 0) * 90deg), transparent 0 70%, color-mix(in srgb, var(--color-accent, var(--state-accent, #34d399)) 35%, transparent) 80%, transparent 90%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; padding: 1px;
  animation: orb-rim 9s linear infinite;
}
@keyframes orb-rim { to { filter: hue-rotate(360deg); } }

/* section headers get a sweep when they scroll in */
.sec-head { position: relative; overflow: hidden; }
.sec-head.mc-in::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--color-accent, var(--state-accent, #34d399)) 30%, transparent), transparent);
  transform: translateX(-100%);
  animation: orb-sweep 1.1s 0.15s cubic-bezier(0.2, 0.7, 0.2, 1) forwards;
}
@keyframes orb-sweep { to { transform: translateX(100%); } }

/* cards lift under the pointer */
.card, .mc-post-card { transition: transform 0.35s cubic-bezier(0.2, 0.7, 0.2, 1), box-shadow 0.35s, border-color 0.35s; }
@media (hover: hover) {
  .card:hover, .mc-post-card:hover { transform: translateY(-3px); box-shadow: 0 18px 44px rgba(0, 0, 0, 0.35), 0 0 0 1px color-mix(in srgb, var(--color-accent, var(--state-accent, #34d399)) 30%, transparent); }
  .mc-gallery-item:hover img { transform: scale(1.06); }
}
.mc-gallery-item img { transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1); }

/* ---------- card size ---------- */
.posts { grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--card-min)), 1fr)); }
.gallery-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--shot-min)), 1fr)); }
html[data-card='s'] .card { padding: 14px 16px; }
html[data-card='l'] .card { padding: 28px 30px; }
html[data-card='s'] .mc-post-title { font-size: 15px; }
html[data-card='l'] .mc-post-title { font-size: 21px; }
html[data-card='l'] .mc-post-excerpt { -webkit-line-clamp: 4; }
html[data-card='s'] .stat-num { font-size: 26px; }
html[data-card='l'] .stat-num { font-size: 44px; }
html[data-card='s'] .chart { height: 200px; }
html[data-card='l'] .chart { height: 360px; }

/* ---------- resolution scaling ---------- */
/* Orbital is authored in px; on large monitors scale the content columns as a unit. */
@media (min-width: 1900px) { .nav-inner, .hero-inner, .page, .footer-inner { zoom: 1.12; } }
@media (min-width: 2300px) { .nav-inner, .hero-inner, .page, .footer-inner { zoom: 1.32; } }
@media (min-width: 3000px) { .nav-inner, .hero-inner, .page, .footer-inner { zoom: 1.62; } }
@media (min-width: 3600px) { .nav-inner, .hero-inner, .page, .footer-inner { zoom: 1.9; } }
@media (min-width: 1700px) and (max-aspect-ratio: 16/10) { .hero-grid { gap: 36px; } }

/* tablets: keep the globe beside the HUD when there is room */
@media (min-width: 821px) and (max-width: 1020px) {
  .hero-grid { grid-template-columns: 1.25fr 1fr; gap: 18px; }
  .hero-orbit { order: 0; }
}
/* phones */
@media (max-width: 600px) {
  .hero-title { font-size: clamp(30px, 9vw, 40px); line-height: 1.12; }
  .stat-grid { grid-template-columns: repeat(2, 1fr); }
  .stat-num { font-size: 26px; }
  .address-row { flex-wrap: wrap; }
  .address-row .address { flex: 1 1 100%; }
  .hero-main { transform: none; }
  .hero-orbit { transform: none; }
  .orbit-frame { max-height: 62vw; }
}
@media (max-width: 380px) {
  .stat-grid { grid-template-columns: 1fr 1fr; gap: 0; }
  .nav-brand-tag { display: none; }
}

/* keep content above the ambient layers */
.hero, .footer { position: relative; z-index: 1; }

:root { --orb-spec: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20800%2044%27%20preserveAspectRatio%3D%27none%27%3E%3Cpolyline%20fill%3D%27none%27%20stroke%3D%27%236fd3e8%27%20stroke-opacity%3D%27.55%27%20stroke-width%3D%271%27%20points%3D%270%2C34.0%204%2C36.0%208%2C31.1%2012%2C31.1%2016%2C33.5%2020%2C34.5%2024%2C38.8%2028%2C37.2%2032%2C33.0%2036%2C31.4%2040%2C35.5%2044%2C38.9%2048%2C38.4%2052%2C36.9%2056%2C35.1%2060%2C30.4%2064%2C30.3%2068%2C37.1%2072%2C35.4%2076%2C35.1%2080%2C35.8%2084%2C36.7%2088%2C39.7%2092%2C37.8%2096%2C35.4%20100%2C38.2%20104%2C32.6%20108%2C38.2%20112%2C33.0%20116%2C30.2%20120%2C30.4%20124%2C31.4%20128%2C31.1%20132%2C39.4%20136%2C38.3%20140%2C34.0%20144%2C26.4%20148%2C35.3%20152%2C39.3%20156%2C34.6%20160%2C37.3%20164%2C39.5%20168%2C32.6%20172%2C34.1%20176%2C32.9%20180%2C35.5%20184%2C32.3%20188%2C30.8%20192%2C33.6%20196%2C38.5%20200%2C35.1%20204%2C37.1%20208%2C30.5%20212%2C35.2%20216%2C34.8%20220%2C38.3%20224%2C38.4%20228%2C32.7%20232%2C35.5%20236%2C37.3%20240%2C37.9%20244%2C39.1%20248%2C30.5%20252%2C32.4%20256%2C22.1%20260%2C38.1%20264%2C35.1%20268%2C28.2%20272%2C36.5%20276%2C34.5%20280%2C37.7%20284%2C31.9%20288%2C39.1%20292%2C37.8%20296%2C35.4%20300%2C35.3%20304%2C34.1%20308%2C31.3%20312%2C39.7%20316%2C33.1%20320%2C30.6%20324%2C38.7%20328%2C36.1%20332%2C36.8%20336%2C32.2%20340%2C31.8%20344%2C38.3%20348%2C30.8%20352%2C33.6%20356%2C37.4%20360%2C31.8%20364%2C39.6%20368%2C36.6%20372%2C34.2%20376%2C39.1%20380%2C35.9%20384%2C39.8%20388%2C39.3%20392%2C32.2%20396%2C28.8%20400%2C21.5%20404%2C35.4%20408%2C36.1%20412%2C39.2%20416%2C30.1%20420%2C32.1%20424%2C33.5%20428%2C31.4%20432%2C35.7%20436%2C38.5%20440%2C27.7%20444%2C38.1%20448%2C39.4%20452%2C35.4%20456%2C37.4%20460%2C30.5%20464%2C33.3%20468%2C37.0%20472%2C33.1%20476%2C35.8%20480%2C38.3%20484%2C38.9%20488%2C36.7%20492%2C38.5%20496%2C33.8%20500%2C33.0%20504%2C35.3%20508%2C34.1%20512%2C31.2%20516%2C35.5%20520%2C30.0%20524%2C30.7%20528%2C35.7%20532%2C33.2%20536%2C39.7%20540%2C32.1%20544%2C32.0%20548%2C35.5%20552%2C34.9%20556%2C32.9%20560%2C28.3%20564%2C39.9%20568%2C39.4%20572%2C34.9%20576%2C38.8%20580%2C31.5%20584%2C36.8%20588%2C34.0%20592%2C31.3%20596%2C31.3%20600%2C35.1%20604%2C35.1%20608%2C31.2%20612%2C31.9%20616%2C31.4%20620%2C34.4%20624%2C31.6%20628%2C30.9%20632%2C35.1%20636%2C33.1%20640%2C39.6%20644%2C34.9%20648%2C32.6%20652%2C39.7%20656%2C36.6%20660%2C35.2%20664%2C30.3%20668%2C32.3%20672%2C33.4%20676%2C33.5%20680%2C32.4%20684%2C38.3%20688%2C38.2%20692%2C33.8%20696%2C30.1%20700%2C29.5%20704%2C31.9%20708%2C32.6%20712%2C21.5%20716%2C39.6%20720%2C32.3%20724%2C39.8%20728%2C33.3%20732%2C34.2%20736%2C36.8%20740%2C36.7%20744%2C31.1%20748%2C33.5%20752%2C31.8%20756%2C39.8%20760%2C39.5%20764%2C30.3%20768%2C30.7%20772%2C35.8%20776%2C32.3%20780%2C23.1%20784%2C31.0%20788%2C38.5%20792%2C35.8%20796%2C38.6%20800%2C37.6%27%2F%3E%3C%2Fsvg%3E"); }

/* ================================================================ intro: deep-space station acquisition
   Polar sky plot with a target pass, acquisition checklist, live AZ/EL/range/doppler/SNR readouts
   (effects.js initIntro), spectrum with a rising carrier. Instrument styling: 1px lines, no glow. */
#mc-intro.oi {
  --ic: #6fd3e8; --ia: #f2b84b; --ig: #5ee08a; --il: rgba(140, 200, 230, .3);
  display: block; overflow: hidden; background: #03060b; color: #cfe3ee; font-family: var(--font-mono);
  transition: opacity .8s ease, filter .8s ease, visibility .8s;
}
#mc-intro.oi.is-done { opacity: 0; filter: blur(5px) brightness(1.3); visibility: hidden; }
.oi-grid {
  position: absolute; inset: 0; opacity: .22;
  background: linear-gradient(var(--il) 1px, transparent 1px) 0 0 / 48px 48px, linear-gradient(90deg, var(--il) 1px, transparent 1px) 0 0 / 48px 48px;
  -webkit-mask: radial-gradient(ellipse at 50% 45%, #000 25%, transparent 75%); mask: radial-gradient(ellipse at 50% 45%, #000 25%, transparent 75%);
}
.oi-top {
  position: absolute; left: clamp(20px, 5vw, 80px); right: clamp(20px, 5vw, 80px); top: clamp(22px, 4vh, 44px);
  display: flex; justify-content: space-between; gap: 16px; padding-bottom: 10px; border-bottom: 1px solid var(--il);
  font-size: 11px; letter-spacing: .22em; color: rgba(207, 227, 238, .62);
}
.oi-top b { color: var(--ic); font-weight: 500; }
.oi-scope { position: absolute; left: 50%; top: 41%; width: min(50vmin, 500px); aspect-ratio: 1; translate: -50% -50%; opacity: 0; animation: oi-fade .8s .1s forwards; }
@keyframes oi-fade { to { opacity: 1; } }
.oi-plot { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; fill: none; stroke-width: 1; }
.oi-plot circle { stroke: rgba(140, 200, 230, .38); }
.oi-plot .sp { stroke: rgba(140, 200, 230, .16); }
.oi-plot .tk { stroke: rgba(140, 200, 230, .6); }
.oi-plot text { fill: rgba(207, 227, 238, .75); stroke: none; font: 11px var(--font-mono); text-anchor: middle; }
.oi-plot text.el { text-anchor: start; font-size: 9px; fill: rgba(207, 227, 238, .4); }
.oi-plot .pass { stroke: rgba(242, 184, 75, .3); stroke-dasharray: 3 5; }
.oi-plot .pass-done { stroke: var(--ia); stroke-width: 1.4; stroke-dasharray: 1; stroke-dashoffset: 1; animation: oi-draw 3.6s .4s linear forwards; }
@keyframes oi-draw { to { stroke-dashoffset: 0; } }
.oi-plot .tgt rect { fill: rgba(242, 184, 75, .25); stroke: var(--ia); stroke-width: 1.4; }
.oi-plot .tgt text { fill: var(--ia); text-anchor: start; font-size: 9px; letter-spacing: .1em; }
.oi-plot .lock { stroke: var(--ig); stroke-width: 1.4; stroke-dasharray: 7 14 7 0; opacity: 0; transform-box: fill-box; transform-origin: center; animation: oi-lock .6s 3.7s cubic-bezier(.2, .8, .3, 1) forwards; }
@keyframes oi-lock { from { opacity: 0; transform: scale(3) rotate(45deg); } to { opacity: 1; transform: none; } }
.oi-sweep { position: absolute; inset: 0; border-radius: 50%; background: conic-gradient(from 0deg, rgba(111, 211, 232, .2), transparent 12%); animation: oi-rot 3.4s linear infinite; }
@keyframes oi-rot { to { rotate: 360deg; } }
.oi-seq { position: absolute; left: clamp(20px, 5vw, 80px); top: 22vh; margin: 0; padding: 0; list-style: none; font-size: 11.5px; letter-spacing: .12em; }
.oi-seq li { display: grid; grid-template-columns: 14px auto; column-gap: 12px; padding: 7px 0; color: rgba(207, 227, 238, .4); animation: oi-dim .3s var(--d) forwards; }
.oi-seq li::before {
  content: ''; grid-row: span 2; align-self: center; width: 9px; height: 9px; border-radius: 50%;
  background: rgba(207, 227, 238, .18); box-shadow: inset 0 0 0 1px rgba(207, 227, 238, .3);
  animation: oi-amber .4s var(--d) steps(1) 2 alternate, oi-green .1s calc(var(--d) + .8s) forwards;
}
.oi-seq li em { grid-column: 2; font-style: normal; font-size: 10px; letter-spacing: .3em; opacity: .7; }
@keyframes oi-dim { to { color: rgba(207, 227, 238, .92); } }
@keyframes oi-amber { from { background: var(--ia); box-shadow: 0 0 6px var(--ia); } to { background: rgba(207, 227, 238, .18); } }
@keyframes oi-green { to { background: var(--ig); box-shadow: 0 0 6px var(--ig); } }
.oi-read { position: absolute; right: clamp(20px, 5vw, 80px); top: 22vh; margin: 0; display: grid; gap: 6px; min-width: 200px; font-size: 11px; letter-spacing: .12em; }
.oi-read div { display: flex; justify-content: space-between; gap: 18px; padding: 5px 0; border-bottom: 1px dashed var(--il); }
.oi-read dt { color: rgba(207, 227, 238, .5); }
.oi-read dd { margin: 0; color: var(--ic); font-variant-numeric: tabular-nums; }
.oi-title { position: absolute; left: 0; right: 0; bottom: clamp(128px, 17vh, 190px); text-align: center; }
#mc-intro.oi .intro-name { font: 700 clamp(26px, 4.2vw, 58px)/1.1 var(--font-sans); letter-spacing: .1em; color: #eaf4f8; opacity: 0; animation: oi-fade 1s .6s forwards; }
#mc-intro.oi .intro-step { margin-top: 10px; font-size: 11.5px; letter-spacing: .34em; color: var(--ia); }
#mc-intro.oi.is-locked .intro-step { color: var(--ig); }
.oi-bottom { position: absolute; left: clamp(20px, 5vw, 80px); right: clamp(20px, 5vw, 80px); bottom: clamp(22px, 4vh, 44px); }
.oi-spec {
  position: relative; height: 54px; margin-bottom: 12px; border: 1px solid var(--il); border-bottom-width: 0;
  background: var(--orb-spec) 0 100% / 100% 44px no-repeat, linear-gradient(90deg, rgba(140, 200, 230, .08) 1px, transparent 1px) 0 0 / 10% 100%;
}
.oi-carrier {
  position: absolute; left: 50%; bottom: 0; width: 14px; height: 48px; margin-left: -7px;
  background: linear-gradient(var(--ic), rgba(111, 211, 232, .1)); clip-path: polygon(50% 0, 100% 100%, 0 100%);
  transform-origin: bottom; animation: oi-carrier 3.4s .9s cubic-bezier(.3, .6, .3, 1) both, oi-jit .18s steps(2) infinite;
}
@keyframes oi-carrier { from { transform: scaleY(.05); } }
@keyframes oi-jit { 50% { translate: 1px 0; } }
#mc-intro.oi .intro-track { height: 2px; background: rgba(255, 255, 255, .08); overflow: hidden; }
#mc-intro.oi .intro-track i { display: block; height: 100%; width: 0; background: var(--ic); }
#mc-intro.oi .intro-foot { display: flex; justify-content: space-between; gap: 12px; margin-top: 9px; font-size: 10.5px; letter-spacing: .2em; color: rgba(207, 227, 238, .55); }
@media (max-width: 760px) {
  .oi-read { display: none; }
  .oi-seq { top: auto; bottom: clamp(200px, 30vh, 260px); font-size: 10px; }
  .oi-seq li { padding: 3px 0; }
  .oi-seq li em { display: none; }
  .oi-scope { top: 34%; width: 78vmin; }
  .oi-title { bottom: clamp(120px, 17vh, 150px); }
  #mc-intro.oi .intro-foot span:last-child { display: none; }
}

#mc-intro { z-index: 2147483000; }

/* ================================================================ backdrop: tracking-station instruments
   Earth limb, az/el sky plot with passing targets, ground-track map, spectrum waterfall, edge rulers.
   Thin instrument lines only; everything sits behind content (z 0) and drifts with scroll/pointer. */
.orb-sky { position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; --ln: rgba(140, 200, 230, .5); --ac: #6fd3e8; --am: #f2b84b; }
.orb-sky > * { position: absolute; display: block; }
.orb-sky .limb {
  left: -60vw; right: -60vw; top: 82vh; height: 240vw; border-radius: 50%;
  background: radial-gradient(ellipse at 50% 0%, rgba(40, 90, 150, .22), transparent 30%), #02050b;
  box-shadow: 0 -1px 0 rgba(150, 210, 255, .55), 0 -6px 18px rgba(80, 160, 255, .22), 0 -30px 80px rgba(40, 110, 220, .12);
  transform: translate3d(0, calc(var(--sy, 0px) * -0.03), 0);
}
.orb-sky .skyplot { right: -4vw; top: 14vh; width: clamp(260px, 30vmax, 560px); height: auto; opacity: .5; overflow: visible; fill: none; transform: translate3d(calc(var(--mx, 0) * -8px), calc(var(--sy, 0px) * -0.05), 0); }
.orb-sky .skyplot circle { stroke: var(--ln); stroke-opacity: .5; }
.orb-sky .skyplot .zen { fill: var(--ac); stroke: none; }
.orb-sky .skyplot .sp { stroke: var(--ln); stroke-opacity: .22; }
.orb-sky .skyplot .tk { stroke: var(--ln); stroke-opacity: .7; }
.orb-sky svg text { fill: rgba(207, 227, 238, .7); stroke: none; font: 10px var(--font-mono); text-anchor: middle; letter-spacing: .08em; }
.orb-sky .skyplot .pass { stroke: var(--am); stroke-opacity: .45; stroke-dasharray: 3 5; }
.orb-sky .skyplot .pass.b { stroke: var(--ac); stroke-opacity: .35; }
.orb-sky .tgt rect { fill: rgba(242, 184, 75, .3); stroke: var(--am); }
.orb-sky .tgt text { fill: var(--am); text-anchor: start; font-size: 8.5px; }
.orb-sky .tgt.b rect { fill: rgba(111, 211, 232, .25); stroke: var(--ac); }
.orb-sky .tgt.b text { fill: var(--ac); }
.orb-sky .ground { left: 2vw; bottom: 5vh; width: clamp(280px, 34vw, 640px); height: auto; opacity: .42; fill: none; transform: translate3d(calc(var(--mx, 0) * 6px), calc(var(--sy, 0px) * -0.02), 0); }
.orb-sky .ground .gr { stroke: var(--ln); stroke-opacity: .28; }
.orb-sky .ground .eq { stroke: var(--ln); stroke-opacity: .5; stroke-dasharray: 2 4; }
.orb-sky .ground .trk { stroke: var(--am); stroke-opacity: .55; stroke-dasharray: 5 4; }
.orb-sky .ground .trk.b { stroke: var(--ac); stroke-opacity: .4; }
.orb-sky .ground .stn path, .orb-sky .ground .stn circle { stroke: #5ee08a; }
.orb-sky .ground .stn text { fill: #5ee08a; text-anchor: start; font-size: 11px; }
.orb-sky .ground .ssp circle { fill: var(--am); }
.orb-sky .waterfall {
  left: 0; top: 64px; bottom: 0; width: 34px; opacity: .35;
  background:
    repeating-linear-gradient(180deg, rgba(111, 211, 232, .35) 0 1px, transparent 1px 3px),
    linear-gradient(90deg, transparent 0 40%, rgba(111, 211, 232, .5) 46% 52%, transparent 58%),
    repeating-linear-gradient(90deg, rgba(111, 211, 232, .12) 0 2px, transparent 2px 5px);
  background-size: 100% 7px, 100% 100%, 100% 100%;
  -webkit-mask: linear-gradient(transparent, #000 20%, #000 80%, transparent); mask: linear-gradient(transparent, #000 20%, #000 80%, transparent);
  animation: orb-fall 2.4s linear infinite;
}
@keyframes orb-fall { to { background-position: 0 7px, 0 0, 0 0; } }
.orb-sky .ruler { opacity: .5; }
.orb-sky .ruler.rx { left: 0; right: 0; top: 60px; height: 8px;
  background: linear-gradient(90deg, var(--ln) 1px, transparent 1px) 0 0 / 100px 8px, linear-gradient(90deg, var(--ln) 1px, transparent 1px) 0 0 / 10px 4px; background-repeat: repeat-x; }
.orb-sky .ruler.ry { right: 0; top: 60px; bottom: 0; width: 8px;
  background: linear-gradient(180deg, var(--ln) 1px, transparent 1px) 100% 0 / 8px 100px, linear-gradient(180deg, var(--ln) 1px, transparent 1px) 100% 0 / 4px 10px; background-repeat: repeat-y; }
/* tone the aurora down to a faint single-hue wash: instruments, not a light show */
body.mc-app::before { opacity: .32; animation: none; filter: blur(10px) saturate(.55); }
html[data-theme='light'] .orb-sky { opacity: .5; }
html[data-theme='light'] .orb-sky .limb { display: none; }
html[data-bg='simple'] .orb-sky { display: none; }
html[data-motion='off'] .orb-sky *, html[data-motion='reduced'] .orb-sky * { animation: none !important; }
@media (prefers-reduced-motion: reduce) { .orb-sky * { animation: none !important; } }
@media (max-width: 760px) { .orb-sky .ground, .orb-sky .cap-ground, .orb-sky .waterfall { display: none; } .orb-sky .skyplot { width: 70vw; right: -24vw; opacity: .3; } .orb-sky .cap-plot { display: none; } }

/* Large screens scale the content with CSS zoom; ECharts maps the pointer with unzoomed sizes,
   so the chart node cancels the zoom again (effective zoom 1) while keeping its visual size. */
@media (min-width: 1900px) { :root { --pz: 1.12; } }
@media (min-width: 2300px) { :root { --pz: 1.32; } }
@media (min-width: 3000px) { :root { --pz: 1.62; } }
@media (min-width: 3600px) { :root { --pz: 1.9; } }
.chart-wrap > .chart { zoom: calc(1 / var(--pz, 1)); }
