:root{color:#173c4a;font-synthesis:none;--paper:#f3ecdd;--ink:#173c4a;--coral:#c64b3f;--teal:#176b68;--paper-light:#fffaf0;background:#f3ecdd;font-family:Segoe UI,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.72}[hidden]{display:none!important}#app{width:100vw;height:100dvh;position:relative;overflow:hidden}canvas{width:100%;height:100%;display:block}.game-ui{pointer-events:none;position:absolute;inset:0}.panel-host{pointer-events:auto;background:#173c4a3b;place-items:center;padding:24px;display:grid;position:absolute;inset:0;overflow:auto}.game-ui[data-view=menu] .panel-host,.game-ui[data-view=connecting] .panel-host,.game-ui[data-view=error] .panel-host{background:linear-gradient(90deg,transparent 9%,#c64b3f38 9%,#c64b3f38 calc(9% + 1px),transparent calc(9% + 1px)),repeating-linear-gradient(0deg,transparent,transparent 31px,#173c4a0c 31px,#173c4a0c 32px),var(--paper)}.paper-panel{background:var(--paper);border:2px solid var(--ink);isolation:isolate;width:min(520px,100%);padding:34px 38px 28px;position:relative;box-shadow:7px 8px #173c4a}.paper-panel:before{content:"";background:#c9ba9380;border:1px solid #a294723d;width:83px;height:25px;position:absolute;top:-13px;right:25px;transform:rotate(5deg)}.eyebrow{letter-spacing:2px;font-size:11px;font-weight:800}.panel-title{letter-spacing:-2px;overflow-wrap:anywhere;margin:19px 0 10px;font-family:Georgia,serif;font-size:clamp(34px,5vw,55px);font-style:italic;font-weight:700;line-height:1.04}.panel-detail{max-width:420px;margin:0 0 22px;font-size:16px;line-height:1.5}.match-summary{border-block:1px solid #173c4a40;flex-direction:column;gap:6px;margin-bottom:22px;padding:13px 0;font-size:14px;display:flex}.match-summary span:first-child{text-transform:uppercase;letter-spacing:1px;font-weight:800}.join-form{gap:9px;display:grid}.input-label{font-size:12px;font-weight:700}.name-input{width:100%;height:46px;color:var(--ink);border:2px solid var(--ink);background:#fffaf0;border-radius:0;padding:10px 12px}.name-input::placeholder{color:#667477}.button{border:2px solid var(--ink);color:#fffaf0;background:var(--teal);text-align:center;min-height:46px;box-shadow:3px 3px 0 var(--ink);border-radius:0;padding:12px 17px;font-size:14px;font-weight:750;transition:transform .12s,box-shadow .12s}.button:hover:not(:disabled){box-shadow:4px 4px 0 var(--ink);transform:translate(-1px,-1px)}.button:active:not(:disabled){box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}.button.secondary{color:var(--ink);box-shadow:none;background:0 0}.button:focus-visible,.name-input:focus-visible{outline:3px solid var(--teal);outline-offset:4px}.panel-actions{gap:12px;display:grid}.panel-actions:empty{display:none}.controls-guide{grid-template-columns:1fr 1fr;gap:10px 16px;margin:23px 0;display:grid}.control-item{white-space:nowrap;align-items:center;gap:8px;font-size:13px;display:flex}kbd{text-align:center;background:#fffaf0;border:1px solid #173c4a70;min-width:25px;padding:3px 5px;font-family:inherit;font-size:11px;font-weight:700}.footnote{color:#4c6167;margin:18px 0 0;font-size:12px;line-height:1.5}.hud-top{grid-template-columns:1fr auto 1fr;align-items:start;gap:15px;display:grid;position:absolute;inset:22px 24px auto}.hud-brand{letter-spacing:1px;background:var(--paper);border:1px solid var(--ink);width:max-content;max-width:100%;padding:9px 11px;font-size:11px;font-weight:800}.clock-box{background:var(--paper);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);flex-direction:column;align-items:center;gap:5px;padding:9px 22px;display:flex}.clock-box .eyebrow{letter-spacing:1px;font-size:11px}.match-clock{font-variant-numeric:tabular-nums;letter-spacing:1px;font-size:29px;line-height:1}.connection{background:var(--paper);border:1px solid var(--ink);justify-self:end;max-width:280px;padding:8px 10px;font-size:13px;line-height:1.5}.hud-left{gap:6px;width:190px;display:grid;position:absolute;top:86px;left:24px}.scoreboard{gap:4px;display:grid}.score-row{background:var(--paper);border:1px solid #173c4a66;justify-content:space-between;align-items:center;gap:16px;padding:8px 10px;font-size:12px;display:flex}.score-row.is-self{border-left:4px solid var(--teal);padding-left:7px}.player-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.player-score{font-variant-numeric:tabular-nums;white-space:nowrap}.hud-bottom{justify-content:space-between;align-items:end;gap:16px;display:flex;position:absolute;bottom:24px;left:24px;right:24px}.stats{background:var(--paper);border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink);display:flex}.stat{flex-direction:column;gap:4px;min-width:145px;padding:11px 18px;display:flex}.stat+.stat{border-left:1px solid #173c4a60}.stat-label{text-transform:uppercase;letter-spacing:1px;font-size:11px;font-weight:800}.stat-number{font-variant-numeric:tabular-nums;font-size:38px;line-height:1}.critical{color:var(--coral)}.hud-controls{background:var(--paper);border:1px solid var(--ink);padding:8px 10px;font-size:11px}.game-ui:not([data-view=countdown]):not([data-view=paused]) .hud-controls{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.crosshair{background:var(--ink);width:5px;height:5px;box-shadow:0 0 0 1px var(--ink);border:1px solid #fffaf0;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.combat-hint{background:var(--paper);border:1px solid var(--ink);text-align:center;padding:7px 12px;font-size:12px;position:absolute;top:calc(50% + 42px);left:50%;transform:translate(-50%)}.panel-roster{gap:8px;margin:20px 0;display:grid}.panel-roster .score-row{padding:13px 12px}.panel-countdown{text-align:center;max-width:350px}.panel-countdown .panel-title{margin:12px 0;font-size:110px}.panel-dead .panel-title{color:var(--coral)}.game-ui[data-view=dead] .panel-host,.game-ui[data-view=countdown] .panel-host{pointer-events:none}.panel-paused .panel-title,.panel-finished .panel-title{font-size:40px}@media (max-height:650px){.paper-panel{padding:23px 30px 20px}.panel-title{margin-top:12px;font-size:42px}.panel-detail{margin-bottom:15px}.match-summary{margin-bottom:14px;padding:9px 0}.controls-guide{gap:7px 14px;margin:17px 0}.footnote{margin-top:12px}.panel-host{padding:17px}.hud-top{top:14px}.hud-bottom{bottom:16px}}@media (max-width:650px){.paper-panel{padding:28px 23px 22px}.panel-host{padding:19px}.hud-brand{display:none}.hud-top{grid-template-columns:auto 1fr;inset:14px 14px auto}.clock-box{padding:8px 13px}.connection{max-width:180px}.hud-left{width:165px;top:91px;left:14px}.hud-bottom{bottom:14px;left:14px;right:14px}.stat{min-width:110px;padding:10px 12px}.stat-number{font-size:30px}.hud-controls{display:none}.controls-guide{gap:9px}.control-item{font-size:12px}.panel-title{font-size:43px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.paper-panel.has-rooms{width:min(940px,100%);padding:22px 30px}.has-rooms>.controls-guide,.has-rooms>.footnote{display:none}.has-rooms .panel-title{margin:8px 0;font-size:48px}.has-rooms .panel-detail{max-width:none;margin-bottom:10px}.has-rooms .match-summary{flex-direction:row;justify-content:space-between;margin-bottom:10px;padding:7px 0}.has-rooms .join-form{grid-template-columns:1fr 1fr;gap:5px 16px}.has-rooms .join-form label{grid-column:1/-1}.rooms-status{margin:12px 0;font-size:13px;line-height:1.4}.rooms-grid{grid-template-columns:1fr 1.1fr;gap:28px;display:grid}.room-setup{gap:14px;display:grid}.room-visibility{border:0;gap:6px;margin:0;padding:0;display:grid}.room-visibility legend,.room-directory h2{margin:0 0 8px;font-size:18px;font-weight:700}.room-visibility label{align-items:center;gap:6px;min-height:30px;font-size:13px;display:flex}.room-visibility input{accent-color:var(--teal);width:18px;height:18px}.room-code-form{grid-template-columns:1fr 1fr;align-items:end;gap:6px 12px;display:grid}.room-code-form label,.room-code-form small{grid-column:1/-1}.room-code-form small{grid-row:3;margin:0}.room-code-form .name-input{text-transform:uppercase;letter-spacing:3px}.room-directory{border-left:1px solid #173c4a40;padding-left:24px;position:relative}.room-directory>button{min-height:44px;padding:8px 12px;position:absolute;top:0;right:0}.room-directory>h2{padding-right:115px}.room-directory>.footnote{margin:18px 0 8px}.room-list{max-height:202px;padding:2px 6px 4px 0;overflow:auto}.room-row{border-top:1px solid #173c4a40;grid-template-columns:1fr auto;gap:5px 10px;padding:10px 0;display:grid}.room-row>span{grid-column:1;font-size:13px;line-height:1.4}.room-row>button{grid-area:1/2/3;align-self:center;min-height:44px;padding:8px 12px}.room-code{letter-spacing:6px;-webkit-user-select:all;user-select:all;margin:12px 0;font-size:32px;display:block}.room-privacy{font-size:14px;line-height:1.4}.room-visibility input:focus-visible{outline:3px solid var(--teal);outline-offset:3px}@media (max-width:700px){.rooms-grid{grid-template-columns:1fr}.room-directory{border-top:1px solid #173c4a40;border-left:0;padding:16px 0 0}.room-directory>button{top:12px}.has-rooms .join-form{grid-template-columns:1fr}.has-rooms .match-summary{flex-direction:column}.paper-panel.has-rooms{padding:22px}.has-rooms .panel-title{font-size:40px}.panel-host:has(.has-rooms){place-items:start center}.room-list{max-height:200px}}.room-visibility label{min-height:44px}.room-invitation{grid-column:1/-1;margin:0 0 4px;font-size:14px;font-weight:700}.room-code-form small{grid-row:auto}.room-code{font-family:Consolas,monospace}.rooms-status{min-height:19px}.has-rooms .footnote,.has-rooms .input-label{font-size:13px}.recovery-policy{margin:0 0 18px}.panel-recovering .panel-title{font-size:clamp(30px,7.5vw,40px)}.paper-panel.is-lobby{width:min(760px,100%);padding:22px 28px}.is-lobby .panel-title{letter-spacing:-1px;margin:10px 0 8px;font-size:36px}.is-lobby .panel-detail{max-width:none;margin:0 0 8px;font-size:15px;line-height:1.4}.lobby-counter{font-variant-numeric:tabular-nums;margin:0 0 4px;font-size:15px;line-height:1.4}.lobby-requirement{margin:0 0 8px;font-size:14px;line-height:1.35}.lobby-late{margin:0 0 6px;font-size:14px;font-weight:700;line-height:1.35}.room-line{flex-wrap:wrap;align-items:center;gap:4px 16px;display:flex}.room-line .room-privacy{margin:0}.is-lobby .room-code{letter-spacing:5px;margin:0;font-size:26px}.room-line .button{min-height:44px;margin-left:auto;padding:8px 14px}.copy-feedback{margin:2px 0 0;font-size:13px}.copy-feedback:empty{display:none}.lobby-roster{gap:4px;margin:10px 0 0;padding:0;list-style:none;display:grid}@media (min-width:701px){.lobby-roster{grid-template-rows:repeat(5,auto);grid-template-columns:1fr 1fr;grid-auto-flow:column;column-gap:12px}}.lobby-member{background:var(--paper);border:1px solid #173c4a66;justify-content:space-between;align-items:center;gap:10px;min-height:36px;padding:6px 10px;display:flex}.lobby-member.is-self{background:var(--paper-light);border-left:4px solid var(--teal);padding-left:7px}.lobby-member.is-reconnecting{border:2px dotted var(--ink);padding:5px 9px}.lobby-member.is-self.is-reconnecting{border-left:4px solid var(--teal);padding-left:7px}.lobby-name,.result-name{min-width:0;font-size:15px;display:flex}.name-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.self-tag{white-space:pre;flex:none}.lobby-state{white-space:nowrap;flex:none;font-size:14px}.lobby-readiness{font-weight:400}strong.lobby-readiness{font-weight:700}@media (max-width:480px){.lobby-member{flex-wrap:wrap}.lobby-state{white-space:normal;font-size:13px}}.lobby-help{margin:10px 0 0;font-size:16px;line-height:1.35}.is-lobby .recovery-policy{margin:8px 0 0;font-size:13px}.is-lobby .controls-guide{margin:16px 0 4px}.lobby-actions{z-index:1;background:var(--paper);border-top:1px solid #173c4a66;flex-wrap:wrap;gap:10px;margin:10px 0 -10px;padding:12px 0;display:flex;position:sticky;bottom:0}.lobby-actions .button{flex:150px;min-height:44px}@media (max-width:700px){.prep-actions{grid-template-columns:1fr 1fr;display:grid}.prep-actions .button{min-width:0}.prep-actions:not(.is-host) .lobby-ready,.prep-actions .lobby-leave{grid-column:1/-1}.paper-panel.is-lobby{padding:20px}}.panel-host:has(.is-lobby){align-items:safe center;scroll-padding-bottom:80px}@media (max-width:700px){.panel-host:has(.is-lobby){scroll-padding-bottom:140px}}@media (max-height:760px){.panel-host:has(.is-lobby){padding-block:12px}}.panel-countdown.is-lobby{text-align:center;width:min(520px,100%);max-width:none}.panel-countdown.is-lobby .panel-title{margin:0;font-size:64px}.game-ui[data-view=countdown] .panel-host:has(.is-lobby){pointer-events:auto}.panel-paused.is-lobby{width:min(600px,100%)}.panel-paused.is-lobby .panel-title{font-size:36px}.panel-finished.is-lobby .panel-title{margin:6px 0;font-size:32px}.is-lobby .panel-detail:empty{display:none}.result-table,.score-table{border-collapse:collapse;table-layout:fixed;font-variant-numeric:tabular-nums;width:100%;margin:8px 0 0;font-size:14px}.result-table caption{caption-side:top;text-align:left;padding:0 0 2px;font-size:13px;font-weight:700}.result-table th,.result-table td,.score-table th,.score-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #173c4a40;height:32px;padding:0 8px}.result-table th,.score-table th{height:28px;font-size:13px}.result-table .num,.score-table .num{text-align:right}.pos-col{width:52px}.stat-col{width:72px}.prep-col{width:190px}.result-table tr.is-self td,.score-table tr.is-self td{background:var(--paper-light)}.result-table tr.is-self td:first-child,.score-table tr.is-self td:first-child{box-shadow:inset 4px 0 var(--teal)}.result-table tr.is-reconnecting td{border-top:2px dotted var(--ink);border-bottom:2px dotted var(--ink)}.player-cell{overflow:hidden}.prep-inline{display:none}.col-short{text-decoration:none;display:none}.result-note{margin:4px 0 0;font-size:13px;line-height:1.35}@media (max-width:560px){.col-long,.result-table .prep-col{display:none}.col-short{display:inline}.prep-inline{white-space:normal;font-size:13px;display:block}.result-table td{height:auto;padding:5px 6px}.result-table th{padding:0 6px}.pos-col{width:40px}.stat-col{width:36px}}.hud-left.is-ffa{gap:4px;width:220px}.score-heading{background:var(--paper);border:1px solid #173c4a66;padding:4px 10px;font-size:13px;font-weight:700}.scoreboard.is-ffa{gap:2px}.scoreboard.is-ffa .score-row{justify-content:flex-start;gap:8px;min-height:32px;padding:0 10px;font-size:13px}.scoreboard.is-ffa .score-row.is-self{padding-left:7px}.scoreboard.is-ffa .player-name{flex:1;min-width:0}.player-pos{font-variant-numeric:tabular-nums;flex:none;min-width:16px;font-weight:700}.score-gap{text-align:center;font-size:13px;line-height:1}.hud-notice{background:var(--paper);border:1px solid var(--ink);-webkit-line-clamp:2;-webkit-box-orient:vertical;padding:5px 10px;font-size:13px;line-height:1.35;display:-webkit-box;overflow:hidden}.hud-notice:empty{border:0;padding:0}.clock-short{display:none}@media (max-width:650px){.hud-left.is-ffa{width:165px}.clock-long{display:none}.clock-short{display:inline}}.has-rooms .direct-help{grid-column:2;margin:0}.room-visibility .room-mode{margin:-6px 0 2px}@media (max-width:700px){.has-rooms .direct-help{grid-column:auto}}.panel-finished.is-lobby{padding-block:16px}.panel-finished.is-lobby .panel-title{margin:4px 0 2px}.panel-finished.is-lobby .panel-detail{margin-bottom:4px}.panel-finished.is-lobby .lobby-counter{margin-bottom:2px}.panel-finished.is-lobby .lobby-requirement{margin-bottom:4px}.panel-finished.is-lobby .result-table{margin-top:4px}.panel-finished.is-lobby .lobby-help{margin-top:6px}.panel-finished.is-lobby .lobby-actions{margin:6px 0 -6px;padding:10px 0}.result-table caption{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (max-height:760px){.panel-host:has(.panel-finished.is-lobby){padding-block:8px}}.panel-host:has(.is-lobby){padding-bottom:0}.paper-panel.is-lobby{margin-bottom:24px}@media (max-width:650px){.paper-panel.is-lobby{margin-bottom:19px}}@media (max-height:760px){.paper-panel.is-lobby{margin-bottom:12px}.paper-panel.panel-finished.is-lobby{margin-bottom:8px}}.weapon-selector{white-space:nowrap;gap:10px;font-size:13px;line-height:1.3;display:flex}.weapon-slot{border-left:4px solid #0000;padding-left:7px;font-weight:400}.weapon-slot.is-held{border-left-color:var(--teal);font-weight:700}.weapon-count{font-variant-numeric:tabular-nums}.weapon-short{display:none}.cooldown-bar{background:#d4c8b3;width:100%;height:4px;margin-top:2px;display:block}.cooldown-bar[hidden]{visibility:hidden;display:block}.cooldown-fill{background:var(--ink);width:0;height:100%;display:block}.panel-menu .controls-guide{row-gap:4px;margin:17px 0}@media (max-width:650px){.weapon-long{display:none}.weapon-short{display:inline}.weapon-selector{gap:6px;font-size:12px}.weapon-slot{padding-left:5px}}.cooldown-fill.is-charge{background:var(--teal)}.cooldown-fill.is-penalty{background:repeating-linear-gradient(135deg,var(--ink) 0 3px,#d4c8b3 3px 6px)}.ruler-scope{pointer-events:none;opacity:0;--lens:min(40vh,40vw);background:radial-gradient(circle at 50% 50%,transparent calc(var(--lens) - 2px),var(--ink) calc(var(--lens) - 1px),var(--ink) var(--lens),#173c4ae6 calc(var(--lens) + 1px));transition:opacity .12s;position:absolute;inset:0}.ruler-scope.is-on{opacity:1}.ruler-scope:before{content:"";width:calc(var(--lens) * 2 - 10px);height:calc(var(--lens) * 2 - 10px);border:3px solid #0000;border-radius:50%;transition:border-color .12s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ruler-scope[data-ready=true]:before{border-color:var(--teal)}.scope-h,.scope-v{background:var(--ink);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.scope-h{width:calc(var(--lens) * 2);background:repeating-linear-gradient(90deg,var(--ink) 0 1px,transparent 1px 24px) center/100% 9px no-repeat,linear-gradient(var(--ink),var(--ink)) center/100% 1px no-repeat;background-color:#0000;height:9px}.scope-v{height:calc(var(--lens) * 2);width:1px}@media (prefers-reduced-motion:reduce){.ruler-scope{transition:none}}.ruler-marks{pointer-events:none;background:0 0;border:0;width:38px;height:4px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ruler-marks[hidden]{display:none}.ruler-marks:before,.ruler-marks:after{content:"";background:var(--ink);width:7px;height:2px;box-shadow:0 0 0 1px var(--paper);position:absolute;top:1px}.ruler-marks:before{right:30px}.ruler-marks:after{left:30px}@media (max-width:650px){.weapon-selector{gap:5px}.control-extra{display:none}.weapon-selector{grid-template-columns:auto auto;justify-content:start;gap:2px 6px;display:grid}}.slide-status{white-space:nowrap;color:var(--ink);border-left:4px solid #0000;padding-left:5px;font-size:12px;font-weight:700;line-height:16px;display:block}.slide-status.is-sliding{border-left-color:var(--teal)}.slide-status.is-none{visibility:hidden}.slide-line{white-space:nowrap;display:block}.slide-key{min-width:0;padding:0 3px;font-size:10px;line-height:12px;display:inline-block}.slide-key[hidden]{display:none}.slide-bar{margin-top:2px}.slide-fill{background:var(--ink)}.slide-fill.is-charge{background:var(--teal)}.slide-strokes{pointer-events:none;opacity:var(--slide-fx,0);position:absolute;inset:0}.slide-strokes[hidden]{display:none}.slide-side{width:12%;height:30%;position:absolute;top:35%}.slide-left{transform:translateX(calc(-24px * var(--slide-q,0)));left:0}.slide-right{transform:translateX(calc(24px * var(--slide-q,0)));right:0}.slide-stroke{background:var(--ink);height:2px;position:absolute}.slide-left .slide-stroke{transform-origin:100%;right:6px}.slide-right .slide-stroke{transform-origin:0;left:6px}.slide-stroke:first-child{width:70px;top:18%}.slide-stroke:nth-child(2){width:55px;top:50%}.slide-stroke:nth-child(3){width:40px;top:80%}.slide-left .slide-stroke:first-child{transform:rotate(8deg)}.slide-left .slide-stroke:nth-child(3),.slide-right .slide-stroke:first-child{transform:rotate(-8deg)}.slide-right .slide-stroke:nth-child(3){transform:rotate(8deg)}@media (max-width:650px){.slide-left .slide-stroke,.slide-right .slide-stroke{width:40px}.slide-left .slide-stroke{right:2px}.slide-right .slide-stroke{left:2px}}@media (prefers-reduced-motion:reduce){.slide-left,.slide-right{transform:none}}@media (max-height:760px){.controls-guide,.panel-menu .controls-guide{row-gap:3px}}.map-choice{border:0;flex-wrap:wrap;gap:0 18px;margin:0 0 14px;padding:0;display:flex}.map-choice legend{margin:0 0 2px;padding:0;font-size:12px;font-weight:700}.map-choice label{align-items:center;gap:6px;min-height:44px;font-size:13px;display:flex}.map-choice input{accent-color:var(--teal);width:18px;height:18px}.map-choice input:focus-visible{outline:3px solid var(--teal);outline-offset:3px}.has-rooms>.solo-best{margin:8px 0 0;display:block}.solo-best[hidden]{display:none!important}.solo-summary{grid-template-columns:auto 1fr;gap:4px 14px;margin:0 0 16px;font-size:14px;display:grid}.solo-summary dt{font-weight:700}.solo-summary dd{font-variant-numeric:tabular-nums;margin:0}.saveink-hud{pointer-events:none;text-align:center;justify-items:center;gap:5px;width:min(560px,100% - 32px);font-size:13px;display:grid;position:absolute;top:104px;left:50%;transform:translate(-50%)}.saveink-score,.saveink-side,.saveink-objective,.saveink-allies{background:var(--paper);border:1px solid var(--ink);max-width:100%;padding:5px 10px}.saveink-score{letter-spacing:.5px;box-shadow:3px 3px 0 var(--ink);border-width:2px;font-weight:800}.saveink-hud[data-side=attack] .saveink-side{border-left:5px solid var(--coral)}.saveink-hud[data-side=defense] .saveink-side{border-left:5px solid var(--teal)}.saveink-carrier{background:var(--coral);color:#fff6e0;border:2px solid var(--ink);letter-spacing:.4px;box-shadow:3px 3px 0 var(--ink);max-width:100%;padding:5px 10px;font-weight:800}.saveink-carrier[data-own=true]{text-transform:uppercase;font-size:1.15em}.saveink-hud[data-bomb=armed] .saveink-objective{border-color:var(--coral);background:#fbe3d7;font-weight:700}.saveink-bar{background:var(--paper);border:2px solid var(--ink);width:220px;height:22px;position:fixed;top:calc(50% + 78px);left:50%;overflow:hidden;transform:translate(-50%)}.saveink-fill{background:var(--coral);width:0;position:absolute;inset:0 auto 0 0}.saveink-bar[data-kind=defuse] .saveink-fill{background:var(--teal)}.saveink-bar-text{mix-blend-mode:multiply;font-size:12px;font-weight:800;line-height:18px;display:block;position:relative}.saveink-banner{background:var(--ink);color:var(--paper-light);box-shadow:4px 4px 0 var(--coral);margin-top:8px;padding:10px 18px;font-family:Georgia,serif;font-size:22px;font-style:italic}.lobby-team{border:1px solid #173c4a66;padding:2px 6px;font-size:12px;font-weight:700}.lobby-member[data-team="0"] .lobby-team{border-left:4px solid var(--coral)}.lobby-member[data-team="1"] .lobby-team{border-left:4px solid var(--teal)}@media (max-width:650px){.saveink-hud{font-size:12px;top:84px}.saveink-banner{font-size:18px}}.game-ui[data-view=paused] .saveink-hud{display:none}.game-ui[data-mode=save-ink][data-view=dead] .panel-host{background:0 0;place-items:end center}.paper-panel.panel-dead.is-ink{width:min(460px,100%);box-shadow:4px 4px 0 var(--ink);padding:14px 20px 12px}.panel-dead.is-ink .panel-title{letter-spacing:-.5px;margin:6px 0 4px;font-size:26px}.panel-dead.is-ink .panel-detail{margin:0;font-size:14px}.score-row.is-out{opacity:.55;text-decoration:line-through}.ink-summary{font-weight:700}.saveink-ping{background:var(--teal);color:var(--paper-light);border:2px solid var(--ink);padding:6px 12px;font-weight:800}.weapon-slot.is-locked{opacity:.35;text-decoration:line-through}.saveink-steps{pointer-events:none;width:0;height:0;position:fixed;top:50%;left:50%}.step-mark{opacity:0;width:14px;height:26px;transform:rotate(var(--turn)) translateY(-78px);transform-origin:7px 13px;position:absolute;top:-13px;left:-7px}.step-mark:before,.step-mark:after{content:"";background:var(--ink);box-shadow:0 0 0 2px var(--paper-light),2px 2px 0 2px #173c4a33;border-radius:50% 50% 46% 46%;position:absolute}.step-mark:before{width:12px;height:15px;top:0;left:1px}.step-mark:after{border-radius:50%;width:8px;height:8px;bottom:0;left:3px}.step-mark.is-heard{animation:1.1s ease-out forwards step-dry}.step-mark.is-near{--step-scale:1.25}.step-mark.is-near:before,.step-mark.is-near:after{background:var(--coral)}@keyframes step-dry{0%{opacity:1;transform:rotate(var(--turn)) translateY(-70px) scale(var(--step-scale,1))}35%{opacity:.9;transform:rotate(var(--turn)) translateY(-72px) scale(var(--step-scale,1))}to{opacity:0;transform:rotate(var(--turn)) translateY(-86px) scale(calc(var(--step-scale,1) * .8))}}@media (prefers-reduced-motion:reduce){.step-mark.is-heard{animation-duration:1.4s;animation-timing-function:steps(3,end)}}.paper-panel.panel-menu{--thumb-floor:#fffaf0;--thumb-ink:#173c4a;width:min(980px,100%);padding:22px 30px 18px}.panel-menu .panel-title{margin:8px 0 4px;font-size:46px}.panel-menu .panel-detail{max-width:none;margin:0 0 14px}.menu-name{gap:6px;max-width:420px;margin-bottom:18px;display:grid}.menu-grid{grid-template-columns:1.45fr 1fr;align-items:start;gap:28px;display:grid}.menu-heading{flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0 0 10px;font-size:18px;font-weight:700;display:flex}.play-flow{align-content:start;gap:12px;display:grid}.play-flow>*{margin:0}.mode-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.mode-card{text-align:left;border:2px solid var(--ink);min-height:118px;color:var(--ink);box-shadow:4px 4px 0 var(--ink);cursor:pointer;background:#fffaf0;align-content:start;gap:4px;padding:14px 16px;transition:transform .12s,box-shadow .12s,background .12s;display:grid}.mode-card:hover:not(:disabled){box-shadow:6px 6px 0 var(--ink);background:#fff;transform:translate(-2px,-2px)}.mode-card:active:not(:disabled){box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}.mode-card:focus-visible{outline:3px solid var(--teal);outline-offset:4px}.mode-card:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.mode-card-name{letter-spacing:-.5px;font-family:Georgia,serif;font-size:24px;font-style:italic;line-height:1.1}.mode-card-tag{letter-spacing:1px;text-transform:uppercase;color:var(--teal);font-size:11px;font-weight:800}.mode-card-detail,.mode-card-off{color:#4c6167;font-size:13px;line-height:1.4}.mode-card-off{color:var(--coral);font-weight:700}.mode-back{justify-self:start;min-height:40px;padding:6px 12px}.menu-heading .mode-card-tag{font-size:11px}.play-flow>.menu-heading{margin:0;font-family:Georgia,serif;font-size:28px;font-style:italic}.mode-detail{font-size:14px;line-height:1.45}.choice-group{border:0;flex-wrap:wrap;gap:8px;margin:0;padding:0;display:flex}.choice-group legend,.map-cards legend{margin:0 0 6px;padding:0;font-size:12px;font-weight:700}.choice-pill{cursor:pointer;background:#fffaf0;border:2px solid #173c4a80;align-items:center;min-height:44px;padding:0 14px;font-size:13px;display:flex;position:relative}.choice-pill input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.choice-pill:has(input:checked){border-color:var(--ink);background:var(--ink);color:#fffaf0}.choice-pill:has(input:focus-visible){outline:3px solid var(--teal);outline-offset:3px}.map-cards{border:0;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin:0;padding:0;display:grid}.map-card{cursor:pointer;background:#fffaf0;border:2px solid #173c4a80;grid-template-columns:84px 1fr;align-items:center;gap:12px;padding:10px;display:grid;position:relative}.map-card input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.map-card:has(input:checked){border-color:var(--ink);box-shadow:4px 4px 0 var(--teal)}.map-card:has(input:checked) .map-card-number{background:var(--teal);color:#fffaf0}.map-card:has(input:focus-visible){outline:3px solid var(--teal);outline-offset:3px}.map-card.is-fixed{cursor:default;border-color:var(--ink)}.map-thumb{border:1px solid #173c4a60;width:84px;height:84px;display:block}.map-card-text{gap:3px;display:grid}.map-card-text strong{font-size:15px;line-height:1.25}.map-card-number{letter-spacing:1px;border:1px solid var(--ink);justify-self:start;padding:1px 6px;font-size:11px;font-weight:800}.map-card-note{color:#4c6167;font-size:12px;line-height:1.35}.mode-rules{margin:0}.mode-go{min-height:52px;font-size:15px}.create-status:empty{display:none}.room-mode{margin:-4px 0 0}.panel-menu .rooms-host{border-left:1px solid #173c4a40;padding-left:24px}.panel-menu .rooms-grid{grid-template-columns:1fr;gap:18px}.panel-menu .room-directory{border-top:1px solid #173c4a40;border-left:0;padding:14px 0 0}.panel-menu .room-directory>button{top:10px}.panel-menu .rooms-status{margin:0 0 10px}.controls-settings{margin-top:16px;font-size:13px}.controls-settings summary{cursor:pointer;font-weight:700}.controls-settings .controls-guide{margin:12px 0 0}@media (max-width:760px){.menu-grid{grid-template-columns:1fr}.panel-menu .rooms-host{border-top:1px solid #173c4a40;border-left:0;padding:16px 0 0}.paper-panel.panel-menu{padding:22px}.panel-menu .panel-title{font-size:40px}.panel-host:has(.panel-menu){place-items:start center}}@media (max-width:460px){.mode-grid{grid-template-columns:1fr}.mode-card{min-height:0}}.map-card{grid-template-columns:1fr;gap:8px;padding:10px 10px 12px}.map-thumb{background:#f3ecdd;width:100%;height:140px}.map-card:hover{border-color:var(--ink)}.panel-menu .menu-heading{margin:0 0 10px;font-family:Georgia,serif;font-size:28px;font-style:italic}.play-flow>.menu-heading{margin:0}.menu-heading .mode-card-tag{font-family:system-ui,sans-serif;font-style:normal}@media (max-height:820px){.map-thumb{height:104px}.panel-menu .panel-title{margin:4px 0 2px;font-size:38px}.panel-menu .panel-detail{margin-bottom:8px}.menu-name{margin-bottom:12px}}.combat-hint{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;padding:0;overflow:hidden}.crosshair:after{content:"";border:1.5px solid var(--ink);opacity:0;border-radius:50%;width:22px;height:22px;transition:opacity .12s,transform .12s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.crosshair[data-state=aim]:after{opacity:.85;transform:translate(-50%,-50%)scale(.6)}.crosshair[data-state=busy]{opacity:.55}.crosshair[data-state=busy]:after{opacity:.7;border-style:dashed;animation:1.2s linear infinite crosshair-busy}.crosshair[data-state=nudge]{animation:.32s ease-out 2 crosshair-nudge}@keyframes crosshair-busy{to{transform:translate(-50%,-50%)rotate(1turn)}}@keyframes crosshair-nudge{25%{margin-left:-3px}75%{margin-left:3px}}@media (prefers-reduced-motion:reduce){.crosshair[data-state=busy]:after,.crosshair[data-state=nudge]{animation:none}}.protect-note{color:var(--teal);font-size:11px;font-weight:700}.kit-picker{border:1px solid #173c4a60;gap:6px;margin:0 0 16px;padding:8px 10px 10px;display:grid}.kit-picker legend{padding:0 4px;font-size:12px;font-weight:700}.kit-row{grid-template-columns:92px repeat(3,1fr);align-items:stretch;gap:6px;display:grid}.kit-label{text-transform:uppercase;letter-spacing:1px;align-self:center;font-size:11px;font-weight:800}.kit-option{border:1px solid var(--ink);min-height:44px;color:var(--ink);text-align:left;cursor:pointer;background:#fffaf0;border-radius:0;flex-direction:column;align-items:flex-start;gap:2px;padding:6px 8px;font-size:12px;display:flex}.kit-option strong{font-size:13px}.kit-trait{color:#4c6167;font-size:11px;line-height:1.25}.kit-option.is-on{border:2px solid var(--teal);box-shadow:2px 2px 0 var(--ink);background:#e3efe9}.kit-option:disabled{opacity:.45;cursor:default}.kit-option.is-on:disabled{opacity:1}.kit-option:focus-visible{outline:3px solid var(--teal);outline-offset:2px}.shop-money{font-variant-numeric:tabular-nums;margin:0;font-size:13px;font-weight:700}@media (max-width:650px){.kit-row{grid-template-columns:1fr 1fr 1fr}.kit-label{grid-column:1/-1}.kit-trait{display:none}}.weapon-slot[hidden]{display:none}:is(.panel-countdown:has(.kit-picker),.panel-dead:has(.kit-picker)){width:min(600px,100%);max-width:none}.panel-countdown:has(.kit-picker) .panel-title{margin:4px 0;font-size:72px}.kit-picker{text-align:left;pointer-events:auto}.game-ui[data-view=dead] .panel-actions{pointer-events:auto}.chat-box{pointer-events:none;z-index:5;gap:6px;width:min(380px,100% - 32px);font-size:13px;display:grid;position:fixed;bottom:118px;left:16px}.chat-log{gap:3px;margin:0;padding:0;list-style:none;display:grid}.chat-line{border-left:4px solid var(--teal);overflow-wrap:anywhere;background:#f3ecddeb;justify-self:start;max-width:100%;padding:3px 8px}.chat-line[data-own=true]{border-left-color:var(--ink)}.chat-line[hidden]{display:none}.chat-form{background:var(--paper);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);pointer-events:auto;align-items:center;gap:6px;padding:4px 6px;display:flex}.chat-form[hidden]{display:none}.chat-label{text-transform:uppercase;letter-spacing:.4px;color:var(--teal);font-size:12px;font-weight:800}.chat-input{min-width:0;font:inherit;color:var(--ink);background:0 0;border:0;outline:none;flex:1}.saveink-hint{background:var(--paper);border:2px solid var(--ink);white-space:nowrap;padding:4px 10px;font-size:13px;font-weight:800;position:fixed;top:calc(50% + 108px);left:50%;transform:translate(-50%)}.saveink-hint[data-kind=warn]{background:var(--coral);color:#fff6e0}.saveink-hint[hidden]{display:none}.weapon-selector{flex-wrap:wrap}@media (max-width:650px){.chat-box{font-size:12px;bottom:100px}}.minimap{border:2px solid var(--ink);width:168px;height:168px;box-shadow:3px 3px 0 var(--ink);background:var(--paper);pointer-events:none;position:absolute;top:86px;right:24px}.minimap[hidden]{display:none}.minimap canvas{display:block}.game-ui[data-view=paused] .minimap{display:none}@media (max-width:650px){.minimap{transform-origin:100% 0;top:70px;right:16px;transform:scale(.7)}}.account-box{border:1px dashed #173c4a80;margin:0 0 14px;padding:10px 12px;font-size:13px}.account-box[hidden]{display:none}.account-google{color:#173c4a;cursor:pointer;background:#f3ecdd;border:2px solid #173c4a;padding:7px 12px;font-weight:700;box-shadow:2px 2px #173c4a}.account-google:hover{background:#fff}.account-note{opacity:.8;margin:6px 0 0}.account-gain{color:#176b68;margin:4px 0 0;font-weight:700}.account-head{align-items:baseline;gap:10px;display:flex}.account-level{font-size:16px}.account-rank{opacity:.75}.account-signout{color:inherit;cursor:pointer;background:0 0;border:1px solid #173c4a80;margin-left:auto;padding:2px 8px;font-size:12px}.account-bar{background:#fff8;border:1px solid #173c4a;height:7px;margin-top:6px}.account-fill{background:#176b68;width:0;height:100%;transition:width .4s}.account-ranking{margin-top:8px}.account-ranking summary{cursor:pointer;font-weight:700}.leader-list{max-height:180px;margin:6px 0 0;padding:0;list-style:none;overflow:auto}.leader-row{font-variant-numeric:tabular-nums;grid-template-columns:2.2em 1fr auto auto;gap:8px;padding:2px 0;display:grid}.leader-level,.leader-xp{opacity:.8}.legal-links{gap:16px;margin-top:14px;font-size:12px;display:flex}.legal-links a{color:#4c6167}.legal-links a:hover{color:var(--ink)}.hit-marker{color:#176b68;text-shadow:1px 1px #fff,-1px -1px #fff;z-index:3;pointer-events:none;font:40px/1 Arial;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.damage-marker{color:#173c4a;z-index:3;pointer-events:none;background:#f3ecdd;border:2px solid #c64b3f;padding:7px 13px;font-size:12px;font-weight:800;position:absolute;bottom:24%;left:50%;transform:translate(-50%)}.diagnostics-panel{z-index:5;background:#f3ecdd;border:1px solid #173c4a;max-width:340px;max-height:65vh;padding:10px;font-size:12px;position:absolute;top:75px;right:20px;overflow:auto}.diagnostics-panel summary{cursor:pointer}.diagnostics-panel pre{font-size:10px}.diagnostics-panel button{color:#fff;background:#176b68;border:1px solid #173c4a;padding:8px}.sound-settings{margin:8px 0;font-size:14px}.sound-settings summary{cursor:pointer;align-items:center;min-height:44px;text-decoration:underline;display:flex}.sound-settings summary:focus-visible,.audio-controls input:focus-visible{outline-offset:3px;outline:3px solid #176b68}.audio-controls{border:1px solid #173c4a;flex-wrap:wrap;align-items:center;gap:10px;margin:0;padding:10px;display:flex}.audio-controls label{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.audio-controls input{accent-color:#176b68;width:130px;min-height:44px}.audio-controls output{font-variant-numeric:tabular-nums;min-width:42px}.audio-status{width:100%;font-size:13px}.kill-marker{color:#173c4a;z-index:3;pointer-events:none;background:#f3ecdd;border:2px solid #176b68;padding:6px 12px;font-weight:700;position:absolute;top:56%;left:50%;transform:translate(-50%)}@media (min-width:701px){.panel-menu .sound-settings{z-index:2;margin:0;position:absolute;top:3px;right:24px}.panel-menu .sound-settings[open]{background:#f3ecdd;border:2px solid #173c4a;width:min(350px,100% - 48px);padding:8px;box-shadow:4px 4px #173c4a}.panel-menu .sound-settings summary{justify-content:flex-end}}
