:root{--bg:#131519;--bg-deep:#0e1013;--panel:#1b1e24;--panel-2:#21252c;--line:#2b3038;--line-soft:#232830;--text:#e9e6e0;--text-dim:#9aa1ac;--text-faint:#6d7480;--copper:#dd8f3c;--copper-dim:#a2662a;--teal:#4fb3a5;--teal-dim:#2f7d72;--rose:#d9705f;--radius:8px;--control-h:36px;--font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{background:var(--bg-deep);height:100%;color:var(--text);font-family:var(--font);letter-spacing:0;-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.45}.app{height:100vh;flex-direction:column;min-width:0;height:100dvh;display:flex}.topbar{background:var(--bg);border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;gap:16px;padding:12px 18px;display:flex}.brand{align-items:center;gap:12px;min-width:0;display:flex}.logo{border-radius:var(--radius);border:1px solid var(--line);width:34px;height:34px;color:var(--copper);background:linear-gradient(160deg,#2b3138,#1a1d22);flex:none;place-items:center;display:grid}.logo svg{width:19px;height:19px}.brand-text{min-width:0}.brand-text h1{letter-spacing:0;margin:0;font-size:15px;font-weight:600;line-height:1.2}.brand-text p{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;margin:2px 0 0;font-size:12px;overflow:hidden}.segmented{background:var(--bg-deep);border:1px solid var(--line);border-radius:var(--radius);flex:none;gap:2px;padding:3px;display:flex}.segmented-full{width:100%}.seg{height:28px;color:var(--text-dim);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:13px;transition:background .12s,color .12s;display:inline-flex}.segmented-full .seg{flex:1 1 0}.seg svg{width:14px;height:14px}.seg:hover:not(:disabled){color:var(--text);background:var(--panel-2)}.seg:disabled{opacity:.4;cursor:not-allowed}.seg.is-active{background:var(--panel);color:var(--text);box-shadow:inset 0 0 0 1px var(--line)}.seg:focus-visible{outline:2px solid var(--teal);outline-offset:1px}.topbar>.brand{order:1}.topbar>.pagenav{order:2}.topbar>.segmented{order:3}.pagenav{align-items:center;gap:2px;min-width:0;display:flex}.pagenav a{height:28px;color:var(--text-dim);white-space:nowrap;border:1px solid #0000;border-radius:6px;align-items:center;gap:6px;padding:0 10px;font-size:12px;text-decoration:none;transition:background .12s,color .12s;display:inline-flex}.pagenav-icon{display:inline-flex}.pagenav a svg{width:14px;height:14px}.pagenav a:hover{color:var(--text);background:var(--panel-2)}.pagenav a:focus-visible{outline:2px solid var(--teal);outline-offset:1px}.pagenav a[aria-current=page]{background:var(--panel);border-color:var(--line);color:var(--text)}.pagenav a[aria-current=page] svg{color:var(--copper)}.stage{flex:auto;grid-template-columns:minmax(0,1fr) 300px;gap:14px;min-height:0;padding:14px 18px 18px;display:grid}.viewport{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-deep);min-width:0;min-height:0;position:relative;overflow:hidden}.viewport canvas{display:block}.viewport-overlay{pointer-events:none;align-items:center;gap:8px;display:flex;position:absolute;top:10px;left:10px}.badge{border:1px solid var(--line);height:24px;color:var(--text-dim);font-family:var(--mono);text-transform:lowercase;white-space:nowrap;background:#0e1013c7;border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:11px;display:inline-flex}.badge.is-learned{color:var(--teal);border-color:var(--teal-dim)}.badge.is-won{color:var(--copper);border-color:var(--copper-dim)}.loading{background:var(--bg-deep);color:var(--text-faint);font-family:var(--mono);place-items:center;font-size:12px;transition:opacity .2s,visibility .2s;display:grid;position:absolute;inset:0}.loading.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.sidebar{flex-direction:column;gap:12px;min-width:0;min-height:0;padding-right:2px;display:flex;overflow-y:auto}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px}.panel-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);align-items:center;gap:7px;margin:0 0 10px;font-size:11px;font-weight:600;display:flex}.panel-title svg{width:13px;height:13px;color:var(--copper)}.row{gap:8px;display:flex}.btn{height:var(--control-h);border:1px solid var(--line);background:var(--panel-2);min-width:0;color:var(--text);font:inherit;cursor:pointer;border-radius:6px;flex:1 1 0;justify-content:center;align-items:center;gap:7px;padding:0 10px;font-size:13px;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.btn svg{flex:none;width:15px;height:15px}.btn-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.btn:hover:not(:disabled){background:#262b33;border-color:#3a414c}.btn:active:not(:disabled){background:#1d2128}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--teal);outline-offset:1px}.btn-primary{background:var(--copper);border-color:var(--copper);color:#1a1206;font-weight:600}.btn-primary:hover:not(:disabled){background:#e89b45;border-color:#e89b45}.btn-primary.is-busy{background:var(--copper-dim);border-color:var(--copper-dim);color:#f0e2cf}.btn.is-on{border-color:var(--teal-dim);color:var(--teal);background:#23343a}.btn.is-on:hover:not(:disabled){border-color:var(--teal-dim);background:#2a4048}.slider-row{align-items:center;gap:10px;margin:10px 0;display:flex}.slider-row label{color:var(--text-dim);white-space:nowrap;flex:none;font-size:12px}.slider-row output{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--text);text-align:right;white-space:nowrap;flex:0 0 46px;font-size:12px}.slider-row input[type=range]{appearance:none;cursor:pointer;background:0 0;flex:auto;min-width:0;height:18px;margin:0}.slider-row input[type=range]:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.slider-row input[type=range]::-webkit-slider-runnable-track{background:var(--line);border-radius:2px;height:4px}.slider-row input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--copper);border:1px solid #1a1206;border-radius:50%;width:14px;height:14px;margin-top:-5px}.slider-row input[type=range]::-moz-range-track{background:var(--line);border-radius:2px;height:4px}.slider-row input[type=range]::-moz-range-thumb{background:var(--copper);border:1px solid #1a1206;border-radius:50%;width:12px;height:12px}.spark-wrap{margin-top:10px}#sparkline{border:1px solid var(--line-soft);background:var(--bg-deep);border-radius:6px;width:100%;height:64px;display:block}.spark-caption{font-family:var(--mono);color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;margin-top:5px;font-size:10px}.stats{flex-direction:column;margin:0;display:flex}.stats>div{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:10px;height:26px;display:flex}.stats>div:last-child{border-bottom:0}.stats dt{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:12px;overflow:hidden}.stats dd{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--text);text-align:right;white-space:nowrap;min-width:64px;margin:0;font-size:12px}.stats dd.is-good{color:var(--teal)}.stats dd.is-warn{color:var(--rose)}.foot{color:var(--text-faint);margin:0;padding:0 4px 4px;font-size:11px;line-height:1.5}.foot code{font-family:var(--mono);color:var(--text-dim);background:var(--bg-deep);border:1px solid var(--line-soft);border-radius:4px;padding:1px 4px;font-size:10.5px}.foot.is-warn{color:var(--rose)}.report{border:1px solid var(--line-soft);background:var(--bg-deep);max-height:240px;font-family:var(--mono);color:var(--text-dim);overflow-wrap:anywhere;border-radius:6px;margin:0;padding:8px 9px;font-size:11px;line-height:1.65;list-style:none;overflow-y:auto}.report li+li{margin-top:2px}.report li.is-head{color:var(--text)}.report li.is-good{color:var(--teal)}.report li.is-warn{color:var(--rose)}.crosshair{pointer-events:none;--gap:5px;width:0;height:0;position:absolute;top:50%;left:50%}.crosshair i{background:#e9e6e0d9;display:block;position:absolute;box-shadow:0 0 2px #000000e6}.crosshair .h{width:8px;height:2px;top:-1px}.crosshair .v{width:2px;height:8px;left:-1px}.crosshair .l{right:var(--gap)}.crosshair .r{left:var(--gap)}.crosshair .t{bottom:var(--gap)}.crosshair .b{top:var(--gap)}.crosshair .dot{background:var(--copper);width:2px;height:2px;top:-1px;left:-1px}.hitmarker{pointer-events:none;opacity:0;width:0;height:0;position:absolute;top:50%;left:50%}.hitmarker.is-on{opacity:1}.hitmarker i{background:var(--text);width:9px;height:2px;display:block;position:absolute;top:-1px;left:-4.5px;box-shadow:0 0 2px #000000e6}.hitmarker i:first-child{transform:rotate(45deg)translate(9px)}.hitmarker i:nth-child(2){transform:rotate(45deg)translate(-9px)}.hitmarker i:nth-child(3){transform:rotate(135deg)translate(9px)}.hitmarker i:nth-child(4){transform:rotate(135deg)translate(-9px)}.hitmarker.is-kill i{background:var(--rose)}.damage-veil{pointer-events:none;opacity:0;background:radial-gradient(120% 90%,#d9705f00 46%,#d9705f99 100%);transition:opacity .26s;position:absolute;inset:0}.hud{pointer-events:none;font-family:var(--mono);background:linear-gradient(#0e101300,#0e10139e);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex;position:absolute;bottom:0;left:0;right:0}.hud-block{align-items:center;gap:9px;min-width:0;display:flex}.hud-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);font-size:10px}.hud-value{text-align:right;font-variant-numeric:tabular-nums;min-width:38px;color:var(--text);text-shadow:0 1px 3px #000000e6;font-size:18px;line-height:1}.hud-value.is-warn{color:var(--rose)}.hud-ammo{text-align:right;font-variant-numeric:tabular-nums;min-width:66px;color:var(--text);text-shadow:0 1px 3px #000000e6;font-size:22px;line-height:1}.hud-ammo em{color:var(--text-dim);font-size:13px;font-style:normal}.hud-ammo.is-empty{color:var(--rose)}.hud-state{letter-spacing:.06em;text-transform:uppercase;min-width:64px;color:var(--teal);font-size:10px}.hud-state.is-warn{color:var(--rose)}.meter{border:1px solid var(--line);background:#0e1013bf;border-radius:3px;flex:none;width:150px;height:6px;overflow:hidden}.meter>i{background:var(--teal);width:100%;height:100%;display:block}.meter>i.is-low{background:var(--rose)}.meter-progress{width:100%;margin-top:10px}.meter-progress>i{background:var(--copper)}.veil{text-align:center;background:#0e1013d6;place-content:center;justify-items:center;gap:14px;padding:24px;display:grid;position:absolute;inset:0}.veil.is-hidden{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s,visibility .18s}.veil-play{flex:none;width:auto;height:40px;padding:0 18px}.veil-keys{font-family:var(--mono);grid-template-columns:auto auto;gap:3px 16px;margin:0;font-size:11px;display:grid}.veil-keys>div{display:contents}.veil-keys dt{text-align:right;color:var(--text)}.veil-keys dd{text-align:left;color:var(--text-dim);margin:0}.veil-note{max-width:46ch;color:var(--text-faint);margin:0;font-size:12px;line-height:1.55}.result{text-align:center;background:#0e1013e0;place-content:center;justify-items:center;gap:10px;padding:24px;display:grid;position:absolute;inset:0}.result.is-hidden{display:none}.result-title{color:var(--text);margin:0;font-size:22px}.result.is-win .result-title{color:var(--copper)}.result.is-loss .result-title{color:var(--rose)}.result-line{font-family:var(--mono);color:var(--text-dim);margin:0;font-size:12px}.result .btn{flex:none;width:auto;padding:0 16px}@media (max-width:560px){.hud{gap:8px;padding:10px}.meter{width:84px}.hud-label{display:none}.hud-value{min-width:30px;font-size:15px}.hud-ammo{min-width:54px;font-size:18px}.hud-state{min-width:0}.veil-keys{font-size:10px}}@media (max-width:1439px){.topbar{flex-wrap:wrap}.topbar>.pagenav{scrollbar-width:none;flex:1 0 100%;order:3;margin-top:10px;overflow-x:auto}.topbar>.pagenav::-webkit-scrollbar{display:none}}@media (max-width:880px){.stage{grid-template-rows:minmax(240px,46vh) auto;grid-template-columns:minmax(0,1fr);padding:12px}.sidebar{overflow-y:visible}.topbar{flex-wrap:wrap;padding:10px 12px}}@media (max-width:560px){.topbar>.pagenav{flex-wrap:wrap;row-gap:4px;overflow-x:visible}}
