/* Orbital iris: five working roles, continuous compositor animations. */
.ocp-top-toggle{border:1px solid #436278;border-radius:12px;background:#132335;color:#cde3f4;padding:11px 16px;font:inherit;white-space:nowrap;cursor:pointer}
.ocp-site-locked{overflow:hidden}
#oculus-protocols{--ocp-signal:#72cfce;--ocp-light:#b7dcf6;color:#e6eef8;font:14px/1.5 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
#oculus-protocols *{box-sizing:border-box}
#oculus-protocols [hidden]{display:none!important}
#oculus-protocols button,#oculus-protocols input,#oculus-protocols textarea{font:inherit}
#oculus-protocols button{border:1px solid #3c5a73;border-radius:10px;background:#14283a;color:#e0edfa;padding:10px 15px;cursor:pointer}
#oculus-protocols button:disabled{opacity:.45;cursor:wait}
#oculus-protocols :focus-visible,.ocp-top-toggle:focus-visible{outline:2px solid #b9e2ff;outline-offset:4px}
#oculus-protocols svg{width:20px;height:20px;flex-shrink:0}
#oculus-protocols .ocp-overlay{position:fixed;inset:0;z-index:2147483200;overflow:auto;background:radial-gradient(ellipse at 50% 38%,#142d418c,transparent 65%),#060d17;padding:clamp(18px,3vw,40px);display:flex;flex-direction:column;isolation:isolate}
#oculus-protocols .ocp-overlay::before,#oculus-protocols .ocp-overlay::after{content:"";position:fixed;top:0;bottom:0;width:50%;z-index:4;pointer-events:none;background:linear-gradient(90deg,#080e16,#101e2b);visibility:hidden}
#oculus-protocols .ocp-overlay::before{left:0;border-right:1px solid #527d99;transform:translateX(-101%)}
#oculus-protocols .ocp-overlay::after{right:0;border-left:1px solid #527d99;transform:translateX(101%);background:linear-gradient(90deg,#101e2b,#080e16)}
#oculus-protocols .ocp-stars{position:absolute;inset:0;opacity:.35;pointer-events:none;background-image:radial-gradient(circle at 15% 18%,#bfdfff 0 1px,transparent 2px),radial-gradient(circle at 87% 35%,#bfdfff 0 1px,transparent 2px),radial-gradient(circle at 35% 85%,#bfdfff 0 1px,transparent 2px),radial-gradient(circle at 70% 72%,#bfdfff 0 1px,transparent 2px);background-size:197px 181px;animation:ocp-stars 60s linear infinite alternate}
#oculus-protocols .ocp-head{display:flex;justify-content:space-between;align-items:center;gap:16px;position:relative;z-index:6;flex-shrink:0}
#oculus-protocols .ocp-head-actions{display:flex;gap:16px;align-items:center}
#oculus-protocols .ocp-code,#oculus-protocols .ocp-eyebrow{font-size:10px;letter-spacing:.18em;color:#91b1ca}
#oculus-protocols .ocp-live{display:flex;align-items:center;gap:9px;color:#afc9e0;font-size:10px;letter-spacing:.1em}
#oculus-protocols .ocp-live i{width:6px;height:6px;background:var(--ocp-signal);border-radius:50%;box-shadow:0 0 13px #72cfce77;animation:ocp-signal 4s ease-in-out infinite}
#oculus-protocols .ocp-scene{position:relative;flex:1;min-height:570px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:20px 0;z-index:1}
#oculus-protocols .ocp-optics{position:relative;width:540px;height:390px;max-width:100%;display:grid;place-items:center;flex-shrink:0}
#oculus-protocols .ocp-eye{position:relative;width:140px;height:140px;display:grid;place-items:center;z-index:2;border:1px solid #6c9aba;border-radius:50%;background:radial-gradient(circle at 35% 18%,#324e69,#091520 65%,#02050a);box-shadow:0 0 50px #7bc4f42c,inset 0 0 35px #5eadd52a}
#oculus-protocols .ocp-eye svg{width:92px;height:92px;stroke-width:1;color:#e5f1ff}
#oculus-protocols .ocp-ring,#oculus-protocols .ocp-ellipse{position:absolute;border:1px solid #395a78;border-radius:50%;pointer-events:none}
#oculus-protocols .ocp-ring-one{width:246px;height:246px;border-color:#81b8d5;box-shadow:inset 0 0 45px #6dbbe91c,0 0 65px #6dbbe915}
#oculus-protocols .ocp-ring-two{width:290px;height:290px;border:0;opacity:.85;background:repeating-conic-gradient(from 0deg,#7faac7 0deg 1deg,transparent 1deg 6deg);mask:radial-gradient(circle,transparent 0 67%,#000 67% 69%,transparent 69%)}
#oculus-protocols .ocp-ring-three{width:480px;height:195px;transform:rotate(-16deg);opacity:.4}
#oculus-protocols .ocp-ellipse{width:500px;height:240px;transform:rotate(16deg);opacity:.3}
#oculus-protocols .ocp-role-nodes{position:absolute;width:360px;height:360px;z-index:3}
#oculus-protocols .ocp-node{position:absolute;width:52px;height:52px;transform:translate(-50%,-50%);border-radius:50%;border:1px solid #8cbad3;box-shadow:0 0 22px #9ac9e622;background:radial-gradient(circle at 35% 20%,#30516c,#091725 70%);color:#bad2e9;font-size:11px;display:grid;place-items:center}
#oculus-protocols .ocp-node-label{display:flex;flex-direction:column;align-items:center;gap:2px}
#oculus-protocols .ocp-node svg{width:11px;height:11px}
#oculus-protocols .ocp-optic-caption{position:absolute;bottom:0;font-size:10px;letter-spacing:.17em;color:#7e9cb8}
#oculus-protocols .ocp-copy{text-align:center;max-width:620px}
#oculus-protocols h1{font-size:clamp(26px,3vw,40px);line-height:1.12;letter-spacing:-.04em;margin:12px 0 0;font-weight:600}
#oculus-protocols .ocp-message{color:#a9bdd3;max-width:540px;margin:18px auto 0;white-space:pre-wrap;overflow-wrap:anywhere}
#oculus-protocols .ocp-phase{color:var(--ocp-signal)}
#oculus-protocols .ocp-foot{position:relative;z-index:5;max-width:850px;width:100%;margin:20px auto 0;flex-shrink:0}
#oculus-protocols .ocp-scope{display:flex;justify-content:space-between;gap:12px;font-size:10px;letter-spacing:.11em;color:#8ea8c3;padding:16px 0;border-top:1px solid #253b50;flex-wrap:wrap}
#oculus-protocols .ocp-status{color:#91b1ca;font-size:11px}
#oculus-protocols .ocp-foot-actions{display:flex;align-items:center;gap:12px;margin-top:12px;flex-wrap:wrap;color:#9eafc4;font-size:11px}
#oculus-protocols .ocp-foot-actions>span{flex:1;min-width:200px}
#oculus-protocols .ocp-sequence{font-size:11px;color:#b5c8dd;margin-bottom:20px}
#oculus-protocols .ocp-sequence-track{height:3px;background:#203045;border-radius:4px;overflow:hidden;margin-top:12px}
#oculus-protocols .ocp-sequence-track i{display:block;height:100%;background:var(--ocp-light);transform-origin:left;animation:ocp-sequence 10s linear var(--ocp-launch-delay,0ms) both}
#oculus-protocols .ocp-scan{position:absolute;inset:0;pointer-events:none;background:linear-gradient(transparent 45%,#a4d7ff11 48%,#afdfff44 50%,#a4d7ff11 52%,transparent 55%);opacity:0}
#oculus-protocols.ocp-launching .ocp-overlay::before{visibility:visible;animation:ocp-shutter-left 10s cubic-bezier(.65,0,.2,1) var(--ocp-launch-delay,0ms) both}
#oculus-protocols.ocp-launching .ocp-overlay::after{visibility:visible;animation:ocp-shutter-right 10s cubic-bezier(.65,0,.2,1) var(--ocp-launch-delay,0ms) both}
#oculus-protocols.ocp-launching .ocp-optics{animation:ocp-focus 10s ease var(--ocp-launch-delay,0ms) both}
#oculus-protocols.ocp-active .ocp-role-nodes{animation:ocp-spin 48s linear infinite}
#oculus-protocols.ocp-active .ocp-node-label{animation:ocp-counter 48s linear infinite}
#oculus-protocols.ocp-active .ocp-ring-one{animation:ocp-lens 8s ease-in-out infinite}
#oculus-protocols.ocp-active .ocp-ring-two{animation:ocp-spin 42s linear infinite}
#oculus-protocols.ocp-active .ocp-ring-three{animation:ocp-ellipse 56s linear infinite}
#oculus-protocols.ocp-active .ocp-ellipse{animation:ocp-ellipse 70s linear infinite reverse}
#oculus-protocols.ocp-active .ocp-eye{animation:ocp-core 7s ease-in-out infinite}
#oculus-protocols.ocp-active .ocp-eye svg{animation:ocp-eye 15s ease-in-out infinite}
#oculus-protocols.ocp-active .ocp-scan{animation:ocp-scan 16s ease-in-out infinite}
#oculus-protocols.ocp-paused *,#oculus-protocols.ocp-paused *::before,#oculus-protocols.ocp-paused *::after{animation-play-state:paused!important}
#oculus-protocols.ocp-update{--ocp-signal:#bab1ff;--ocp-light:#c9c4ff}
#oculus-protocols.ocp-update .ocp-overlay{background:radial-gradient(ellipse at 50% 38%,#26334f99,transparent 65%),#080c18}
#oculus-protocols .ocp-drawer{position:fixed;right:24px;top:88px;width:580px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 110px);overflow:auto;z-index:2147483300;padding:24px;border:1px solid #3c5a73;border-radius:20px;background:#101c2a;box-shadow:0 25px 60px #0009;animation:ocp-drawer .4s ease both}
#oculus-protocols .ocp-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
#oculus-protocols h2{font-size:22px;margin:6px 0 0;letter-spacing:-.025em}
#oculus-protocols .ocp-panel-state{font-size:12px;color:var(--ocp-signal)}
#oculus-protocols .ocp-panel-content label{display:flex;flex-direction:column;gap:8px;margin:14px 0;color:#afc5da;font-size:12px}
#oculus-protocols input:not([type=radio],[type=checkbox]),#oculus-protocols textarea{width:100%;background:#08131f;color:#e1edfa;border:1px solid #35526b;border-radius:10px;padding:11px 12px;min-height:44px}
#oculus-protocols .ocp-modes{display:grid;grid-template-columns:1fr 1fr;gap:10px}
#oculus-protocols .ocp-modes label{padding:14px;border:1px solid #35526b;border-radius:12px;cursor:pointer}
#oculus-protocols .ocp-modes label:has(:checked){border-color:#99c1e3;background:#1c3449}
#oculus-protocols .ocp-confirm{flex-direction:row!important;align-items:start}
#oculus-protocols .ocp-confirm input{margin-top:2px}
#oculus-protocols input[type=radio],#oculus-protocols input[type=checkbox]{width:16px;height:16px;min-height:0;padding:0;margin:0;flex-shrink:0;accent-color:#a1c8e6}
#oculus-protocols small,#oculus-protocols .ocp-hint{font-size:11px;color:#849eb8}
#oculus-protocols details{margin-top:22px;border-top:1px solid #35526b;padding-top:15px}
#oculus-protocols summary{cursor:pointer;color:#b9d2e7}
#oculus-protocols .ocp-primary{background:#8db9d9;color:#061320;font-weight:600;width:100%;margin-top:6px}
#oculus-protocols .ocp-error{color:#ffb9aa;min-height:21px;white-space:pre-wrap}
@keyframes ocp-shutter-left{0%,100%{transform:translateX(-101%)}12%,25%{transform:translateX(0)}58%{transform:translateX(-101%)}}
@keyframes ocp-shutter-right{0%,100%{transform:translateX(101%)}12%,25%{transform:translateX(0)}58%{transform:translateX(101%)}}
@keyframes ocp-focus{0%{transform:scale(.55);filter:blur(8px);opacity:.2}45%{transform:scale(1.05);filter:blur(0);opacity:1}100%{transform:scale(1)}}
@keyframes ocp-spin{to{transform:rotate(360deg)}}
@keyframes ocp-counter{to{transform:rotate(-360deg)}}
@keyframes ocp-ellipse{0%,100%{rotate:-8deg}50%{rotate:8deg}}
@keyframes ocp-lens{0%,100%{transform:scale(1);opacity:.7}50%{transform:scale(1.025);opacity:1}}
@keyframes ocp-core{0%,100%{transform:scale(1.02);box-shadow:0 0 55px #93c9ed22}50%{transform:scale(1.06);box-shadow:0 0 95px #93c9ed44}}
@keyframes ocp-eye{0%,42%,48%,100%{transform:scaleY(1)}45%{transform:scaleY(.12)}}
@keyframes ocp-signal{0%,100%{opacity:.5}50%{opacity:1}}
@keyframes ocp-stars{from{transform:translate3d(-4px,-4px,0)}to{transform:translate3d(4px,4px,0)}}
@keyframes ocp-scan{0%,12%{transform:translateY(-100%);opacity:0}35%,60%{opacity:.17}80%,100%{transform:translateY(100%);opacity:0}}
@keyframes ocp-sequence{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes ocp-drawer{from{opacity:0;transform:translateY(-24px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:700px){#oculus-protocols .ocp-scene{min-height:520px;gap:12px}#oculus-protocols .ocp-optics{width:100%;height:320px}#oculus-protocols .ocp-role-nodes{width:min(248px,calc(100% - 36px));height:auto;aspect-ratio:1}#oculus-protocols .ocp-node{width:44px;height:44px}#oculus-protocols .ocp-eye{width:104px;height:104px}#oculus-protocols .ocp-eye svg{width:70px;height:70px}#oculus-protocols .ocp-ring-one{width:172px;height:172px}#oculus-protocols .ocp-ring-two{width:206px;height:206px}#oculus-protocols .ocp-ring-three{width:88%;height:142px}#oculus-protocols .ocp-ellipse{width:90%;height:172px}#oculus-protocols .ocp-head{align-items:start}#oculus-protocols .ocp-head-actions{flex-wrap:wrap;justify-content:end;gap:8px}#oculus-protocols .ocp-code,#oculus-protocols .ocp-live{font-size:9px;letter-spacing:.08em}#oculus-protocols .ocp-drawer{right:16px;top:70px;max-height:calc(100dvh - 86px);padding:18px}#oculus-protocols input:not([type=radio],[type=checkbox]),#oculus-protocols textarea{font-size:16px}}
@media(prefers-reduced-motion:reduce){#oculus-protocols *,#oculus-protocols *::before,#oculus-protocols *::after{animation:none!important;transition:none!important}#oculus-protocols .ocp-overlay::before,#oculus-protocols .ocp-overlay::after{visibility:hidden!important}}
