/* REL 6.17.30 — system identity lock + final instrument polish */

/* The overview cards and detail pages now share the exact same field colors. */
.systems-overview .system-card{--card-field:#0d0d0c;--card-field2:#050505;--card-glow:rgba(201,163,75,.09);background:radial-gradient(circle at 88% 14%,var(--card-glow),transparent 34%),linear-gradient(145deg,var(--card-field),var(--card-field2))!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.018),0 20px 50px rgba(0,0,0,.16)}
.systems-overview .system-card.radar{--card-field:#0b2730;--card-field2:#041015;--card-glow:rgba(91,180,197,.11);border-color:rgba(91,180,197,.19)}
.systems-overview .system-card.distribution{--card-field:#1b180f;--card-field2:#080704;--card-glow:rgba(210,168,79,.12);border-color:rgba(210,168,79,.18)}
.systems-overview .system-card.operator{--card-field:#111923;--card-field2:#05080d;--card-glow:rgba(117,151,181,.11);border-color:rgba(117,151,181,.18)}
.systems-overview .system-card.search-systems{--card-field:#152019;--card-field2:#060906;--card-glow:rgba(130,168,132,.10);border-color:rgba(130,168,132,.17)}
.systems-overview .system-card.client{--card-field:#1b161c;--card-field2:#080608;--card-glow:rgba(166,132,166,.11);border-color:rgba(166,132,166,.17)}
.systems-overview .system-card:hover{background:radial-gradient(circle at 86% 13%,color-mix(in srgb,var(--card-glow) 86%,transparent),transparent 38%),linear-gradient(145deg,color-mix(in srgb,var(--card-field) 86%,#fff 14%),var(--card-field2))!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.025),0 24px 58px rgba(0,0,0,.3),0 0 40px var(--card-glow)}
.systems-overview .system-card::before{border-color:color-mix(in srgb,var(--card-field) 46%,#c9a34b 54%);opacity:.76}
.systems-overview .system-card::after{background:linear-gradient(transparent,color-mix(in srgb,var(--card-field) 36%,#c9a34b 64%),transparent)}

/* Carry the same identity farther down each detail page instead of dropping to generic black. */
body.system-page .frame{background:radial-gradient(circle at 72% 15%,var(--field) 0,var(--field2) 34%,color-mix(in srgb,var(--field2) 74%,#020202 26%) 67%,#020202 100%)}
body.system-page .section{background:linear-gradient(180deg,color-mix(in srgb,var(--field2) 88%,#0a0a09 12%),color-mix(in srgb,var(--field2) 56%,#020202 44%) 66%,#020202 100%)}
body.system-page .cap{border-color:color-mix(in srgb,var(--field) 30%,rgba(241,238,229,.12) 70%)}
body.system-page .threshold>div{border-color:color-mix(in srgb,var(--field) 32%,rgba(241,238,229,.12) 68%)}

/* Common instrument refinement: moving calibration ticks, cleaner signal core, less floaty motion. */
body.system-page .glyph svg circle:nth-of-type(3){stroke-dasharray:4 10;animation:calibrationMarch 22s linear infinite}
body.system-page .glyph svg circle[fill="#f3f3ed"]{filter:drop-shadow(0 0 8px var(--glow))}
body.system-page .glyph svg path,body.system-page .glyph svg circle,body.system-page .glyph svg rect{vector-effect:non-scaling-stroke}
body.system-page .instrument::before{animation-duration:9s}
body.system-page .glyph::after{animation-duration:19s;opacity:.47}

/* 01 / Search Radar — a probe that searches, measures and returns. */
body.system-search-radar .glyph::after{animation-duration:12s;opacity:.8}
body.system-search-radar .glyph svg path:last-of-type{animation:radarProbe 4.8s ease-in-out infinite;filter:drop-shadow(0 0 5px rgba(127,211,226,.2))}
body.system-search-radar .glyph svg circle:last-of-type{animation:probeNode 4.8s ease-in-out infinite;filter:drop-shadow(0 0 7px rgba(127,211,226,.22))}
body.system-search-radar .glyph svg circle:nth-of-type(4){animation:radarLens 7.2s ease-in-out infinite}

/* 02 / Distribution Radar — signal leaves the hub, reaches nodes, then returns to memory. */
body.system-distribution-radar .glyph svg path:nth-of-type(2){stroke-dasharray:12 18;animation:distributionFlow 10s linear infinite;filter:drop-shadow(0 0 4px rgba(210,168,79,.15))}
body.system-distribution-radar .glyph svg circle:nth-of-type(n+6){animation:distributionNode 7.2s ease-in-out infinite}
body.system-distribution-radar .glyph svg circle:nth-of-type(6){animation-delay:0s}
body.system-distribution-radar .glyph svg circle:nth-of-type(7){animation-delay:-1.2s}
body.system-distribution-radar .glyph svg circle:nth-of-type(8){animation-delay:-2.4s}
body.system-distribution-radar .glyph svg circle:nth-of-type(9){animation-delay:-3.6s}
body.system-distribution-radar .glyph svg circle:nth-of-type(10){animation-delay:-4.8s}
body.system-distribution-radar .glyph svg circle:nth-of-type(11){animation-delay:-6s}

/* 03 / Operator — alternating route states with a quiet verified center. */
body.system-operator .glyph svg{animation:none}
body.system-operator .glyph svg path:nth-of-type(2){animation:operatorRouteA 6.4s ease-in-out infinite}
body.system-operator .glyph svg path:nth-of-type(3){animation:operatorRouteB 6.4s ease-in-out infinite}
body.system-operator .glyph svg path:last-of-type{animation:operatorCheck 6.4s ease-in-out infinite;filter:drop-shadow(0 0 5px rgba(117,151,181,.18))}

/* 04 / Search Systems — architecture trace is deliberate and slower than Search Radar. */
body.system-search-systems .glyph svg path:last-of-type{stroke-dasharray:18 11;animation:architectureTrace 15s linear infinite;filter:drop-shadow(0 0 4px rgba(130,168,132,.15))}
body.system-search-systems .glyph svg circle:nth-of-type(4){animation:architectureMeasure 9s ease-in-out infinite}
body.system-search-systems .glyph::after{animation-duration:31s;opacity:.35}

/* 05 / Client Portals — a contained chamber, not another radar. */
body.system-client-portals .glyph::after{opacity:.24;animation-duration:52s}
body.system-client-portals .glyph svg rect{animation:portalChamber 9s ease-in-out infinite;filter:drop-shadow(0 0 5px rgba(166,132,166,.12))}
body.system-client-portals .glyph svg path:nth-last-of-type(2){animation:portalFocus 9s ease-in-out infinite}
body.system-client-portals .glyph svg circle:last-of-type{animation:portalSignal 9s ease-in-out infinite}

@keyframes calibrationMarch{to{stroke-dashoffset:-140}}
@keyframes radarProbe{0%,100%{opacity:.58}50%{opacity:1}}
@keyframes probeNode{0%,100%{opacity:.55;stroke-width:4}50%{opacity:1;stroke-width:6}}
@keyframes radarLens{0%,100%{opacity:.72}50%{opacity:1}}
@keyframes distributionFlow{to{stroke-dashoffset:-120}}
@keyframes distributionNode{0%,100%{opacity:.38;stroke-width:3}30%{opacity:1;stroke-width:5}55%{opacity:.56;stroke-width:4}}
@keyframes operatorRouteA{0%,100%{opacity:.5}50%{opacity:1}}
@keyframes operatorRouteB{0%,100%{opacity:1}50%{opacity:.48}}
@keyframes operatorCheck{0%,36%,100%{opacity:.55}50%,70%{opacity:1}}
@keyframes architectureTrace{to{stroke-dashoffset:-145}}
@keyframes architectureMeasure{0%,100%{opacity:.58}50%{opacity:1}}
@keyframes portalChamber{0%,100%{opacity:.62}50%{opacity:1}}
@keyframes portalFocus{0%,100%{opacity:.62}50%{opacity:.96}}
@keyframes portalSignal{0%,100%{opacity:.55}50%{opacity:1}}

@media(max-width:680px){.systems-overview .system-card{background:radial-gradient(circle at 100% 0,var(--card-glow),transparent 40%),linear-gradient(145deg,var(--card-field),var(--card-field2))!important}body.system-page .glyph::after{opacity:.32}}
@media(prefers-reduced-motion:reduce){body.system-page .glyph svg circle,body.system-page .glyph svg path,body.system-page .glyph svg rect{animation:none!important}}
