:root{--ink:#1b2a3a;--ink-raised:#24384c;--ink-veil:#1b2a3adb;--paper:#eef2f4;--line:#8fa3b5;--signal:#ffc21a;--alert:#ff8a7a;--radius-plate:5px;--font-ui:"PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Source Han Sans SC", "Microsoft YaHei", system-ui, sans-serif;--step-0:13px;--step-1:15px;--step-2:20px;--step-3:30px;--step-4:46px;--gutter:clamp(16px, 3vw, 32px)}*,:before,:after{box-sizing:border-box}html,body{background:var(--ink);width:100%;height:100%;color:var(--paper);font-family:var(--font-ui);font-size:var(--step-1);-webkit-font-smoothing:antialiased;margin:0;line-height:1.5;overflow:hidden}#application-canvas{width:100%;height:100%;display:block}button,input{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--signal);outline-offset:3px}.kbd{min-width:1.9em;height:1.9em;color:var(--paper);border:1px solid #eef2f459;border-bottom-width:3px;border-radius:4px;place-items:center;padding:0 .45em;font-size:12px;font-weight:700;line-height:1;display:inline-grid}#app-ui{z-index:10;pointer-events:none;position:fixed;inset:0}.screen{display:none;position:absolute;inset:0}#app-ui[data-screen=paused] .screen-pause,#app-ui[data-screen=play] .screen-hud{display:block}#app-ui[data-screen=paused] .screen-hud{opacity:.35;display:block}.screen-title{--hot:#ff4655;pointer-events:auto;background:#101a26;grid-template-rows:auto 1fr auto;gap:clamp(8px,2vh,20px);height:100%;padding:clamp(14px,2.6vh,30px) clamp(18px,3.6vw,56px);overflow:hidden}#app-ui[data-screen=loading] .screen-title,#app-ui[data-screen=ready] .screen-title,#app-ui[data-screen=error] .screen-title{display:grid}.screen-title .plan{filter:grayscale()invert()brightness(.6)contrast(1.4);mix-blend-mode:screen;opacity:.34;background:url(/assets/campus/derived/minimap.png) 50%/contain no-repeat;animation:60s ease-in-out infinite alternate plan-drift;position:absolute;inset:-12% -18% -12% 26%;transform:rotate(-8deg)}@keyframes plan-drift{to{transform:rotate(-4deg)scale(1.06)translate(-2%,1%)}}.title-shade{pointer-events:none;background:linear-gradient(90deg,#101a26 0%,#101a26f0 30%,#101a264d 64%,#101a26b3 100%),linear-gradient(#0000 68%,#0a1018f2 100%),radial-gradient(at 78% 40%,#ff46551a,#0000 55%);position:absolute;inset:0}.scanlines{pointer-events:none;background:repeating-linear-gradient(0deg,#ffffff06 0 1px,#0000 1px 3px);position:absolute;inset:0}.title-top,.title-body,.title-bottom{position:relative}.title-top{border-bottom:1px solid #eef2f41a;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;padding-bottom:12px;display:grid}.brand{letter-spacing:.12em;align-items:baseline;gap:8px;display:flex}.brand-mark{background:var(--signal);color:var(--ink);letter-spacing:.04em;clip-path:polygon(0 0,100% 0,88% 100%,0 100%);padding:2px 8px;font-size:12px;font-weight:900}.brand b{font-size:var(--step-1);font-weight:900}.brand span:last-child{color:var(--line);font-size:12px}.title-tabs{justify-content:center;gap:4px;display:flex}.title-tabs button{color:var(--line);font-size:var(--step-1);letter-spacing:.08em;cursor:pointer;background:0 0;border:0;padding:8px 18px;font-weight:800;position:relative}.title-tabs button[aria-selected=true]{color:var(--paper)}.title-tabs button[aria-selected=true]:after{background:var(--signal);content:"";height:3px;position:absolute;bottom:-13px;left:18px;right:18px}.title-tabs button:hover{color:var(--paper)}.title-status{color:var(--line);font-variant-numeric:tabular-nums;letter-spacing:.06em;align-items:center;gap:8px;font-size:12px;display:flex}.title-status i{background:var(--line);border-radius:50%;width:8px;height:8px}.title-status[data-state=online] i{background:#5fd38a;box-shadow:0 0 0 4px #5fd38a2e}.title-body{grid-template-columns:minmax(0,560px) 1fr;align-items:center;gap:24px;min-height:0;display:grid}.title-left{min-height:0;display:grid}.tab-panel{gap:clamp(10px,1.8vh,18px);min-height:0;display:grid}.tab-panel[hidden]{display:none}.changelog-panel{align-content:start;max-height:min(62vh,620px);padding-right:8px;overflow:auto}.release-intro{color:var(--line);font-size:var(--step-0);margin:-4px 0 0}.release-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.release-entry{border-radius:var(--radius-plate);background:#101a26ad;border:1px solid #eef2f424;padding:12px 14px}.release-entry[data-current=true]{border-color:#ffc21a7a}.release-entry header{color:var(--line);justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}.release-entry header b{color:var(--paper);font-variant-numeric:tabular-nums}.release-entry header span{color:var(--signal)}.release-entry h3{color:var(--paper);font-size:var(--step-1);margin:7px 0}.release-entry ul{color:#eef2f4cc;font-size:var(--step-0);gap:4px;margin:0;padding-left:18px;line-height:1.5;display:grid}.mode-tag{color:var(--paper);font-size:var(--step-0);letter-spacing:.14em;align-items:center;gap:10px;margin:0;font-weight:700;display:flex}.mode-tag span{background:var(--hot);color:#fff;clip-path:polygon(0 0,100% 0,90% 100%,0 100%);padding:2px 8px}.title-left h1{font-family:"DIN Condensed", "Oswald", "Bahnschrift", "Arial Narrow", var(--font-ui);letter-spacing:-.01em;text-shadow:4px 4px #ff46558c,0 10px 40px #00000080;margin:0;font-size:clamp(46px,min(7.6vw,11.5vh),112px);font-style:italic;font-weight:900;font-stretch:75%;line-height:.88}.match-facts{flex-wrap:wrap;gap:6px;margin:0;display:flex}.match-facts div{border-left:3px solid var(--signal);background:#eef2f40f;gap:8px;padding:5px 12px;font-size:12px;display:flex}.match-facts dt{color:var(--line)}.match-facts dd{margin:0;font-weight:700}.operator{clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,0 100%);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:linear-gradient(135deg,#24384cd9,#14202ed9);border:1px solid #eef2f41a;gap:12px;padding:14px 16px 16px;display:grid}.operator-auth,.operator-signed{display:none}.operator[data-mode=form] .operator-auth{grid-template-columns:1fr 1fr;align-items:end;gap:8px;display:grid}.operator[data-mode=signed] .operator-signed{gap:8px;display:grid}.operator[data-mode=signed] .operator-hint,.operator[data-accounts=false] .operator-auth{display:none}.field{color:var(--line);gap:4px;font-size:12px;display:grid}.field input{width:100%;height:44px;color:var(--paper);font-size:var(--step-1);background:#0a101899;border:1px solid #eef2f42e;padding:0 12px}.field input:focus{border-color:var(--signal);outline:none}.operator-hint{color:var(--line);margin:0;font-size:12px}.operator-id{align-items:center;gap:10px;display:flex}.operator-avatar{background:linear-gradient(135deg, var(--signal), var(--hot));clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);width:34px;height:34px}.operator-id b{font-size:var(--step-2)}.link{color:var(--line);cursor:pointer;background:0 0;border:0;margin-left:auto;font-size:12px;text-decoration:underline}.operator-stats{grid-template-columns:repeat(4,1fr);gap:4px;margin:0;display:grid}.operator-stats div{background:#eef2f40d;padding:6px 8px}.operator-stats dt{color:var(--line);font-size:11px}.operator-stats dd{font-size:var(--step-2);font-variant-numeric:tabular-nums;margin:0;font-weight:800}.operator-error{color:var(--alert);font-size:var(--step-0);margin:0}.operator-error[hidden]{display:none}.panel-title{font-size:var(--step-2);letter-spacing:.06em;margin:0}.board-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.board-table th,.board-table td{text-align:left;border-bottom:1px solid #eef2f412;padding:7px 10px}.board-table th{color:var(--line);font-size:12px;font-weight:600}.board-table tr[data-king=true] td{color:var(--signal);font-weight:800}.tab-panel .controls{color:var(--paper);font-size:var(--step-0);grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px;margin:0;display:grid}.tab-panel .controls div{align-items:center;gap:8px;display:flex}.tab-panel .controls dt{gap:3px;display:flex}.tab-panel .controls dd{color:#eef2f4cc;margin:0}.title-right{align-self:start;justify-items:end;padding-top:4vh;display:grid}.king-card{border-right:4px solid var(--signal);clip-path:polygon(16px 0,100% 0,100% 100%,0 100%,0 16px);background:linear-gradient(270deg,#ffc21a29,#101a2699);justify-items:start;gap:2px;min-width:260px;padding:16px 22px 18px;display:grid}.king-card .king-crown{width:34px;color:var(--signal);filter:drop-shadow(0 0 10px #ffc21a99)}.king-crown svg{fill:currentColor;width:100%;display:block}.king-label{color:var(--signal);letter-spacing:.24em;font-size:12px;font-weight:800}.king-name{font-size:clamp(24px,3vw,38px);font-weight:900;line-height:1.1}.king-card[data-empty=true] .king-name{color:var(--line)}.king-kills{color:#eef2f4bf;font-size:12px}.title-bottom{grid-template-columns:1fr auto;grid-template-areas:"loading play""fine play";align-items:end;gap:6px 24px;display:grid}.loading-strip{grid-area:loading;grid-template-columns:1fr auto;align-items:center;gap:12px;max-width:560px;display:grid}.stages{grid-template-columns:repeat(4,1fr);gap:4px;margin:0;padding:0;list-style:none;display:grid}.stages li{color:#0000;background:#eef2f426;height:4px;font-size:0;overflow:hidden}.stages li[data-state=active]{background:linear-gradient(90deg, var(--signal), #ffc21a4d);animation:1.1s ease-in-out infinite pulse}.stages li[data-state=done]{background:var(--signal)}@keyframes pulse{50%{opacity:.4}}.stage-label{color:var(--line);letter-spacing:.06em;white-space:nowrap;font-size:12px}.title-bottom .load-error,.title-bottom #reload-button{grid-area:fine}.play-button{background:var(--signal);min-width:clamp(240px,22vw,340px);color:var(--ink);cursor:pointer;clip-path:polygon(14px 0,100% 0,calc(100% - 14px) 100%,0 100%);border:0;grid-area:play;justify-items:center;padding:16px 40px 14px;transition:transform .12s,filter .12s;display:grid;box-shadow:0 0 40px #ffc21a59}.play-button .play-label{letter-spacing:.16em;font-size:clamp(22px,2.2vw,30px);font-weight:900}.play-button small{letter-spacing:.3em;opacity:.7;font-size:11px;font-weight:800}.play-button:not(:disabled):hover{filter:brightness(1.08);transform:translate(3px)}.play-button:disabled{color:var(--line);box-shadow:none;cursor:progress;background:#eef2f41f}.fine-print{color:#8fa3b5b3;grid-area:fine;margin:0;font-size:11px}@media (height<=700px){.match-facts,.fine-print{display:none}.title-right{padding-top:0}}@media (width<=900px){.title-body{grid-template-columns:1fr}.title-right{display:none}.title-tabs button{padding:8px 10px}}@media (width<=640px){.title-top{grid-template-columns:1fr auto;gap:8px}.brand span:last-child{display:none}.title-tabs{grid-area:2/1/auto/-1;justify-content:flex-start;overflow-x:auto}.title-tabs button{letter-spacing:.02em;flex:none;padding:7px 9px;font-size:12px}.title-tabs button[aria-selected=true]:after{bottom:-10px;left:9px;right:9px}.title-bottom{grid-template-columns:1fr;grid-template-areas:"loading""play""fine"}.play-button{width:100%}.operator[data-mode=form] .operator-auth{grid-template-columns:1fr}}.primary{letter-spacing:.06em;min-width:180px;height:56px;box-shadow:0 8px 24px #ffc21a40}.title-bottom{gap:10px;display:grid}.title-bottom .controls{color:var(--line);flex-wrap:wrap;gap:8px 18px;margin:0;font-size:12px;display:flex}.title-bottom .controls div{align-items:center;gap:6px;display:flex}.title-bottom .controls dt{gap:3px;display:flex}.title-bottom .controls dd{margin:0}.fine-print{color:#8fa3b5bf;margin:0;font-size:11px}@media (height<=640px){.tagline,.fine-print{display:none}.start-card{padding:12px}}@media (width<=640px){.brand-name,.title-bottom .controls{display:none}.start-row{grid-template-columns:1fr}}.primary{border-radius:var(--radius-plate);background:var(--signal);min-width:200px;color:var(--ink);font-size:var(--step-2);cursor:pointer;border:0;padding:14px 26px;font-weight:800}.primary:disabled{background:var(--ink-raised);color:var(--line);cursor:progress}.secondary{border-radius:var(--radius-plate);cursor:pointer;background:0 0;border:1px solid #eef2f466;padding:11px 18px}.secondary:hover,.primary:not(:disabled):hover{filter:brightness(1.08)}.load-error{border-left:4px solid var(--alert);max-width:46ch;color:var(--paper);background:#ff8a7a1f;margin:0;padding:12px 14px}.location{top:calc(var(--gutter) + 62px);max-width:calc(100vw - 2 * var(--gutter) - 460px);color:#eef2f4f2;font-size:var(--step-0);white-space:nowrap;text-shadow:0 1px 2px #00000059;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1b2a3a6b;border-radius:999px;align-items:center;gap:8px;padding:4px 14px 5px;line-height:1.3;display:flex;position:absolute;left:50%;translate:-50%}.location .stripe{background:var(--kind-colour,var(--line));border-radius:50%;flex:none;width:7px;height:7px}.location .location-code{font-variant-numeric:tabular-nums;font-weight:800}.location .location-name{text-overflow:ellipsis;opacity:.85;overflow:hidden}.location .location-kind,.location[data-unmapped=true] .location-name,.location[data-corridor=true] .location-code{display:none}.location[data-corridor=true] .location-name{opacity:.7;display:inline}.crosshair{background:var(--paper);border-radius:50%;width:4px;height:4px;position:absolute;top:50%;left:50%;translate:-50% -50%;box-shadow:0 0 0 1.5px #1b2a3ab3,0 0 0 9px #eef2f400,0 0 0 10px #eef2f473}.map-dock{top:var(--gutter);right:var(--gutter);justify-items:center;gap:8px;display:grid;position:absolute}.map-dock canvas{border-radius:50%;width:150px;height:150px;display:block;box-shadow:0 6px 20px #00000059}.hints{right:var(--gutter);bottom:var(--gutter);color:var(--paper);font-size:var(--step-0);text-shadow:0 1px 3px #0009;gap:14px;display:flex;position:absolute}.hints span{align-items:center;gap:6px;display:flex}.toast{top:calc(var(--gutter) + 36px);max-width:min(560px, calc(100vw - 2 * var(--gutter) - 340px));color:#eef2f4eb;font-size:var(--step-0);text-align:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1b2a3a80;border-radius:999px;padding:5px 14px;animation:.25s ease-out toast-in;position:absolute;left:50%;translate:-50%}.toast[data-tone=notice]{color:var(--paper);box-shadow:inset 0 -2px #ffc21ab3}@keyframes toast-in{0%{opacity:0;translate:-50% -6px}}.toast[hidden]{display:none}.screen-pause{pointer-events:auto;background:linear-gradient(90deg,#1b2a3af5 0%,#1b2a3ae0 46%,#1b2a3a40 100%);overflow:auto}.pause-column{max-width:440px;padding:var(--gutter);padding-top:calc(var(--gutter) + 8px);gap:22px;display:grid}.pause-column h2{font-size:var(--step-3);letter-spacing:-.01em;margin:0}.avatar-editor{justify-items:start;gap:.75rem;display:grid}.avatar-editor img{object-fit:cover;border:1px solid var(--line,#52675b);background:#f5f5f5;border-radius:.5rem;width:9rem;height:4.5rem}.avatar-editor p,#avatar-status{color:var(--muted,#aab8ad);margin:0;font-size:.85rem}.pause-actions{justify-items:stretch;gap:10px;display:grid}.pause-actions .primary{width:100%}fieldset{border:0;gap:14px;margin:0;padding:0;display:grid}legend{margin-bottom:4px;font-weight:700}.slider{font-size:var(--step-0);grid-template-columns:1fr auto;gap:4px 12px;display:grid}.slider output{color:var(--line);font-variant-numeric:tabular-nums}.slider input{accent-color:var(--signal);grid-column:1/-1}.slider select{border:1px solid var(--line);width:100%;color:var(--paper);font:inherit;background:#0f1822b8;border-radius:6px;grid-column:1/-1;padding:8px 10px}.check-row{font-size:var(--step-0);align-items:center;gap:10px;display:flex}.check-row input{accent-color:var(--signal)}.full-map{background:#1b2a3ad1;place-items:center;display:none;position:absolute;inset:0}#app-ui[data-map=open] .full-map{display:grid}.full-map canvas{max-width:calc(100vw - 2 * var(--gutter));max-height:calc(100vh - 2 * var(--gutter) - 40px);border-radius:var(--radius-plate)}.full-map p{color:var(--line);font-size:var(--step-0);text-align:center;margin:10px 0 0}.full-map>div{max-width:calc(100vw - 2 * var(--gutter));max-height:calc(100vh - 2 * var(--gutter))}@media (width<=640px){:root{--step-3:24px;--step-4:36px}.map-dock canvas{width:112px;height:112px}.hints{display:none}}@media (prefers-reduced-motion:reduce){.stages li[data-state=active]:before{animation:none}}.charge{background:conic-gradient(var(--signal) calc(var(--charge,0) * 360deg), #eef2f42e 0);border-radius:50%;width:34px;height:34px;position:absolute;top:50%;left:50%;translate:-50% -50%;-webkit-mask:radial-gradient(circle,#0000 13px,#000 14px);mask:radial-gradient(circle,#0000 13px,#000 14px)}.name-tags{position:absolute;inset:0;overflow:hidden}.name-tag{border-left:3px solid var(--player-colour,var(--signal));background:var(--ink-veil);white-space:nowrap;will-change:transform;border-radius:3px;padding:2px 8px;font-size:12px;font-weight:700;position:absolute;top:0;left:0}.name-tag[hidden]{display:none}.armor-badge{color:#8ff5d2;text-shadow:0 0 8px #53e0bd;margin-right:4px}.leaderboard{top:var(--gutter);left:var(--gutter);border-radius:var(--radius-plate);width:200px;font-size:var(--step-0);background:#1b2a3a9e;padding:6px 0 4px;position:absolute}.leaderboard header{color:var(--line);justify-content:space-between;padding:0 10px 4px;font-size:12px;display:flex}.net-status[data-state=online]{color:#8fe3ad}.leaderboard ol{margin:0;padding:0;list-style:none;display:grid}.leaderboard li{border-left:3px solid var(--player-colour,var(--line));font-variant-numeric:tabular-nums;grid-template-columns:18px 1fr auto;align-items:center;gap:6px;padding:2px 10px;transition:background .3s;display:grid}.leaderboard li[data-me=true]{background:#ffc21a24}.leaderboard li[data-out=true] .who{opacity:.45;text-decoration:line-through}.leaderboard .rank{color:var(--line);font-size:11px}.leaderboard .who{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.execute-button{--hold:0;--ring:var(--alert);z-index:30;color:var(--paper);cursor:pointer;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;background:#191212e6;border:1px solid #ffffff1f;border-radius:999px;align-items:center;gap:12px;padding:8px 18px 8px 8px;transition:scale .12s ease-out,box-shadow .16s ease-out;display:flex;position:absolute;bottom:28%;left:50%;translate:-50%}.execute-button[hidden]{display:none}.execute-button:not([hidden]){animation:.22s cubic-bezier(.2,1.6,.4,1) both execute-appear}.execute-button[data-state=ready]{border-color:#ffc21a8c;box-shadow:0 0 22px #ffc21a40}@keyframes execute-appear{0%{opacity:0;scale:.6}}.execute-copy{text-align:left;gap:1px;line-height:1.2;display:grid}.execute-verb{letter-spacing:.04em;font-weight:700}.execute-copy b{color:#eef2f4b8;font-size:12px;font-weight:500}.hold-ring{place-items:center;width:44px;height:44px;display:grid;position:relative}.hold-ring svg{position:absolute;inset:0;overflow:visible;rotate:-90deg}.hold-ring circle{fill:none;stroke-width:3.5px}.hold-track{stroke:#ffffff2e}.hold-fill{stroke:var(--ring);stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:calc(100 - var(--hold) * 100);filter:drop-shadow(0 0 4px var(--ring))}.hold-ring .kbd{margin:0;position:relative}.execute-button[data-state=ready] .hold-track{animation:1.1s ease-in-out infinite hold-ready}.execute-button[data-state=holding]{box-shadow:0 0 0 1px var(--ring), 0 0 18px #ff484859;scale:1.06}.execute-button[data-state=confirmed]{--hold:1;box-shadow:0 0 0 2px var(--ring), 0 0 28px #ff484899;scale:1.1}.execute-button[data-state=denied]{--ring:#8a8f93;animation:.36s ease-in-out hold-denied}@keyframes hold-ready{50%{stroke:#ff48488c}}@keyframes hold-denied{20%,60%{translate:calc(-50% - 6px)}40%,80%{translate:calc(6px - 50%)}}@media (prefers-reduced-motion:reduce){.execute-button,.execute-button[data-state=ready] .hold-track,.execute-button[data-state=denied]{transition:none;animation:none}}#app-ui:not([data-screen=play]):not([data-screen=paused]) .execute-button{display:none}.execution-banner{text-align:center;pointer-events:none;background:#0f1822e0;border-radius:6px;padding:12px 20px;position:absolute;top:16%;left:50%;translate:-50%}.execution-banner strong,.execution-banner span{display:block}.execution-banner span{opacity:.75;font-size:12px}.execution-banner>i{background:#ffffff26;height:3px;margin-top:8px;display:block;overflow:hidden}.execution-banner>i>i{background:var(--alert);transform-origin:0;height:100%;display:block}#app-ui[data-executing=true] .crosshair,#app-ui[data-executing=true] .scope,#app-ui[data-executing=true] .charge{visibility:hidden}#app-ui[data-finisher=active] .screen-hud{display:none!important}#app-ui[data-finisher=active] .execution-banner{background:#0c131bd6;border:1px solid #ffc21a8c;min-width:min(520px,100vw - 32px);top:6%;box-shadow:0 12px 48px #0000004d}#app-ui[data-finisher=active] .execution-banner>i>i{background:var(--gold,#ffc21a)}.finisher-bars{pointer-events:none;z-index:25;position:absolute;inset:0}.finisher-bars>i{background:#000;height:11vh;transition:transform .38s cubic-bezier(.2,.8,.2,1);position:absolute;left:0;right:0}.finisher-bars>i:first-child{top:0;transform:translateY(-100%)}.finisher-bars>i:last-child{bottom:0;transform:translateY(100%)}#app-ui[data-finisher=active] .finisher-bars>i{transform:none}#app-ui[data-finisher=active] .execution-banner{z-index:26;animation:.42s cubic-bezier(.15,1.4,.35,1) both finisher-slam;top:auto;bottom:2.2vh}#app-ui[data-finisher=active] .execution-banner strong{letter-spacing:.08em;font-size:clamp(18px,2.4vw,28px)}#app-ui[data-finisher=active] .execution-banner.struck{animation:.38s ease-out finisher-struck}@keyframes finisher-slam{0%{opacity:0;letter-spacing:.4em;scale:1.6}}@keyframes finisher-struck{20%{scale:1.08;box-shadow:0 0 40px #ffc21ab3}}.finisher-flash{opacity:0;pointer-events:none;z-index:27;background:#fff;position:absolute;inset:0}.finisher-flash.show{animation:.26s ease-out finisher-flash}@keyframes finisher-flash{0%{opacity:.55}}@media (prefers-reduced-motion:reduce){.execute-button,.execution-banner,.finisher-flash.show,#app-ui[data-finisher=active] .execution-banner,.round-end{transition:none;animation:none}}.interaction{color:var(--paper);pointer-events:none;background:#0f1822d9;border-radius:6px;padding:8px 14px;position:absolute;bottom:22%;left:50%;translate:-50%}.ability-status{bottom:calc(var(--gutter) + 58px);color:#eaf3ee;pointer-events:none;background:#0f1822cc;border:1px solid #aad0c361;border-radius:999px;align-items:center;gap:8px;padding:5px 10px 5px 6px;font-size:12px;font-weight:700;display:flex;position:absolute;left:50%;translate:-50%}.ability-status[hidden]{display:none}.ability-ring{background:conic-gradient(#73e0a4 var(--ability-progress,360deg), #ffffff2e 0);border-radius:50%;place-items:center;width:18px;height:18px;display:grid}.ability-ring b{background:#18251f;border-radius:50%;width:11px;height:11px}.xray-pings{pointer-events:none;position:absolute;inset:0;overflow:hidden}.xray-ping{color:#d8fbff;white-space:nowrap;background:#081e28c7;border:1px solid #66e7ffb8;border-radius:999px;justify-items:center;gap:1px;padding:3px 7px;font-size:11px;display:grid;position:absolute;translate:-50% -50%;box-shadow:0 0 12px #46dcff59}.xray-ping small{color:#90d9e5;font-size:9px}.hitmarker{opacity:0;width:26px;height:26px;color:var(--paper);background:linear-gradient(45deg,#0000 46%,currentColor 46% 54%,#0000 54%) 50%/100% 100%,linear-gradient(-45deg,#0000 46%,currentColor 46% 54%,#0000 54%) 50%/100% 100%;position:absolute;top:50%;left:50%;translate:-50% -50%;-webkit-mask:radial-gradient(circle,#0000 6px,#000 7px);mask:radial-gradient(circle,#0000 6px,#000 7px)}.hitmarker[data-kind=kill]{width:34px;height:34px;color:var(--alert)}.hitmarker[data-kind=predicted]{color:#eef2f4b8;opacity:.72;background:currentColor;border-radius:50%;width:11px;height:11px;animation:.16s ease-out predicted-hit;-webkit-mask:none;mask:none}@keyframes predicted-hit{0%{scale:.65}to{scale:1}}.hitmarker.show{animation:hitmarker calc(.35s * var(--combat-hud-duration-scale,1)) ease-out}@keyframes hitmarker{0%{opacity:1;scale:1.35}to{opacity:0;scale:1}}.damage{--edge-alpha:.32;--wash-alpha:.025;--damage-peak:.48;opacity:0;background:radial-gradient(ellipse at center, transparent 42%, rgb(220 30 30/var(--edge-alpha)) 100%), linear-gradient(rgb(255 60 60/var(--wash-alpha)), rgb(255 60 60/var(--wash-alpha)));pointer-events:none;position:absolute;inset:0}.damage.show{animation:.28s ease-out damage}.arena-transition{z-index:40;opacity:0;pointer-events:none;background:#070c12f0;place-items:center;transition:opacity .16s;display:grid;position:absolute;inset:0}.arena-transition[data-phase=cover]{opacity:1}.arena-transition span{color:var(--signal);letter-spacing:.12em;opacity:0;background:#1b2a3acc;border:1px solid #ffc21a73;padding:9px 18px;font-size:clamp(17px,2.2vw,25px);font-weight:800;transition:opacity .12s,translate .16s;translate:0 5px}.arena-transition[data-phase=cover] span{opacity:1;transition-delay:80ms;translate:0}#app-ui[data-reduced-flashes=true] .arena-transition{background:#070c12d1}@media (prefers-reduced-motion:reduce){.arena-transition,.arena-transition span{transition-duration:80ms;transition-delay:0s}}#app-ui[data-reduced-flashes=true] .damage{--edge-alpha:.21;--wash-alpha:.012;--damage-peak:.26}#app-ui[data-reduced-flashes=true] .damage-dir{--direction-alpha:.3;--damage-peak:.34}@keyframes damage{0%{opacity:0}12%{opacity:var(--damage-peak,.48)}to{opacity:0}}@media (prefers-reduced-motion:reduce){.damage{--edge-alpha:.21;--wash-alpha:.012;--damage-peak:.26}.damage-dir{--direction-alpha:.3;--damage-peak:.34}}.broadcast{border-radius:var(--radius-plate);font-size:var(--step-2);white-space:nowrap;background:#1b2a3ab8;margin:0;padding:8px 22px;position:absolute;top:21%;left:50%;translate:-50%}.broadcast b{font-weight:800}.broadcast[data-tone=mine] b:first-child,.broadcast[data-tone=me] b:last-child{color:var(--signal)}.broadcast[data-tone=me]{box-shadow:inset 0 -3px 0 var(--alert)}.broadcast.show{animation:broadcast calc(2.6s * var(--combat-hud-duration-scale,1)) ease-out forwards}@keyframes broadcast{0%{opacity:0;scale:1.15}8%{opacity:1;scale:1}80%{opacity:1}to{opacity:0}}.broadcast[hidden]{display:none}.health{bottom:var(--gutter);gap:6px;display:flex;position:absolute;left:50%;translate:-50%}.health span{background:#eef2f438;border-radius:4px;width:34px;height:8px}.health span[data-full=true]{background:#5fd38a}.health[data-low=true] span[data-full=true]{background:var(--alert)}.feed{top:calc(var(--gutter) + 196px);right:var(--gutter);font-size:var(--step-0);justify-items:end;gap:4px;margin:0;padding:0;list-style:none;display:grid;position:absolute}.feed li{background:var(--ink-veil);border-radius:3px;padding:3px 10px}.feed li[data-tone=mine]{border-right:3px solid var(--signal)}.feed li[data-tone=me]{border-right:3px solid var(--alert)}.scoreboard{border-radius:var(--radius-plate);background:var(--ink-veil);min-width:min(420px,90vw);max-height:70vh;padding:16px 20px;position:absolute;top:50%;left:50%;overflow:auto;translate:-50% -50%;box-shadow:0 10px 30px #00000073}.scoreboard[hidden],.eliminated[hidden],.charge[hidden]{display:none}.scoreboard table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.scoreboard th,.scoreboard td{text-align:left;padding:6px 8px}.scoreboard th{color:var(--line);font-size:var(--step-0);font-weight:600}.scoreboard td+td,.scoreboard th+th{text-align:right}.scoreboard tr[data-me=true] td{color:var(--signal);font-weight:700}.eliminated{text-align:center;background:#78141447;place-content:center;gap:8px;display:grid;position:absolute;inset:0}.eliminated strong{font-size:var(--step-3)}.title{color:#3a2400;letter-spacing:.04em;vertical-align:1px;background:linear-gradient(#ffd65a,#f0a400);border-radius:3px;margin-right:6px;padding:0 5px;font-size:11px;font-weight:800;display:inline-block}.title[hidden]{display:none}.leaderboard li[data-leader=true]{background:linear-gradient(90deg,#ffc21a38,#0000)}.damage-dir{--direction-alpha:.48;--damage-peak:.5;opacity:0;background:conic-gradient(from calc(var(--angle,0deg) - 22deg), rgb(255 70 60/var(--direction-alpha)) 0 44deg, transparent 44deg);pointer-events:none;border-radius:50%;width:150px;height:150px;position:absolute;top:50%;left:50%;translate:-50% -50%;-webkit-mask:radial-gradient(circle,#0000 66px,#000 67px 74px,#0000 75px);mask:radial-gradient(circle,#0000 66px,#000 67px 74px,#0000 75px)}.damage-dir.show{animation:.28s ease-out damage}.broadcast .streak{background:var(--alert);color:var(--ink);font-size:var(--step-0);vertical-align:3px;border-radius:3px;margin-left:10px;padding:1px 8px;font-weight:800}.unstuck{bottom:calc(var(--gutter) + 26px);color:var(--paper);cursor:pointer;pointer-events:auto;background:#1b2a3ad1;border:1px solid #ffc21a99;border-radius:999px;align-items:center;gap:8px;padding:8px 16px;font-weight:700;animation:.25s ease-out toast-in;display:flex;position:absolute;left:50%;translate:-50%}.unstuck[hidden]{display:none}.update-dialog{z-index:5;pointer-events:auto;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f18228c;place-items:center;display:grid;position:absolute;inset:0}#app-ui[data-screen=play] .update-dialog,.update-dialog[hidden]{display:none}.update-card{border-top:4px solid var(--signal);background:var(--ink-raised);border-radius:10px;gap:12px;width:min(400px,100vw - 32px);padding:24px;display:grid;box-shadow:0 24px 60px #00000080}.update-badge{background:var(--signal);color:var(--ink);border-radius:3px;justify-self:start;padding:2px 8px;font-size:12px;font-weight:800}.update-card h2{font-size:var(--step-2);margin:0}.update-card p{color:#eef2f4cc;margin:0}.update-actions{gap:10px;display:flex}.update-actions .primary{min-width:0;font-size:var(--step-1);flex:1}.king-line{color:var(--signal);background:linear-gradient(90deg,#ffc21a2e,#0000);border-bottom:1px solid #ffc21a40;align-items:center;gap:6px;margin:-2px 0 6px;padding:4px 10px;font-size:12px;display:flex}.king-line[hidden]{display:none}.king-line .king-crown{width:14px}.king-line b{color:var(--paper);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.king-line em{font-variant-numeric:tabular-nums;margin-left:auto;font-style:normal}.king-line.new{animation:1.6s ease-out king-new}@keyframes king-new{0%,30%{box-shadow:0 0 0 2px var(--signal), 0 0 24px #ffc21ab3}}.chat{bottom:calc(var(--gutter) + 30px);left:var(--gutter);gap:6px;width:min(380px,40vw);display:grid;position:absolute}.chat-log{max-height:30vh;font-size:var(--step-0);align-content:end;gap:2px;margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.chat-log li{text-shadow:0 1px 2px #0009;overflow-wrap:anywhere;background:#0f18228c;padding:2px 8px;transition:opacity .6s}.chat-log li b{color:var(--player-colour,var(--line));margin-right:6px}.chat-log li[data-dead=true]{opacity:.8;font-style:italic}.chat-log li[data-dead=true] b:before{content:"[观战] ";color:var(--muted,#9aa4a6)}.chat-log li[data-system=true]{color:var(--signal)}.chat[data-open=false] .chat-log li[data-old=true]{opacity:0}.chat[data-open=true] .chat-log{pointer-events:auto;overflow-y:auto}.chat-form{border:1px solid var(--signal);background:#0f1822d9;align-items:center;gap:8px;padding:4px 4px 4px 10px;font-size:12px;display:flex}.chat-form[hidden],.chat[data-open=true] .chat-hint{display:none}.chat-form span{color:var(--signal);font-weight:800}.chat-form input{min-width:0;height:30px;color:var(--paper);font-size:var(--step-0);background:0 0;border:0;outline:none;flex:1}.chat-hint{color:#eef2f48c;margin:0;font-size:11px}.chat-hint .kbd{height:1.6em;font-size:10px}.popup{opacity:0;color:var(--paper);font-size:var(--step-1);letter-spacing:.06em;text-shadow:0 2px 6px #000000b3;white-space:nowrap;pointer-events:none;font-weight:900;position:absolute;top:calc(50% + 26px);left:calc(50% + 26px)}.popup[data-kind=head]{color:var(--signal);font-size:var(--step-2)}.popup[data-kind=kill]{color:#ff6b6b;font-size:var(--step-2)}.popup[data-kind=me]{color:#ff6b6b;font-size:var(--step-3);top:32%;left:50%;translate:-50%}.popup.show{animation:popup calc(.9s * var(--combat-hud-duration-scale,1)) ease-out}@keyframes popup{0%{opacity:0;transform:scale(1.5)}12%{opacity:1;transform:scale(1)}70%{opacity:1}to{opacity:0;transform:translateY(-14px)}}.hitmarker[data-kind=head]{width:32px;height:32px;color:var(--signal)}.scope{--aim:0;opacity:clamp(0, calc(var(--aim) * 1.6), 1);pointer-events:none;position:absolute;inset:0}.scope-vignette{background:radial-gradient(circle at 50% 50%, transparent calc(66vmin - var(--aim) * 26vmin), #04080c8c calc(70vmin - var(--aim) * 24vmin), #04080ceb calc(86vmin - var(--aim) * 26vmin));position:absolute;inset:0}.scope-reticle{width:min(46vmin,360px);height:min(46vmin,360px);translate:-50% -50%;scale:calc(1.5 - var(--aim) * .5);position:absolute;top:50%;left:50%;overflow:visible}.scope-reticle *{fill:none;stroke:#eef2f4d9;stroke-width:1.4px;vector-effect:non-scaling-stroke}.scope-ring{stroke:#eef2f440}.scope-progress{stroke:var(--signal);stroke-width:3px;stroke-dasharray:calc(var(--aim) * 100) 100;rotate:-90deg}.scope-cross{stroke-width:1.2px}.scope-dot{fill:#ff4655;stroke:none}.scope[data-ready=true] .scope-progress{stroke:#ff4655}.scope[data-ready=true] .scope-cross,.scope[data-ready=true] .scope-ticks{stroke:#ff8a94}.scope[data-ready=true] .scope-reticle{animation:.25s ease-out scope-lock}@keyframes scope-lock{0%{scale:1.12}}.scope-label{color:var(--paper);font-size:var(--step-0);letter-spacing:.12em;text-shadow:0 1px 3px #000c;justify-items:center;margin:0;font-weight:800;display:grid;position:absolute;top:calc(50% + min(23vmin,180px) + 14px);left:50%;translate:-50%}.scope-label small{color:#eef2f499;font-size:11px;font-weight:500}.scope[data-ready=true] .scope-state{color:#ff6b76}#app-ui[data-aiming=true] .crosshair,#app-ui[data-aiming=true] .charge{display:none}.hitmarker[data-kind=snipe]{width:48px;height:48px;color:var(--signal);filter:drop-shadow(0 0 8px #ffc21acc)}.hitmarker[data-kind=snipe].show{animation:.7s ease-out hitmarker}.popup[data-kind=snipe]{color:var(--signal);font-size:var(--step-3);text-shadow:0 0 14px #ffc21a99,0 2px 6px #000000b3}.broadcast[data-snipe=true]{background:linear-gradient(90deg,#ff46558c,#1b2a3acc 40% 60%,#ff46558c);border:1px solid #ffc21a99}.round-bar{top:var(--gutter);clip-path:polygon(0 0,100% 0,calc(100% - 12px) 100%,12px 100%);background:linear-gradient(#0f1822d1,#0f18228c);border-bottom:2px solid #ffc21a80;justify-items:center;gap:2px;min-width:200px;padding:4px 18px 6px;display:grid;position:absolute;left:50%;translate:-50%}.round-clock{font-variant-numeric:tabular-nums;letter-spacing:.06em;font-size:26px;font-weight:900;line-height:1.1}.round-clock[data-urgent=true]{color:#ff6b76;animation:1s ease-in-out infinite pulse}.round-gold{color:#eef2f4d9;align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}.gold-dot{clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);background:#ffc21a;width:10px;height:10px;box-shadow:0 0 8px #ffc21ae6}.round-bar[data-tone=mine]{background:linear-gradient(#785200e6,#3c2800b3);border-color:#ffc21a}.round-bar[data-tone=mine] .round-gold{color:#ffd75e}.round-bar[data-tone=other] .round-gold{color:#ffb3b9}#app-ui[data-gold=mine] .screen-hud:after{content:"";pointer-events:none;animation:2.4s ease-in-out infinite pulse;position:absolute;inset:0;box-shadow:inset 0 0 90px #ffc21a38}.gold-marker{pointer-events:none;will-change:transform;justify-items:center;gap:2px;display:grid;position:absolute;top:0;left:0;translate:-50% -50%}.gold-marker-icon{filter:drop-shadow(0 0 10px #ffc21ae6);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);background:radial-gradient(circle,#fff6c8 0 18%,#ffc21a 40%,#b97a00 100%);width:26px;height:26px;animation:2.4s linear infinite gold-spin}@keyframes gold-spin{50%{scale:1.18}}.gold-marker-label{color:#ffd75e;white-space:nowrap;background:#281c00bf;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:800}.gold-marker-arrow{filter:drop-shadow(0 0 6px #ffc21ae6);width:0;height:0;transform:translate(-50%, -50%) rotate(var(--angle,0deg)) translateX(30px);border-top:8px solid #0000;border-bottom:8px solid #0000;border-left:12px solid #ffc21a;display:none;position:absolute;top:50%;left:50%}.gold-marker[data-edge=true] .gold-marker-arrow{display:block}.detention{background:linear-gradient(#46080ee6,#1e060ad9);border:2px solid #ff4655;justify-items:center;gap:6px;min-width:320px;padding:12px 24px 14px;animation:.35s cubic-bezier(.2,1.6,.4,1) detention-in;display:grid;position:absolute;top:30%;left:50%;translate:-50%}.detention strong{color:#fff;font-size:var(--step-2);letter-spacing:.04em}.detention span{color:#ffb3b9;font-size:var(--step-0);font-variant-numeric:tabular-nums}.detention-bar{background:#ffffff26;width:100%;height:4px}.detention-bar i{background:#ff4655;height:100%;display:block}@keyframes detention-in{0%{opacity:0;scale:1.4}}.round-end{--round-accent:#cdd5df;background:radial-gradient(ellipse at center, color-mix(in srgb, var(--round-accent) 18%, transparent), #0f1822e0);text-align:center;align-content:center;justify-items:center;gap:8px;animation:.5s ease-out detention-in;display:grid;position:absolute;inset:0}.round-end[data-outcome=golden-disc]{--round-accent:#ffc21a}.round-end[data-outcome=last-survivor]{--round-accent:#8be2a8}.round-end[data-mine=false][data-outcome=golden-disc],.round-end[data-mine=false][data-outcome=last-survivor]{--round-accent:#ff8173}.round-end[hidden]{display:none}.round-end small{color:color-mix(in srgb, var(--round-accent) 80%, white);font-size:var(--step-0);letter-spacing:.3em;font-weight:800}.round-end strong{color:var(--round-accent);font-size:clamp(32px,5vw,64px);font-style:italic;font-weight:900}.round-end[data-mine=true] strong{text-shadow:0 0 30px color-mix(in srgb, var(--round-accent) 70%, transparent)}.round-end span{color:#eef2f4cc}.latency{bottom:var(--gutter);left:var(--gutter);font-variant-numeric:tabular-nums;background:#0f182299;border-radius:3px;padding:1px 8px;font-size:11px;font-weight:700;position:absolute}.latency:before{content:"";vertical-align:1px;background:currentColor;border-radius:50%;width:6px;height:6px;margin-right:5px;display:inline-block}.latency[data-quality=good]{color:#5fd38a}.latency[data-quality=fair]{color:#ffc21a}.latency[data-quality=poor]{color:#ff6b76}.latency[data-quality=none]{color:#eef2f480}.crosshair.kick{animation:.25s ease-out crosshair-kick}.crosshair[data-kick=head].kick{background:#ffc21a}.crosshair[data-kick=kill].kick{background:#ff4655}@keyframes crosshair-kick{0%{scale:2.4}}.popup[data-kind=gold]{color:#ffc21a;font-size:var(--step-3);text-shadow:0 0 18px #ffc21acc,0 2px 6px #000000b3;top:30%;left:50%;translate:-50%}.teacher-tag{background:#46080ebf;border-left-color:#ff4655}.teacher-tag b{color:#fff;margin-right:4px}.teacher-bubble{color:#b0101c;font-size:var(--step-1);white-space:nowrap;will-change:transform;background:#fff;border:2px solid #ff4655;border-radius:12px;padding:6px 12px;font-weight:900;position:absolute;top:0;left:0}.teacher-bubble:after{content:"";background:#fff;border-bottom:2px solid #ff4655;border-right:2px solid #ff4655;width:14px;height:14px;position:absolute;bottom:-9px;left:50%;transform:translate(-50%)rotate(45deg)}.teacher-bubble[hidden],.detention[hidden],.gold-marker[hidden]{display:none}.ammo{bottom:calc(var(--gutter) + 22px);white-space:nowrap;background:#0f182299;border-radius:999px;align-items:center;gap:8px;padding:3px 12px;font-size:12px;font-weight:700;display:flex;position:absolute;left:50%;translate:-50%}.ammo-icons{gap:4px;display:flex}.ammo-icons i{border:1.5px solid #eef2f4b3;border-radius:50%;width:14px;height:6px}.ammo-icons i[data-full=true]{background:#8fd0ff;border-color:#cfeaff;box-shadow:0 0 6px #8fd0ffcc}.ammo[data-empty=true]{color:#ffb3b9;background:#5a0e14bf;animation:1.2s ease-in-out infinite pulse}#app-ui[data-gold=mine] .ammo #ammo-text:after{color:#ffd75e;content:"· 金飞盘无限";margin-left:6px}.watch-warning{top:calc(var(--gutter) + 104px);color:#ffd0d4;font-size:var(--step-0);background:#46080ed1;border:1.5px solid #ff4655;border-radius:999px;align-items:center;gap:8px;margin:0;padding:6px 16px;font-weight:800;animation:1.1s ease-in-out infinite pulse;display:flex;position:absolute;left:50%;translate:-50%}.watch-warning b{color:#fff}.watch-warning[hidden],.gold-kill[hidden]{display:none}.gold-kill{background:linear-gradient(90deg,#0000,#785200eb 18% 82%,#0000),radial-gradient(#ffd25059,#0000 70%);justify-items:center;gap:4px;padding:10px 36px 14px;display:grid;position:absolute;top:18%;left:50%;translate:-50%}.gold-kill small{color:#ffe9a8;letter-spacing:.5em;font-size:12px;font-weight:900}.gold-kill strong{font-size:var(--step-3);text-shadow:0 0 16px #ffc21acc;align-items:center;gap:14px;font-style:italic;font-weight:900;display:flex}.gold-kill strong b:first-child{color:#ffd75e}.gold-kill i{clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);filter:drop-shadow(0 0 10px #ffc21a);background:radial-gradient(circle,#fff6c8 0 18%,#ffc21a 45%,#b97a00 100%);width:34px;height:34px}.gold-kill.show{animation:gold-kill calc(3.2s * var(--combat-hud-duration-scale,1)) ease-out forwards}@keyframes gold-kill{0%{opacity:0;filter:brightness(3);scale:2.2}8%{opacity:1;filter:brightness(1.6);scale:1}16%{filter:brightness()}85%{opacity:1}to{opacity:0;translate:-50% -12px}}.spectate{background:#0f1822bf;border:1px solid #eef2f440;justify-items:center;gap:4px;padding:10px 22px;display:grid;position:absolute;bottom:22%;left:50%;translate:-50%}.spectate[hidden]{display:none}.spectate strong{color:#ff6b76;letter-spacing:.3em}.spectate small{color:#eef2f499;font-size:11px}.guard-tag{background:#0a1428cc;border-left-color:#5aa0ff}.guard-tag b{color:#fff;margin-right:4px}.hitmarker[data-kind=hit].show{animation:hitmarker-body calc(.12s * var(--combat-hud-duration-scale,1)) ease-out}.hitmarker[data-kind=head]{color:#ffc21a;filter:drop-shadow(0 0 4px #ffc21acc);background:linear-gradient(45deg,#0000 42%,currentColor 42% 58%,#0000 58%) 50%/100% 100%,linear-gradient(-45deg,#0000 42%,currentColor 42% 58%,#0000 58%) 50%/100% 100%}.hitmarker[data-kind=head].show{animation:hitmarker-head calc(.22s * var(--combat-hud-duration-scale,1)) ease-out}.hitmarker[data-kind=kill]{color:#ff3b3b;filter:drop-shadow(0 0 6px #ff3b3bd9);background:linear-gradient(45deg,#0000 40%,currentColor 40% 60%,#0000 60%) 50%/100% 100%,linear-gradient(-45deg,#0000 40%,currentColor 40% 60%,#0000 60%) 50%/100% 100%}.hitmarker[data-kind=kill].show{animation:hitmarker-kill calc(.35s * var(--combat-hud-duration-scale,1)) cubic-bezier(.2, .9, .3, 1)}@keyframes hitmarker-body{0%{opacity:.95;scale:1.15}to{opacity:0;scale:1}}@keyframes hitmarker-head{0%{opacity:1;scale:1.6}35%{opacity:1;scale:1}to{opacity:0;scale:1.05}}@keyframes hitmarker-kill{0%{opacity:1;rotate:0deg;scale:.8}30%{opacity:1;rotate:45deg;scale:1.5}to{opacity:0;rotate:45deg;scale:1.2}}.hit-ring{opacity:0;pointer-events:none;border:2px solid #ffc21a;border-radius:50%;width:30px;height:30px;position:absolute;top:50%;left:50%;translate:-50% -50%}.hit-ring[data-kind=kill]{border-color:#ff3b3b}.hit-ring[data-kind=snipe]{border-color:#ffd970}.hit-ring.show{animation:hit-ring calc(.3s * var(--combat-hud-duration-scale,1)) ease-out}@keyframes hit-ring{0%{opacity:.9;scale:.6}to{opacity:0;scale:2.4}}.crosshair{transition:background 80ms linear,scale 80ms ease-out}.crosshair[data-target=true]{background:#ff3b3b;box-shadow:0 0 0 1.5px #1b2a3ab3,0 0 0 7px #ff3b3b00,0 0 0 8px #ff3b3bbf}.charge[data-stage=mid]{background:conic-gradient(#ffd25a calc(var(--charge,0) * 360deg), #eef2f42e 0)}.charge[data-stage=full]{background:conic-gradient(#fff 360deg, transparent 0);filter:drop-shadow(0 0 6px #ffffffe6);animation:.22s ease-out charge-full}@keyframes charge-full{0%{scale:1.35}to{scale:1}}.killfeed{top:calc(var(--gutter) + 196px);right:var(--gutter);font-size:var(--step-0);justify-items:end;gap:4px;margin:0;padding:0;list-style:none;display:grid;position:absolute}.killfeed~.feed{top:calc(var(--gutter) + 196px + 5 * 30px)}.killfeed li{color:var(--paper);background:#0a1018b8;border-radius:3px;align-items:center;gap:8px;padding:4px 10px;transition:opacity .6s ease-out;animation:.18s ease-out killfeed-in;display:flex}.killfeed li.fade{opacity:0}.killfeed li[data-tone=mine]{box-shadow:inset 0 0 0 1.5px #ffc21a}.killfeed li[data-tone=me]{box-shadow:inset 0 0 0 1.5px #ff3b3b}.killfeed .killer{font-weight:700}.killfeed .victim{opacity:.85}.kill-icons{align-items:center;gap:4px;display:inline-flex}.kill-icons i{width:16px;height:16px;display:inline-grid}.kill-icons svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;width:16px;height:16px}.kill-icons i[data-icon=head],.kill-icons i[data-icon=gold]{color:#ffc21a}.kill-icons i[data-icon=execution],.kill-icons i[data-icon=guard]{color:#ff6a5a}.kill-icons i[data-icon=bank]{color:#6fd3ff}.kill-icons small{color:#6fd3ff;font-variant-numeric:tabular-nums;font-size:11px}.kill-icons small[data-headshot-distance=true]{color:#ffc21a}@keyframes killfeed-in{0%{opacity:0;translate:16px}}.kill-banner{right:calc(var(--gutter) + 8px);color:var(--paper);text-align:right;pointer-events:none;justify-items:end;gap:4px;display:grid;position:absolute;bottom:22%}.kill-banner strong{color:#ff3b3b;font-size:calc(var(--step-1) * 1.4);letter-spacing:.08em;text-shadow:0 0 12px #ff3b3b99}.kill-banner[data-streak="3"] strong,.kill-banner[data-streak="4"] strong,.kill-banner[data-streak="5"] strong{color:#ffc21a;text-shadow:0 0 16px #ffc21ab3}.kill-banner span{font-size:var(--step-0);opacity:.85}.kill-pips{gap:6px;display:flex}.kill-pips i{background:#ff3b3bd9;border:2px solid #ff3b3b;width:14px;height:14px;rotate:45deg}.kill-pips i[data-fresh=true]{animation:.32s cubic-bezier(.2,.9,.3,1) kill-pip}.kill-banner.show{animation:.28s cubic-bezier(.2,.9,.3,1) kill-banner}@keyframes kill-pip{0%{opacity:0;scale:2.2}to{opacity:1;scale:1}}@keyframes kill-banner{0%{opacity:0;translate:24px}to{opacity:1;translate:0}}.kill-marks{pointer-events:none;position:absolute;inset:0;overflow:hidden}.kill-marks i{clip-path:polygon(0 0,100% 0,50% 100%);filter:drop-shadow(0 0 5px #ff5a46bf);background:linear-gradient(#ff7a5c,#e8322a);width:18px;height:16px;animation:1.2s ease-in-out infinite kill-mark-bob;position:absolute;top:-16px;left:-9px}@keyframes kill-mark-bob{50%{translate:0 -3px}}.kill-burst{opacity:0;pointer-events:none;filter:drop-shadow(0 0 5px #ff5040cc);width:60px;height:60px;position:absolute;top:50%;left:50%;overflow:visible;translate:-50% -50%}.kill-burst-ring,.kill-burst-chevrons path{fill:none;stroke:#ff5a48;stroke-linecap:round;stroke-linejoin:round}.kill-burst-ring{stroke-width:1.6px}.kill-burst-chevrons path{stroke:#fff4ef;stroke-width:3px}.kill-burst-core{fill:#fff4ef}.kill-burst.show{animation:kill-burst calc(.42s * var(--combat-hud-duration-scale,1)) ease-out}.kill-burst.show .kill-burst-chevrons{animation:kill-chevrons calc(.42s * var(--combat-hud-duration-scale,1)) cubic-bezier(.2, .9, .3, 1)}.kill-burst.show .kill-burst-ring{animation:kill-ring calc(.42s * var(--combat-hud-duration-scale,1)) ease-out}@keyframes kill-burst{0%,70%{opacity:1}to{opacity:0}}@keyframes kill-chevrons{0%{opacity:0;scale:1.9}35%{opacity:1;scale:.9}55%{scale:1}}@keyframes kill-ring{0%{opacity:.2;scale:1.8}40%{opacity:1;scale:1}to{opacity:0;scale:1.15}}@media (prefers-reduced-motion:reduce){.hitmarker.show,.kill-burst.show,.kill-burst.show .kill-burst-chevrons,.kill-burst.show .kill-burst-ring,.kill-marks i,.hit-ring.show,.kill-banner.show,.kill-pips i[data-fresh=true],.killfeed li,.charge[data-stage=full]{animation-duration:1ms}}.hp-pips{justify-content:center;gap:3px;margin-top:3px;display:flex}.hp-pips[hidden]{display:none}.hp-pips i{background:#ffffff38;border-radius:1px;width:14px;height:4px}.hp-pips i[data-full=true]{background:#f4f7f8}.hp-pips.flash i{animation:.3s ease-out hp-flash}.hp-pips[data-head=true].flash i{animation-name:hp-flash-head}@keyframes hp-flash{0%{background:#ff3b3b}}@keyframes hp-flash-head{0%{background:#ffc21a;box-shadow:0 0 6px #ffc21a}}#app-ui[data-reduced-flashes=true] .finisher-flash.show{animation:none}.intro{z-index:40;pointer-events:none;position:absolute;inset:0}.intro[hidden]{display:none}.intro-bars>i{background:#000;height:12vh;animation:.5s cubic-bezier(.2,.8,.2,1) both intro-bar;position:absolute;left:0;right:0}.intro-bars>i:first-child{--from:-100%;top:0}.intro-bars>i:last-child{--from:100%;bottom:0}@keyframes intro-bar{0%{transform:translateY(var(--from))}}.intro-card{color:#fff;text-shadow:0 2px 8px #0009;gap:6px;font-family:SFMono-Regular,Menlo,Consolas,PingFang SC,monospace;display:grid;position:absolute;bottom:calc(12vh + 28px);left:max(24px,6vw)}.intro-card p{white-space:nowrap;min-height:1.3em;margin:0}.intro-title{letter-spacing:.06em;font-size:clamp(20px,2.6vw,34px);font-weight:800}.intro-line{color:#eef2f4db;letter-spacing:.04em;font-size:clamp(13px,1.3vw,17px)}.intro-card p.typing:after{content:"▌";color:var(--gold,#ffc21a);margin-left:2px}.intro-skip{color:#eef2f4b3;letter-spacing:.06em;font-size:13px;position:absolute;bottom:calc(12vh - 34px);right:max(24px,4vw)}#app-ui[data-intro=active] .screen-hud,#app-ui[data-intro=active] .execute-button{display:none!important}@media (prefers-reduced-motion:reduce){.intro-bars>i{animation:none}}
