/* Mission Control edition: playful motion with bounded, accessible feedback. */
body{background:radial-gradient(ellipse at 5% 0,#123c3859,transparent 48%),radial-gradient(ellipse at 95% 35%,#23214740,transparent 55%),#0a1018}
.topbar{background:#0b141de8;border-color:#253b45}
.brand-trader{filter:drop-shadow(0 3px 9px #47ffd440)}
.topbar nav{box-shadow:inset 0 1px 0 #ffffff05}
.arena-intro{padding:28px 0;min-height:175px;align-items:center}
.arena-intro .eyebrow b{color:#49746b;padding:0 8px}
.arena-intro h1{font-size:clamp(28px,3.2vw,44px);letter-spacing:-1.9px;line-height:1.05;margin:10px 0}
.arena-intro h1 span{color:#78efc6;font-weight:700}
.arena-intro p{font-size:13px;color:#99b3bf}
.reputation{display:grid;grid-template-columns:42px 1fr;gap:9px 14px;align-items:center;border:1px solid #3c514d;border-radius:16px;padding:18px 22px;min-width:258px;background:linear-gradient(130deg,#1b302d,#15202b);box-shadow:inset 0 1px 0 #ffffff08}
.rep-symbol{font-size:34px;color:#a9edc9;align-self:start;line-height:1.3}
.reputation strong{font-size:30px;line-height:1.3;display:block;letter-spacing:-1px}.reputation strong small{font-size:11px;color:#98bbae;letter-spacing:1px}
.reputation .eyebrow{font-size:8px;letter-spacing:1.2px;color:#b3cdbf}.reputation #rep-streak{font-size:11px;color:#b0c3cc}
.rep-meter{grid-column:1/-1;height:4px;border-radius:5px;background:#2a4146;overflow:hidden}.rep-meter i{display:block;height:100%;width:0;background:linear-gradient(90deg,#5fd8b2,#c0f7cc);transition:width .5s ease}
.reputation>small{grid-column:1/-1;font-size:9px;color:#98adaf;letter-spacing:.2px}
.arena-layout{grid-template-columns:minmax(0,1fr) 310px;gap:20px}
.game-panel{border-color:#3b515c;border-radius:18px 18px 0 0;box-shadow:0 20px 50px #0004}
.game-top{background:linear-gradient(90deg,#192e36,#172330);height:46px}
.game-title strong{letter-spacing:1px}.game-title .live-dot{box-shadow:0 0 14px #50e5bd70}
.stage{height:clamp(380px,57vh,680px);isolation:isolate;background:#080f18}
.stage.overdrive{box-shadow:inset 0 0 0 2px #79efbc55}
.stage.scanning:after{content:'';position:absolute;inset:0;border:2px solid #79efbc60;pointer-events:none;z-index:1}
.round-banner{position:absolute;top:47%;left:50%;transform:translate(-50%,-40%);opacity:0;pointer-events:none;z-index:3;background:#0d2426ed;border:1px solid #5bc6a388;border-radius:14px;padding:18px 34px;text-align:center;box-shadow:0 12px 50px #0006;transition:opacity .35s,transform .35s}
.round-banner.show{opacity:1;transform:translate(-50%,-50%)}.round-banner span{display:block;font:9px ui-monospace,monospace;letter-spacing:3px;color:#a5dbc5;margin-bottom:7px}.round-banner strong{font-size:25px;white-space:nowrap;letter-spacing:2px}
.live-signal{display:flex;align-items:center;gap:13px;padding:12px 16px;border:1px solid #3b515c;border-top:0;border-radius:0 0 13px 13px;background:#13272d;min-height:52px}
.live-signal>span:first-child{font:8px ui-monospace,monospace;letter-spacing:1.3px;white-space:nowrap;color:#9adbc2;display:flex;align-items:center;gap:7px}
.live-signal p{font-size:11px;line-height:1.4;color:#c0d9df;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1}
#boost-status{font:700 9px ui-monospace,monospace;color:#a9ffd2;white-space:nowrap}#boost-status:empty{display:none}
.sidebar{display:flex;flex-direction:column;gap:16px;min-width:0}
.tactical-panel{padding:20px;border:1px solid #3c5953;background:radial-gradient(circle at 100% 0,#325d402c,transparent 70%),#15252c;border-radius:17px;box-shadow:inset 0 1px 0 #ffffff06}
.tactical-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.tactical-heading .eyebrow{font-size:8px;letter-spacing:1.4px;color:#9cc4b1}.tactical-heading h2{font-size:19px;letter-spacing:-.6px;margin:6px 0 0}
.energy{color:#9df9c6;letter-spacing:1px;font-size:15px;white-space:nowrap}
.tactical-panel>p{font-size:11px;line-height:1.5;margin-top:12px;color:#a9c1c8}
.tactical-actions{display:grid;gap:8px;margin-top:16px}.tactical-actions button{display:flex;gap:10px;align-items:center;text-align:left;padding:12px;border:1px solid #3a5c57;border-radius:10px;background:linear-gradient(110deg,#20443a,#1c3036);color:#dbf9e9;min-height:62px;transition:transform .16s,background .16s,border-color .16s}
.tactical-actions button:not(:disabled):hover{transform:translateY(-2px);border-color:#8ef1c9;background:#2b5345}.tactical-actions button:not(:disabled):active{transform:translateY(0) scale(.98)}
.tactical-actions button:disabled{opacity:.45}.tactical-actions strong{display:block;font-size:12px;font-weight:650}.tactical-actions small{display:block;margin-top:3px;color:#a2c7bb;font-size:10px}
.action-icon{width:29px;font-size:24px;color:#9bf0c4;text-align:center;flex:none}.action-cost{margin-left:auto;font:11px ui-monospace,monospace;color:#9dd5bb}
#action-status{font:10px ui-monospace,monospace;color:#b4d7bd;min-height:15px;margin-top:14px}
.scan-details{margin-top:13px;border-top:1px solid #325047;padding-top:12px}.scan-details summary{cursor:pointer;font-size:11px;color:#c3e6d8}.scan-details p{font-size:11px;line-height:1.8;margin-top:10px;color:#c7d7df}
.feed-panel{height:380px;min-height:280px;flex:1}.panel-heading h2{font-size:12px;letter-spacing:1.8px}.feed-tabs button{transition:background .2s,color .2s}.feed-tabs .active{box-shadow:inset 0 1px 0 #ffffff10}
.event{animation:signalIn .24s ease-out}.event.has-portrait{min-height:81px}.event.compact{animation:none}
.mission{margin:0;padding:20px}.mission h2{font-size:22px}.mission p{font-size:11px}
.player-card{background:radial-gradient(ellipse at 50% 20%,color-mix(in srgb,var(--bot) 10%,transparent),transparent 80%),#14222d;border-color:#324653;position:relative}
.player-card .sprite-avatar{transition:transform .25s ease}.player-card:not(.dead):hover .sprite-avatar{transform:translateY(-3px) rotate(-3deg)}
.player-card.selected:after{content:'FOLLOWING';position:absolute;bottom:0;left:0;right:0;background:#3c765f;color:#daffea;font:6px ui-monospace,monospace;letter-spacing:1.5px;padding:2px}.player-card.dead{filter:saturate(.5);transition:opacity .4s}
.controls{background:#12222c;box-shadow:inset 0 1px 0 #ffffff06}.control{transition:background .16s,transform .16s}.control:active:not(:disabled){transform:scale(.96)}
.bottom-strip{background:radial-gradient(ellipse at 0 0,#334a4b44,transparent 65%),#15222f;border:1px solid #455660;border-radius:15px}
.mini-label{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.mini-label b{color:#e7dfad;font:9px ui-monospace,monospace;background:#4a432e;border:1px solid #72623b;border-radius:5px;padding:4px 7px;letter-spacing:.5px}
.prediction-rule{display:block;color:#9dafbd;font-size:10px;margin-top:7px}.bottom-strip p{max-width:440px;line-height:1.7}.primary{transition:background .2s,transform .2s,box-shadow .2s}.primary:hover:not(:disabled){box-shadow:0 4px 18px #3af6ac20;transform:translateY(-1px)}
.meeting{inset:5% 6%;border:1px solid #76978b;background:linear-gradient(130deg,#172f30f9,#14222ffa);border-radius:18px;box-shadow:0 20px 70px #0009;animation:panelIn .25s ease-out;padding:24px}
.meeting-top .eyebrow{color:#9ae0c5}.meeting-top strong{color:#d2f5e3;font-variant-numeric:tabular-nums}.meeting h2{font-size:27px}.meeting-message{background:#203b40;border-color:#83d2b1;font-size:12px;min-height:64px}
.vote-roster{gap:6px}.voter{background:#1c333e;border-color:#3b5863;border-radius:9px;min-width:55px}.voter small{color:#b2d9c6}
.spectator-vote{margin-top:18px;padding-top:15px;border-top:1px solid #3b565a}.spectator-vote label{font-size:12px;font-weight:600;display:block;margin-bottom:9px}.spectator-vote>div{display:flex;gap:9px}.spectator-vote select{flex:1;min-width:0;max-width:none}.spectator-vote .primary{min-width:100px}.spectator-vote small{font-size:10px;display:block;margin-top:8px;color:#b1c8ce}
.result{background:radial-gradient(circle at 50% 30%,#20523a70,transparent 65%),#0c1928ed;animation:panelIn .35s ease-out;gap:12px}.result .result-symbol{font-size:55px;text-shadow:0 0 30px #5cecaa25}.result h2{font-size:34px}.result-xp{border:1px solid #65835a;background:#243f30;color:#ceefb3;border-radius:9px;padding:12px 17px;font-size:12px;max-width:90%}.result-xp:empty{display:none}
.alert{background:#3b2334ed;border-color:#c77b8c;font-size:10px;animation:panelIn .2s ease-out}
.toast{background:#203c32ee;border-color:#5d9c7c;backdrop-filter:blur(8px);box-shadow:0 10px 30px #0005;border-radius:12px;z-index:20}
@keyframes signalIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@keyframes panelIn{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}
@media(min-width:1700px){.arena-layout{grid-template-columns:minmax(0,1fr) 340px}.stage{height:clamp(480px,62vh,800px)}}
@media(max-width:1100px){.arena-layout{grid-template-columns:minmax(0,1fr) 280px;gap:15px}.tactical-panel{padding:17px}.tactical-heading h2{font-size:17px}.energy{font-size:13px}.stage{height:clamp(355px,54vh,620px)}.meeting{inset:4%;padding:18px}.meeting h2{font-size:23px}.meeting-message{font-size:11px;padding:11px;margin:10px 0}.voter .sprite-avatar{width:30px;height:40px}.voter{min-width:42px;font-size:8px}.spectator-vote{margin-top:12px;padding-top:10px}}
@media(max-width:950px){.arena-layout{grid-template-columns:1fr}.stage{height:auto;aspect-ratio:1200/760}.sidebar{display:grid;grid-template-columns:1fr 1fr;gap:16px}.sidebar .mission{grid-column:1/-1}.feed-panel{height:440px}.arena-intro h1{font-size:36px}.reputation{min-width:235px;padding:16px}.meeting{inset:5%;padding:20px}.meeting-message{font-size:12px}.voter .sprite-avatar{width:36px;height:48px}}
@media(max-width:680px){.arena-intro{min-height:0;align-items:stretch;gap:18px;padding:24px 0;flex-direction:column}.arena-intro h1{font-size:34px;max-width:none}.arena-intro h1 br{display:none}.arena-intro h1 span{display:block}.arena-intro p{max-width:none}.reputation{grid-template-columns:25px 1fr;min-width:0;gap:6px 10px;padding:12px 15px}.rep-symbol{font-size:25px}.reputation>div:nth-child(2){display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px}.reputation strong{font-size:21px;margin-left:auto}.reputation #rep-streak{font-size:10px}.reputation .eyebrow{font-size:7px;letter-spacing:.6px}.reputation>small{font-size:8px}.rep-meter{height:3px}.stage{aspect-ratio:1200/850;min-height:270px}.live-signal{padding:10px;gap:8px;flex-wrap:wrap;min-height:52px}.live-signal>span:first-child{font-size:7px;letter-spacing:.7px}.live-signal p{font-size:10px;min-width:170px}#boost-status{font-size:8px}.sidebar{display:flex;gap:14px}.tactical-panel{padding:19px}.tactical-heading h2{font-size:21px}.tactical-panel>p{font-size:12px}.tactical-actions{grid-template-columns:1fr}.tactical-actions button{min-height:62px;padding:11px 14px}.tactical-actions strong{font-size:13px}.tactical-actions small{font-size:11px}.feed-panel{flex:none;height:350px}.mission h2{font-size:24px}.round-banner{padding:13px 24px}.round-banner strong{font-size:20px}.round-banner span{font-size:8px}.meeting{inset:8px;padding:13px;border-radius:12px}.meeting h2{font-size:19px;margin:8px 0 5px}.meeting>p{font-size:10px}.meeting-message{font-size:10px;min-height:45px;padding:9px;margin:10px 0}.meeting-top .eyebrow{font-size:7px}.meeting-top strong{font-size:10px}.voter{min-width:32px;padding:4px;font-size:7px;flex:1}.voter .sprite-avatar{width:24px;height:32px}.voter small{font-size:6px}.vote-roster{gap:4px}.spectator-vote{margin-top:10px;padding-top:10px}.spectator-vote label{font-size:11px}.spectator-vote small{font-size:9px}.spectator-vote select{font-size:11px;min-height:38px;padding:8px}.spectator-vote .primary{font-size:10px;min-height:38px;padding:8px}.stage.meeting-open{height:430px;aspect-ratio:auto}.result{gap:7px;padding:15px}.result h2{font-size:24px}.result .result-symbol{font-size:30px}.result p{font-size:10px}.result-xp{font-size:10px;padding:8px 10px}.result small{font-size:9px}.result #result-ruggers{font-size:10px;padding:3px}.result .primary{min-height:34px;padding:8px 14px}.bottom-strip{padding:18px}.roster-heading{margin-top:18px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.player-card:hover .sprite-avatar,.tactical-actions button:hover,.primary:hover{transform:none!important}}
