/* Outer backgrounds only. Entry stars and component animations stay independent. */
html.bg-home-grid,body.bg-home-grid {background:#000000;}
#retro-grid-bg {position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;}
#retro-grid-bg > div {position:absolute;inset:0;pointer-events:none;background-repeat:repeat;}
#retro-grid-bg .grid-major {
 background-image:linear-gradient(#162712 1px,transparent 1px),linear-gradient(90deg,#162712 1px,transparent 1px);
 background-size:40px 40px;
 animation:dromo-grid-major 16s linear infinite;
}
#retro-grid-bg .grid-minor {
 background-image:linear-gradient(#080f06 1px,transparent 1px),linear-gradient(90deg,#080f06 1px,transparent 1px);
 background-size:40px 40px;
 animation:dromo-grid-minor 32s linear infinite;
}
/* The reference has two equal-pitch grids drifting diagonally in opposite directions.
   Use its 2:1 speed relationship, slowed down for this long, busy page. */
@keyframes dromo-grid-major {from{background-position:0 0}to{background-position:-40px -40px}}
@keyframes dromo-grid-minor {from{background-position:20px 20px}to{background-position:60px 60px}}
.retro-motion-paused #retro-grid-bg > div {animation-play-state:paused!important;}
@media(prefers-reduced-motion:reduce){#retro-grid-bg > div {animation:none!important;}#retro-grid-bg .grid-minor{background-position:20px 20px;}}
html.bg-home-starfield {background:#000;}
body.bg-home-starfield {background:#000 url('/assets/space.svg') repeat fixed;isolation:isolate;}
.home-starfield {position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;}
.star-layer {position:absolute;inset:0;pointer-events:none;}
.home-starfield i {position:absolute;display:block;width:2px;height:2px;background:var(--star-color);opacity:.03;box-shadow:0 0 2px var(--star-color);animation:star-speck var(--period) linear var(--delay) infinite;}
.home-starfield .star-medium {width:3px;height:3px;margin:-1px;box-shadow:0 0 3px 1px var(--star-color);animation-name:star-medium;}
.home-starfield .star-medium::after {content:'';position:absolute;left:-2px;top:1px;width:7px;height:1px;background:var(--star-color);}
.home-starfield .star-bright {width:1px;height:11px;margin-top:-5px;box-shadow:0 0 5px 1px var(--star-color);animation-name:star-bright;}
.star-bright::after {content:'';position:absolute;left:-5px;top:5px;width:11px;height:1px;background:var(--star-color);box-shadow:0 0 3px var(--star-color);}
@keyframes star-speck {0%,79%,100%{opacity:.03}85%{opacity:1}89%{opacity:.2}94%{opacity:.05}}
@keyframes star-medium {0%,83%,100%{opacity:.02}87%{opacity:1}90%{opacity:.18}93%{opacity:.75}97%{opacity:.02}}
@keyframes star-bright {0%,92%,100%{opacity:.01}94%{opacity:1}96%{opacity:.1}97.5%{opacity:.8}99%{opacity:.03}}
.retro-motion-paused .home-starfield i {animation-play-state:paused!important;}
@media(prefers-reduced-motion:reduce){.home-starfield i{animation-duration:calc(var(--period)*5)!important;animation-name:star-speck!important;animation-timing-function:linear!important;animation-iteration-count:infinite!important;opacity:.2}}
