/* =====================================================================
   Sources orbit — [cts_sources] (prototype). Uses the Signal tokens (--sig-*).
   Section class: .sig-sources (navy band). Motion lives in orbit.js.
   ===================================================================== */
/* the section is light (the hero above it is navy); the orbit's colours are variables (defaults suit a navy background) */
.sig-sources{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--sig-white) 0%,var(--sig-tint) 38%,var(--sig-tint-2) 72%,var(--sig-soft) 100%);color:var(--sig-ink)}
.sig-sources::before{content:"";position:absolute;inset:0;background-image:radial-gradient(ellipse 60% 46% at 50% 62%,rgba(26,179,240,.2),transparent 70%),linear-gradient(rgba(31,91,216,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(31,91,216,.05) 1px,transparent 1px);background-size:100% 100%,48px 48px,48px 48px;pointer-events:none}
.sig-sources .sig-wrap{position:relative;z-index:1;align-items:center;text-align:center}
.sig-sources .sig-sc{width:100%}
.sig-sources .sig-disclaimer{color:var(--sig-faint)!important;font-size:var(--sig-text-sm)!important;line-height:1.55;max-width:860px}
.sig-sources .sig-orb{--orb-ring:rgba(31,91,216,.22);--orb-line:rgba(31,91,216,.1);--orb-live:rgba(31,91,216,.7);--orb-dot:var(--sig-blue);--orb-glow:rgba(31,91,216,.55);--orb-tile:0 0 0 1px rgba(11,29,63,.06),0 12px 28px rgba(11,29,63,.14);--orb-hub:0 0 0 10px rgba(31,91,216,.07),0 0 80px rgba(26,179,240,.35),0 30px 60px rgba(11,29,63,.28);--orb-btn:var(--sig-muted);--orb-btn-line:var(--sig-line-strong);--orb-btn-hover:rgba(31,91,216,.07)}

.sig-orb{--orb-ring:rgba(127,216,255,.16);--orb-line:rgba(127,216,255,.07);--orb-live:rgba(127,216,255,.55);--orb-dot:var(--sig-sky-lt);--orb-glow:rgba(26,179,240,.8);--orb-tile:0 10px 26px rgba(0,0,0,.35);--orb-hub:0 0 0 10px rgba(26,179,240,.07),0 0 90px rgba(26,179,240,.28),0 30px 70px rgba(0,0,0,.5);--orb-btn:var(--sig-on-navy);--orb-btn-line:rgba(255,255,255,.3);--orb-btn-hover:rgba(255,255,255,.08);position:relative;width:100%;display:flex;flex-direction:column;align-items:center;gap:8px}
.sig-orb-stage{position:relative;width:100%;height:690px;--tile:62px;--hub:.9}
.sig-orb-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:1}
.sig-orb-ring{fill:none;stroke:var(--orb-ring);stroke-width:1;stroke-dasharray:2 7}
.sig-orb-line{stroke:var(--orb-line);stroke-width:1;transition:stroke .3s}
.sig-orb-line.is-live{stroke:var(--orb-live);stroke-width:1.5}
.sig-orb-dot{fill:var(--orb-dot);filter:drop-shadow(0 0 6px var(--orb-glow)) drop-shadow(0 0 14px var(--orb-glow));opacity:0}
.sig-orb-dot.is-live{opacity:1}

/* tiles */
.sig-orb-tile{position:absolute;left:0;top:0;width:var(--tile);height:var(--tile);margin:calc(var(--tile)/-2) 0 0 calc(var(--tile)/-2);z-index:3;will-change:transform}
.sig-orb-tile[hidden]{display:none}
.sig-orb-tile>.sig-orb-mark{width:100%;height:100%;border-radius:28%;box-shadow:var(--orb-tile);transition:box-shadow .25s,transform .25s}
.sig-orb-mark{display:flex;align-items:center;justify-content:center;background:var(--sig-white);color:var(--c,var(--sig-blue));box-sizing:border-box}
.sig-orb-mark svg{width:56%;height:56%;display:block}
.sig-orb-word{font:800 calc(var(--tile)*var(--k,.3))/1 var(--sig-display);letter-spacing:-.02em;color:var(--c)}
.sig-orb-label{position:absolute;left:50%;top:calc(100% + 8px);transform:translateX(-50%);white-space:nowrap;padding:4px 10px;border-radius:var(--sig-r-pill);background:rgba(7,18,42,.92);border:1px solid rgba(127,216,255,.3);color:var(--sig-white);font:600 var(--sig-text-xs)/1.2 var(--sig-font);opacity:0;transition:opacity .2s;pointer-events:none}
.sig-orb-tile.is-edge-l .sig-orb-label{left:0;transform:none}
.sig-orb-tile.is-edge-r .sig-orb-label{left:auto;right:0;transform:none}
.sig-orb-tile:hover,.sig-orb-tile.is-live{z-index:6}
.sig-orb-tile:hover .sig-orb-label,.sig-orb-tile.is-live .sig-orb-label{opacity:1}
.sig-orb-tile.is-live>.sig-orb-mark{box-shadow:0 0 0 4px rgba(26,179,240,.55),0 0 34px rgba(26,179,240,.7);transform:scale(1.1)}

