:root{--bg: #0f0f14;--panel: #16161d;--panel-2: #1f1f28;--line: #4a4a52;--frame: #bcbcbc;--fg: #fcfcfc;--muted: #bcbcbc;--accent: #3cbcfc;--accent-ink: #000000;--accent-2: #f85838;--accent-2-ink: #0f0f14;--strip: #bcbcbc;--strip-ink: #0f0f14;--bad: #ff8a7a;--bevel-dark: #000000;--bevel-light: #3a3a44;--display: "Oxanium", "Segoe UI", system-ui, sans-serif;--body: "Chakra Petch", "Segoe UI", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, Consolas, monospace;color-scheme:dark}:root[data-theme=light]{--bg: #c9c6bf;--panel: #e4e1da;--panel-2: #efece6;--line: #8e8b85;--frame: #161618;--fg: #161618;--muted: #45444a;--accent: #1f4aa8;--accent-ink: #ffffff;--accent-2: #9a1d15;--accent-2-ink: #ffffff;--strip: #161618;--strip-ink: #e4e1da;--bad: #9a1d15;--bevel-dark: #8e8b85;--bevel-light: #ffffff;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.page{max-width:1080px;margin:0 auto;padding-block:24px 64px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.top{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;padding-bottom:20px;border-bottom:2px solid var(--line);margin-bottom:24px}.brand{display:flex;gap:12px;align-items:center;min-width:0}.reticle{width:34px;height:34px;flex:none;shape-rendering:crispEdges}.reticle .ring{fill:var(--accent)}.reticle .dot{fill:var(--accent-2)}h1{font-family:var(--display);font-weight:700;font-size:1.9rem;margin:0;line-height:1}.tagline{margin:4px 0 0;color:var(--muted);font-size:.9rem;text-wrap:balance}.toggles{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.toggle,.segmented{display:inline-flex;border:2px solid var(--line);border-radius:0;overflow:hidden}.toggle button,.segmented button{font-family:var(--display);background:transparent;border:0;padding:6px 12px;cursor:pointer;color:var(--muted);font-size:.85rem}.toggle button[aria-pressed=true],.segmented button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);font-weight:600}.toggle button:nth-child(2n)[aria-pressed=true],.segmented button:nth-child(2n)[aria-pressed=true]{background:var(--accent-2);color:var(--accent-2-ink)}.toggle button{display:inline-grid;justify-items:center}.toggle button>span{grid-area:1 / 1}.toggle .sizer{visibility:hidden}.toggles{align-items:stretch}.theme{background:transparent;border:2px solid var(--line);border-radius:0;min-width:2.4em;cursor:pointer;color:var(--muted)}.layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:16px}.targets,.soon{grid-column:1 / -1}@media(max-width:760px){.layout{grid-template-columns:minmax(0,1fr)}}.panel{background:var(--panel);border:2px solid var(--frame);border-radius:0;padding:18px;display:grid;gap:12px;align-content:start;min-width:0}.eyebrow{font-family:var(--display);font-size:.9rem;font-weight:600;color:var(--muted);margin:0}.panel>.eyebrow:first-child{margin:-18px -18px 4px;padding:6px 18px;background:var(--strip);color:var(--strip-ink);font-size:1.05rem;font-weight:700}.field{display:grid;gap:4px;border:0;padding:0;margin:0;min-width:0}.field>span,.field>legend{font-size:.8rem;color:var(--muted);padding:0;margin-bottom:4px}.pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}input,select{background:var(--panel-2);border:2px solid;border-color:var(--bevel-dark) var(--bevel-light) var(--bevel-light) var(--bevel-dark);border-radius:0;padding:9px 10px;font-family:var(--mono);font-size:1rem;width:100%;min-width:0}select{font-family:var(--body)}input[aria-invalid=true]{border-color:var(--bad)}.hint{margin:0;color:var(--muted);font-size:.82rem;max-width:70ch}.readout{position:relative;overflow:hidden;background:repeating-linear-gradient(90deg,transparent 0 23px,var(--line) 23px 24px) bottom / 100% 10px no-repeat,var(--panel)}.big{font-family:var(--mono);font-size:clamp(2.8rem,9vw,4.6rem);font-weight:600;line-height:1;margin:4px 0 0;font-variant-numeric:tabular-nums;color:var(--accent)}.unit{font-size:.35em;color:var(--muted);margin-left:8px;font-weight:400}.sub{margin:0;color:var(--muted)}.formula summary{cursor:pointer;color:var(--muted);font-size:.85rem}.formula code{display:block;font-family:var(--mono);font-size:.85rem;margin:8px 0 4px;overflow-wrap:anywhere}a{color:var(--accent);font-size:.85rem}.table-wrap{overflow-x:auto}table{width:100%;min-width:61rem;table-layout:fixed;border-collapse:collapse;font-variant-numeric:tabular-nums}table.compact{min-width:0}.col-main{width:11rem}.col-num{width:6.5rem}.col-copy{width:10rem}th,td{text-align:right;padding:9px 10px;border-bottom:2px solid var(--line);white-space:nowrap}thead th{vertical-align:bottom;font-family:var(--mono);font-size:.78rem;font-weight:600;color:var(--muted)}tbody th{text-align:left;font-weight:500;white-space:normal}td{font-family:var(--mono)}td.primary{color:var(--accent);font-weight:600}td.muted{color:var(--muted);font-family:var(--body);font-size:.82rem;text-align:left;white-space:normal}.game-cell{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.game-cell .why{margin-left:0}.inline-fov{width:70px;padding:3px 6px;font-size:.85rem}.copy{margin-left:8px;background:transparent;border:2px solid var(--accent-2);border-radius:0;padding:1px 7px;font-size:.72rem;color:var(--accent-2);cursor:pointer;font-family:var(--body)}td.primary .method{display:block;font-family:var(--body);font-size:.75rem;font-weight:400;color:var(--muted);white-space:normal}thead th.named{white-space:normal;min-width:9ch;vertical-align:bottom}.targets-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.targets-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.fixed-label{display:inline-grid;justify-items:center}.fixed-label>span{grid-area:1 / 1}.fixed-label .sizer{visibility:hidden}.ghost-btn.help-btn{color:var(--accent);border-color:var(--accent);animation:fade-in .25s ease-out;transition:color .2s ease-out,border-color .2s ease-out}.ghost-btn.help-btn[aria-expanded=true]{color:var(--accent-2);border-color:var(--accent-2)}.matches-help{padding-top:4px}.match-drawing{display:block;width:100%;max-width:420px;margin:12px 0 4px;fill:none;stroke:var(--muted);stroke-width:1.2}.match-drawing .screen{stroke:var(--fg)}.match-drawing .frame43,.match-drawing .guide{stroke-dasharray:4 4}.match-drawing .cross{stroke:var(--fg);stroke-width:1.6}.match-drawing .point{fill:var(--accent);stroke:none}.match-drawing text{fill:var(--fg);stroke:none;font-family:var(--mono);font-size:11px}.match-names{margin:4px 0;padding-left:18px;font-size:.85rem}.per-axis{display:grid;gap:6px;border-left:4px solid var(--accent);padding:4px 0 4px 12px}.collapse{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .3s ease-out,opacity .3s ease-out}.collapse.open{grid-template-rows:1fr;opacity:1}.collapse>div{min-height:0;overflow:hidden}.collapse.open>div{animation:open .3s ease-out}.collapse .per-axis{margin-top:12px}.why-row td{animation:fade-in .25s ease-out}@keyframes open{0%{opacity:0;max-height:0}to{opacity:1;max-height:20rem}}@keyframes fade-in{0%{opacity:0}}.per-axis code{font-family:var(--mono);font-size:1rem}.per-axis .copy{justify-self:start;margin-left:0}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0}.chip{border:2px dashed var(--line);border-radius:0;padding:2px 10px;font-size:.82rem;color:var(--muted)}.dpi{grid-column:1 / -1}.pad{display:grid;place-items:center;gap:6px;min-height:140px;padding:16px;text-align:center;border:2px dashed var(--line);border-radius:0;background:var(--panel-2);color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none}.pad.locked{border:2px solid var(--accent);cursor:none}.live{font-family:var(--mono);font-size:2rem;color:var(--accent);font-variant-numeric:tabular-nums}.dpi-summary{display:flex;flex-wrap:wrap;gap:24px}.mid{font-family:var(--mono);font-size:1.6rem;font-weight:600;margin:2px 0 0;font-variant-numeric:tabular-nums}.verdict{margin:0;font-size:.9rem}.verdict.good{color:var(--accent)}.verdict.not-raw,.verdict.unsteady{color:var(--bad)}.actions{display:flex;flex-wrap:wrap;gap:8px}.primary-btn,.ghost-btn{border-radius:0;padding:8px 14px;cursor:pointer;font-family:var(--display);font-weight:700}.primary-btn:active:not(:disabled),.ghost-btn:active{filter:brightness(.85)}.primary-btn{background:var(--accent-2);color:var(--accent-2-ink);border:2px solid var(--accent-2)}.ghost-btn{background:transparent;color:var(--fg);border:2px solid var(--line)}.profile,.finder{grid-column:1 / -1}.round-title{margin:0;font-family:var(--display);font-size:1.1rem}.muted-inline{color:var(--muted);font-size:.9rem}.scene{position:relative;width:100%;aspect-ratio:16 / 9;max-height:70vh;border:2px solid var(--line);border-radius:0;overflow:hidden;background:var(--scene-bg);--scene-bg: #0f0f14;--scene-grid: #2a2a32;--scene-target: #f85838;--scene-cross: #fcfcfc}.scene canvas{display:block;width:100%;height:100%}.scene:fullscreen{max-height:none;border:0;border-radius:0}.scene-start{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:max-content;height:max-content}.ab{display:flex;flex-wrap:wrap;gap:32px}.primary-btn:disabled{opacity:.5;cursor:not-allowed}.scene-note{position:absolute;left:0;right:0;bottom:16px;margin:0 auto;max-width:46ch;text-align:center;color:var(--bad);background:var(--panel);padding:6px 10px;border-radius:0;font-size:.85rem}.converted{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.converted li{display:flex;justify-content:space-between;gap:12px;border:2px solid var(--line);border-radius:0;padding:8px 12px}.converted strong{font-family:var(--mono);color:var(--accent)}.why{margin-left:10px;background:transparent;border:0;color:var(--accent);font-size:.78rem;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:3px}.why-row td{text-align:left;white-space:normal;font-family:var(--body);color:var(--muted);font-size:.88rem;background:var(--panel-2)}@media(max-width:760px){tbody th,thead th:first-child{position:sticky;left:0;z-index:1;background:var(--panel)}tbody th{white-space:normal;max-width:42vw}.why-row td{position:sticky;left:0}}
