/* V19 — intentional motion, no extra interface layers. */
/* A cinematic atmosphere: tiny rain streaks and soft instrument markings stay BEHIND the orb. */
.v19-rain{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;opacity:.88}
.v19-orbital-atmosphere{position:absolute;z-index:2;left:50%;top:44%;width:min(53vw,660px);aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none;opacity:.76}
.v19-orbital-atmosphere i{position:absolute;inset:12%;border:1px solid #a395d928;border-radius:50%;transform:scaleX(.73) rotate(var(--rot,0deg));}
.v19-orbital-atmosphere i:nth-child(1){--rot:-26deg;inset:7%;border-style:dashed;border-color:#8c78ce29;animation:v19-orbit 36s linear infinite}
.v19-orbital-atmosphere i:nth-child(2){--rot:36deg;inset:18%;border-color:#d3c0ff23;animation:v19-orbit 48s linear infinite reverse}
.v19-orbital-atmosphere i:nth-child(3){--rot:-56deg;inset:29%;border-color:#8bc4e22c;animation:v19-orbit 60s linear infinite}
.v19-orbital-atmosphere b{position:absolute;width:7px;height:7px;border:1px solid #bca3fd80;transform:rotate(45deg);opacity:.8}
.v19-orbital-atmosphere b:nth-of-type(1){top:26%;right:7%}.v19-orbital-atmosphere b:nth-of-type(2){bottom:18%;left:11%}
@keyframes v19-orbit{to{rotate:360deg}}
@media(max-width:900px){.v19-orbital-atmosphere{width:min(78vw,540px);top:49%}}
@media(max-width:650px){.v19-orbital-atmosphere{width:93vw;top:54%}.v19-rain{opacity:.6}}
/* Remove the old center sphere while retaining the useful morphing geometry and architecture. */
#perspectives .v18-core{display:none!important}
#perspectives .v18-art-halo{opacity:.48}
#perspectives[data-v18-stage="0"] .v18-art-viewport{background:radial-gradient(ellipse at 50% 50%,#22203a 0%,#0f1220 77%)}
#perspectives[data-v18-stage="1"] .v18-art-viewport{background:radial-gradient(ellipse at 43% 48%,#152d40 0%,#10101c 75%)}
#perspectives[data-v18-stage="2"] .v18-art-viewport{background:radial-gradient(ellipse at 56% 45%,#2e2040 0%,#10101c 76%)}
/* The left copy transitions as a single editorial unit, not a pile of independent blinking labels. */
.v18-copy-stage{position:relative;isolation:isolate}
.v19-copy-ghost{position:absolute;inset:0;pointer-events:none;z-index:4;will-change:opacity,transform}
.v18-copy-stage.v19-enter{animation:v19-copy-in .45s cubic-bezier(.21,.76,.25,1) both}
@keyframes v19-copy-in{from{opacity:.18;transform:translate3d(0,15px,0);filter:blur(5px)}to{opacity:1;transform:translate3d(0,0,0);filter:blur(0)}}
/* Contact: real context instead of duplicated giant topic buttons. */
.v17-contact-main{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,5vw,72px);align-items:center}
.v19-contact-profile{display:flex;flex-direction:column;justify-content:center;min-height:390px;padding:20px 8px 20px 0;color:#f4f0fa}
.v19-contact-status{font:750 10px/1.45 Consolas,monospace;letter-spacing:1.3px;color:#9de7d4;display:flex;align-items:center;gap:12px}
.v19-status-dot{display:block;width:7px;height:7px;background:#9cddc9;box-shadow:0 0 13px #9dddc99f;border-radius:50%}
.v19-contact-profile-lead{margin:29px 0 38px;max-width:430px;font:500 clamp(22px,2.35vw,34px)/1.3 'Space Grotesk',sans-serif;letter-spacing:-.05em;color:#ece6fa}
.v19-contact-facts{margin:0;max-width:430px;display:grid}
.v19-contact-facts>div{display:grid;grid-template-columns:115px minmax(0,1fr);gap:16px;padding:15px 0;border-top:1px solid #cab4ee21}
.v19-contact-facts dt{font:700 9px/1.8 Consolas,monospace;color:#9f8da9;letter-spacing:1.2px}
.v19-contact-facts dd{margin:0;color:#e0d9ed;font-size:13px;line-height:1.55}
.v19-contact-note{font-size:12px;line-height:1.75;color:#998da8;max-width:360px;margin:25px 0 0}
.v17-contact-form{align-self:center}
@media(max-width:1050px){.v17-contact-main{grid-template-columns:1fr;gap:14px}.v19-contact-profile{min-height:0;padding:0 0 25px}.v19-contact-profile-lead{margin:20px 0 24px}.v19-contact-facts>div{padding:11px 0}}
@media(max-width:650px){.v19-contact-profile-lead{font-size:25px}.v19-contact-facts>div{grid-template-columns:100px 1fr}}
/* ENES.OS: one choice per level: scenario -> optional approach -> run. */
.system-console .v9-path-options{display:none!important}
.system-console .console-side-label{margin-bottom:15px!important}
.system-console .v17-decision{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px 16px;padding:12px 15px;margin:7px 0 7px}
.system-console .v17-decision-head{display:grid;gap:4px;min-width:130px}
.system-console .v17-decision-head>span{display:none}
.system-console .v17-choice-options{display:block}
.system-console .v19-decision-select{width:100%;background:#211a30;border:1px solid #ad92e072;color:#f4eaff;padding:10px 12px;border-radius:11px;font:650 12px 'DM Sans',sans-serif;outline-offset:3px}
.system-console .v19-decision-select:focus-visible{outline:2px solid #ddc3ff}
.system-console .v17-choice-outcome{grid-column:1/-1;min-height:0;font-size:11px;line-height:1.55}
.system-console .v17-choice-flow{grid-column:1/-1;font-size:9px}
.system-console .console-aside-foot{opacity:.6}
.system-console .v9-telemetry{padding:10px 17px 12px}
@media(max-width:700px){.system-console .v17-decision{grid-template-columns:1fr;gap:9px}.system-console .v17-decision-head{min-width:0}}
@media(prefers-reduced-motion:reduce){.v19-orbital-atmosphere i{animation:none!important}.v18-copy-stage.v19-enter{animation:none!important}.v19-copy-ghost{display:none!important}}

/* Protocol Studio: geometry and path switch together; never animate port positions separately. */
.system-console .signal-node{transition-property:background-color,border-color,box-shadow!important;transition-duration:.2s!important}
/* Let the rest of the Contact close quietly without the old orbital decorative object. */
.contact .contact-object,.contact .contact-floaters,.contact .contact-atmosphere{opacity:0!important}