/* phone */
.sig-orb-hub{position:absolute;left:50%;top:50%;z-index:4;width:214px;height:372px;box-sizing:border-box;padding:8px;border-radius:34px;background:var(--sig-navy-deep);border:1px solid rgba(127,216,255,.4);box-shadow:var(--orb-hub);transform:translate(-50%,-50%) scale(var(--hub));text-align:left}
.sig-orb-hub.is-ping{animation:sig-orb-ping .7s ease-out}
@keyframes sig-orb-ping{0%{outline:0 solid rgba(26,179,240,.6);outline-offset:0}100%{outline:3px solid rgba(26,179,240,0);outline-offset:26px}}
.sig-orb-screen{height:100%;box-sizing:border-box;border-radius:26px;background:var(--sig-white);color:var(--sig-ink);padding:16px 12px 12px;display:flex;flex-direction:column;gap:10px;overflow:hidden;font-family:var(--sig-font)}
.sig-orb-status{display:flex;align-items:center;justify-content:center;gap:7px;font-size:var(--sig-text-2xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--sig-blue)}
.sig-orb-status i{width:7px;height:7px;border-radius:50%;background:var(--sig-ok-dot);box-shadow:0 0 0 4px rgba(26,158,85,.18)}
.sig-orb-now{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;padding-bottom:10px;border-bottom:1px solid var(--sig-line)}
.sig-orb-now.is-in{animation:sig-orb-in .35s ease-out}
@keyframes sig-orb-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.sig-orb-now .sig-orb-mark{width:46px;height:46px;border-radius:var(--sig-r-md);border:1px solid var(--sig-line);margin-bottom:4px;--tile:46px}
.sig-orb-now strong{font-size:var(--sig-text-lg);line-height:1.2}
.sig-orb-now span[data-orb-detail]{font-size:var(--sig-text-2xs);line-height:1.3;color:var(--sig-faint);min-height:30px}
.sig-orb-now b{font-size:var(--sig-text-sm);font-variant-numeric:tabular-nums;color:var(--sig-ink)}
.sig-orb-recent em{display:block;font-style:normal;font-size:var(--sig-text-2xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--sig-faint);margin-bottom:6px}
.sig-orb-recent ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.sig-orb-recent li{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:7px;font-size:var(--sig-text-xs);font-weight:600;margin:0}
.sig-orb-recent li>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sig-orb-recent li .sig-orb-mark{width:22px;height:22px;border-radius:var(--sig-r-sm);border:1px solid var(--sig-line);--tile:22px}
.sig-orb-recent li i{font-style:normal;font-size:var(--sig-text-2xs);font-weight:700;padding:2px 6px;border-radius:var(--sig-r-pill)}
.sig-orb-recent .is-ok{background:var(--sig-ok-bg);color:var(--sig-ok)}
.sig-orb-recent .is-miss{background:var(--sig-warn-bg);color:var(--sig-warn)}

.sig-orb-pause{appearance:none;background:transparent;border:1px solid var(--orb-btn-line);color:var(--orb-btn);border-radius:var(--sig-r-pill);padding:8px 16px;font:600 var(--sig-text-sm)/1 var(--sig-font);cursor:pointer}
.sig-orb-pause:hover{background:var(--orb-btn-hover)}
.sig-orb-pause:focus-visible{outline:3px solid var(--sig-sky);outline-offset:2px}

@media (max-width:1000px){.sig-orb-stage{--tile:54px}}
@media (max-width:759px){
	.sig-orb-stage{height:540px;--tile:44px;--hub:.78}
	.sig-orb-label{font-size:var(--sig-text-2xs);padding:3px 8px}
}
/* small per-industry orbit: its own light panel (same colours as the Home section), one ring */
.sig-orb--mini{--orb-ring:rgba(31,91,216,.22);--orb-line:rgba(31,91,216,.1);--orb-live:rgba(31,91,216,.7);--orb-dot:var(--sig-blue);--orb-glow:rgba(31,91,216,.55);--orb-tile:0 0 0 1px rgba(11,29,63,.06),0 12px 28px rgba(11,29,63,.14);--orb-hub:0 0 0 10px rgba(31,91,216,.07),0 0 80px rgba(26,179,240,.35),0 30px 60px rgba(11,29,63,.28);--orb-btn:var(--sig-muted);--orb-btn-line:var(--sig-line-strong);--orb-btn-hover:rgba(31,91,216,.07);border:1px solid var(--sig-line-strong);border-radius:var(--sig-r-xl);padding:14px 0 16px;overflow:hidden;box-shadow:var(--sig-shadow-md);background-color:var(--sig-tint);background-image:radial-gradient(ellipse 70% 55% at 50% 48%,rgba(26,179,240,.22),transparent 70%),linear-gradient(rgba(31,91,216,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(31,91,216,.05) 1px,transparent 1px),linear-gradient(180deg,var(--sig-white) 0%,var(--sig-tint-2) 100%);background-size:100% 100%,48px 48px,48px 48px,100% 100%}
.sig-orb--mini .sig-orb-stage{height:470px;--tile:50px;--hub:.72}
@media (max-width:759px){.sig-orb--mini .sig-orb-stage{height:450px;--tile:44px;--hub:.7}}
/* small phone screen: a coloured dot instead of the Answered/Missed label, so source names fit */
.sig-orb--mini .sig-orb-recent li i{font-size:0;width:9px;height:9px;padding:0;border-radius:50%}
.sig-orb--mini .sig-orb-recent .is-ok{background:var(--sig-ok-dot)}
.sig-orb--mini .sig-orb-recent .is-miss{background:var(--sig-amber-lt)}
/* flipped rows: the text is first in the page; on wide screens it moves to the right of the visual */
@media (min-width:1101px){.sig-split--flip>.sig-col:first-child{order:2}}
@media (prefers-reduced-motion:reduce){
	.sig-orb-hub.is-ping,.sig-orb-now.is-in{animation:none}
	.sig-orb-tile>.sig-orb-mark,.sig-orb-label,.sig-orb-line{transition:none}
}
