.xwho--air {
  --xw-blue: var(--pillar-accent, #50A2FF); --xw-acc-rgb: var(--pillar-accent-rgb, 80, 162, 255);
  --xw-heat: var(--sev-warn, #F59E0B); --xw-heat-hi: var(--sev-adv, #FCD34D); --xw-red: var(--sev-crit, #F87171);
}
.xwho--air .xwho__scene { background: radial-gradient(120% 90% at 50% 0%, rgba(var(--xw-acc-rgb), 0.06), transparent 60%), var(--xw-card); }
.xwho--air .xwho__toggle:hover { border-color: #50A2FF; }
.xwho--air .xwho__toggle:focus-visible { outline-color: #50A2FF; }

.xa-lab { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.06em; fill: var(--xw-muted); }
.xa-lab--hi { fill: var(--xw-text); }
.xa-ok circle { fill: var(--xw-card); stroke: var(--xw-blue); stroke-width: 1.5; }
.xa-ok path { fill: none; stroke: var(--xw-blue); stroke-width: 1.75; }

.xa-dot--ok { fill: var(--xw-blue); }
.xa-dot--adv { fill: var(--sev-adv, #FCD34D); }
.xa-dot--warn { fill: var(--sev-warn, #F59E0B); }
.xa-ring { fill: none; stroke: var(--xw-blue); stroke-width: 1.5; }
.xa-tick { fill: none; stroke: var(--xw-blue); stroke-width: 1.6; }

.xa2-tint--adv { fill: rgba(var(--sev-adv-rgb, 252, 211, 77), 0.12); stroke: rgba(var(--sev-adv-rgb, 252, 211, 77), 0.55); stroke-width: 1.25; }
.xa2-tint--ok { fill: rgba(var(--xw-acc-rgb), 0.10); stroke: rgba(var(--xw-acc-rgb), 0.5); stroke-width: 1.25; opacity: 0; }
.xa2-pad { fill: var(--xw-raised); stroke: var(--sev-adv, #FCD34D); stroke-width: 1.6; }
.xwho--air .xa2-ping { stroke: var(--sev-adv, #FCD34D); }
.xa2-tech circle, .xa2-tech path { fill: none; stroke: var(--xw-text); stroke-width: 1.75; }
.xa2-tech .xa2-wrench { stroke: var(--xw-blue); stroke-width: 1.5; }
.xa2-ok { opacity: 0; }
.xa2-chip__box { fill: rgba(var(--sev-adv-rgb, 252, 211, 77), 0.12); stroke: var(--sev-adv, #FCD34D); stroke-width: 1.25; }
.xa2-trend { fill: none; stroke: var(--sev-adv, #FCD34D); stroke-width: 2.25; stroke-dasharray: 1; stroke-dashoffset: 0; }
.xa2-lvl { fill: none; stroke: var(--sev-adv, #FCD34D); stroke-width: 1; stroke-dasharray: 4 4; opacity: 0.6; }

.xa3-arc { fill: none; stroke: var(--xw-line-2); stroke-width: 1.5; stroke-dasharray: 3 5; }
.xa3-sunwrap { transform-box: view-box; transform-origin: 88px 92px; transform: rotate(32deg); }
.xa3-sun circle, .xa3-sun path { fill: none; stroke: var(--xw-text); stroke-width: 1.75; }
.xa3-seg { stroke-width: 1.25; }
.xa3-seg--1 { fill: var(--xw-line-2); stroke: var(--xw-line-2); }
.xa3-seg--2 { fill: var(--sev-adv, #FCD34D); stroke: var(--sev-adv, #FCD34D); }
.xa3-seg--3 { fill: var(--sev-warn, #F59E0B); stroke: var(--sev-warn, #F59E0B); }
.xa3-seg--4 { fill: none; stroke: var(--xw-line-2); }
.xa3-board { fill: #050506; stroke: var(--xw-line-2); stroke-width: 1.5; }
.xa3-led { font-family: var(--font-mono); font-weight: 700; font-size: 16px; letter-spacing: 0.02em; fill: var(--sev-warn, #F59E0B); }
.xa3-led--big { font-size: 28px; }
.xa3-crew path, .xa3-crew circle { fill: none; stroke: var(--xw-blue); stroke-width: 1.75; }

.xwho.is-anim .xa-ok--1 { animation: xa-p9 var(--xw-T) var(--ease-out, ease) infinite; }
.xwho.is-anim .xa-ok--2 { animation: xa-p21 var(--xw-T) var(--ease-out, ease) infinite; }
.xwho.is-anim .xa-ok--3 { animation: xa-p33 var(--xw-T) var(--ease-out, ease) infinite; }
.xwho.is-anim .xa-ok--4 { animation: xa-p45 var(--xw-T) var(--ease-out, ease) infinite; }
.xwho.is-anim .xa1-row--1 { animation: xw-row6 var(--xw-T) var(--ease-out, ease) infinite; }
.xwho.is-anim .xa1-row--2 { animation: xw-row18 var(--xw-T) var(--ease-out, ease) infinite; }
.xwho.is-anim .xa1-row--3 { animation: xw-row30 var(--xw-T) var(--ease-out, ease) infinite; }
.xwho.is-anim .xa1-row--4 { animation: xw-row42 var(--xw-T) var(--ease-out, ease) infinite; }

.xwho.is-anim .xa2-tint--adv { animation: xa2-adv var(--xw-T) linear infinite; }
.xwho.is-anim .xa2-tint--ok { animation: xa2-okt var(--xw-T) linear infinite; }
.xwho.is-anim .xa2-pad { animation: xa2-pad var(--xw-T) linear infinite; }
.xwho.is-anim .xa2-chip { animation: xw-a20 var(--xw-T) linear infinite; }
.xwho.is-anim .xa2-trend { animation: xw2-draw var(--xw-T) var(--ease-in, ease-in) infinite; }
.xwho.is-anim .xa2-since { animation: xw-a40 var(--xw-T) linear infinite; }
.xwho.is-anim .xa2-tech { animation: xw-slide56 var(--xw-T) var(--ease-out, ease) infinite; }
.xwho.is-anim .xa2-ok { animation: xa-p79 var(--xw-T) var(--ease-out, ease) infinite; }

.xwho.is-anim .xa3-sunwrap { animation: xa3-sun var(--xw-T) linear infinite; }
.xwho.is-anim .xa3-seg--2 { animation: xa3-l2 var(--xw-T) linear infinite; }
.xwho.is-anim .xa3-seg--3 { animation: xa3-l3 var(--xw-T) linear infinite; }
.xwho.is-anim .xa3-msg { animation: xa3-flash var(--xw-T) steps(1, end) infinite; }
.xwho.is-anim .xa3-crew path, .xwho.is-anim .xa3-crew circle { animation: xa3-crew var(--xw-T) linear infinite; }

.xwho.is-anim .xa-ok, .xwho.is-anim .xa1-row, .xwho.is-anim .xa2-tint--adv, .xwho.is-anim .xa2-tint--ok, .xwho.is-anim .xa2-pad,
.xwho.is-anim .xa2-chip, .xwho.is-anim .xa2-trend, .xwho.is-anim .xa2-since, .xwho.is-anim .xa2-tech,
.xwho.is-anim .xa3-sunwrap, .xwho.is-anim .xa3-seg, .xwho.is-anim .xa3-msg, .xwho.is-anim .xa3-crew path, .xwho.is-anim .xa3-crew circle { animation-delay: var(--xw-start); }

@keyframes xa-p9 { 0%, 8% { opacity: 0; transform: scale(0.4); } 11% { opacity: 1; transform: scale(1.18); } 13%, 95% { opacity: 1; transform: scale(1); } 99%, 100% { opacity: 0; transform: scale(1); } }
@keyframes xa-p21 { 0%, 20% { opacity: 0; transform: scale(0.4); } 23% { opacity: 1; transform: scale(1.18); } 25%, 95% { opacity: 1; transform: scale(1); } 99%, 100% { opacity: 0; transform: scale(1); } }
@keyframes xa-p33 { 0%, 32% { opacity: 0; transform: scale(0.4); } 35% { opacity: 1; transform: scale(1.18); } 37%, 95% { opacity: 1; transform: scale(1); } 99%, 100% { opacity: 0; transform: scale(1); } }
@keyframes xa-p45 { 0%, 44% { opacity: 0; transform: scale(0.4); } 47% { opacity: 1; transform: scale(1.18); } 49%, 95% { opacity: 1; transform: scale(1); } 99%, 100% { opacity: 0; transform: scale(1); } }
@keyframes xa-p79 { 0%, 78% { opacity: 0; transform: scale(0.4); } 81% { opacity: 1; transform: scale(1.18); } 83%, 95% { opacity: 1; transform: scale(1); } 99%, 100% { opacity: 0; transform: scale(1); } }
@keyframes xa2-adv { 0%, 13% { opacity: 0; } 16%, 72% { opacity: 1; } 76%, 100% { opacity: 0; } }
@keyframes xa2-okt { 0%, 74% { opacity: 0; } 78%, 95% { opacity: 1; } 99%, 100% { opacity: 0; } }
@keyframes xa2-pad { 0%, 13% { stroke: var(--xw-blue); } 16%, 72% { stroke: var(--sev-adv, #FCD34D); } 76%, 100% { stroke: var(--xw-blue); } }
@keyframes xa3-sun { 0% { transform: rotate(-62deg); } 95% { transform: rotate(62deg); } 100% { transform: rotate(62deg); } }
@keyframes xa3-l2 { 0%, 27% { opacity: 0.12; } 30%, 95% { opacity: 1; } 99%, 100% { opacity: 0.12; } }
@keyframes xa3-l3 { 0%, 47% { opacity: 0.12; } 50%, 95% { opacity: 1; } 99%, 100% { opacity: 0.12; } }
@keyframes xa3-flash { 0% { opacity: 0; } 54% { opacity: 1; } 58.5% { opacity: 0; } 63% { opacity: 1; } 67.5% { opacity: 0; } 72% { opacity: 1; } 97% { opacity: 0; } 100% { opacity: 0; } }
@keyframes xa3-crew { 0%, 71% { stroke: var(--xw-muted); } 74%, 95% { stroke: var(--xw-blue); } 99%, 100% { stroke: var(--xw-muted); } }
