*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#050311;color:#f4f1ff;font-family:Inter,Arial,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #91f8ff;outline-offset:6px}#universe,.vignette{position:fixed;inset:0;width:100%;height:100%;pointer-events:none}.vignette{background:radial-gradient(ellipse at center,transparent 35%,#03021188 100%)}header{position:fixed;top:0;left:0;width:100%;display:flex;align-items:center;padding:28px 38px;gap:24px;z-index:4}.brand{display:flex;gap:13px;align-items:center;font-size:18px;font-weight:750;letter-spacing:3px}.brand-icon{font-size:39px;font-weight:400;color:#d4b7ff;text-shadow:0 0 30px #a957ff}.brand span:not(.brand-icon){display:block;font-size:8px;letter-spacing:2.8px;color:#a69db9;margin-top:7px}.top-note{margin-left:auto;font-size:11px;letter-spacing:1px;color:#bcb3ce;display:flex;align-items:center;gap:9px}.top-note i{width:5px;height:5px;border-radius:50%;background:#77f7d2;box-shadow:0 0 12px #77f7d2}.icon-btn{background:#ffffff06;border:1px solid #ffffff20;border-radius:50%;width:40px;height:40px;font-size:25px}.icon-btn:hover{background:#ffffff16}.intro{position:fixed;top:120px;left:40px;pointer-events:none}.eyebrow{font-size:9px;letter-spacing:2.4px;color:#b5a0d6}h1{font-size:clamp(25px,2.7vw,44px);line-height:1.1;font-weight:400;letter-spacing:-1.5px;margin:13px 0}h1 em{font-style:normal;background:linear-gradient(90deg,#e6c5ff,#85dcff);background-clip:text;color:transparent}.intro p{font-size:12px;color:#9f94b6;margin-top:15px}.node{position:fixed;left:0;top:0;z-index:2;width:var(--size);height:var(--size);border:none;background:transparent;padding:0;border-radius:50%;will-change:transform;isolation:isolate}.node:before{content:'';position:absolute;inset:8%;border-radius:50%;background:radial-gradient(circle at 32% 25%,#ffffffd9 0%,var(--light) 4%,var(--color) 20%,color-mix(in srgb,var(--color) 36%,#120824) 55%,#03020b 82%);box-shadow:inset -8px -10px 19px #02020abb,inset 2px 2px 9px #ffffff70,0 0 18px color-mix(in srgb,var(--color) 65%,transparent),0 0 65px color-mix(in srgb,var(--color) 24%,transparent);transition:filter .3s,box-shadow .3s}.node:after{content:'';position:absolute;inset:-1%;border:1px solid color-mix(in srgb,var(--color) 60%,transparent);border-radius:50%;transform:rotate(-28deg) scaleY(.4);box-shadow:0 0 10px color-mix(in srgb,var(--color) 40%,transparent);z-index:1}.node:hover:before,.node:focus-visible:before{filter:brightness(1.45);box-shadow:0 0 35px var(--color),0 0 100px color-mix(in srgb,var(--color) 45%,transparent)}.node .symbol{position:absolute;inset:0;display:grid;place-items:center;font-size:calc(var(--size)*.26);font-weight:300;opacity:.8;text-shadow:0 1px 9px #000;z-index:3}.node .label{position:absolute;top:104%;left:50%;transform:translateX(-50%);width:240px;text-align:center;font-size:clamp(12px,1.2vw,19px);font-weight:650;letter-spacing:2px;text-shadow:0 2px 5px #000,0 0 15px #060314;pointer-events:none}.node .label small{display:block;margin-top:7px;font-weight:400;font-size:9px;letter-spacing:1.4px;color:#b8adc9;text-transform:uppercase}.node.core:before{inset:3%;background:radial-gradient(circle at 37% 30%,#fff4ff,#d9a4ff 9%,#9253e5 35%,#392062 67%,#0b0720 90%);box-shadow:inset 0 0 35px #dab1ff80,0 0 45px #a24ffb88,0 0 140px #ae4aff44}.node.core:after{inset:-17%;border:1px solid #ceb2ff44;transform:rotate(-25deg) scaleY(.7)}.node.core .symbol{display:block;top:36%;font-size:calc(var(--size)*.145);font-weight:800;letter-spacing:-1px;line-height:1.1}.node.core .symbol small{font-weight:400;font-size:calc(var(--size)*.053);letter-spacing:1px;display:block;margin-top:8px}.node.core .label{font-size:10px;letter-spacing:2px;top:116%;color:#ddc6ff}.node.outer .label{font-size:14px}.node.outer .label small{font-size:8px;color:#b2c6c9}footer{position:fixed;bottom:28px;left:38px;right:38px;display:flex;justify-content:space-between;align-items:end;z-index:4}.legend{display:flex;gap:22px;flex-wrap:wrap;max-width:440px;font-size:10px;color:#c7bbd8}.legend span{display:flex;align-items:center;gap:8px}.legend i{width:5px;height:5px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c)}.legend small{width:100%;font-size:10px;color:#867b9b;letter-spacing:.3px}.controls{display:flex;border:1px solid #b99cea24;background:#0c081b88;backdrop-filter:blur(16px);border-radius:40px;padding:5px;gap:3px}.controls button{border:0;background:transparent;font-size:12px;padding:11px 17px;border-radius:24px}.controls button:hover{background:#ffffff12}.controls button:first-child{color:#b7aac9}.chrome{transition:opacity .6s}.presenting .chrome{opacity:0;pointer-events:none}#exit-presentation{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);z-index:5;border:1px solid #ffffff22;background:#100c22b3;border-radius:20px;padding:10px 20px;font-size:11px;opacity:0;transition:opacity .3s}#exit-presentation:hover,#exit-presentation:focus-visible,body.show-exit #exit-presentation{opacity:1}dialog{margin:auto 30px auto auto;width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 48px);border:1px solid #bd92ff45;border-radius:24px;background:#0c0921ec;color:#eee8ff;padding:38px;overflow:auto;box-shadow:0 30px 100px #0009;backdrop-filter:blur(30px)}dialog::backdrop{background:#03020c77;backdrop-filter:blur(4px)}dialog #close{position:absolute;right:18px;top:18px;font-size:26px;z-index:2}.panel-glow{position:absolute;left:0;top:0;width:100%;height:180px;pointer-events:none;background:radial-gradient(ellipse at top left,var(--accent,#9e70ff),transparent 70%);opacity:.17}.panel-tag{font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin-bottom:23px}dialog h2{font-size:32px;letter-spacing:-1px;margin:0 30px 12px 0}dialog .desc{font-size:14px;line-height:1.7;color:#b7adc9;margin:0 0 26px}dialog h3{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:#8d819f;margin:24px 0 16px}.person{font-size:14px;margin:14px 0}.person small{display:block;font-size:11px;color:#a297b4;line-height:1.5;margin-top:5px}.contact{display:block;color:#e2d7f4;text-decoration:none;font-size:14px;margin:13px 0;line-height:1.5;overflow-wrap:anywhere}.contact:hover{color:var(--accent)}.web-link{display:block;padding:15px 18px;border:1px solid #c1a0ec40;border-radius:12px;color:#eee5ff;text-decoration:none;font-size:12px;margin-top:26px;background:#ffffff06}.web-link:hover{background:#ffffff10}.panel-rule{border:0;border-top:1px solid #ffffff12;margin:25px 0}.panel-note{font-size:11px;color:#9e92b2;line-height:1.6}@media(min-width:1900px){header{padding:38px 50px}.intro{top:150px;left:50px}.intro p{font-size:16px}.eyebrow{font-size:12px}.node .label small{font-size:12px}.node.outer .label{font-size:20px}.node.outer .label small{font-size:11px}footer{bottom:40px}.legend,.legend small{font-size:14px}.controls button{font-size:15px}}@media(max-width:700px){header{padding:20px}.brand{font-size:14px;letter-spacing:2px}.brand-icon{font-size:30px}.top-note{display:none}#fullscreen{margin-left:auto}.intro{top:105px;left:22px}.intro h1{font-size:29px}.intro p{font-size:11px}.eyebrow{font-size:8px}.node .label{width:125px;font-size:11px;letter-spacing:1px}.node .label small{font-size:7px;line-height:1.5;letter-spacing:.3px}.node.outer .label{font-size:10px}.node.outer .label small{font-size:7px}.node.core .label{font-size:7px}.legend{display:none}footer{left:20px;right:20px;bottom:22px;justify-content:center}.controls button{font-size:11px;padding:10px 15px}dialog{margin:auto;padding:30px}.node.core .symbol{letter-spacing:-.5px}}

