/* Fiveish Escape Room — immersive team-race build */
#escape-room-overlay,#er-teacher-overlay,#er-student-banner,#er-setup,#er-lobby,#er-toast{font-family:'Source Sans 3',Inter,system-ui,sans-serif}
body.er-no-scroll{overflow:hidden!important}
.er-hidden{display:none!important}
.er-screen{position:fixed;inset:0;z-index:12000;background:#04080e;color:#e7eef7;display:none;overflow:auto}
.er-screen.open{display:block}
.er-screen *{box-sizing:border-box}
.er-topbar{height:64px;display:flex;align-items:center;gap:14px;padding:0 18px;border-bottom:1px solid #1d3042;background:rgba(4,10,17,.94);backdrop-filter:blur(16px);position:sticky;top:0;z-index:30}
.er-brand{display:flex;align-items:center;gap:10px;min-width:0}.er-brand-mark{width:38px;height:38px;border:1px solid #22d3ee;border-radius:12px;display:grid;place-items:center;color:#5eead4;font-weight:1000;box-shadow:0 0 26px rgba(34,211,238,.16)}
.er-brand-title{font-size:12px;font-weight:950;letter-spacing:.14em;color:#22d3ee;text-transform:uppercase}.er-brand-sub{font-size:10px;color:#9eb2c5;margin-top:2px}
.er-top-spacer{flex:1}.er-live-pill{display:flex;align-items:center;gap:7px;border:1px solid #27445e;border-radius:999px;padding:6px 10px;color:#bcd0e3;font-size:10px;font-weight:850}.er-live-dot{width:7px;height:7px;border-radius:50%;background:#ef4444;box-shadow:0 0 0 4px rgba(239,68,68,.12);animation:erPulse 1.2s infinite}@keyframes erPulse{50%{opacity:.35;transform:scale(.8)}}
.er-timer{font:900 15px ui-monospace,SFMono-Regular,Menlo,monospace;min-width:62px;text-align:right}.er-icon-btn,.er-btn{border:1px solid #30465c;background:#0e1a27;color:#e7eef7;border-radius:8px;padding:8px 10px;font-size:10px;font-weight:900;cursor:pointer}.er-icon-btn:hover,.er-btn:hover{border-color:#547493}.er-btn.primary{background:linear-gradient(135deg,#0f766e,#0284c7);border-color:#22d3ee}.er-btn.green{background:linear-gradient(135deg,#15803d,#0f766e);border-color:#4ade80}.er-btn.danger{color:#fecaca;border-color:#7f1d1d;background:#260c11}.er-btn.warn{color:#fde68a}.er-btn:disabled{opacity:.4;cursor:default}
.er-layout{display:grid;grid-template-columns:260px minmax(0,1fr) 290px;gap:12px;padding:12px;min-height:calc(100vh - 64px);background:radial-gradient(circle at 50% -20%,#123252 0,#07111b 34%,#04080e 68%)}
.er-panel{border:1px solid #203449;background:linear-gradient(180deg,#08131e,#07101a);border-radius:15px;box-shadow:0 18px 50px rgba(0,0,0,.34);overflow:hidden}.er-panel-head{padding:11px 13px;border-bottom:1px solid #1f3143;font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#a5bacd;display:flex;justify-content:space-between;align-items:center}.er-left,.er-right{align-self:start;position:sticky;top:76px;max-height:calc(100vh - 88px);overflow:auto}
.er-stage-list{padding:9px}.er-stage-item{display:flex;gap:10px;padding:11px 10px;border:1px solid transparent;border-radius:10px;margin-bottom:6px;color:#8fa2b5}.er-stage-item.active{background:#0d251c;border-color:#1b7f4d;color:#dffbea;box-shadow:0 0 30px rgba(34,197,94,.07) inset}.er-stage-item.done{color:#a7f3d0}.er-stage-num{width:25px;height:25px;border:1px solid #39516a;border-radius:8px;display:grid;place-items:center;font-weight:900;flex:none}.er-stage-item.active .er-stage-num{border-color:#4ade80;box-shadow:0 0 14px rgba(74,222,128,.2)}.er-stage-copy strong{display:block;font-size:11px}.er-stage-copy span{display:block;font-size:9px;color:#7890a5;margin-top:2px}
.er-team-card{padding:10px 12px;border-bottom:1px solid #132536}.er-team-card.me{background:#0b2522}.er-team-row{display:flex;justify-content:space-between;gap:8px}.er-team-name{font-size:11px;font-weight:900}.er-team-node{font:9px ui-monospace,SFMono-Regular,Menlo,monospace;color:#91a7ba}.er-mini-track{height:5px;background:#122235;border-radius:999px;overflow:hidden;margin-top:7px}.er-mini-fill{height:100%;background:linear-gradient(90deg,#22d3ee,#4ade80);transition:width .4s}
.er-stat-grid{display:grid;grid-template-columns:1fr 1fr}.er-stat{padding:12px;border-right:1px solid #172a3c;border-bottom:1px solid #172a3c}.er-stat:nth-child(2n){border-right:0}.er-stat-num{font:900 19px ui-monospace,SFMono-Regular,Menlo,monospace}.er-stat-lbl{font-size:8px;color:#7f94a7;text-transform:uppercase;letter-spacing:.08em;margin-top:3px}
.er-room{position:relative;min-height:790px;border:1px solid #214159;border-radius:18px;overflow:hidden;background:#07111b;box-shadow:0 28px 90px rgba(0,0,0,.56)}.er-scene{position:absolute;inset:0;background-image:linear-gradient(180deg,rgba(1,6,11,.08),rgba(1,6,11,.22)),url('assets/escape-room-scene.jpg');background-size:cover;background-position:center top;filter:saturate(.94) contrast(1.08);transition:filter .5s}.er-room.stage-1 .er-scene{filter:hue-rotate(0deg) saturate(.95) contrast(1.08)}.er-room.stage-2 .er-scene{filter:hue-rotate(95deg) saturate(.8) contrast(1.1)}.er-room.stage-3 .er-scene{filter:hue-rotate(190deg) saturate(.78) contrast(1.1)}.er-room.stage-4 .er-scene{filter:hue-rotate(250deg) saturate(.9) contrast(1.1)}.er-scene:after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 30%,transparent 0 34%,rgba(2,7,12,.42) 76%);pointer-events:none}.er-scan{position:absolute;z-index:2;top:0;bottom:0;width:220px;background:linear-gradient(90deg,transparent,rgba(34,211,238,.09),transparent);filter:blur(5px);animation:erScan 6.5s linear infinite;pointer-events:none}@keyframes erScan{from{left:-260px}to{left:calc(100% + 260px)}}.er-ambient{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}.er-spark{position:absolute;width:3px;height:3px;border-radius:50%;background:#9ff;box-shadow:0 0 8px #5ff;animation:erDrift linear infinite;opacity:.45}@keyframes erDrift{from{transform:translateY(20px);opacity:0}20%{opacity:.7}to{transform:translateY(-180px);opacity:0}}
.er-hud{position:absolute;z-index:5;inset:16px 16px auto;display:flex;justify-content:space-between;gap:12px}.er-mission{background:rgba(6,17,29,.88);border:1px solid #29435b;border-radius:12px;padding:10px 13px;backdrop-filter:blur(10px)}.er-kicker{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:#4ade80;font-weight:950}.er-mission-title{font-size:22px;font-weight:950;margin-top:2px}.er-mission-sub{font-size:11px;color:#abc0d1;margin-top:4px}.er-chips{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.er-chip{background:rgba(6,17,29,.9);border:1px solid #2b4158;border-radius:8px;padding:8px 10px;font-size:9px;font-weight:900;color:#a9bfd1}.er-chip.hot{border-color:#ef4444;color:#fecaca;animation:erHot 1s infinite}@keyframes erHot{50%{box-shadow:0 0 18px rgba(239,68,68,.2)}}
.er-hotspots{position:absolute;z-index:4;inset:0}.er-hotspot{position:absolute;width:54px;height:54px;border-radius:50%;border:2px solid #4ade80;background:rgba(7,20,13,.9);color:#d7ffe3;display:grid;place-items:center;font-weight:950;cursor:pointer;box-shadow:0 0 0 7px rgba(34,197,94,.09),0 0 24px rgba(34,197,94,.33);transition:.15s;animation:erHotspot 1.8s ease-in-out infinite}.er-hotspot:hover{transform:scale(1.09)}.er-hotspot.locked{border-color:#536273;color:#657587;box-shadow:none;background:rgba(11,18,25,.74);animation:none;cursor:default}.er-hotspot.solved{background:#0f2f1d;border-color:#86efac;color:#86efac;animation:none}@keyframes erHotspot{50%{box-shadow:0 0 0 13px rgba(34,197,94,.03),0 0 30px rgba(34,197,94,.4)}}.er-hotspot.h1{left:18%;top:34%}.er-hotspot.h2{left:43%;top:26%}.er-hotspot.h3{left:69%;top:42%}.er-hotspot.h4{left:52%;top:52%}
.er-bottom-dock{position:absolute;z-index:6;left:16px;right:16px;bottom:16px;background:rgba(5,13,21,.94);border:1px solid #294057;border-radius:16px;backdrop-filter:blur(16px);padding:13px;box-shadow:0 22px 70px rgba(0,0,0,.54)}.er-dock-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.er-dock-title{font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.09em}.er-dock-sub{font-size:10px;color:#8fa3b6;margin-top:3px}.er-power-dots{display:flex;gap:5px}.er-power-dot{width:29px;height:7px;border-radius:99px;background:#163047;border:1px solid #274358}.er-power-dot.on{background:linear-gradient(90deg,#22c55e,#5eead4);box-shadow:0 0 10px rgba(34,197,94,.33)}
.er-work{display:grid;grid-template-columns:1.08fr .92fr;gap:12px;margin-top:12px}.er-card{border:1px solid #20374c;background:#08141f;border-radius:12px;padding:13px;min-height:260px}.er-meta{display:flex;justify-content:space-between;gap:8px;align-items:center}.er-qnum{font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.1em;color:#8499ad}.er-tag{font-size:8px;color:#93c5fd;background:#0a2542;border:1px solid #204d76;border-radius:999px;padding:4px 7px;font-weight:900}.er-qtext{font:18px/1.45 'Source Serif 4',Georgia,serif;margin:14px 0}.er-qvisual{text-align:center;margin:0 0 10px}.er-qvisual svg{max-width:100%;height:auto;max-height:160px}.er-options{display:grid;grid-template-columns:1fr 1fr;gap:7px}.er-option{background:#0d1a28;border:1px solid #2b4056;color:#e5eef7;border-radius:8px;padding:9px 10px;text-align:left;cursor:pointer;transition:.14s}.er-option:hover:not(:disabled){border-color:#5b7898;transform:translateY(-1px)}.er-option.correct{border-color:#4ade80;background:#0b2b1b;box-shadow:0 0 0 2px rgba(34,197,94,.07)}.er-option.wrong{border-color:#ef4444;background:#2a1015}.er-feedback{font-size:10px;font-weight:900;min-height:19px;margin-top:8px}.er-feedback.good{color:#86efac}.er-feedback.bad{color:#fca5a5}.er-numeric{display:flex;gap:8px}.er-numeric input{flex:1;border:1px solid #34506c;border-radius:8px;background:#07131f;color:#fff;padding:9px 11px;outline:none}.er-numeric input:focus{border-color:#38bdf8}
.er-puzzle-title{font-size:13px;font-weight:950}.er-puzzle-desc{font-size:10px;color:#95a8b9;line-height:1.5;margin:4px 0 10px}.er-circuit-board{position:relative;height:156px;border:1px solid #1d3850;border-radius:10px;background:linear-gradient(rgba(7,19,31,.75),rgba(7,19,31,.9)),repeating-linear-gradient(0deg,#14314a 0 1px,transparent 1px 28px),repeating-linear-gradient(90deg,#14314a 0 1px,transparent 1px 28px);overflow:hidden}.er-wire{position:absolute;height:3px;background:#2f4255;transform-origin:left center}.er-wire.on{background:#4ade80;box-shadow:0 0 10px #4ade80}.er-node{position:absolute;width:36px;height:36px;border-radius:50%;border:2px solid #53667a;background:#0c1721;color:#71869a;display:grid;place-items:center;font-size:11px;font-weight:950;cursor:pointer}.er-node.on{border-color:#4ade80;color:#eaffef;box-shadow:0 0 0 5px rgba(34,197,94,.09),0 0 18px rgba(34,197,94,.33)}.er-node.ok{background:#164e2d}.er-node.n1{left:8%;top:46%}.er-node.n2{left:30%;top:18%}.er-node.n3{left:53%;top:54%}.er-node.n4{left:78%;top:24%}.er-clue-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.er-clue{border:1px solid #274057;background:#0d1a28;border-radius:9px;padding:9px;min-height:60px}.er-clue.reveal{animation:erReveal .5s cubic-bezier(.2,.9,.2,1)}@keyframes erReveal{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}}.er-clue.locked{opacity:.3}.er-clue-label{font-size:8px;color:#22d3ee;font-weight:950;text-transform:uppercase;letter-spacing:.09em}.er-clue-text{font-size:10px;line-height:1.45;margin-top:3px}.er-code-row{display:flex;gap:6px;justify-content:center;margin:10px 0}.er-code-box{width:40px;height:48px;border:1px solid #35506a;background:#0a1520;border-radius:8px;display:grid;place-items:center;font:900 19px ui-monospace,SFMono-Regular,Menlo,monospace}.er-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;max-width:230px;margin:auto}.er-key{border:1px solid #30465c;background:#0e1a27;color:#e7eef7;border-radius:7px;padding:8px;cursor:pointer}.er-key:hover{border-color:#5c7a98}.er-key.enter{background:#0f766e;border-color:#14b8a6}
.er-intel{padding:10px}.er-intel-card{border:1px solid #294057;background:#0c1926;border-radius:10px;padding:10px;margin-bottom:8px}.er-intel-card.locked{opacity:.3}.er-intel-title{font-size:8px;font-weight:950;letter-spacing:.1em;text-transform:uppercase;color:#22d3ee}.er-intel-text{font-size:10px;color:#cbd8e4;line-height:1.45;margin-top:4px}.er-race-feed{padding:8px 12px}.er-event{font-size:9px;color:#8fa2b5;line-height:1.45;padding:5px 0;border-bottom:1px solid rgba(255,255,255,.035)}.er-event strong{color:#dbe7f3}
.er-toast{position:fixed;z-index:12500;top:80px;left:50%;transform:translateX(-50%) translateY(-20px);opacity:0;background:rgba(7,19,30,.94);border:1px solid #3a5770;border-radius:11px;padding:10px 14px;box-shadow:0 12px 40px rgba(0,0,0,.55);transition:.3s;pointer-events:none;font-size:11px;font-weight:900;color:#fff}.er-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.er-toast.good{border-color:#22c55e;color:#bbf7d0}.er-toast.bad{border-color:#ef4444;color:#fecaca}.er-flash{position:fixed;inset:0;pointer-events:none;z-index:12490;opacity:0}.er-flash.good{background:rgba(34,197,94,.1)}.er-flash.bad{background:rgba(239,68,68,.13)}.er-flash.go{animation:erFlash .35s ease}@keyframes erFlash{0%{opacity:0}30%{opacity:1}100%{opacity:0}}.er-particles{position:fixed;inset:0;pointer-events:none;z-index:12495}.er-particle{position:absolute;width:6px;height:6px;border-radius:50%;background:#5eead4;box-shadow:0 0 12px #5eead4;animation:erParticle 900ms ease-out forwards}@keyframes erParticle{to{transform:translate(var(--dx),var(--dy)) scale(.1);opacity:0}}
.er-door-fx{position:absolute;z-index:12;inset:0;display:none;background:rgba(3,7,11,.9);align-items:center;justify-content:center;text-align:center}.er-door-fx.show{display:flex;animation:erFade .35s ease}.er-door-inner{max-width:520px}.er-door-ring{width:120px;height:120px;border-radius:50%;border:2px solid #5eead4;margin:0 auto 18px;box-shadow:0 0 0 18px rgba(34,211,238,.04),0 0 70px rgba(34,211,238,.33);position:relative;animation:erSpin 2.2s linear infinite}.er-door-ring:before,.er-door-ring:after{content:'';position:absolute;inset:14px;border:1px solid #60a5fa;border-radius:50%}.er-door-ring:after{inset:31px;border-color:#4ade80}@keyframes erSpin{to{transform:rotate(360deg)}}@keyframes erFade{from{opacity:0}to{opacity:1}}.er-door-title{font-size:34px;font-weight:950}.er-door-sub{font-size:12px;color:#9fb3c7;margin-top:5px}
.er-setup{position:fixed;inset:0;z-index:12100;background:rgba(2,7,12,.78);display:none;align-items:center;justify-content:center;padding:16px;backdrop-filter:blur(8px)}.er-setup.show{display:flex}.er-setup-card{width:min(1180px,97vw);max-height:94vh;overflow:auto;background:#fff;color:#172033;border-radius:18px;box-shadow:0 30px 100px rgba(0,0,0,.42);display:grid;grid-template-columns:250px 1fr 310px}.er-setup-col{padding:22px;border-right:1px solid #e2e8f0}.er-setup-col:last-child{border-right:0}.er-setup-title{font:800 25px 'Source Serif 4',serif;color:#0f172a}.er-setup-sub{font-size:12px;color:#64748b;line-height:1.55;margin:6px 0 18px}.er-field{margin-bottom:14px}.er-field label{display:block;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:#64748b;margin-bottom:5px}.er-field select,.er-field input{width:100%;border:1.5px solid #cbd5e1;border-radius:8px;padding:9px 10px;background:#fff;color:#0f172a}.er-unit-btn,.er-topic-btn{width:100%;border:1px solid #e2e8f0;background:#f8fafc;border-radius:9px;padding:9px 10px;text-align:left;margin-bottom:6px;color:#334155;cursor:pointer}.er-unit-btn.active,.er-topic-btn.active{border-color:#0f766e;background:#ecfdf5;color:#065f46}.er-skill-list{display:grid;gap:7px;max-height:430px;overflow:auto}.er-skill{display:flex;gap:9px;align-items:flex-start;padding:9px;border:1px solid #e2e8f0;border-radius:9px;background:#fff}.er-skill input{width:16px;height:16px;margin-top:1px}.er-skill strong{display:block;font-size:12px}.er-skill span span{display:block;font-size:10px;color:#64748b;margin-top:2px}.er-setup-summary{padding:11px 12px;border:1px solid #dbeafe;background:#eff6ff;border-radius:9px;font-size:11px;color:#334155;line-height:1.5;margin-bottom:12px}.er-build-progress{display:none}.er-build-progress.show{display:block}.er-build-progress-track{height:7px;background:#e2e8f0;border-radius:99px;overflow:hidden}.er-build-progress-fill{height:100%;width:0;background:linear-gradient(90deg,#0f766e,#0284c7)}.er-build-progress-text,.er-setup-msg{font-size:11px;color:#64748b;margin:6px 0}.er-team-names{display:grid;grid-template-columns:1fr 1fr;gap:6px}.er-team-names input{font-size:11px;padding:7px 8px}.er-setup-actions{display:grid;gap:7px;margin-top:12px}.er-setup .er-btn{font-size:11px}
.er-lobby{position:fixed;inset:0;z-index:12150;background:#04080e;color:#e7eef7;display:none}.er-lobby.show{display:flex;flex-direction:column}.er-lobby-main{flex:1;display:grid;grid-template-columns:1fr 380px;gap:16px;padding:22px;max-width:1400px;width:100%;margin:0 auto}.er-lobby-code{font:950 clamp(48px,8vw,98px) ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;color:#5eead4;text-shadow:0 0 40px rgba(34,211,238,.3)}.er-lobby-copy{font-size:14px;color:#9fb3c7;line-height:1.55;max-width:640px}.er-lobby-team{border:1px solid #23384d;background:#08131e;border-radius:12px;padding:12px;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center}.er-lobby-team strong{font-size:13px}.er-lobby-team span{font-size:11px;color:#8fa2b5}.er-lobby-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.er-student-banner{display:none;margin:0 0 18px;border:1px solid #22d3ee;border-radius:12px;padding:14px 16px;background:linear-gradient(135deg,#071c2b,#0b2930);color:#fff;box-shadow:0 8px 24px rgba(15,118,110,.13);align-items:center;gap:14px}.er-student-banner.show{display:flex}.er-student-banner .er-banner-body{flex:1}.er-banner-kicker{font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#5eead4}.er-banner-title{font-size:15px;font-weight:900;margin-top:2px}.er-banner-sub{font-size:11px;color:#b8c9d8;margin-top:3px}.er-student-banner button{flex:none}
.er-join-modal{position:fixed;inset:0;z-index:12120;display:none;align-items:center;justify-content:center;background:rgba(2,7,12,.78);backdrop-filter:blur(8px);padding:16px}.er-join-modal.show{display:flex}.er-join-card{width:min(520px,96vw);border:1px solid #2b4158;background:#08131e;color:#fff;border-radius:17px;padding:22px;box-shadow:0 28px 90px rgba(0,0,0,.52)}.er-join-title{font-size:23px;font-weight:950}.er-join-sub{font-size:12px;color:#9fb3c7;line-height:1.55;margin:6px 0 16px}.er-join-team{display:flex;justify-content:space-between;align-items:center;padding:11px;border:1px solid #25394d;border-radius:9px;margin-bottom:7px;background:#0c1825}
.er-projector{position:fixed;inset:0;z-index:12170;background:radial-gradient(circle at 50% -20%,#123252 0,#07111b 34%,#04080e 68%);display:none;color:#fff;overflow:auto}.er-projector.show{display:block}.er-projector-inner{max-width:1500px;margin:0 auto;padding:18px}.er-projector-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}.er-projector-title{font-size:clamp(26px,4vw,50px);font-weight:1000;letter-spacing:-.04em}.er-projector-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:14px}.er-race-big{display:grid;gap:10px}.er-race-row{border:1px solid #294057;background:#08131e;border-radius:13px;padding:15px;display:grid;grid-template-columns:55px 1fr auto;gap:12px;align-items:center}.er-race-pos{font:950 28px ui-monospace,monospace;color:#5eead4;text-align:center}.er-race-name{font-size:19px;font-weight:950}.er-race-meta{font-size:11px;color:#93a8bb;margin-top:3px}.er-race-pct{font:900 17px ui-monospace,monospace}.er-projector-stage{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}.er-projector-stage>div{border:1px solid #294057;border-radius:11px;padding:12px;background:#08131e}.er-projector-stage strong{display:block;font-size:11px}.er-projector-stage span{font-size:9px;color:#91a5b7}.er-projector-actions{display:flex;gap:8px;flex-wrap:wrap}
.er-reduced *{animation:none!important;transition:none!important}
@media(max-width:1180px){.er-layout{grid-template-columns:220px minmax(0,1fr)}.er-right{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px;position:static;max-height:none}.er-lobby-main{grid-template-columns:1fr 320px}}
@media(max-width:840px){.er-layout{grid-template-columns:1fr}.er-left,.er-right{grid-column:auto;display:block;position:static;max-height:none}.er-room{min-height:760px}.er-work{grid-template-columns:1fr}.er-bottom-dock{position:relative;left:auto;right:auto;bottom:auto;margin:130px 10px 10px}.er-options{grid-template-columns:1fr}.er-setup-card{grid-template-columns:1fr}.er-setup-col{border-right:0;border-bottom:1px solid #e2e8f0}.er-lobby-main{grid-template-columns:1fr}.er-projector-grid{grid-template-columns:1fr}.er-projector-stage{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.er-topbar{height:auto;min-height:62px;flex-wrap:wrap;padding:9px 12px}.er-live-pill{margin-left:0}.er-top-spacer{display:none}.er-layout{padding:7px}.er-room{min-height:800px}.er-hud{inset:10px}.er-mission-title{font-size:18px}.er-chips{display:none}.er-hotspot{width:44px;height:44px}.er-bottom-dock{margin-top:105px}.er-card{min-height:auto}.er-team-names{grid-template-columns:1fr}.er-student-banner{align-items:flex-start;flex-wrap:wrap}.er-student-banner button{width:100%}.er-race-row{grid-template-columns:42px 1fr}.er-race-pct{grid-column:2}.er-projector-stage{grid-template-columns:1fr}}


/* UI refinement pass */
.er-layout{grid-template-columns:240px minmax(0,1fr) 320px}
.er-right{position:sticky;top:76px;max-height:calc(100vh - 88px);overflow:auto}
.er-room{min-height:750px}
.er-hud{inset:14px 14px auto}
.er-mission{max-width:320px}
.er-bottom-dock{padding:12px;bottom:14px;left:14px;right:14px;background:rgba(5,13,21,.92)}
.er-work{grid-template-columns:1.05fr .95fr;gap:10px;margin-top:10px}
.er-card{padding:12px;min-height:220px}
.er-qtext{font-size:17px;margin:12px 0}
.er-qvisual svg{max-height:145px}
.er-dock-sub{max-width:520px}
.er-objective,.er-intel{padding:12px}
.er-objective-title{font-size:15px;font-weight:950;color:#f8fbff}
.er-objective-helper{font-size:11px;line-height:1.5;color:#b6c6d8;margin-top:6px}
.er-objective-list{margin-top:10px;display:grid;gap:8px}
.er-objective-item{display:grid;grid-template-columns:18px 1fr;gap:8px;align-items:start;padding:8px 9px;border:1px solid #244058;background:#0c1926;border-radius:10px;font-size:11px;color:#d6e1ed}
.er-objective-item span{color:#7dd3fc;font-weight:950}
.er-objective-item.done{border-color:#2a6f50;background:#0d2217}
.er-objective-item.done span{color:#86efac}
.er-objective-note{margin-top:10px;padding:10px 11px;border:1px solid #28425a;background:#0b1723;border-radius:10px;font-size:10px;line-height:1.5;color:#d6e1ed}
.er-intel-banner{border:1px solid #265072;background:linear-gradient(180deg,#0a2031,#0a1723);border-radius:12px;padding:10px 11px;margin-bottom:10px;box-shadow:inset 0 0 24px rgba(56,189,248,.06)}
.er-intel-banner-label{font-size:8px;font-weight:950;letter-spacing:.1em;text-transform:uppercase;color:#67e8f9;margin-bottom:7px}
.er-code-strip{display:flex;gap:6px;flex-wrap:wrap}
.er-code-chip{min-width:34px;height:34px;padding:0 8px;border-radius:9px;border:1px solid #35506a;background:#08131f;display:grid;place-items:center;font:900 15px ui-monospace,SFMono-Regular,Menlo,monospace;color:#f8fbff}
.er-code-chip.locked{opacity:.35}
.er-intel-small-note{font-size:10px;color:#b8c8d8;line-height:1.5;margin:8px 1px 10px}
.er-intel-card{padding:11px 12px;background:#0c1926;box-shadow:inset 0 0 24px rgba(34,211,238,.02)}
.er-intel-card.locked{opacity:.28}
.er-intel-title{font-size:8px;color:#67e8f9}
.er-intel-text{font-size:11px;line-height:1.5}
.er-helper-note,.er-final-ref-note{font-size:10px;color:#b9c7d6;line-height:1.5;margin-top:8px}
.er-final-ref{margin-bottom:10px;padding:10px 11px;border:1px solid #2d4c65;background:#0a1724;border-radius:11px}
.er-final-ref-title{font-size:8px;font-weight:950;color:#67e8f9;letter-spacing:.1em;text-transform:uppercase;margin-bottom:7px}
.er-svg-circuit{background:linear-gradient(rgba(7,19,31,.78),rgba(7,19,31,.92)),repeating-linear-gradient(0deg,#14314a 0 1px,transparent 1px 28px),repeating-linear-gradient(90deg,#14314a 0 1px,transparent 1px 28px)}
.er-circuit-svg{position:absolute;inset:0;width:100%;height:100%}
.er-path{stroke:#2f4255;stroke-width:2.4;fill:none;stroke-linecap:round}
.er-path.on{stroke:#4ade80;filter:drop-shadow(0 0 6px rgba(74,222,128,.8))}
.er-race-feed{display:none}
@media(max-width:1180px){.er-layout{grid-template-columns:220px minmax(0,1fr)}.er-right{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px;position:static;max-height:none}}
@media(max-width:840px){.er-right{display:block}.er-work{grid-template-columns:1fr}.er-bottom-dock{position:relative;left:auto;right:auto;bottom:auto;margin:145px 10px 10px}.er-room{min-height:720px}.er-right .er-panel+.er-panel{margin-top:10px}}


/* Next redesign pass */
.er-room{min-height:700px}
.er-hud{inset:12px 12px auto}
.er-mission{max-width:280px;padding:9px 12px;border-radius:10px}
.er-mission-title{font-size:18px}
.er-mission-sub{font-size:10px}
.er-chips{gap:6px}
.er-chip{padding:6px 9px;font-size:9px}
.er-bottom-dock{left:12px;right:12px;bottom:12px;padding:10px 11px;background:rgba(4,12,20,.88)}
.er-work{grid-template-columns:1.1fr .9fr;gap:10px;margin-top:10px}
.er-card{min-height:200px;padding:12px}
.er-qtext{font-size:16px;line-height:1.4}
.er-qvisual svg{max-height:130px}
.er-right{width:auto}
.er-hotspots{pointer-events:none}
.er-hotspot,.er-hotspots [data-hot]{pointer-events:auto}
.er-hotspot-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.er-hotspot-lines .base{fill:none;stroke:rgba(255,255,255,.18);stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round}
.er-hotspot-lines .active{fill:none;stroke:#38bdf8;stroke-width:0.75;stroke-linecap:round;filter:drop-shadow(0 0 8px rgba(56,189,248,.8));opacity:.25}
.er-hotspot-lines .active.on{opacity:1;stroke:#86efac;filter:drop-shadow(0 0 10px rgba(134,239,172,.95))}
.er-route-panel{border:1px solid #21405a;background:linear-gradient(180deg,#0a1622,#09131d);border-radius:12px;padding:12px}
.er-route-panel-title{font-size:13px;font-weight:900;color:#f8fbff}
.er-route-panel-sub{font-size:11px;color:#afc1d2;line-height:1.55;margin-top:5px}
.er-route-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.er-route-chip{min-width:44px;height:40px;border-radius:11px;border:1px solid #2d465e;background:#0b1824;display:grid;place-items:center;font:900 15px ui-monospace,monospace;color:#9db2c7}
.er-route-chip.ready{border-color:#3f688a;color:#dbe9f5}
.er-route-chip.done{background:#0d2a1a;border-color:#2f9e62;color:#bbf7d0;box-shadow:0 0 18px rgba(74,222,128,.18)}

.er-projector-inner{max-width:1540px;padding:20px 24px}
.er-projector-head{align-items:flex-start;margin-bottom:18px}
.er-projector-sub{color:#98adbf;font-size:14px;margin-top:5px}
.er-projector-topright{text-align:right}
.er-projector-grid{grid-template-columns:1.3fr .7fr;gap:16px;align-items:start}
.er-projector-main,.er-projector-side{display:block}
.er-race-big{display:grid;gap:12px}
.er-race-row{position:relative;overflow:hidden;border:1px solid #27445d;background:linear-gradient(180deg,#08131f,#08111a);border-radius:18px;padding:16px;display:grid;grid-template-columns:64px 1fr auto;gap:14px;align-items:center;box-shadow:0 16px 40px rgba(0,0,0,.22)}
.er-race-row:before{content:'';position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--team-accent,#5eead4)}
.er-race-row.c1{--team-accent:#5eead4}.er-race-row.c2{--team-accent:#93c5fd}.er-race-row.c3{--team-accent:#fca5a5}.er-race-row.c4{--team-accent:#fcd34d}.er-race-row.c5{--team-accent:#c4b5fd}.er-race-row.c6{--team-accent:#86efac}
.er-race-pos{font:950 34px ui-monospace,monospace;color:var(--team-accent)}
.er-race-main{min-width:0}.er-race-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.er-race-name{font-size:22px;font-weight:950;line-height:1.05}
.er-race-meta{font-size:12px;color:#9bb0c3;margin-top:4px}
.er-race-badge{border:1px solid #32506b;background:#0c1825;border-radius:999px;padding:6px 10px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:#d9e8f5;white-space:nowrap}
.er-race-pct{font:900 22px ui-monospace,monospace;color:#f8fbff}
.er-race-stage-dots{display:flex;gap:7px;margin-top:10px}.er-race-stage-dots span{width:26px;height:6px;border-radius:99px;background:#17314a;border:1px solid #27445d}.er-race-stage-dots span.active{background:#60a5fa}.er-race-stage-dots span.done{background:#4ade80}
.er-map-panel{padding-bottom:4px}.er-stage-map{padding:12px;display:grid;gap:10px}
.er-stage-col{border:1px solid #28445d;background:linear-gradient(180deg,#09131f,#08111a);border-radius:14px;padding:12px;position:relative;overflow:hidden}.er-stage-col:before{content:'';position:absolute;left:0;top:0;right:0;height:3px;background:linear-gradient(90deg,#22d3ee,#4ade80)}
.er-stage-col-head{display:flex;gap:10px;align-items:flex-start}.er-stage-col-num{width:28px;height:28px;border-radius:50%;border:1px solid #32506b;background:#0d1824;display:grid;place-items:center;font-weight:900;color:#dbe9f5;flex:0 0 auto}.er-stage-col-head strong{display:block;font-size:13px}.er-stage-col-head span{display:block;font-size:10px;color:#9db1c4;line-height:1.5;margin-top:3px}
.er-stage-team-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.er-team-pill{display:inline-flex;align-items:center;border-radius:999px;padding:6px 9px;border:1px solid #2c475f;background:#0d1824;font-size:10px;font-weight:900;color:#dfeaf5}.er-team-pill.empty{color:#95a8ba}.er-team-pill.c1{border-color:#5eead4;color:#5eead4}.er-team-pill.c2{border-color:#93c5fd;color:#93c5fd}.er-team-pill.c3{border-color:#fca5a5;color:#fca5a5}.er-team-pill.c4{border-color:#fcd34d;color:#fcd34d}.er-team-pill.c5{border-color:#c4b5fd;color:#c4b5fd}.er-team-pill.c6{border-color:#86efac;color:#86efac}
.er-projector .er-race-feed{display:block;padding:12px}
.er-projector .er-event{font-size:11px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.05)}
@media(max-width:1180px){.er-layout{grid-template-columns:220px minmax(0,1fr)}.er-right{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px;position:static;max-height:none}.er-projector-grid{grid-template-columns:1fr}}
@media(max-width:840px){.er-right{display:block}.er-room{min-height:720px}.er-bottom-dock{position:relative;left:auto;right:auto;bottom:auto;margin:120px 10px 10px}.er-work{grid-template-columns:1fr}.er-projector-head{flex-direction:column}.er-projector-topright{text-align:left}.er-race-row{grid-template-columns:52px 1fr}.er-race-pct{grid-column:2;justify-self:end}}
/* De-emphasize baked concept art so live puzzle geometry is dominant */
.er-room .er-scene{filter:brightness(.55) saturate(.55) contrast(1.08)!important}
.er-room.stage-2 .er-scene{filter:brightness(.53) saturate(.5) hue-rotate(95deg) contrast(1.1)!important}
.er-room.stage-3 .er-scene{filter:brightness(.53) saturate(.5) hue-rotate(190deg) contrast(1.1)!important}
.er-room.stage-4 .er-scene{filter:brightness(.53) saturate(.55) hue-rotate(250deg) contrast(1.1)!important}
.er-scene:after{background:linear-gradient(180deg,rgba(2,8,13,.18),rgba(2,8,13,.34)),radial-gradient(circle at 50% 35%,transparent 0 30%,rgba(2,7,12,.56) 78%)!important}


/* Stage asset integration + final polish */
.er-room{--stage-accent:#5eead4;min-height:740px}
.er-room.stage-1{--stage-accent:#67e8f9}
.er-room.stage-2{--stage-accent:#60a5fa}
.er-room.stage-3{--stage-accent:#f59e0b}
.er-room.stage-4{--stage-accent:#fb7185}
.er-scene{background-size:cover;background-position:center center !important;filter:brightness(.62) saturate(.9) contrast(1.06)!important;transition:filter .45s ease, background-image .35s ease}
.er-room.stage-1 .er-scene{filter:brightness(.68) saturate(.96) contrast(1.06)!important}
.er-room.stage-2 .er-scene{filter:brightness(.58) saturate(.86) contrast(1.06)!important}
.er-room.stage-3 .er-scene{filter:brightness(.60) saturate(.90) contrast(1.06)!important}
.er-room.stage-4 .er-scene{filter:brightness(.55) saturate(.92) contrast(1.08)!important}
.er-scene:after{background:linear-gradient(180deg,rgba(2,8,13,.10),rgba(2,8,13,.30)),radial-gradient(circle at 50% 38%,transparent 0 33%,rgba(2,7,12,.48) 78%)!important}
.er-mission{background:linear-gradient(180deg,rgba(4,15,24,.86),rgba(5,13,21,.90));border:1px solid rgba(103,232,249,.22);box-shadow:0 12px 36px rgba(0,0,0,.26)}
.er-chip{border-color:rgba(110,148,182,.42)}
.er-room-progress,.er-chip.hot{border-color:rgba(251,113,133,.45)}
.er-hotspots{position:absolute;z-index:4;inset:0;pointer-events:none}
.er-hotspot{width:58px;height:58px;transform:translate(-50%,-50%);pointer-events:auto;border-color:var(--stage-accent);color:#eff9ff;box-shadow:0 0 0 8px color-mix(in srgb, var(--stage-accent) 14%, transparent),0 0 26px color-mix(in srgb, var(--stage-accent) 45%, transparent);background:rgba(8,18,28,.90)}
.er-hotspot:hover{transform:translate(-50%,-50%) scale(1.08)}
.er-hotspot.locked{transform:translate(-50%,-50%);border-color:#506173;color:#6d8092;background:rgba(10,18,28,.82);box-shadow:none}
.er-hotspot.solved{transform:translate(-50%,-50%);background:color-mix(in srgb, var(--stage-accent) 22%, #08161f);border-color:color-mix(in srgb, var(--stage-accent) 85%, white);color:white;box-shadow:0 0 20px color-mix(in srgb, var(--stage-accent) 42%, transparent)}
.er-hotspot.h1{left:18%;top:41%}
.er-hotspot.h2{left:46%;top:26%}
.er-hotspot.h3{left:74%;top:42%}
.er-hotspot.h4{left:54%;top:58%}
.er-hotspot-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.er-hotspot-lines .base{fill:none;stroke:rgba(255,255,255,.16);stroke-width:.46;stroke-linecap:round;stroke-linejoin:round}
.er-hotspot-lines .active{fill:none;stroke:rgba(103,232,249,.36);stroke-width:.70;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 8px rgba(103,232,249,.55));opacity:.35}
.er-hotspot-lines .active.on{stroke:var(--stage-accent);opacity:1;filter:drop-shadow(0 0 10px color-mix(in srgb, var(--stage-accent) 70%, transparent))}
.er-bottom-dock{background:linear-gradient(180deg,rgba(5,13,21,.84),rgba(4,11,18,.91));backdrop-filter:blur(8px)}
.er-card{background:linear-gradient(180deg,rgba(8,20,31,.95),rgba(7,17,27,.95));border-color:#21384d}
.er-puzzle-title,.er-panel-head{color:#dbe9f5}
.er-tag{border-color:color-mix(in srgb, var(--stage-accent) 35%, #204d76);background:color-mix(in srgb, var(--stage-accent) 18%, #0a2542)}
.er-option.correct{border-color:var(--stage-accent);background:color-mix(in srgb, var(--stage-accent) 18%, #0b2b1b)}
.er-route-chip.ready{border-color:color-mix(in srgb, var(--stage-accent) 38%, #3f688a)}
.er-route-chip.done{border-color:color-mix(in srgb, var(--stage-accent) 62%, #2f9e62);box-shadow:0 0 18px color-mix(in srgb, var(--stage-accent) 20%, transparent)}
.er-code-chip,.er-code-box{border-color:#31506b}
.er-key.enter{background:linear-gradient(180deg,color-mix(in srgb, var(--stage-accent) 55%, #0f766e),color-mix(in srgb, var(--stage-accent) 35%, #065f46));border-color:transparent}
.er-objective-note,.er-final-ref,.er-intel-banner,.er-intel-card{border-color:#25425a}
.er-right .er-panel{background:linear-gradient(180deg,rgba(8,19,31,.95),rgba(7,16,26,.95))}
.er-power-dot.on{background:var(--stage-accent);box-shadow:0 0 12px color-mix(in srgb, var(--stage-accent) 60%, transparent)}

.er-projector{background:radial-gradient(circle at 50% -20%,#153b63 0,#081420 32%,#04080e 68%)}
.er-race-row{background:linear-gradient(180deg,#08131f,#09131c)}
.er-stage-map{background:linear-gradient(180deg,rgba(5,12,19,.35),rgba(5,12,19,0));}

@media(max-width:840px){
  .er-room{min-height:700px}
  .er-hotspot{width:50px;height:50px}
}


/* Signal Trace visibility / route-answer fix */
.er-room.stage-1 .er-hotspot.h1{left:20%;top:32%}
.er-room.stage-1 .er-hotspot.h2{left:48%;top:16%}
.er-room.stage-1 .er-hotspot.h3{left:78%;top:32%}
.er-room.stage-1 .er-hotspot.h4{left:58%;top:26%}
.er-room.stage-1 .er-hotspot{z-index:3}
.er-room.stage-1 .er-hotspot-lines{z-index:2}
.er-route-chip{min-width:46px}
.er-route-chip.ready{color:#b9c9d8;background:#0b1824}
.er-route-chip.done{color:#eaffef}

/* Functional workspace modes */
.er-screen{--er-dock-height:360px}
.er-view-controls{display:flex;gap:5px;align-items:center}
.er-view-controls .er-icon-btn{font-size:10px;padding:7px 9px}
.er-view-controls .er-icon-btn.active{border-color:#38bdf8;background:#0b2940;color:#dff7ff;box-shadow:0 0 0 1px rgba(56,189,248,.12) inset}
.er-dock-actions{display:flex;align-items:center;gap:10px}
.er-drawer-handle{height:16px;margin:-8px -2px 3px;display:flex;align-items:center;justify-content:center;cursor:ns-resize;touch-action:none}
.er-drawer-handle span{display:block;width:68px;height:4px;border-radius:99px;background:#39566f;box-shadow:0 0 8px rgba(56,189,248,.12)}
.er-resizing,.er-resizing *{user-select:none!important;cursor:ns-resize!important}
.er-bottom-dock{transition:height .24s ease,background .24s ease,box-shadow .24s ease}
.er-work{transition:opacity .18s ease}
.er-room-prompt{display:none;position:absolute;z-index:7;left:50%;bottom:92px;transform:translateX(-50%);width:min(620px,calc(100% - 32px));padding:11px 13px;border:1px solid #31516b;border-radius:12px;background:rgba(5,14,23,.88);backdrop-filter:blur(10px);box-shadow:0 12px 36px rgba(0,0,0,.35);align-items:center;gap:10px}
.er-room-prompt strong{color:var(--stage-accent);font-size:11px;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}
.er-room-prompt span{font-size:11px;color:#c0cedb;line-height:1.4;flex:1}
.er-room-prompt .er-btn{white-space:nowrap}

/* Split: draggable workspace, with a hard cap so the scene always remains visible */
.er-view-split .er-bottom-dock{height:min(var(--er-dock-height),calc(100% - 235px));min-height:245px;overflow:hidden}
.er-view-split .er-work{height:calc(100% - 62px);overflow:auto;padding-right:2px}

/* Room Focus: preserve the environment and interaction safe-zone */
.er-view-room .er-bottom-dock{height:74px;min-height:74px;overflow:hidden;background:rgba(4,12,19,.82)}
.er-view-room .er-bottom-dock .er-work{display:none}
.er-view-room .er-bottom-dock .er-drawer-handle{height:11px;margin:-7px 0 0}
.er-view-room .er-dock-sub{max-width:740px}
.er-view-room .er-room-prompt{display:flex}
.er-view-room .er-hotspots{bottom:74px}
.er-view-room .er-scan,.er-view-room .er-ambient{bottom:74px}

/* Puzzle Focus: maximize work area but never cover the whole room */
.er-view-puzzle .er-bottom-dock{height:min(66vh,calc(100% - 170px));min-height:390px;overflow:hidden;background:rgba(4,12,19,.96)}
.er-view-puzzle .er-work{height:calc(100% - 62px);overflow:auto;padding-right:2px}
.er-view-puzzle .er-room-prompt{display:none}

/* Collapsible objective/intel rail */
.er-right-tab{display:none;position:fixed;z-index:12220;right:0;top:42%;border:1px solid #31516b;border-right:0;border-radius:10px 0 0 10px;background:#081621;color:#9eeaf4;padding:12px 8px;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;writing-mode:vertical-rl}
.er-right-collapsed .er-layout{grid-template-columns:240px minmax(0,1fr)}
.er-right-collapsed .er-right{display:none!important}
.er-right-collapsed .er-right-tab{display:block}

/* Interaction safe zone: all required Signal Trace nodes stay above every workspace mode */
.er-room.stage-1 .er-hotspot.h1{left:18%;top:30%}
.er-room.stage-1 .er-hotspot.h2{left:43%;top:17%}
.er-room.stage-1 .er-hotspot.h3{left:78%;top:30%}
.er-room.stage-1 .er-hotspot.h4{left:58%;top:20%}

/* Scroll polish inside work areas */
.er-view-split .er-work::-webkit-scrollbar,.er-view-puzzle .er-work::-webkit-scrollbar{width:8px}
.er-view-split .er-work::-webkit-scrollbar-thumb,.er-view-puzzle .er-work::-webkit-scrollbar-thumb{background:#28445b;border-radius:99px}

@media(max-width:1180px){
  .er-view-controls{order:3;width:100%;justify-content:flex-end}
  .er-right-collapsed .er-layout{grid-template-columns:220px minmax(0,1fr)}
}
@media(max-width:840px){
  .er-view-controls{justify-content:flex-start;overflow-x:auto}
  .er-view-split .er-bottom-dock,.er-view-puzzle .er-bottom-dock,.er-view-room .er-bottom-dock{position:relative;height:auto;min-height:0;left:auto;right:auto;bottom:auto;margin:120px 10px 10px;overflow:visible}
  .er-view-room .er-bottom-dock .er-work{display:none}
  .er-view-room .er-room-prompt{bottom:92px}
  .er-view-split .er-work,.er-view-puzzle .er-work{height:auto;max-height:none;overflow:visible}
  .er-right-collapsed .er-layout{grid-template-columns:1fr}
}


/* Mockup visual polish pass */
.er-screen{
  background:
    radial-gradient(circle at 50% -22%, rgba(16,76,124,.42), transparent 38%),
    radial-gradient(circle at 10% 80%, rgba(10,114,82,.12), transparent 28%),
    linear-gradient(180deg,#04080e 0%,#050b12 55%,#03070c 100%);
}
.er-topbar{
  height:66px;
  background:linear-gradient(180deg,rgba(4,10,17,.97),rgba(5,11,18,.92));
  border-bottom-color:#274056;
  box-shadow:0 10px 30px rgba(0,0,0,.3);
}
.er-topbar:before{
  content:'';position:absolute;left:0;right:0;top:0;height:2px;
  background:linear-gradient(90deg,transparent,rgba(239,68,68,.95),rgba(34,211,238,.9),rgba(74,222,128,.82),transparent);
  opacity:.65;
}
.er-brand-mark{
  border-radius:14px;
  background:linear-gradient(180deg,rgba(7,18,30,.95),rgba(8,19,29,.82));
  box-shadow:0 0 0 1px rgba(103,232,249,.1) inset, 0 0 34px rgba(34,211,238,.14);
}
.er-brand-title{font-size:13px;letter-spacing:.18em;color:#66e6ff;text-shadow:0 0 20px rgba(34,211,238,.22)}
.er-brand-sub{font-size:11px;color:#d2e4f1}
.er-live-pill,.er-icon-btn,.er-btn{
  border-radius:10px;
  background:linear-gradient(180deg,rgba(10,23,36,.96),rgba(8,18,29,.92));
  border-color:#35516a;
  box-shadow:0 0 0 1px rgba(255,255,255,.02) inset, 0 8px 18px rgba(0,0,0,.18);
}
.er-icon-btn:hover,.er-btn:hover{transform:translateY(-1px);box-shadow:0 0 0 1px rgba(94,234,212,.06) inset,0 12px 24px rgba(0,0,0,.25)}
.er-btn.primary{box-shadow:0 0 0 1px rgba(255,255,255,.05) inset,0 0 28px rgba(34,211,238,.14)}
.er-live-pill{padding:7px 11px}
.er-timer{font-size:18px;color:#eff6ff;text-shadow:0 0 18px rgba(255,255,255,.08)}
.er-layout{
  grid-template-columns:252px minmax(0,1fr) 300px;
  padding:12px;
  gap:12px;
  background:
    radial-gradient(circle at 50% -25%, rgba(18,50,82,.55), transparent 42%),
    linear-gradient(180deg,#08111b 0%,#04080e 70%);
}
.er-left,.er-right{scrollbar-width:thin;scrollbar-color:#264a64 transparent}
.er-panel{
  position:relative;
  border-radius:18px;
  border:1px solid #23435a;
  background:linear-gradient(180deg,rgba(7,18,29,.98),rgba(6,14,22,.96));
  box-shadow:0 18px 44px rgba(0,0,0,.38), inset 0 0 0 1px rgba(255,255,255,.015);
}
.er-panel:before{
  content:'';position:absolute;left:12px;right:12px;top:0;height:2px;border-radius:99px;
  background:linear-gradient(90deg,rgba(103,232,249,0),rgba(103,232,249,.7),rgba(74,222,128,.68),rgba(103,232,249,0));opacity:.8;
}
.er-panel-head{
  padding:12px 14px;
  color:#eef8ff;
  letter-spacing:.16em;
  font-size:10px;
  background:linear-gradient(180deg,rgba(10,20,31,.78),rgba(8,16,26,0));
}
.er-stage-item,.er-team-card,.er-objective-item,.er-intel-card,.er-code-chip,.er-option,.er-key,.er-keypad,.er-route-chip,.er-switch,.er-code-box,.er-final-ref,
.er-intel-banner,.er-objective-note,.er-route-panel,.er-circuit-board,.er-switch-grid,.er-vault-grid,.er-breach-grid{
  box-shadow:0 10px 24px rgba(0,0,0,.16), inset 0 0 0 1px rgba(255,255,255,.015);
}
.er-stage-item{
  border-color:#1f384c;
  background:linear-gradient(180deg,rgba(9,20,31,.82),rgba(7,16,26,.65));
  padding:12px 11px;
}
.er-stage-item.active{
  background:linear-gradient(180deg,rgba(16,62,36,.76),rgba(9,36,25,.72));
  border-color:#2dbd70;
  box-shadow:0 0 0 1px rgba(74,222,128,.08) inset,0 0 28px rgba(74,222,128,.14);
}
.er-stage-item.done{background:linear-gradient(180deg,rgba(10,31,26,.58),rgba(8,18,26,.46))}
.er-stage-num{
  width:30px;height:30px;border-radius:10px;background:rgba(8,17,27,.65);
}
.er-team-card{padding:11px 12px}
.er-team-card.me{background:linear-gradient(180deg,rgba(9,40,34,.62),rgba(8,20,28,.72))}
.er-mini-track{height:6px;background:#102131;border:1px solid #1a3044}
.er-stat-grid{background:linear-gradient(180deg,rgba(8,18,28,.55),rgba(8,18,28,.12))}
.er-stat{padding:14px 12px}
.er-stat-num{font-size:24px;color:#f6fbff;text-shadow:0 0 14px rgba(255,255,255,.06)}
.er-room{
  border-radius:22px;
  border-color:#1f516e;
  box-shadow:0 0 0 1px rgba(95,227,255,.04) inset,0 28px 90px rgba(0,0,0,.58),0 0 36px rgba(34,211,238,.08);
}
.er-room:before{
  content:'';position:absolute;inset:8px;border-radius:18px;border:1px solid rgba(120,209,255,.13);pointer-events:none;z-index:1;
}
.er-room:after{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:1;
  background:linear-gradient(90deg,rgba(103,232,249,.02),transparent 18%,transparent 82%,rgba(103,232,249,.02));
}
.er-scene{filter:brightness(.64) saturate(.96) contrast(1.07)!important}
.er-scan{opacity:.8}
.er-hud{inset:14px 14px auto}
.er-mission{
  min-width:min(440px,48vw);
  padding:12px 15px;
  border-radius:16px;
  background:linear-gradient(180deg,rgba(4,16,26,.90),rgba(5,15,24,.82));
  border-color:rgba(103,232,249,.34);
  box-shadow:0 16px 42px rgba(0,0,0,.28), inset 0 0 0 1px rgba(255,255,255,.02);
}
.er-kicker{font-size:10px;letter-spacing:.18em}
.er-mission-title{font-size:18px;line-height:1.05;text-shadow:0 0 18px rgba(103,232,249,.1)}
.er-mission-sub{font-size:12px;max-width:560px;color:#d3e2ee}
.er-chips{gap:8px}
.er-chip{
  min-height:42px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(180deg,rgba(7,17,27,.92),rgba(8,16,26,.84));
  border-radius:12px;padding:9px 12px;
}
.er-hotspot{font-size:24px;font-weight:1000;text-shadow:0 0 12px rgba(255,255,255,.18)}
.er-bottom-dock{
  border-radius:18px;
  border-color:#2a5674;
  background:linear-gradient(180deg,rgba(4,12,20,.86),rgba(4,10,17,.95));
  box-shadow:0 18px 52px rgba(0,0,0,.48),0 0 0 1px rgba(255,255,255,.015) inset;
}
.er-bottom-dock:before{
  content:'';position:absolute;left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(103,232,249,.58),rgba(74,222,128,.45),transparent);
}
.er-drawer-handle span{height:5px;width:74px;background:linear-gradient(90deg,#31516b,#6acbf4,#31516b)}
.er-dock-title{font-size:12px;letter-spacing:.14em;color:#eff8ff}
.er-dock-sub{font-size:11px;color:#aabfd0}
.er-card{
  border-radius:15px;
  padding:14px;
  background:linear-gradient(180deg,rgba(7,18,29,.96),rgba(7,16,25,.92));
  border-color:#29506b;
  position:relative;
}
.er-card:before{
  content:'';position:absolute;left:14px;right:14px;top:0;height:2px;border-radius:99px;
  background:linear-gradient(90deg,rgba(96,165,250,0),rgba(96,165,250,.45),rgba(74,222,128,.35),rgba(96,165,250,0));
}
.er-qnum{font-size:9px;color:#8db4c9}
.er-tag{padding:5px 8px;border-radius:999px}
.er-qtext{font-size:20px;line-height:1.46;color:#eef6fd;text-shadow:0 0 18px rgba(255,255,255,.03)}
.er-option{
  border-radius:10px;padding:11px 12px;font-size:12px;font-weight:800;
  background:linear-gradient(180deg,rgba(12,26,39,.96),rgba(10,22,34,.92));
  border-color:#36516a;
}
.er-option:hover:not(:disabled){border-color:#6acbf4;box-shadow:0 0 0 1px rgba(106,203,244,.05) inset}
.er-option.correct{color:#dffbea;box-shadow:0 0 0 1px rgba(74,222,128,.06) inset,0 0 22px rgba(74,222,128,.08)}
.er-option.wrong{box-shadow:0 0 0 1px rgba(239,68,68,.05) inset}
.er-feedback{min-height:24px;padding-top:4px;font-size:11px;letter-spacing:.02em}
.er-btn.warn{color:#fef08a;border-color:#68582a}
.er-puzzle-title{font-size:24px;font-weight:950;line-height:1.05;letter-spacing:.01em;color:#f2fbff}
.er-puzzle-desc{font-size:11px;color:#afc2d2}
.er-route-panel,.er-intel-banner,.er-final-ref,.er-objective-note{
  border-radius:14px;
  background:linear-gradient(180deg,rgba(10,22,34,.92),rgba(8,17,27,.86));
}
.er-route-panel-title,.er-objective-title{font-size:14px;font-weight:950;color:#eef8ff}
.er-route-panel-sub,.er-objective-helper{font-size:11px;line-height:1.55;color:#b9cad8}
.er-route-chip,.er-code-chip,.er-key{
  border-radius:12px;
  min-width:48px;
  min-height:44px;
}
.er-code-chip{font-size:18px}
.er-code-chip.locked{background:linear-gradient(180deg,rgba(8,17,27,.72),rgba(8,17,27,.6))}
.er-keypad{gap:9px}
.er-key{font-size:18px;font-weight:900}
.er-intel-banner{padding:12px;margin-bottom:10px}
.er-intel-banner-label{font-size:10px;font-weight:950;letter-spacing:.16em;color:#7de8ff;text-transform:uppercase;margin-bottom:10px}
.er-intel-small-note{font-size:11px;line-height:1.5;color:#b9c9d6;margin:8px 0 10px}
.er-intel-card{
  position:relative;
  border-radius:12px;
  padding:12px 12px 12px 44px;
  background:linear-gradient(180deg,rgba(10,23,35,.96),rgba(7,16,26,.93));
  border-color:#2b4c65;
}
.er-intel-card:before{
  content:'⬢';position:absolute;left:14px;top:13px;font-size:15px;line-height:1;color:var(--stage-accent);opacity:.92;
  text-shadow:0 0 14px color-mix(in srgb, var(--stage-accent) 45%, transparent);
}
.er-intel-card.locked:before{color:#58708a;opacity:.45;text-shadow:none}
.er-intel-card.locked{opacity:.42;filter:saturate(.75)}
.er-intel-title{font-size:9px;color:#7de8ff;letter-spacing:.16em}
.er-intel-text{font-size:11px;line-height:1.55;color:#d3dfeb}
.er-objective{padding:12px}
.er-objective-title{font-size:15px;margin-bottom:6px}
.er-objective-list{display:grid;gap:8px;margin-top:10px}
.er-objective-item{border-radius:12px;padding:10px 11px;background:linear-gradient(180deg,rgba(11,23,35,.95),rgba(9,18,29,.9))}
.er-objective-item.done{box-shadow:0 0 0 1px rgba(74,222,128,.06) inset}
.er-room-prompt{
  border-radius:14px;
  background:linear-gradient(180deg,rgba(5,15,24,.9),rgba(5,13,22,.86));
  border-color:#3a6687;
}
.er-door-fx{
  background:radial-gradient(circle at 50% 48%, rgba(9,29,44,.28), rgba(2,6,11,.96) 62%);
  backdrop-filter:blur(6px);
}
.er-door-inner{max-width:560px;background:linear-gradient(180deg,rgba(6,16,26,.84),rgba(5,12,20,.62));padding:22px 28px;border-radius:18px;border:1px solid rgba(96,165,250,.22);box-shadow:0 24px 60px rgba(0,0,0,.38)}
.er-door-ring{width:138px;height:138px}
.er-door-title{text-shadow:0 0 28px rgba(103,232,249,.12)}
.er-toast{border-radius:12px;padding:11px 16px;letter-spacing:.04em}
.er-right .er-panel:first-child .er-panel-head,.er-left .er-panel:first-child .er-panel-head{border-bottom-color:#26465f}
.er-projector{
  background:
    radial-gradient(circle at 50% -20%, rgba(26,74,118,.72), transparent 40%),
    linear-gradient(180deg,#060b12 0%,#04080e 100%);
}
.er-projector-inner{padding:22px 26px}
.er-projector-title{font-size:38px;letter-spacing:.02em;text-shadow:0 0 28px rgba(96,165,250,.12)}
.er-race-row{border-radius:20px;border-color:#29506b;box-shadow:0 20px 46px rgba(0,0,0,.28), inset 0 0 0 1px rgba(255,255,255,.015)}
.er-race-badge{background:linear-gradient(180deg,rgba(11,24,37,.96),rgba(8,18,29,.92))}
.er-stage-col{border-radius:16px}
.er-event{font-size:11px;line-height:1.55;color:#adbed0}
@media(max-width:1400px){
  .er-layout{grid-template-columns:232px minmax(0,1fr) 280px}
  .er-mission{min-width:min(380px,44vw)}
}
@media(max-width:840px){
  .er-mission{min-width:0;width:100%}
  .er-puzzle-title{font-size:20px}
  .er-qtext{font-size:18px}
}


/* Highest-end polish pass */
.er-room{
  --stage-accent:#67e8f9;
}
.er-room .er-scan{
  mix-blend-mode:screen;
  opacity:.95;
}
.er-room.stage-1 .er-scan{background:linear-gradient(90deg,transparent,rgba(103,232,249,.13),transparent)}
.er-room.stage-2 .er-scan{background:linear-gradient(90deg,transparent,rgba(96,165,250,.14),transparent)}
.er-room.stage-3 .er-scan{background:linear-gradient(90deg,transparent,rgba(245,158,11,.13),transparent)}
.er-room.stage-4 .er-scan{background:linear-gradient(90deg,transparent,rgba(251,113,133,.13),transparent)}
.er-ambient:before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(circle at 12% 18%, color-mix(in srgb,var(--stage-accent) 9%, transparent), transparent 16%),
    radial-gradient(circle at 86% 22%, color-mix(in srgb,var(--stage-accent) 7%, transparent), transparent 16%),
    linear-gradient(180deg, rgba(255,255,255,.02), transparent 28%);
  opacity:.8;
}
.er-ambient[data-stage="1"]:before{opacity:.65}
.er-ambient[data-stage="2"]:before{opacity:.72}
.er-ambient[data-stage="3"]:before{opacity:.75}
.er-spark{filter:blur(.1px)}

.er-stage-intro{
  position:absolute;inset:0;z-index:13;display:grid;place-items:center;
  background:radial-gradient(circle at 50% 50%, rgba(5,16,26,.16), rgba(2,6,11,.85) 68%);
  opacity:0;pointer-events:none;transform:scale(1.02);
}
.er-stage-intro.show{animation:erStageIntro 1600ms ease forwards}
.er-stage-intro-inner{
  min-width:min(560px,82vw);max-width:82vw;text-align:center;
  padding:30px 34px;border-radius:22px;border:1px solid rgba(255,255,255,.12);
  background:linear-gradient(180deg,rgba(5,17,27,.84),rgba(4,11,18,.74));
  box-shadow:0 26px 70px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.025) inset;
  backdrop-filter:blur(6px);
}
.er-stage-intro:before{
  content:'';position:absolute;left:50%;top:50%;width:480px;height:480px;transform:translate(-50%,-50%);
  border-radius:50%;border:1px solid color-mix(in srgb,var(--stage-accent) 42%, transparent);
  box-shadow:0 0 0 30px color-mix(in srgb,var(--stage-accent) 5%, transparent),0 0 90px color-mix(in srgb,var(--stage-accent) 12%, transparent);
  opacity:.7;
}
.er-stage-intro-kicker{font-size:11px;font-weight:950;letter-spacing:.22em;text-transform:uppercase;color:#bfefff}
.er-stage-intro-stage{margin-top:8px;font-size:13px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:var(--stage-accent)}
.er-stage-intro-title{margin-top:10px;font-size:42px;line-height:1;font-weight:1000;color:#f5fbff;text-shadow:0 0 24px color-mix(in srgb,var(--stage-accent) 16%, transparent)}
.er-stage-intro-sub{margin-top:10px;font-size:15px;line-height:1.55;color:#d4e3ef}
@keyframes erStageIntro{0%{opacity:0;transform:scale(1.04)}12%{opacity:1;transform:scale(1)}76%{opacity:1}100%{opacity:0;transform:scale(.985)}}

.er-reveal-pop{
  position:absolute;right:18px;top:92px;z-index:12;min-width:280px;max-width:min(360px,42vw);
  padding:14px 16px 14px 48px;border-radius:16px;border:1px solid #33516b;
  background:linear-gradient(180deg,rgba(7,19,31,.94),rgba(5,14,23,.93));
  box-shadow:0 22px 60px rgba(0,0,0,.46), inset 0 0 0 1px rgba(255,255,255,.02);
  backdrop-filter:blur(10px);opacity:0;transform:translateY(-10px) scale(.98);pointer-events:none;
}
.er-reveal-pop:before{
  content:'⬢';position:absolute;left:16px;top:14px;font-size:20px;line-height:1;color:var(--stage-accent);
  text-shadow:0 0 18px color-mix(in srgb,var(--stage-accent) 35%, transparent);
}
.er-reveal-pop.show{animation:erRevealPop 1700ms ease forwards}
.er-reveal-kicker{font-size:9px;font-weight:950;letter-spacing:.18em;text-transform:uppercase;color:#9eeaf4}
.er-reveal-title{margin-top:4px;font-size:17px;line-height:1.2;font-weight:950;color:#f7fbff}
.er-reveal-sub{margin-top:5px;font-size:11px;line-height:1.45;color:#b8cad8}
@keyframes erRevealPop{0%{opacity:0;transform:translateY(-12px) scale(.98)}10%,78%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-6px)}}

.er-intel-card.is-new,.er-clue.is-new,.er-objective-item.is-new{
  animation:erFreshIntel 1500ms cubic-bezier(.22,.9,.28,1);
  border-color:color-mix(in srgb,var(--stage-accent) 54%, #294057)!important;
}
@keyframes erFreshIntel{0%{transform:translateY(10px) scale(.98);box-shadow:0 0 0 0 color-mix(in srgb,var(--stage-accent) 0%, transparent)}35%{transform:none;box-shadow:0 0 0 1px color-mix(in srgb,var(--stage-accent) 28%, transparent),0 0 36px color-mix(in srgb,var(--stage-accent) 18%, transparent)}100%{transform:none}}
.er-power-dot.pop{animation:erPowerPop 900ms ease}
@keyframes erPowerPop{0%{transform:scale(.84)}35%{transform:scale(1.35);box-shadow:0 0 16px color-mix(in srgb,var(--stage-accent) 55%, transparent)}100%{transform:none}}
.er-hotspot.just-powered{animation:erHotReward 1.2s ease}
@keyframes erHotReward{0%{transform:translate(-50%,-50%) scale(.9)}25%{transform:translate(-50%,-50%) scale(1.16);box-shadow:0 0 0 14px color-mix(in srgb,var(--stage-accent) 12%, transparent),0 0 34px color-mix(in srgb,var(--stage-accent) 45%, transparent)}100%{transform:translate(-50%,-50%) scale(1)}}

.er-clue-grid{gap:10px}
.er-clue{
  position:relative;overflow:hidden;
  border-radius:12px;padding:12px 12px 12px 42px;min-height:86px;
  background:linear-gradient(180deg,rgba(10,22,34,.96),rgba(8,18,29,.92));
  border-color:#2b4d67;box-shadow:0 12px 28px rgba(0,0,0,.18), inset 0 0 0 1px rgba(255,255,255,.015);
}
.er-clue:before{content:'⬢';position:absolute;left:14px;top:12px;font-size:15px;color:var(--stage-accent);text-shadow:0 0 14px color-mix(in srgb,var(--stage-accent) 40%, transparent)}
.er-clue.locked:before{color:#5b6d7f;text-shadow:none}
.er-clue.locked{opacity:.4;filter:saturate(.75)}
.er-clue-label{font-size:9px;letter-spacing:.16em;color:#91e8ff}
.er-clue-text{font-size:11px;line-height:1.55;color:#d4dfeb}
.er-clue.reveal{animation:erReveal .65s cubic-bezier(.2,.9,.2,1)}

.er-route-panel,.er-final-ref,.er-intel-banner,.er-objective-note{
  position:relative;overflow:hidden;
}
.er-route-panel:after,.er-intel-banner:after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(135deg,transparent 0 46%, rgba(255,255,255,.035) 50%, transparent 54% 100%);
  opacity:.5;
}
.er-route-chip,.er-code-chip,.er-code-box,.er-key,.er-node{
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease;
}
.er-route-chip.ready,.er-code-chip:not(.locked),.er-key:hover,.er-node.on{
  box-shadow:0 0 0 1px rgba(255,255,255,.02) inset,0 0 18px color-mix(in srgb,var(--stage-accent) 12%, transparent);
}
.er-route-chip{font-size:18px;font-weight:950}
.er-route-chip.done{background:linear-gradient(180deg,color-mix(in srgb,var(--stage-accent) 18%, #0b1824),rgba(8,16,26,.94));color:#f4fbff}
.er-key{border-radius:12px}
.er-key.enter{box-shadow:0 0 24px color-mix(in srgb,var(--stage-accent) 18%, transparent)}
.er-code-strip{display:flex;gap:8px;flex-wrap:wrap}
.er-code-box,.er-code-chip{background:linear-gradient(180deg,rgba(9,20,31,.98),rgba(7,16,26,.92))}
.er-code-box{border-radius:12px}
.er-keypad{margin-top:14px}
.er-circuit-board{border-radius:14px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.015),0 10px 28px rgba(0,0,0,.16)}
.er-node{font-size:12px}
.er-node.on{background:linear-gradient(180deg,color-mix(in srgb,var(--stage-accent) 18%, #0c1721),rgba(12,23,33,.95));border-color:color-mix(in srgb,var(--stage-accent) 78%, white)}
.er-node.ok{background:linear-gradient(180deg,color-mix(in srgb,var(--stage-accent) 22%, #164e2d),rgba(15,35,25,.95))}

.er-door-fx.escape .er-door-inner{
  border-color:rgba(74,222,128,.34);
  box-shadow:0 28px 80px rgba(0,0,0,.44), 0 0 60px rgba(74,222,128,.14);
}
.er-door-fx.escape .er-door-ring{
  border-color:#86efac;
  box-shadow:0 0 0 24px rgba(34,197,94,.04),0 0 90px rgba(74,222,128,.42);
}
.er-door-fx.escape .er-door-title{color:#f0fff4;text-shadow:0 0 26px rgba(74,222,128,.18)}

.er-race-row,.er-stage-col,.er-projector-side .er-panel{
  position:relative;overflow:hidden;
}
.er-race-row:before,.er-stage-col:before,.er-projector-side .er-panel:before{
  content:'';position:absolute;left:0;right:0;top:0;height:2px;
  background:linear-gradient(90deg,transparent,rgba(103,232,249,.55),transparent);
  opacity:.6;
}

@media(max-width:1100px){
  .er-reveal-pop{right:14px;left:14px;max-width:none;min-width:0}
  .er-stage-intro-title{font-size:32px}
}
@media(max-width:840px){
  .er-stage-intro-inner{padding:22px 18px}
  .er-stage-intro-title{font-size:26px}
  .er-stage-intro-sub{font-size:13px}
  .er-reveal-pop{top:82px;padding-left:44px}
}

/* Hard stage gate: math stops at 4/4 until puzzle is completed */
.er-stage-gate-title{font-size:30px;font-weight:1000;line-height:1.05;color:#f5fbff;margin-top:4px;text-shadow:0 0 24px color-mix(in srgb,var(--stage-accent) 16%, transparent)}
.er-stage-gate-body{font-size:13px;line-height:1.6;color:#c7d6e3;margin-top:10px;max-width:620px}
.er-stage-gate-icon{width:112px;height:112px;margin:8px auto 14px;border-radius:50%;display:flex;align-items:baseline;justify-content:center;padding-top:29px;border:2px solid var(--stage-accent);background:radial-gradient(circle, color-mix(in srgb,var(--stage-accent) 18%, #07131f), #07131f 72%);box-shadow:0 0 0 16px color-mix(in srgb,var(--stage-accent) 5%, transparent),0 0 58px color-mix(in srgb,var(--stage-accent) 26%, transparent);animation:erGatePulse 1.8s ease-in-out infinite}
.er-stage-gate-icon span{font:1000 42px/1 ui-monospace,SFMono-Regular,Menlo,monospace;color:#fff}.er-stage-gate-icon small{font:900 15px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--stage-accent);margin-left:3px}
.er-stage-gate-action{padding:14px 15px;border-radius:13px;border:1px solid color-mix(in srgb,var(--stage-accent) 35%, #2b4056);background:linear-gradient(180deg,color-mix(in srgb,var(--stage-accent) 9%, #0c1a27),#0a1723);font-size:12px;line-height:1.55;font-weight:900;color:#edf8ff;box-shadow:inset 0 0 24px color-mix(in srgb,var(--stage-accent) 5%, transparent)}
@keyframes erGatePulse{50%{transform:scale(1.04);box-shadow:0 0 0 22px color-mix(in srgb,var(--stage-accent) 3%, transparent),0 0 72px color-mix(in srgb,var(--stage-accent) 34%, transparent)}}
.er-feedback.good{color:#a7f3d0}
