:root{--uty-blue: #137ebe;--uty-blue-deep: #0c4f8a;--uty-cyan: #5bbad5;--uty-gold: #9d7620;--uty-gold-bright: #c4a03a;--bg: #0b1624;--bg-soft: #122033;--surface: rgba(255, 255, 255, .06);--surface-solid: #15263a;--ink: #e8eef6;--ink-soft: #b7c4d4;--muted: #8496ab;--line: rgba(232, 238, 246, .12);--danger: #e85a5a;--ok: #3dcf8a;--warn: #e0bf5a;--font: "Manrope", system-ui, sans-serif;--display: "Fraunces", Georgia, serif;--shadow: 0 24px 60px rgba(0, 0, 0, .35);color:var(--ink);font-family:var(--font);background:var(--bg);line-height:1.45}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:radial-gradient(1000px 520px at 12% -8%,rgba(19,126,190,.32),transparent 58%),radial-gradient(800px 480px at 92% 8%,rgba(157,118,32,.14),transparent 52%),radial-gradient(600px 400px at 50% 100%,rgba(91,186,213,.06),transparent 55%),linear-gradient(165deg,#0a1420,#0f1c2e 48%,#0b1624);background-attachment:fixed;color:var(--ink)}h1,h2,h3{font-family:var(--display);font-weight:600;letter-spacing:-.02em;margin:0}button,input{font:inherit;color:inherit}.shell{min-height:100vh;position:relative}.brand-logo{display:inline-flex;align-items:center;gap:.9rem}.logo-mark{position:relative;display:inline-grid;place-items:center;flex-shrink:0;border-radius:50%;isolation:isolate}.logo-mark img{width:100%;height:100%;object-fit:contain;border-radius:50%;filter:drop-shadow(0 8px 20px rgba(8,40,80,.55))}.logo-mark__glare{position:absolute;top:8%;right:8%;bottom:8%;left:8%;border-radius:50%;background:linear-gradient(135deg,rgba(255,255,255,.35) 0%,rgba(255,255,255,.05) 38%,transparent 55%);pointer-events:none;mix-blend-mode:soft-light;animation:logo-glare 5s ease-in-out infinite}.brand-logo__text{display:grid;gap:.12rem}.brand-logo__text strong{font-family:var(--display);font-size:1.35rem;font-weight:650;letter-spacing:-.02em}.brand-logo__text span{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600}.login-shell{display:grid;grid-template-columns:1fr 1.05fr;min-height:100vh}.login-glow{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(600px 400px at 20% 40%,rgba(19,126,190,.22),transparent 60%);pointer-events:none}.login-stage{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;gap:1.25rem;padding:clamp(1.5rem,4vw,3.5rem);max-width:28rem}.login-stage .lede{margin:0;color:var(--ink-soft);font-size:1.02rem;max-width:22rem}.login-form{display:grid;gap:.85rem;margin-top:.35rem}.field{display:grid;gap:.4rem}.field span{font-size:.78rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.field input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1.5px solid var(--line);border-radius:12px;padding:.85rem 1rem;background:#ffffff0a;outline:none;transition:border-color .2s,box-shadow .2s,background .2s}.field input:focus{border-color:var(--uty-cyan);background:#137ebe1f;box-shadow:0 0 0 3px #5bbad533}.hint{margin:0;color:var(--muted);font-size:.86rem}.error{margin:0;color:#ffb4b4;background:#e85a5a1f;border:1px solid rgba(232,90,90,.35);padding:.65rem .8rem;border-radius:10px;font-size:.9rem}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:999px;padding:.78rem 1.15rem;font-weight:650;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;transition:transform .15s ease,filter .15s ease,background .2s}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:not(:disabled):hover{transform:translateY(-1px);filter:brightness(1.06)}.btn.wide{width:100%}.btn.primary{background:linear-gradient(135deg,#3da8e0,var(--uty-blue-deep));color:#fff;box-shadow:0 10px 28px #137ebe59}.btn.secondary{background:#ffffff0d;border:1px solid rgba(91,186,213,.28);color:var(--ink)}.btn.secondary.warn{border-color:#e0bf5a66;color:var(--warn)}.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--ink-soft)}.btn.danger{background:linear-gradient(135deg,#ef6b6b,#b71c1c);color:#fff}.app-shell{padding:1.15rem clamp(1rem,3vw,2rem) 2rem;display:grid;gap:1.15rem}.app-glow{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(700px 320px at 80% 0%,rgba(157,118,32,.12),transparent 55%)}.topbar{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;animation:rise .55s ease both}.topbar__actions{display:flex;gap:.65rem;align-items:center}.pill{display:inline-flex;align-items:center;gap:.45rem;padding:.42rem .8rem;border-radius:999px;font-size:.78rem;font-weight:700}.pill.live{background:#3dcf8a1f;color:var(--ok);border:1px solid rgba(61,207,138,.35)}.pill.live i{width:.48rem;height:.48rem;border-radius:50%;background:var(--ok);box-shadow:0 0 #3dcf8a99;animation:pulse 1.6s ease infinite}.metrics{position:relative;z-index:1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem;animation:rise .65s ease .05s both}.metric{display:flex;align-items:center;gap:.75rem;padding:.95rem 1rem;border-radius:16px;background:linear-gradient(160deg,#ffffff14,#ffffff08);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.metric__icon{width:2.4rem;height:2.4rem;border-radius:12px;display:grid;place-items:center;background:#137ebe38;color:var(--uty-cyan);flex-shrink:0}.metric__icon--gold{background:#9d762038;color:var(--uty-gold-bright)}.metric__icon--danger{background:#e85a5a2e;color:var(--danger)}.metric__label{display:block;font-size:.72rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.metric strong{display:block;margin-top:.15rem;font-size:1.45rem;font-family:var(--display);color:#fff;letter-spacing:-.02em}.workspace{position:relative;z-index:1;display:grid;grid-template-columns:1.45fr .9fr;gap:1rem;align-items:start;animation:rise .7s ease .1s both}.crossings{display:grid;gap:.9rem}.crossing{-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:left;width:100%;cursor:pointer;padding:1.1rem 1.15rem 1.15rem;border-radius:18px;border:1px solid var(--line);background:linear-gradient(165deg,#ffffff12,#15263abf);color:inherit;transition:border-color .2s,box-shadow .2s,transform .2s;border-left:4px solid transparent}.crossing.plc-open{border-left-color:var(--ok)}.crossing.plc-closed{border-left-color:var(--danger)}.crossing.plc-approach{border-left-color:var(--warn)}.crossing:hover{border-color:#5bbad559}.crossing.is-active{border-color:#5bbad58c;box-shadow:0 0 0 3px #137ebe38,var(--shadow)}.crossing__head{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start}.crossing__code{margin:0 0 .15rem;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--uty-cyan)}.crossing__head h2{font-size:1.35rem}.plc-badge{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:700;padding:.45rem .85rem;border-radius:999px;white-space:nowrap}.plc-badge--open{background:#3dcf8a29;color:var(--ok);box-shadow:0 0 0 1px #3dcf8a4d}.plc-badge--closed{background:#e85a5a29;color:var(--danger);box-shadow:0 0 0 1px #e85a5a59}.plc-badge--approach{background:#e0bf5a2e;color:var(--warn);box-shadow:0 0 0 1px #e0bf5a59}.plc-badge--unknown{background:#ffffff0f;color:var(--muted)}.crossing__meta{margin:.65rem 0 .85rem;display:flex;flex-wrap:wrap;gap:.55rem 1.1rem;color:var(--muted);font-size:.86rem}.crossing__meta span{display:inline-flex;align-items:center;gap:.4rem;padding:.28rem .55rem;border-radius:8px;background:#0003;border:1px solid var(--line)}.card-scene{display:grid;gap:.65rem}.card-scene__banner{display:flex;align-items:center;gap:.65rem;padding:.55rem .75rem;border-radius:12px;background:#00000047;border:1px solid var(--line)}.card-scene__banner strong{display:block;font-size:.92rem;font-weight:700;color:#fff}.card-scene__banner small{display:block;margin-top:.1rem;font-size:.75rem;color:var(--muted)}.card-scene__live{margin-left:auto;display:inline-flex;align-items:center;gap:.35rem;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--uty-cyan);padding:.28rem .55rem;border-radius:999px;border:1px solid rgba(91,186,213,.35);background:#137ebe1f}.card-scene__live i{width:.4rem;height:.4rem;border-radius:50%;background:var(--ok);box-shadow:0 0 #3dcf8a80;animation:pulse 1.6s ease infinite}.card-scene__dot{width:.7rem;height:.7rem;border-radius:50%;flex-shrink:0}.card-scene__dot--open{background:var(--ok);box-shadow:0 0 10px #3dcf8a8c}.card-scene__dot--closed{background:var(--danger);box-shadow:0 0 10px #e85a5a8c;animation:pulse 1.6s ease infinite}.card-scene__dot--approach{background:var(--warn);box-shadow:0 0 10px #e0bf5a8c;animation:pulse 1.2s ease infinite}.card-scene__cams{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.card-cam{margin:0;display:grid;gap:.35rem;min-width:0}.card-cam__label{display:flex;align-items:center;gap:.45rem;font-size:.7rem;color:var(--muted);font-weight:600}.card-cam__id{font-family:ui-monospace,Consolas,monospace;font-size:.65rem;font-weight:700;letter-spacing:.04em;color:var(--uty-cyan);padding:.15rem .4rem;border-radius:5px;background:#137ebe2e;border:1px solid rgba(91,186,213,.3)}.card-cam__art{display:block;width:100%;height:auto;border-radius:12px;border:1px solid var(--line);box-shadow:inset 0 1px #ffffff0d;background:#0c1520}.card-cam__lens{animation:lens-pulse 2.4s ease-in-out infinite}.card-cam__arm--n,.card-cam__arm--s{transition:transform .7s cubic-bezier(.33,1.1,.55,1)}.card-cam__arm--n.card-cam__arm--down,.card-cam__arm--s.card-cam__arm--down{transform:rotate(0)}.card-cam__arm--n.card-cam__arm--mid{transform:rotate(-40deg)}.card-cam__arm--s.card-cam__arm--mid{transform:rotate(40deg)}.card-cam__arm--n.card-cam__arm--up{transform:rotate(-88deg)}.card-cam__arm--s.card-cam__arm--up{transform:rotate(88deg)}.card-cam__bol-down .card-cam__bol{transform:scaleY(.12);transform-origin:center bottom;opacity:.3}.card-cam__bol-up .card-cam__bol{transform:scaleY(1);transform-origin:center bottom}.card-cam__bol{transition:transform .55s ease,opacity .35s}.card-cam__car-flow--n{animation:card-cam-car-n 5.5s linear infinite}.card-cam__car-flow--s{animation:card-cam-car-s 5.5s linear infinite}.card-cam__train{animation:card-cam-train 9s linear infinite}.card-cam__train--mini{animation-duration:11s}.card-scene.plc-open .card-cam__train{display:none}.card-scene__lamp{animation:blink-cross .9s ease infinite}.card-scene__lamp--alt{animation-delay:.45s}@keyframes card-cam-car-n{0%{transform:translateY(-50px)}to{transform:translateY(200px)}}@keyframes card-cam-car-s{0%{transform:translateY(40px)}to{transform:translateY(-200px)}}@keyframes card-cam-train{0%{transform:translate(-130px)}to{transform:translate(220px)}}@media(max-width:720px){.card-scene__cams{grid-template-columns:1fr}}.xscene{position:relative;overflow:hidden;border-radius:18px;background:#0c1520;box-shadow:inset 0 1px #ffffff0f}.xscene--hero,.scene--hero{width:min(100%,520px);height:min(58vh,420px);border-radius:24px;box-shadow:var(--shadow);animation:float-in .9s ease both}.xscene--card{margin-top:.85rem;height:120px;border-radius:14px}.xscene__art{display:block;width:100%;height:100%}.xscene__arm--n{transform-origin:266px 114px;transition:transform .9s cubic-bezier(.33,1.15,.55,1)}.xscene__arm--s{transform-origin:374px 368px;transition:transform .9s cubic-bezier(.33,1.15,.55,1)}.xscene__arm--n.xscene__arm--down,.xscene__arm--s.xscene__arm--down{transform:rotate(0)}.xscene__arm--n.xscene__arm--mid{transform:rotate(-42deg)}.xscene__arm--s.xscene__arm--mid{transform:rotate(42deg)}.xscene__arm--n.xscene__arm--up{transform:rotate(-92deg)}.xscene__arm--s.xscene__arm--up{transform:rotate(92deg)}.xscene__dash{animation:dash-flow 2s linear infinite}.xscene__lens{animation:lens-pulse 2.4s ease-in-out infinite}.xscene__lamp--red{fill:#ff4d4d;animation:blink-cross .9s ease infinite}.xscene__lamp--alt{animation-delay:.45s}.xscene__consist{animation:consist-run 10.5s linear forwards}.xscene__consist--loop{animation:consist-run 8s linear infinite}.xscene__bollard-rise{transform-origin:9px 38px;transition:transform .65s cubic-bezier(.34,1.1,.64,1),opacity .35s}.xscene__bollard-rise--s{transform-origin:9px 8px}.xscene__bollards.is-down .xscene__bollard-rise{transform:scaleY(.12);opacity:.4}.xscene__bollards.is-up .xscene__bollard-rise{transform:scaleY(1);opacity:1}.xscene__bollards.is-down .xscene__bollard-rise--s{transform:scaleY(.12)}.xscene__car{transition:transform .8s ease}.xscene__traffic.is-flowing .xscene__car--ns-1{animation:car-ns 7s linear infinite}.xscene__traffic.is-flowing .xscene__car--ns-2{animation:car-ns 7s linear infinite;animation-delay:-3.5s}.xscene__traffic.is-flowing .xscene__car--sn-1{animation:car-sn 7s linear infinite}.xscene__traffic.is-flowing .xscene__car--sn-2{animation:car-sn 7s linear infinite;animation-delay:-3.5s}.xscene__traffic.is-stopped .xscene__car--ns-1{animation:none;transform:translateY(8px)}.xscene__traffic.is-stopped .xscene__car--ns-2{animation:none;transform:translateY(-42px)}.xscene__traffic.is-stopped .xscene__car--sn-1{animation:none;transform:translateY(378px)}.xscene__traffic.is-stopped .xscene__car--sn-2{animation:none;transform:translateY(428px)}.xscene__cam{animation:cam-idle 4.5s ease-in-out infinite}.login-visual{position:relative;display:grid;place-items:center;padding:2rem;overflow:hidden}.ops{padding:1.1rem;border-radius:18px;background:linear-gradient(165deg,#ffffff14,#15263ad9);border:1px solid var(--line);display:grid;gap:.75rem;box-shadow:var(--shadow)}.ops__head{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.ops__head h3{font-size:1.15rem}.ops__site{font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--uty-cyan);padding:.3rem .6rem;border-radius:999px;border:1px solid rgba(91,186,213,.3)}.ops__actions{display:grid;gap:.5rem}.ops__actions .btn{justify-content:flex-start;border-radius:14px}.ops-btn{display:flex;align-items:center;gap:.75rem;padding:.7rem .85rem!important;text-align:left;min-height:3.35rem}.ops-btn__ico{flex-shrink:0;width:2.35rem;height:2.35rem;border-radius:11px;display:grid;place-items:center;border:1px solid var(--line);background:#00000047;color:var(--uty-cyan)}.ops-btn__ico--ok{color:var(--ok);border-color:#3dcf8a59;background:#3dcf8a1f}.ops-btn__ico--warn{color:var(--warn);border-color:#e0bf5a66;background:#e0bf5a1f}.ops-btn__ico--danger{color:#ff8a80;border-color:#e85a5a59;background:#e85a5a1f}.ops-btn__ico--cyan{color:var(--uty-cyan);border-color:#5bbad566;background:#137ebe29}.ops-btn__ico--amber{color:#e0bf5a;border-color:#e0bf5a66;background:#e0bf5a1f}.ops__pair{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.ops__pair .ops-btn{min-width:0}.ops__pair .ops-btn__txt strong{font-size:.84rem}.ops-btn__ico--on-danger{color:#fff;border-color:#ffffff40;background:#00000038}.ops-btn__txt{display:grid;gap:.12rem;min-width:0}.ops-btn__txt strong{font-size:.9rem;font-weight:700;line-height:1.2;color:inherit}.ops-btn__txt small{font-size:.72rem;font-weight:500;color:var(--muted);line-height:1.25}.btn.danger .ops-btn__txt small{color:#ffffffb8}.ops__events-title{margin-top:.35rem;font-size:1.05rem}.events{list-style:none;margin:0;padding:0;display:grid;gap:.5rem;max-height:320px;overflow:auto}.events li{padding:.7rem .8rem;border-radius:12px;background:#00000038;border:1px solid var(--line)}.events__empty{color:var(--muted);text-align:center}.events__row{display:flex;flex-wrap:wrap;gap:.35rem .55rem;font-size:.9rem}.events__row strong{color:var(--uty-cyan)}.events__sub{margin-top:.35rem;display:flex;justify-content:space-between;gap:.5rem;color:var(--muted);font-size:.76rem}.plate{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-weight:700;color:#fff;background:#137ebe59;padding:.12rem .45rem;border-radius:6px;letter-spacing:.04em}.view-switch{display:inline-flex;padding:.2rem;border-radius:999px;background:#00000047;border:1px solid var(--line);gap:.15rem}.view-switch__btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--muted);font:inherit;font-size:.78rem;font-weight:700;letter-spacing:.02em;padding:.4rem .85rem;border-radius:999px;cursor:pointer;transition:background .2s,color .2s}.view-switch__btn.is-active{background:linear-gradient(135deg,#3da8e073,#0c4f8aa6);color:#fff;box-shadow:0 4px 14px #137ebe40}.pill.role-pill{background:#ffffff0f;color:var(--ink-soft);border:1px solid var(--line);max-width:10rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin{position:relative;z-index:1;padding:1.15rem 1.25rem 1.35rem;border-radius:18px;background:linear-gradient(165deg,#ffffff14,#15263ae0);border:1px solid var(--line);box-shadow:var(--shadow);display:grid;gap:1rem;animation:rise .55s ease both}.admin__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem}.admin__head h3{font-size:1.25rem}.admin__tabs{display:inline-flex;gap:.25rem;padding:.2rem;border-radius:12px;background:#00000047;border:1px solid var(--line)}.admin__tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--muted);font:inherit;font-size:.8rem;font-weight:700;padding:.45rem .9rem;border-radius:10px;cursor:pointer;transition:background .2s,color .2s}.admin__tab.is-active{background:#137ebe59;color:#fff}.admin__body{display:grid;gap:1rem}.admin__form{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;align-items:end;padding:.95rem;border-radius:14px;background:#00000038;border:1px solid var(--line)}.admin__form--cam{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.admin__toggles{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;padding-bottom:.15rem}.admin__list{list-style:none;margin:0;padding:0;display:grid;gap:.55rem;max-height:min(58vh,520px);overflow:auto}.admin__list li{padding:.8rem .9rem;border-radius:12px;background:#00000038;border:1px solid var(--line)}.admin__list li.is-inactive{opacity:.55}.admin__row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem;align-items:center}.admin__row strong{display:block;font-size:.95rem;color:#fff}.admin__meta{display:block;margin-top:.2rem;font-size:.78rem;color:var(--muted)}.admin__mono{font-family:ui-monospace,Consolas,monospace;font-size:.72rem;word-break:break-all}.admin__row-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.btn-sm{padding:.42rem .75rem!important;font-size:.78rem;border-radius:10px!important}.field--select,.cselect-wrap{position:relative}.cselect{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;border:1.5px solid var(--line);border-radius:12px;padding:.85rem 1rem;background:#ffffff0a;color:inherit;font:inherit;cursor:pointer;text-align:left;transition:border-color .2s,box-shadow .2s,background .2s}.cselect--compact{padding:.45rem .7rem;border-radius:10px;font-size:.8rem;min-width:7.5rem;width:auto}.cselect:hover,.cselect.is-open{border-color:var(--uty-cyan);background:#137ebe1f;box-shadow:0 0 0 3px #5bbad526}.cselect__menu{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 4px);margin:0;padding:.35rem;list-style:none;border-radius:12px;background:#15263a;border:1px solid rgba(91,186,213,.35);box-shadow:var(--shadow);max-height:220px;overflow:auto}.cselect-wrap .cselect__menu{right:auto;min-width:100%}.cselect__menu button{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;border:0;background:transparent;color:var(--ink);font:inherit;font-size:.88rem;text-align:left;padding:.55rem .7rem;border-radius:8px;cursor:pointer}.cselect__menu button:hover,.cselect__menu button.is-selected{background:#137ebe47;color:#fff}.toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--ink-soft);font:inherit;font-size:.8rem;font-weight:650;display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;padding:.2rem 0}.toggle__track{width:2.4rem;height:1.35rem;border-radius:999px;background:#ffffff1a;border:1px solid var(--line);position:relative;transition:background .2s,border-color .2s;flex-shrink:0}.toggle__track i{position:absolute;top:2px;left:2px;width:1rem;height:1rem;border-radius:50%;background:var(--muted);transition:transform .2s,background .2s}.toggle.is-on .toggle__track{background:#3dcf8a40;border-color:#3dcf8a73}.toggle.is-on .toggle__track i{transform:translate(1.05rem);background:var(--ok)}@keyframes pulse{0%{box-shadow:0 0 #3dcf8a8c}70%{box-shadow:0 0 0 8px #3dcf8a00}to{box-shadow:0 0 #3dcf8a00}}@keyframes blink{0%,to{opacity:1}50%{opacity:.35}}@keyframes blink-cross{0%,49%{opacity:1}50%,to{opacity:.2}}@keyframes consist-run{0%{transform:translate(-420px)}to{transform:translate(820px)}}@keyframes car-ns{0%{transform:translateY(-60px)}to{transform:translateY(460px)}}@keyframes car-sn{0%{transform:translateY(460px)}to{transform:translateY(-60px)}}@keyframes dash-flow{0%{stroke-dashoffset:0}to{stroke-dashoffset:-60}}@keyframes lens-pulse{0%,to{fill:#0c4f8a}50%{fill:#1a91d6}}@keyframes cam-idle{0%,to{transform:translateY(0)}50%{transform:translateY(1.5px)}}@keyframes logo-glare{0%,to{opacity:.55;transform:rotate(0)}50%{opacity:.9;transform:rotate(8deg)}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes float-in{0%{opacity:0;transform:scale(.96) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}@media(max-width:980px){.login-shell{grid-template-columns:1fr}.login-visual{min-height:220px;padding:1rem 1.25rem 2rem}.xscene--hero,.scene--hero{height:220px}.metrics{grid-template-columns:repeat(2,1fr)}.workspace{grid-template-columns:1fr}}@media(max-width:520px){.metrics{grid-template-columns:1fr}}