/* Compact planets and independently placed labels keep all eleven orbits legible. */
.node:not(.core) .label{font-size:12px;letter-spacing:.7px;line-height:20px;white-space:nowrap;text-align:center;background:#06041555;border-radius:5px}
.node:not(.core) .label small{display:none}
.node:not(.core):hover .label small,.node:not(.core):focus-visible .label small{display:block;position:absolute;top:100%;left:50%;transform:translateX(-50%);width:210px;background:#0c0823ed;padding:5px;border-radius:5px;white-space:normal;line-height:1.5}
.node:hover,.node:focus-visible{z-index:3}
.node.core .label{font-size:9px;top:118%}
@media(min-width:1900px){.node:not(.core) .label{font-size:14px}}
@media(max-width:700px){.node:not(.core) .label{font-size:10px;letter-spacing:0;line-height:17px}.node.core .label{font-size:7px}}

.person-bio{font-size:12px;line-height:1.75;color:#b4a9c6;font-weight:400;margin:13px 0 20px}.profile-link{font-size:12px;color:var(--accent);text-underline-offset:4px;display:inline-block;margin-top:4px}

/* Magnetic spin affects the energy shell; names remain still and readable. */
.node:not(.core):after{transform:rotate(calc(-28deg + var(--spin,0rad))) scaleY(.42);border-width:1.5px;box-shadow:0 0 calc(8px + var(--energy,0)*20px) color-mix(in srgb,var(--color) 65%,transparent)}
.node.outer:before{transform:rotate(var(--spin,0rad));filter:brightness(calc(1 + var(--energy,0)*.48))}
.node.outer .symbol{opacity:1}

/* Give the orbital scene the full viewport, with only a compact heading above it. */
.intro{top:91px;left:39px}.intro h1{font-size:27px;margin:9px 0}.intro p{margin-top:8px;font-size:11px}.intro .eyebrow{font-size:8px;letter-spacing:1.7px}
@media(min-width:1900px){.intro{top:110px;left:50px}.intro h1{font-size:31px}.intro p{font-size:12px}}
@media(max-width:700px){.intro{top:85px;left:22px}.intro h1{font-size:23px}.intro p{display:none}}

.node.outer:before{filter:brightness(calc(1 + var(--energy,0)*.48 + var(--shared-pulse,0)*1.5));box-shadow:inset -8px -10px 19px #02020abb,inset 2px 2px 9px #ffffff70,0 0 calc(18px + var(--shared-pulse,0)*48px) color-mix(in srgb,var(--color) 75%,transparent),0 0 calc(65px + var(--shared-pulse,0)*105px) color-mix(in srgb,var(--color) 48%,transparent)}
.node.core:before{filter:none;box-shadow:inset 0 0 35px #dab1ff80,0 0 45px #a24ffb88,0 0 140px #ae4aff44}

#panel-content .profile-link{cursor:pointer}.node.outer:after{transform:rotate(calc(-28deg + var(--spin,0rad) + var(--deflect,0rad))) scaleY(.32)}

.node:not(.core):before{filter:brightness(calc(1 + var(--energy,0)*.35 + var(--shared-pulse,0)*.35))}

/* TRUTH is the central pulsar on the midpoint orbit, with a slow, distinct pulse. */
.node.truth:before{background:radial-gradient(circle at 34% 28%,#fff 0%,#fff0fa 7%,#ff91c8 19%,#e853a0 43%,#6c2359 68%,#160923 89%);box-shadow:inset 0 0 18px #ffe7f866,0 0 26px #ff73bc99,0 0 75px #ff4eae55;animation:truth-pulsar 2.4s ease-in-out infinite}
@keyframes truth-pulsar{0%,100%{filter:brightness(.92);box-shadow:inset 0 0 16px #ffe7f855,0 0 22px #ff73bc88,0 0 58px #ff4eae44}50%{filter:brightness(1.32);box-shadow:inset 0 0 24px #fff3fcbb,0 0 38px #ff73bcdd,0 0 112px #ff4eae77}}

/* Smaller, lighter orbit labels keep the full constellation readable. */
.node:not(.core) .label{font-size:11px;font-weight:450;letter-spacing:.45px;line-height:16px}
.node.core .label{font-size:8px;font-weight:450;letter-spacing:1.2px}
@media(max-width:700px){.node:not(.core) .label{font-size:9px;font-weight:450;letter-spacing:.1px;line-height:15px}.node.core .label{font-size:7px}}

/* JDI.NGO is a second pulsar system, visually distinct from TRUTH. */
.node.jdiportal:before{background:radial-gradient(circle at 34% 28%,#fff 0%,#f2efff 7%,#b8a5ff 20%,#7563e8 44%,#30275f 69%,#0b0b20 90%);box-shadow:inset 0 0 18px #e8e3ff77,0 0 25px #a797ff99,0 0 74px #67dfff55;animation:jdiportal-pulse 2.05s ease-in-out infinite}
@keyframes jdiportal-pulse{0%,100%{filter:brightness(.92);box-shadow:inset 0 0 16px #e8e3ff66,0 0 22px #a797ff88,0 0 56px #67dfff44}50%{filter:brightness(1.3);box-shadow:inset 0 0 25px #f8f6ffcc,0 0 40px #a797ffdd,0 0 110px #67dfff77}}
@media(prefers-reduced-motion:reduce){.node.truth:before,.node.jdiportal:before{animation:none}}
.node:not(.core) .label{font-size:10px;font-weight:400;letter-spacing:.35px}
.node.core .label{font-size:7.2px;font-weight:400;letter-spacing:1px}
@media(max-width:700px){.node:not(.core) .label{font-size:8px;font-weight:400;letter-spacing:0;line-height:14px}.node.core .label{font-size:7px}}
.lang-switch{display:flex;align-items:center;gap:3px;margin-left:3px;padding:3px;border:1px solid #c9a8ef33;border-radius:20px;background:#0c081b99;backdrop-filter:blur(12px)}.lang-switch button{border:0;background:transparent;color:#a99dbd;border-radius:15px;padding:6px 9px;font-size:10px;letter-spacing:.7px;line-height:1}.lang-switch button[aria-pressed="true"]{background:#c39af233;color:#f4eaff;box-shadow:inset 0 0 0 1px #c9a8ef30}.lang-switch button:hover{color:#fff}.brand #brand-title,.brand #brand-subtitle{display:block}.brand #brand-title{font-size:inherit;letter-spacing:inherit;color:inherit;margin:0}.brand #brand-subtitle{font-size:8px;letter-spacing:2.2px;color:#a69db9;margin-top:7px;font-weight:400}@media(max-width:700px){.lang-switch{margin-left:auto}.brand{gap:9px}.brand #brand-subtitle{font-size:7px;letter-spacing:1.1px}.lang-switch button{padding:6px 7px}.node .label{width:130px}}
@media(max-width:700px){header{gap:7px}.brand{font-size:12px;letter-spacing:1px;gap:7px}.brand-icon{font-size:26px}.brand #brand-title{white-space:nowrap}.brand #brand-subtitle{font-size:6.5px;letter-spacing:.8px}.lang-switch{margin-left:auto;flex-shrink:0}}
.pilot-card{margin:20px 0 27px;padding:20px;border:1px solid #b99bea30;border-radius:16px;background:linear-gradient(145deg,#a963ff12,#51d6ff08)}.pilot-eyebrow{font-size:9px;letter-spacing:1.6px;color:#c7a9f2;text-transform:uppercase}.pilot-card h3{margin:12px 0 10px;color:#f2eaff;font-size:17px;letter-spacing:-.2px;text-transform:none}.pilot-card p{font-size:12px;line-height:1.65;color:#c0b6d2;margin:9px 0}.pilot-card h4{margin:18px 0 6px;font-size:13px;color:#eee5ff;font-weight:500}.pilot-cta{display:inline-flex;margin-top:7px;padding:11px 14px;border-radius:10px;background:#b77aff1f;border:1px solid #c6a2ef55;color:#f5eaff;text-decoration:none;font-size:12px}.pilot-cta:hover{background:#b77aff35}.pilot-card .pilot-disclaimer{margin-top:14px;color:#9388a6;font-size:10px;line-height:1.55}
