/* Blueprint palette, approved homepage signal behavior; headline has its own lane. */
.homepage-controls{position:absolute;left:6%;top:18px;height:auto;z-index:10;padding:0;display:flex;align-items:center;background:transparent}
.homepage{height:100svh;min-height:650px;position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 52% 61%,#442ba242,transparent 70%),#08051b}
.homepage::before{content:"";position:absolute;z-index:-1;inset:-5%;pointer-events:none;background:radial-gradient(ellipse at 52% 61%,#7750d659 0,#442ba233 35%,transparent 67%);opacity:.74;animation:homepage-illumination 8s ease-in-out infinite}
.homepage .hero-copy{position:absolute;z-index:2;top:140px;left:6%;right:6%;pointer-events:none}.homepage h1{max-width:1100px;margin:0;font-size:clamp(38px,3.5vw,64px);line-height:1.13;letter-spacing:-1.8px;font-weight:500;color:#f5f4ff}.headline-break{display:none}
.homepage .network{position:absolute;inset:200px 6% 58px;z-index:1;transform:none;transition:transform .34s ease-in}
.homepage .network-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;fill:none;pointer-events:none}
.homepage .network-edge{opacity:.72;transition:opacity .28s ease}
.homepage .connection-shadow{stroke:#050216;stroke-width:3.5;opacity:.5}
.homepage .connection-glow{stroke:inherit;stroke-width:7;opacity:.045;filter:url(#network-glow);transition:opacity .3s}
.homepage .connection-thread{stroke:inherit;stroke-width:.7;opacity:.24;transition:opacity .28s,stroke-width .28s}
.homepage .connection-thread[data-strand="0"]{opacity:.42;stroke-width:.9}
.homepage .signal-tail,.homepage .signal-core{stroke:inherit;stroke-linecap:round;stroke-dashoffset:1000;animation:homepage-signal var(--signal-period,9s) linear infinite;animation-delay:var(--signal-phase,0s)}
.homepage .signal-tail{stroke-width:3;stroke-dasharray:12 988;opacity:.16}
.homepage .signal-core{stroke-width:3.3;stroke-dasharray:1 198 2 299 2 498;opacity:.78;transition:stroke-width .3s,opacity .3s}
.homepage .edge-1{--signal-period:8s;--signal-phase:-2s}.homepage .edge-2{--signal-period:10s;--signal-phase:-5s}.homepage .edge-3{--signal-period:11s;--signal-phase:-3s}.homepage .edge-4{--signal-period:9s;--signal-phase:-4s}.homepage .edge-5{--signal-period:8s;--signal-phase:-6s}.homepage .edge-6{--signal-period:10s;--signal-phase:-2.5s}.homepage .edge-7{--signal-period:7s;--signal-phase:-1.5s}.homepage .edge-8{--signal-period:10s;--signal-phase:-4.5s}.homepage .edge-9{--signal-period:8s;--signal-phase:-2.7s}.homepage .edge-10{--signal-period:9s;--signal-phase:-6.2s}.homepage .edge-11{--signal-period:11s;--signal-phase:-3.4s}.homepage .edge-12{--signal-period:8s;--signal-phase:-5.5s}.homepage .edge-13{--signal-period:9s;--signal-phase:-1s}
.homepage .network[data-highlight] .network-edge{opacity:.36}
.homepage .network .network-edge.is-incident{opacity:1}
.homepage .network-edge.is-incident .connection-glow{stroke:var(--active-signal);opacity:.16;stroke-width:9}
.homepage .network-edge.is-incident .connection-thread{opacity:.7;stroke-width:1}
.homepage .network-edge.is-incident .signal-core{stroke-width:5.5;opacity:1}
.homepage .node{position:absolute;width:44px;height:44px;min-height:44px;transform:translate(-50%,-50%);z-index:2;isolation:isolate;color:#ddd8ef}
.homepage .node-core{width:44px;height:44px;display:grid;place-items:center}
.homepage .node-orb{position:relative;width:14px;height:14px;border-radius:50%;background:var(--node-color);border:1px solid #f5f4ff80;box-shadow:0 0 13px var(--node-color),0 0 30px color-mix(in srgb,var(--node-color) 30%,transparent);transition:transform .3s,box-shadow .3s}
.homepage .node-orb::before{content:"";position:absolute;inset:-10px;border:1px solid var(--node-color);border-radius:50%;opacity:.72;transition:inset .3s,opacity .3s}
.homepage .node-orb::after{content:"";position:absolute;inset:-18px;border-radius:50%;background:radial-gradient(circle,var(--node-color),transparent 68%);opacity:.12;z-index:-1;transition:opacity .3s}
.homepage .node-label{position:absolute;left:50%;top:calc(100% + 4px);transform:translateX(-50%);white-space:nowrap;text-transform:uppercase;text-align:center;font:clamp(9px,.85vw,12px)/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.25px;color:#c9c1df;text-shadow:0 1px 8px #08051b;transition:color .25s}
.homepage .node[data-label-placement="above"] .node-label{top:auto;bottom:calc(100% + 4px)}
.homepage .node:hover,.homepage .node:focus-visible,.homepage .node.is-active{z-index:4}
.homepage .node:hover .node-orb,.homepage .node:focus-visible .node-orb,.homepage .node.is-active .node-orb{transform:scale(1.45);box-shadow:0 0 18px var(--node-color),0 0 42px color-mix(in srgb,var(--node-color) 48%,transparent)}
.homepage .node.is-active .node-orb::before{inset:-12px;opacity:1}.homepage .node.is-active .node-orb::after{opacity:.26}
.homepage .node.is-active .node-label,.homepage .node:focus-visible .node-label{color:#f5f4ff}
.homepage .node.is-neighbor .node-orb::before{opacity:.95}

.homepage .node-label{background:#08051bf2;padding:4px 7px;border-radius:5px;font-size:clamp(11px,.85vw,14px);line-height:1.35;letter-spacing:.2px}
.homepage.entering .network{transform-origin:var(--entry-x,50%) var(--entry-y,50%);transform:scale(1.07);transition:transform .34s ease-in}.homepage.entering .node.is-selected .node-orb{transform:scale(2.2)}
.homepage:not(.hero-visible)::before,.hidden .homepage::before{animation-play-state:paused}.homepage:not(.hero-visible) .network *,.hidden .homepage .network *{animation-play-state:paused!important}
@keyframes homepage-signal{from{stroke-dashoffset:1000}to{stroke-dashoffset:0}}@keyframes homepage-illumination{0%,100%{transform:scale(1);opacity:.65}50%{transform:scale(1.04);opacity:.85}}
@media(max-width:999px){.homepage .network{inset:190px 8% 60px}.homepage h1{font-size:clamp(32px,4.6vw,44px)}.homepage .node-label{font-size:11px}.homepage .hero-copy{top:135px}}
@media(max-width:760px){.homepage{height:auto;min-height:100svh;padding:0 0 24px;overflow:visible}.homepage-controls{top:16px}.homepage-controls .brand-art{width:210px}.homepage .hero-copy{position:relative;inset:auto;padding:120px 6% 0}.homepage h1{font-size:clamp(30px,6.5vw,40px);line-height:1.15;letter-spacing:-1px}.headline-break{display:block}.homepage .network{position:relative;inset:auto;margin:18px 6% 0;display:grid;grid-template-columns:1fr 1fr;gap:12px 6%;transform:none}.homepage .network-svg{display:block;opacity:.48}.homepage .network .node{position:relative;inset:auto;left:auto!important;top:auto!important;width:100%;height:90px;transform:none;display:flex;flex-direction:column;align-items:center;gap:5px}.homepage .network .node-label,.homepage .network .node[data-label-placement="above"] .node-label{position:static;transform:none;white-space:normal;font-size:11px;max-width:100%;padding:3px 4px}.homepage .node-core{flex-shrink:0}.homepage::before{animation:none}body:not(.js-ready) .homepage .network-svg{display:none}}
@media(max-height:700px) and (min-width:761px){.homepage{min-height:600px}.homepage-controls .brand-art{width:200px}.homepage .hero-copy{top:112px}.homepage h1{font-size:36px}.homepage .network{top:160px;bottom:55px}}
@media(prefers-reduced-motion:reduce){.homepage::before,.homepage .signal-tail,.homepage .signal-core{animation:none!important}.homepage .network{transform:none}.homepage .signal-core,.homepage .signal-tail{stroke-dashoffset:400}.homepage .node-orb,.homepage .node-orb::before,.homepage .node-orb::after{transition:none}}

/* Keep every label on a quiet midnight backing above the living connection layer. */
.homepage .node-label{box-shadow:0 0 12px 3px #08051b70;max-width:245px;text-wrap:balance}
.homepage .node:focus-visible{outline-offset:9px;border-radius:50%}
.homepage h1{text-wrap:balance}.homepage .network{min-width:0}
@media(min-width:761px){.homepage .node-label{padding:5px 8px}}
@media(max-width:760px){.homepage .node-label{max-width:100%;box-shadow:0 0 8px 2px #08051b80}.homepage .network{gap:12px 5%}.homepage h1{max-width:28ch}}

.homepage .topic-node-0{left:11.66667%;top:45.12195%;--node-color:#65d5ff}
.homepage .topic-node-1{left:30.66667%;top:30.85366%;--node-color:#b39aee}
.homepage .topic-node-2{left:61.08333%;top:40.00000%;--node-color:#96d8ff}
.homepage .topic-node-3{left:84.66667%;top:31.70732%;--node-color:#aa8ce9}
.homepage .topic-node-4{left:77.25000%;top:68.90244%;--node-color:#aaa2d9}
.homepage .topic-node-5{left:60.33333%;top:91.95122%;--node-color:#a18ae5}
.homepage .topic-node-6{left:33.25000%;top:88.29268%;--node-color:#80d6ef}
.homepage .topic-node-7{left:46.41667%;top:64.14634%;--node-color:#c5b2f1}
