@font-face{font-family:Staff MOUZ;src:url(/assets/fonts/StaffMOUZ-Light.woff2)format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Staff MOUZ;src:url(/assets/fonts/StaffMOUZ-Medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Staff MOUZ X Wide;src:url(/assets/fonts/StaffMOUZXWide-Light.woff2)format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Staff MOUZ X Wide;src:url(/assets/fonts/StaffMOUZXWide-Black.woff2)format("woff2");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:Staff MOUZ XX Condensed;src:url(/assets/fonts/StaffMOUZXXCondensed-Light.woff2)format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Staff MOUZ XX Condensed;src:url(/assets/fonts/StaffMOUZXXCondensed-Black.woff2)format("woff2");font-weight:900;font-style:normal;font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--mouz-red:red;--mouz-white:#fff;--mouz-black:#000;--color-bg:var(--mouz-black);--color-surface:#0a0a0a;--color-text:var(--mouz-white);--color-text-invert:var(--mouz-black);--color-accent:var(--mouz-red);--color-border:#ffffff24;--font-display:"Staff MOUZ X Wide", "Anton", "Oswald", "Arial Narrow", sans-serif;--font-body:"Staff MOUZ", "Inter", "Helvetica Neue", Arial, sans-serif;--font-condensed:"Staff MOUZ XX Condensed", "Staff MOUZ X Wide", sans-serif;--fw-light:300;--fw-medium:500;--fw-black:900;--tracking-display:.06em;--tracking-eyebrow:.22em;--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--space-5:32px;--space-6:48px;--space-7:64px;--space-8:96px;--radius:0px;--color-radiant:#59d97a;--color-dire:#e0555f;--color-landmark:#4ad6e8;--color-mana:#3aa0e8;font:var(--fw-medium) 15px/1.4 var(--font-body)}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);margin:0}#root{width:100%;min-height:100vh}h1,h2,h3{font-family:var(--font-display);text-transform:uppercase;letter-spacing:var(--tracking-display);font-weight:var(--fw-black);margin:0}button{font:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.app{background:var(--color-bg);width:100%;height:100vh;display:flex}.status-screen{height:100vh;padding:var(--space-4);text-align:center;font-family:var(--font-display);text-transform:uppercase;letter-spacing:var(--tracking-display);color:var(--color-text);justify-content:center;align-items:center;display:flex}.status-screen-error{color:var(--color-accent)}.sidebar{width:340px;max-width:100%;padding:var(--space-3);border-right:1px solid var(--color-border);background:var(--color-surface);flex:0 0 340px;overflow-y:auto}.sidebar h1{margin-bottom:var(--space-2);font-size:1.25rem}.sidebar .hint{color:var(--color-text);margin-bottom:var(--space-3);font-size:.8125rem;line-height:1.5}.status-box{background:var(--color-bg);border:1px solid var(--color-border);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-3);gap:var(--space-2);flex-direction:column;font-size:.8125rem;display:flex}.metrics-note{font-size:.75rem;line-height:1.5}.overlay-toggle{align-items:center;gap:var(--space-2);cursor:pointer;padding:2px 0;display:flex}.overlay-toggle input[type=checkbox]{accent-color:var(--color-accent);cursor:pointer;width:16px;height:16px}.team-group h2{margin:var(--space-3) 0 var(--space-2);font-size:.8125rem}.team-radiant h2{color:var(--color-radiant)}.team-dire h2{color:var(--color-dire)}.team-group ul{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.team-group li{align-items:center;gap:var(--space-2);padding:3px var(--space-2);font-size:.8125rem;display:flex}.tower-dot{border-radius:50%;flex:none;width:8px;height:8px}.match-view{min-width:0;padding:var(--space-4);gap:var(--space-3);flex-direction:column;flex:1;display:flex;overflow-y:auto}.map-canvas-wrap{flex:0 auto;justify-content:center;align-items:center;min-width:0;display:flex}.map-canvas-inner{aspect-ratio:1;border:1px solid var(--color-border);width:min(100%,62vh,760px);line-height:0;position:relative}.map-img,.map-svg{width:100%;height:100%;display:block;position:absolute;inset:0}.map-svg{pointer-events:none}.map-svg circle,.map-svg g{pointer-events:auto}.tooltip{background:var(--color-surface);color:var(--color-text);padding:4px var(--space-2);white-space:nowrap;pointer-events:none;border:1px solid var(--color-border);z-index:2;font-size:.75rem;position:absolute;transform:translate(-50%,-140%)}.replay-controls{align-items:center;gap:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);padding:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.btn-primary,.btn-secondary{font-family:var(--font-display);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);padding:var(--space-3) var(--space-4);border-radius:var(--radius);border:1px solid #0000;justify-content:center;align-items:center;font-size:.75rem;text-decoration:none;transition:background .15s,border-color .15s,color .15s,opacity .15s;display:inline-flex}.btn-primary{background:var(--color-accent);color:var(--color-text-invert);border-color:var(--color-accent)}.btn-primary:hover:not(:disabled){background:var(--color-text);border-color:var(--color-text)}.btn-primary:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.btn-secondary{color:var(--color-text);border-color:var(--color-border);background:0 0}.btn-secondary:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.btn-secondary:disabled{opacity:.35;cursor:not-allowed}.btn-icon{width:36px;height:36px;color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);background:0 0;flex:none;justify-content:center;align-items:center;transition:border-color .15s,color .15s;display:flex}.btn-icon:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.btn-icon:disabled{opacity:.35;cursor:not-allowed}.replay-time{font-variant-numeric:tabular-nums;text-align:center;min-width:3.5em;font-size:.875rem}.replay-time-end{color:var(--color-text);opacity:1}.replay-scrubber{appearance:none;cursor:pointer;background:0 0;flex:200px;min-width:120px;height:20px}.replay-scrubber:disabled{cursor:not-allowed;opacity:.35}.replay-scrubber::-webkit-slider-runnable-track{background:var(--color-border);height:4px}.replay-scrubber::-webkit-slider-thumb{-webkit-appearance:none;background:var(--color-accent);border-radius:var(--radius);border:none;width:14px;height:14px;margin-top:-5px}.replay-scrubber::-moz-range-track{background:var(--color-border);height:4px}.replay-scrubber::-moz-range-thumb{background:var(--color-accent);border-radius:var(--radius);border:none;width:14px;height:14px}.replay-speeds{flex:none;gap:4px;display:flex}.btn-chip{color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);font-variant-numeric:tabular-nums;background:0 0;padding:4px 10px;font-size:.8125rem;transition:border-color .15s,background .15s,color .15s}.btn-chip:hover:not(:disabled){border-color:var(--color-accent)}.btn-chip.active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-invert)}.btn-chip:disabled{opacity:.35;cursor:not-allowed}.replay-banner{background:var(--color-surface);border:1px solid var(--color-border);padding:var(--space-2) var(--space-3);font-size:.8125rem}.replay-banner-error{border-color:var(--color-accent);color:var(--color-accent)}.team-panels{gap:var(--space-3);flex-wrap:wrap;display:flex}.team-panel{background:var(--color-surface);border:1px solid var(--color-border);min-width:240px;padding:var(--space-3);flex:280px}.team-panel h3{margin-bottom:var(--space-2);font-size:1rem}.team-panel-radiant h3{color:var(--color-radiant)}.team-panel-dire h3{color:var(--color-dire)}.hero-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.hero-row{padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);flex-direction:column;gap:4px;transition:opacity .15s;display:flex}.hero-row:last-child{border-bottom:none}.hero-row-dead{opacity:.4}.hero-row-head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.hero-icon{object-fit:cover;border:1px solid var(--color-border);border-radius:50%;flex:none;width:20px;height:20px}.hero-icon-fallback{background:var(--color-bg)}.hero-name{font-size:.875rem;font-weight:var(--fw-medium);text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.hero-level{font-variant-numeric:tabular-nums;flex:none;font-size:.75rem}.hero-row-sub{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.hero-player{text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:.75rem;overflow:hidden}.hero-stats{align-items:center;gap:var(--space-2);font-variant-numeric:tabular-nums;flex:none;font-size:.75rem;display:flex}.hero-kda,.hero-lh{color:var(--color-text)}.hero-gold:after{content:"g";opacity:.6;margin-left:1px}.stat-bar{background:var(--color-bg);border:1px solid var(--color-border);height:6px}.stat-bar-fill{height:100%;transition:width .15s linear}.stat-bar-hp.stat-bar-radiant .stat-bar-fill{background:var(--color-radiant)}.stat-bar-hp.stat-bar-dire .stat-bar-fill{background:var(--color-dire)}.stat-bar-mp .stat-bar-fill{background:var(--color-mana)}.hero-items{gap:6px;margin-top:2px;display:flex}.item-grid{grid-template-columns:repeat(3,1fr);gap:2px;display:grid}.item-grid-extra{grid-template-columns:repeat(1,1fr);align-content:start}.item-slot{background:var(--color-bg);border:1px solid var(--color-border);justify-content:center;align-items:center;width:22px;height:16px;display:flex;position:relative;overflow:hidden}.item-slot-empty{opacity:.4}.item-slot img{object-fit:cover;width:100%;height:100%}.item-slot-fallback{text-align:center;font-size:.5rem;line-height:1;overflow:hidden}.item-slot-charges{color:#fff;text-shadow:0 0 2px #000,0 0 2px #000;font-size:.5rem;line-height:1;position:absolute;bottom:0;right:1px}@media (width<=860px){.app{flex-direction:column;height:auto;min-height:100vh}.sidebar{border-right:none;border-bottom:1px solid var(--color-border);flex:none;width:100%;max-height:40vh}.match-view{padding:var(--space-3)}.map-canvas-inner{width:min(100%,90vw)}}.home{width:100%;max-width:1200px;min-height:100vh;padding:var(--space-6) var(--space-4) var(--space-8);margin:0 auto}.home-header{margin-bottom:var(--space-5);justify-content:space-between;align-items:flex-end;gap:var(--space-3);display:flex}.home-header-titles{gap:var(--space-1);flex-direction:column;display:flex}.home-kicker{font-family:var(--font-display);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--color-accent);font-size:.8125rem}.home-header h1{font-size:2.441rem}.match-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.match-card{gap:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-4);color:var(--color-text);flex-direction:column;text-decoration:none;transition:border-color .15s,background .15s;display:flex}.match-card:hover{border-color:var(--color-accent);background:var(--color-bg)}.match-card-kicker{font-family:var(--font-display);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--color-accent);font-size:.6875rem}.match-card-teams{justify-content:space-between;align-items:center;gap:var(--space-2);font-family:var(--font-display);text-transform:uppercase;letter-spacing:var(--tracking-display);font-size:1rem;display:flex}.match-card-team{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.match-card-team-radiant{color:var(--color-radiant);text-align:left}.match-card-team-dire{color:var(--color-dire);text-align:right}.match-card-vs{opacity:.5;flex:none;font-size:.75rem}.match-card-duration{font-variant-numeric:tabular-nums;opacity:.7;font-size:.8125rem}.match-card-rosters{gap:var(--space-2);flex-direction:column;display:flex}.match-card-roster{padding:var(--space-2);background:var(--color-bg);border:1px solid var(--color-border);flex-wrap:wrap;gap:6px;margin:0;list-style:none;display:flex}.match-card-roster-radiant{border-left:2px solid var(--color-radiant)}.match-card-roster-dire{border-left:2px solid var(--color-dire)}@media (width<=640px){.home{padding:var(--space-4) var(--space-3) var(--space-6)}.home-header{flex-direction:column;align-items:stretch}.home-header h1{font-size:1.953rem}.match-grid{grid-template-columns:1fr}.match-card-teams{font-size:.875rem}}.upload-page{width:100%;max-width:640px;min-height:100vh;padding:var(--space-6) var(--space-4) var(--space-8);flex-direction:column;margin:0 auto;display:flex}.upload-back-link{color:var(--color-text);opacity:.7;margin-bottom:var(--space-4);align-self:flex-start;font-size:.8125rem;text-decoration:none;transition:opacity .15s,color .15s}.upload-back-link:hover{opacity:1;color:var(--color-accent)}.upload-header{align-items:stretch;gap:var(--space-1);margin-bottom:var(--space-5);flex-direction:column;display:flex}.upload-lede{opacity:.8;margin:var(--space-2) 0 0;font-size:.9375rem;line-height:1.5}.upload-card{background:var(--color-surface);border:1px solid var(--color-border);padding:var(--space-4)}.upload-form{gap:var(--space-4);flex-direction:column;display:flex}.upload-field{gap:var(--space-2);flex-direction:column;display:flex}.upload-field-label{font-family:var(--font-display);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--color-text);opacity:.85;font-size:.6875rem}.upload-field-error{color:var(--color-accent);font-size:.8125rem}.upload-file-meta,.upload-status-meta{opacity:.75;font-variant-numeric:tabular-nums;font-size:.8125rem}.upload-input{background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-2) var(--space-3);font:inherit;transition:border-color .15s}.upload-input:hover{border-color:#ffffff4d}.upload-input-invalid{border-color:var(--color-accent)}input[type=file]{color:var(--color-text);font:inherit;font-size:.875rem}input[type=file]::file-selector-button{font:inherit;font-family:var(--font-display);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-2) var(--space-3);margin-right:var(--space-3);cursor:pointer;background:0 0;font-size:.6875rem;transition:border-color .15s,color .15s}input[type=file]:hover::file-selector-button{border-color:var(--color-accent);color:var(--color-accent)}input[type=file]:disabled::file-selector-button{cursor:not-allowed;opacity:.35}.upload-actions{gap:var(--space-3);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.upload-status{gap:var(--space-2);flex-direction:column;display:flex}.upload-status-label{font-family:var(--font-display);text-transform:uppercase;letter-spacing:var(--tracking-display);font-size:1rem}.upload-status-error .upload-status-label{color:var(--color-accent)}.upload-note{opacity:.75;margin:0;font-size:.8125rem;line-height:1.5}.upload-progress-track{background:var(--color-bg);border:1px solid var(--color-border);height:6px;position:relative;overflow:hidden}.upload-progress-fill{background:var(--color-accent);height:100%;transition:width .15s linear}.upload-progress-indeterminate .upload-progress-fill{width:35%;animation:1.6s ease-in-out infinite upload-indeterminate;position:absolute;inset:0}@keyframes upload-indeterminate{0%{transform:translate(-100%)}50%{transform:translate(185%)}to{transform:translate(-100%)}}@media (prefers-reduced-motion:reduce){.upload-progress-indeterminate .upload-progress-fill{opacity:.5;width:100%;animation:none}}@media (width<=640px){.upload-page{padding:var(--space-4) var(--space-3) var(--space-6)}.upload-actions{flex-direction:column;align-items:stretch}}
