:root{--phosphor:#bfcdab;--amber:#c5a67c;--steel:#41524e;--green:#b2c9a7;--ink:#dbdfcd}
/* Film grain lives beneath the inspector, never on top of the YouTube player. */
.grain{inset:-12%;z-index:2;opacity:.115;background-image:url('assets/signal-grain.svg');background-size:192px 192px;animation:signal-noise 1.6s steps(8,end) infinite!important;will-change:transform}
.vignette{background:repeating-linear-gradient(0deg,#0000 0 3px,#01080820 3px 4px),radial-gradient(ellipse at 52% 44%,transparent 20%,#03080866 78%,#030808d9 100%)}
.topbar{background:linear-gradient(#080e10f0,#080e1066 75%,transparent)}
.brand-mark{overflow:visible;filter:drop-shadow(0 0 4px #a8c5a338)}
.brand-mark img{filter:sepia(.12)}
.brand-boot .brand-d,.brand-boot .brand-s,.brand-boot .brand-copy strong,.brand-boot .brand-copy small,.brand-scan{animation:none!important}
.brand-scan{display:block!important;width:3px;height:100%;background:#d7dfba;box-shadow:0 0 14px #bed3a9;inset:0 auto 0 -8px;pointer-events:none}
.brand-copy strong{text-shadow:.6px 0 #d5bda054,-.6px 0 #7abca547;letter-spacing:.065em}
.brand-copy small{color:#93a08a;letter-spacing:.17em}
.brand-broadcasting .brand-copy strong{color:#e3e6c5;text-shadow:0 0 13px #baca9377,1px 0 #c7987355}
.view-switch,.view-switch button,.map-controls button,.contact-callout{border-radius:0}
.view-switch{border-color:#82977c45;box-shadow:inset 0 0 0 2px #050a08}
.view-switch button[aria-pressed=true]{background:#adbca4;color:#0b1915;box-shadow:0 0 13px #b6c7a814}
.view-switch button[aria-pressed=true] span{color:#344938}
.contact-callout{background:linear-gradient(90deg,#090f0ff5,#071013a0);border-left:2px solid #a5bc8e99}
.contact-title{text-shadow:0 0 8px #b3c89535}.contact-detail{color:#9aa58d!important}
.earth-contact .contact-button{background:#0a171738}.earth-contact .contact-button img{opacity:.65}
.contact[data-type=World] .contact-button{background:#0a171745}
.inspector{background:#0b1313;border:1px solid #87917883;border-top:3px solid #adba9b;border-radius:0;box-shadow:0 25px 100px #000b,0 0 0 3px #050a08,0 0 0 4px #62736033}
.inspector::before{height:3px;width:50%;background:linear-gradient(90deg,transparent,#c3c9a8,transparent);animation:panel-carrier 8s ease-in-out infinite!important}
.inspector-top,.record-navigation{background:#1b2321;border-color:#78837070;color:#afba9d}
.inspector-top{background-image:repeating-linear-gradient(90deg,#0000 0 3px,#0002 3px 4px);box-shadow:inset 0 -2px #060b0a}
#archive-id{color:#c1c5aa;font-size:10px;letter-spacing:.08em;border-left:1px solid #8a957462;padding-left:12px}
.record-indicators{display:flex;gap:3px;align-items:center;margin-left:auto;margin-right:19px;height:10px}
.record-indicators i{height:7px;width:3px;background:#afb893;opacity:.25;animation:relay-lamps 3.6s ease-in-out infinite!important}
.record-indicators i:nth-child(2){animation-delay:.2s!important}.record-indicators i:nth-child(3){animation-delay:.4s!important}.record-indicators i:nth-child(4){animation-delay:.6s!important}.record-indicators i:nth-child(5){animation-delay:.8s!important}.record-indicators i:nth-child(6){animation-delay:1s!important}.record-indicators i:nth-child(7){animation-delay:1.2s!important}.record-indicators i:nth-child(8){animation-delay:1.4s!important}
.identity,.field-report,.transport,.inspector-top,.record-navigation{position:relative;isolation:isolate}
.identity:after,.field-report:after,.transport:after,.inspector-top:after,.record-navigation:after{content:"";position:absolute;inset:0;background:url('assets/signal-grain.svg') 0 0/150px 150px;opacity:.11;pointer-events:none;z-index:-1;animation:surface-noise 2s steps(6,end) infinite!important}
.identity{overflow:hidden;background:repeating-linear-gradient(0deg,#050c0b00 0 3px,#050c0b99 3px 4px),linear-gradient(115deg,#28362e,#101b18 70%);border-left:2px solid #b9b18e;border-bottom:1px solid #82907366}
.identity:before{content:"";position:absolute;inset:-55% 0 auto;height:40%;background:linear-gradient(0deg,transparent,#c4d69c16,transparent);pointer-events:none;animation:phosphor-sweep 9s linear infinite!important}
.identity h1{font-family:"IBM Plex Sans Condensed",sans-serif;font-weight:600;text-transform:uppercase;font-size:40px;letter-spacing:.015em;line-height:1.03;color:#d7dfbb;text-shadow:0 0 15px #b4cc8c2b,1px 0 #b99c6a50,-1px 0 #609a8240;margin:14px 0 12px}
.identity h1:after{content:"";display:inline-block;width:.45em;height:.7em;border-bottom:2px solid #a9bb85;margin-left:5px;animation:terminal-cursor 2s ease-in-out infinite!important}
.identity>p{color:#a8b49b;letter-spacing:.12em;font-size:8px}
#signal-type{color:#172118;background:#bbc0a3;border-color:#cdd2b9;border-radius:0;font-weight:500;box-shadow:2px 2px #0004}
#signal-status{color:#b3a380;font-size:7px}
.inspector[data-type=Anomaly] .identity{border-left-color:#c69d72;background-color:#24231c}
.inspector[data-type=Anomaly] .identity h1{color:#decaac}
.transmission-player{background:#0a1211}
.player-heading,.report-heading{border-bottom:1px solid #65725635}
.player-heading h2,.report-heading h2{color:#c1c8a8;font-size:9px;letter-spacing:.13em}
.player-heading h2 span,.report-heading h2 span{color:#b19c78;border-right:1px solid #89947455;padding-right:9px}
.player-heading a{color:#aaa98c}
.transport{background:repeating-linear-gradient(0deg,transparent 0 3px,#02060424 3px 4px),#17211c;border-color:#70806780;box-shadow:inset 0 2px #c1caaa0d}
.transport button{border-radius:0}
.transport-play{background:#c8c9a6!important;color:#172015;box-shadow:inset 0 0 0 2px #e5e3bc40,2px 2px #0008,0 0 16px #c6c5961a}
.transport-play:hover{background:#e0dfb7!important}
#transport-status{color:#b8c391;letter-spacing:.09em}
.transport-readout>div{color:#d2d6b1;text-shadow:0 0 6px #bbd49c24}
.seek-track{background:#17211c;border-color:#70806780}
.seek-track input{background:linear-gradient(to right,#c5cbaa 0%,#c5cbaa var(--progress),#6f805e var(--progress),#6f805e var(--buffered),#35422f var(--buffered),#35422f 100%)}
.transmission-player .media{border-color:#7d8b6c88}
.field-report{background:repeating-linear-gradient(0deg,#0000 0 3px,#01070428 3px 4px),#101a16;border-top:1px solid #7883676e}
.report-heading>span{color:#a79875;font-size:7px}
#signal-lore{color:#bbc6ad;line-height:1.85}
#signal-facts{border-color:#6e7d5f6b;border-radius:0;background:#0a110d}
#signal-facts>div+div{border-color:#6e7d5f6b}
#signal-facts dt{color:#98a284}#signal-facts dd{color:#d0d2b6}
.record-navigation{font-size:9px;border-top:2px solid #78856a88}
.record-navigation button{color:#bec4a7}
.record-navigation button:hover{color:#e2e7c6;text-shadow:0 0 10px #c3d29970}
.archive-tools{border-bottom-color:#a6b68e}.archive-row{border-bottom-color:#72835c42}.archive-row:hover{background:#829c4b15}.archive-record>strong{font-family:"IBM Plex Sans Condensed",sans-serif;text-transform:uppercase;letter-spacing:.025em}.archive-kind{color:#a9b39a}
@keyframes signal-noise{0%,100%{transform:translate(0,0)}12%{transform:translate(2%,1%)}25%{transform:translate(-1%,2%)}37%{transform:translate(1%,-2%)}50%{transform:translate(-2%,1%)}62%{transform:translate(2%,-1%)}75%{transform:translate(-1%,-2%)}87%{transform:translate(1%,2%)}}
@keyframes surface-noise{0%,100%{background-position:0 0}25%{background-position:23px 37px}50%{background-position:-19px 12px}75%{background-position:31px -28px}}
@keyframes phosphor-sweep{0%,20%{transform:translateY(0);opacity:0}25%{opacity:.8}80%{opacity:.8}100%{transform:translateY(420%);opacity:0}}
@keyframes panel-carrier{0%,15%{transform:translateX(-100%);opacity:.1}30%{opacity:1}80%{opacity:.6}100%{transform:translateX(300%);opacity:.1}}
@keyframes relay-lamps{0%,20%,100%{opacity:.22;box-shadow:none}45%,65%{opacity:1;box-shadow:0 0 5px #b7cd8b66}}
@keyframes terminal-cursor{0%,20%,100%{opacity:.22}45%,65%{opacity:.9}}
@media(prefers-reduced-motion:reduce){.grain{animation-duration:8s!important;animation-timing-function:steps(3,end)!important}.identity:after,.field-report:after,.transport:after,.inspector-top:after,.record-navigation:after{animation-duration:8s!important}.identity:before{animation-duration:16s!important}.inspector:before{animation-duration:16s!important}}
body.motion-paused .grain,body.motion-paused .identity:before,body.motion-paused .identity:after,body.motion-paused .field-report:after,body.motion-paused .transport:after,body.motion-paused .inspector-top:after,body.motion-paused .record-navigation:after,body.motion-paused .inspector:before,body.motion-paused .record-indicators i,body.motion-paused .identity h1:after{animation-play-state:paused!important}
@media(min-width:801px) and (max-height:800px){.identity h1{font-size:33px;margin:8px 0}.record-indicators{margin-right:14px}}
@media(max-width:800px){.identity h1{font-size:34px}.record-indicators{margin-right:12px;gap:2px}}
@media(max-width:640px){.identity h1{font-size:33px;margin:12px 0 10px}.identity>p{font-size:7px}#signal-status{font-size:6px}.inspector{border-top-width:2px}.record-indicators{margin-right:12px}.record-indicators i{width:2px}#archive-id{font-size:8px}.player-heading h2,.report-heading h2{font-size:8px}}
