:root{--bg:#16181d;--bg-raised:#1f2229;--bg-card:#23272f;--border:#333945;--text:#e8eaee;--text-muted:#9aa1ad;--accent:#e8734a;--accent-hover:#f08560;--green:#5ac878;--blue:#5a8cdc;--red:#d9534f;--radius:10px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.55}.app{flex-direction:column;min-height:100%;display:flex}.app-play{height:100vh;overflow:hidden}.app-header{border-bottom:1px solid var(--border);background:var(--bg-raised);justify-content:space-between;align-items:center;padding:14px 28px;display:flex}.brand{color:var(--text);letter-spacing:.02em;font-size:1.3rem;font-weight:700;text-decoration:none}.brand span{color:var(--accent)}.app-header nav{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:14px 20px;display:flex}.app-header nav a{color:var(--text-muted);font-weight:500;text-decoration:none}.app-header nav a:hover,.app-header nav a.active{color:var(--text)}.lang-toggle{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;padding:3px 9px;font-size:.8rem;font-weight:700}.lang-toggle:hover{color:var(--text);border-color:var(--text-muted)}.resume-card{border-color:var(--accent)}.main{flex:1;width:100%;max-width:900px;margin:0 auto;padding:32px 20px 64px}.main-play{flex:1;min-height:0;display:flex}.page h1{margin:0 0 8px;font-size:1.9rem}.muted{color:var(--text-muted)}.error{color:var(--red);margin:6px 0 0}.hero{text-align:center;padding:40px 0 24px}.hero h1{margin-bottom:12px;font-size:2.4rem}.hero h1 em{color:var(--accent);font-style:normal}.lede{max-width:640px;color:var(--text-muted);margin:0 auto 28px;font-size:1.08rem}.feature-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:40px;display:grid}.feature{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px}.feature h3{color:var(--accent);margin:0 0 6px}.feature p{color:var(--text-muted);margin:0}.btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);color:var(--text);cursor:pointer;padding:9px 18px;font-size:.95rem;font-weight:600;text-decoration:none;transition:background .12s,border-color .12s;display:inline-block}.btn:hover:not(:disabled){border-color:var(--text-muted)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#16181d}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-lg{padding:13px 26px;font-size:1.05rem}.btn-chip{padding:6px 12px;font-size:.85rem}.btn-chip.active{border-color:var(--accent);color:var(--accent)}.btn-chip.btn-primary.active{color:#16181d;background:var(--accent-hover);border-color:var(--accent-hover)}.btn.danger{color:var(--red)}.cta-row{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:26px;display:flex}input[type=number],input[type=text]{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;width:140px;padding:9px 12px;font-size:1rem}input:focus{outline:2px solid var(--accent);outline-offset:-1px}.input-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin:18px 0;padding:20px 22px}.card h3{margin:0 0 8px}.checklist{color:var(--text-muted);margin:8px 0 0;padding-left:20px}.checklist li{margin:4px 0}.field{align-items:center;gap:14px;margin:12px 0;display:flex}.field>span{min-width:190px;color:var(--text-muted)}.field.checkbox{align-items:flex-start}.field.checkbox span{min-width:0}.play-root{flex:1;min-height:0;position:relative}.hide-cursor,.hide-cursor *{cursor:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==) 0 0,none!important}.edge-warning{border-radius:var(--radius);z-index:7;pointer-events:none;background:#d9534fd9;padding:6px 16px;font-size:.9rem;font-weight:600;position:absolute;top:70px;left:50%;transform:translate(-50%)}.play-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.crosshair{pointer-events:none;z-index:5;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.crosshair span{border-radius:1px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hud{border:1px solid var(--border);border-radius:var(--radius);font-variant-numeric:tabular-nums;z-index:6;background:#16181dbf;gap:20px;padding:8px 18px;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%)}.hud-label{color:var(--accent);font-weight:600}.hud-timer{text-align:center;min-width:3.2em;font-weight:600}.strafe-prompt{z-index:6;pointer-events:none;gap:26px;font-size:1.5rem;font-weight:700;display:flex;position:absolute;top:70px;left:50%;transform:translate(-50%)}.strafe-prompt span{border-radius:var(--radius);color:var(--text-muted);border:1px solid var(--border);background:#16181d8c;padding:4px 18px;transition:color .1s,border-color .1s}.strafe-prompt span.active{color:var(--accent);border-color:var(--accent);background:#e8734a1f}.warning-banner{border-radius:var(--radius);z-index:6;background:#785014d9;border:1px solid #a87c2a;max-width:640px;padding:10px 16px;font-size:.9rem;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.overlay{cursor:pointer;z-index:10;background:#0a0b0eb8;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.overlay-dim{cursor:default}.overlay-card{text-align:center;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);max-width:460px;padding:28px 34px}.overlay-card h2{margin:0 0 10px}.overlay-card .btn{margin-top:14px}.recommendation{text-align:center}.rec-big{color:var(--accent);font-variant-numeric:tabular-nums;font-size:4.6rem;font-weight:800;line-height:1.1}.rec-sub{color:var(--text-muted);font-size:1.1rem}.confidence{text-transform:capitalize;border-radius:999px;margin:6px 0 18px;padding:4px 14px;font-size:.9rem;font-weight:600;display:inline-block}.confidence-high{color:var(--green);background:#5ac87826}.confidence-medium{color:#dcb450;background:#dcb45026}.confidence-low{color:var(--red);background:#d9534f26}.console-line{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin:10px 0 8px;display:flex}.console-line code{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:9px 16px;font-size:1rem}.recommendation .card{text-align:left}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);text-align:center;padding:14px 16px}.stat-label{color:var(--text-muted);font-size:.85rem}.stat-value{font-variant-numeric:tabular-nums;font-size:1.7rem;font-weight:700}.stat-hint{color:var(--text-muted);font-size:.78rem}.block-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin:18px 0}.block-table th,.block-table td{text-align:left;border-bottom:1px solid var(--border);padding:9px 12px}.block-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.85rem;font-weight:600}.bias-over{color:var(--green)}.bias-under{color:var(--blue)}.row-actions{gap:8px;display:flex}.sens-chart{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:620px;margin:12px 0}.drill-stats{margin:26px 0}.drill-stats h2{margin:0 0 4px;font-size:1.35rem}.chart-title{color:var(--text-muted);margin:18px 0 4px;font-size:1rem;font-weight:600}.drill-charts{grid-template-columns:1fr 1fr;align-items:start;gap:4px 18px;display:grid}.chart-cell{min-width:0}.chart-cell .sens-chart{max-width:none}.span-2{grid-column:1/-1}@media (width<=760px){.drill-charts{grid-template-columns:1fr}.span-2{grid-column:auto}}.replay-canvas{border:1px solid var(--border);border-radius:var(--radius);background:#1b1e23;width:100%;height:380px;display:block}.replay-hint{margin:6px 0;font-size:.82rem}.replay-tabs{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.replay-svg{max-width:680px}.replay-legend{color:var(--text-muted);flex-wrap:wrap;gap:8px 18px;margin:4px 0 8px;font-size:.82rem;display:flex}.legend-item{align-items:center;gap:6px;display:inline-flex}.legend-swatch{border-radius:3px;width:18px;height:8px;display:inline-block}.legend-speed{background:linear-gradient(90deg,#3994ef,#66ef39,#ef3939)}.legend-ball{background:#ff553340;border:1.5px solid #f53;border-radius:50%;width:12px;height:12px}.legend-ballpath{border-top:2px dashed #ffb14a;border-radius:0;height:0}.legend-start{background:#e8eaee;border-radius:50%;width:8px;height:8px}.legend-hit{background:#3ee07a;border:1.2px solid #0f3d22;border-radius:50%;width:10px;height:10px}.legend-cross{color:#d9534f;font-weight:700}.chart-value{fill:var(--text);font-size:11px}.chart-tick,.chart-axis{fill:var(--text-muted);font-size:10px}.drill-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin:22px 0;display:grid}.drill-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:10px;padding:18px 20px;display:flex}.drill-card p{color:var(--text-muted);flex:1;margin:0}.drill-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.drill-head h3{color:var(--accent);margin:0}.drill-duration{color:var(--text-muted);white-space:nowrap;font-size:.85rem}.drill-tags{flex-wrap:wrap;gap:6px;display:flex}.drill-tag{color:var(--accent);background:#e8734a1f;border-radius:999px;padding:2px 9px;font-size:.75rem}.drill-card .btn{align-self:flex-start}.drill-switch{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;margin:16px 0 4px;padding:12px 16px}.badge-cs2{color:var(--blue);white-space:nowrap;background:#5a8cdc2e;border-radius:999px;margin-left:8px;padding:1px 8px;font-size:.72rem;font-weight:600;display:inline-block}.ad-placeholder{border:1px dashed var(--border);border-radius:var(--radius);background:var(--bg-raised);color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:4px;margin:30px auto;display:flex}.ad-leaderboard{width:100%;max-width:728px;height:90px}.ad-rectangle{width:300px;height:250px}.ad-tag{text-transform:uppercase;letter-spacing:.12em;font-size:.7rem}.ad-size{opacity:.6;font-size:.85rem}.calibration-strip{text-align:center;border:2px dashed var(--accent);border-radius:var(--radius);min-height:110px;color:var(--text);background:#e8734a14;justify-content:center;align-items:center;margin-top:12px;padding:14px 24px}.calibration-confirm{border:1px solid var(--accent);border-radius:var(--radius);background:#e8734a14;margin-top:10px;padding:12px 16px}.touch-banner{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-raised);max-width:900px;color:var(--text-muted);margin:12px auto 0;padding:8px 16px;font-size:.9rem}.mobile-gate{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.mobile-gate-card{text-align:center;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);max-width:420px;padding:34px 28px}.mobile-gate-icon{margin-bottom:8px;font-size:2.6rem}.mobile-gate-card h1{margin:0 0 12px;font-size:1.5rem}.mobile-gate-card h1 span{color:var(--accent)}.mobile-gate-card p{color:var(--text-muted);margin:10px 0}.mobile-gate-card strong{color:var(--text)}.crosshair-preview{background:#3a4048;border-radius:8px;height:70px;margin-top:10px;position:relative}.crosshair-preview span{border-radius:1px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.account-form{flex-direction:column;gap:10px;max-width:360px;margin-top:12px;display:flex}.demo-drop{border:2px dashed var(--border,#3a3f4a);text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:10px;padding:26px;display:flex}.demo-progress{width:100%;max-width:420px}.demo-progress-bar{background:#ffffff14;border-radius:4px;height:8px;overflow:hidden}.demo-progress-bar>div{background:var(--accent,#4f8cff);height:100%;transition:width .2s}.demo-roster{flex-wrap:wrap;gap:8px;margin:10px 0;display:flex}.demo-propositions{grid-template-columns:1fr 1fr;gap:12px;margin:12px 0;display:grid}.demo-proposition{border:1px solid var(--border,#3a3f4a);border-radius:10px;padding:12px 16px}.demo-proposition .big{margin:4px 0;font-size:1.6rem;font-weight:700}.demo-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.demo-item{border:1px solid var(--border,#3a3f4a);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.demo-item-main{flex-direction:column;gap:2px;display:flex}.demo-item-actions{gap:8px;display:flex}.report-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:12px 0;display:grid}.stat-card{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.stat-card .stat-value{font-size:1.5rem;font-weight:700}.stat-card .stat-label{color:var(--muted,#9aa3b2);font-size:.85rem}.demo-table-wrap{margin-top:8px;overflow-x:auto}.demo-table{border-collapse:collapse;width:100%;font-size:.92rem}.demo-table th,.demo-table td{text-align:left;white-space:nowrap;border-bottom:1px solid #ffffff12;padding:6px 10px}.demo-table tbody tr{cursor:pointer}.demo-table tbody tr:hover{background:#ffffff0a}.demo-table tbody tr.selected{background:#4f8cff1f}.demo-valid{color:#46d17e;font-weight:600}.kill-trace-chart{width:100%;height:auto;margin-top:10px}.kill-trace-chart .axis{stroke:#ffffff40;stroke-width:1px}.kill-trace-chart .required-line{stroke:#e2b53e;stroke-dasharray:6 4;stroke-width:1.5px}.kill-trace-chart .travel-line{stroke:var(--accent,#4f8cff);stroke-width:2px}.kill-trace-chart .kill-dot{fill:#46d17e}.kill-trace-chart .tick-label{fill:var(--muted,#9aa3b2);font-size:11px}@media (width<=700px){.demo-propositions{grid-template-columns:1fr}}.demo-agg-subtitle{color:var(--muted,#9aa3b2);text-transform:uppercase;letter-spacing:.04em;margin:14px 0 4px;font-size:.9rem;font-weight:600}.demo-hs-block{border-top:1px solid #ffffff14;margin-top:12px;padding-top:10px}.demo-hs-block h4{color:var(--muted,#9aa3b2);text-transform:uppercase;letter-spacing:.04em;margin:0 0 6px;font-size:.9rem;font-weight:600}.app-header nav{gap:10px 14px}.nav-group{align-items:center;gap:14px;display:flex}.nav-sep{background:var(--border,#3a3f4a);width:1px;height:20px;display:inline-block}.nav-cta{background:var(--accent,#4f8cff);border-radius:8px;align-items:center;gap:7px;padding:7px 14px;font-weight:600;line-height:1;text-decoration:none;transition:filter .15s;display:inline-flex;color:#fff!important}.nav-cta:hover{filter:brightness(1.12)}.nav-cta.active{outline-offset:1px;outline:2px solid #ffffff59}.account-menu{position:relative}.account-trigger{border:1px solid var(--border,#3a3f4a);color:var(--text-muted,#9aa3b2);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:8px;padding:4px 12px 4px 4px;font-weight:600;display:inline-flex}.account-trigger:hover,.account-trigger.authed{color:var(--text,#e8eaee)}.account-avatar{background:var(--accent,#4f8cff);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:.85rem;font-weight:700;display:inline-flex}.account-caret{font-size:.7rem}.account-dropdown{background:var(--bg-raised,#171a21);border:1px solid var(--border,#3a3f4a);z-index:50;border-radius:10px;flex-direction:column;min-width:230px;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 32px #00000073}.account-dd-header{color:var(--text-muted,#9aa3b2);padding:8px 12px;font-size:.82rem}.account-dropdown a,.account-dropdown button{text-align:left;width:100%;color:var(--text,#e8eaee);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:7px;padding:9px 12px;font-weight:500;text-decoration:none;display:block}.account-dropdown a:hover,.account-dropdown button:hover{color:var(--text,#e8eaee);background:#ffffff0f}.account-dropdown button.danger{color:#e0705a}.account-dd-sep{background:var(--border,#3a3f4a);height:1px;margin:6px 4px}.account-dd-note{color:#e0705a;margin:4px 12px 8px;font-size:.8rem}.stats-tabs{gap:8px;margin-bottom:20px;display:flex}.page.account{justify-content:center;display:flex}.account-box{text-align:center;width:100%;max-width:420px}.account-box h1{margin-top:0}.account-tabs{justify-content:center;gap:8px;margin-bottom:18px;display:flex}.account-form{text-align:left;flex-direction:column;gap:14px;max-width:none;margin-top:0;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field-label{color:var(--text-muted,#9aa3b2);text-transform:uppercase;letter-spacing:.05em;font-size:.82rem;font-weight:600}.field-input{box-sizing:border-box;border:1px solid var(--border,#3a3f4a);width:100%;color:var(--text,#e8eaee);font:inherit;background:#ffffff08;border-radius:8px;padding:11px 12px;transition:border-color .15s,box-shadow .15s}.field-input:focus{border-color:var(--accent,#4f8cff);outline:none;box-shadow:0 0 0 3px #4f8cff2e}.field-password{position:relative}.field-password .field-input{padding-right:44px}.eye-btn{color:var(--text-muted,#9aa3b2);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px;display:inline-flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.eye-btn:hover{color:var(--text,#e8eaee);background:#ffffff0f}.btn-block{width:100%}.account-cta{justify-content:center}.account-privacy{margin-bottom:0}.consent-banner{z-index:100;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:min(680px,100vw - 32px);padding:16px 20px;position:fixed;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #00000080}.consent-text strong{margin-bottom:4px;display:block}.consent-text p{color:var(--text-muted);margin:0;font-size:.9rem}.consent-text a{color:var(--accent)}.consent-options{border-top:1px solid var(--border);flex-direction:column;gap:6px;margin-top:12px;padding-top:12px;font-size:.9rem;display:flex}.consent-actions{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.app-footer{border-top:1px solid var(--border);color:var(--text-muted);align-items:center;gap:18px;margin-top:auto;padding:14px 28px;font-size:.85rem;display:flex}.app-footer a{color:var(--text-muted)}.app-footer a:hover{color:var(--text)}.linklike{font:inherit;color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.linklike:hover{color:var(--text)}.privacy{max-width:760px}.privacy h2{margin:28px 0 8px;font-size:1.15rem}.privacy p{color:var(--text-muted)}
