*,:after,:before{box-sizing:border-box}body,html{height:100%}body{margin:0;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background:var(--bg);color:var(--text);font-family:var(--font-sans);transition:var(--transition)}canvas,img,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit;background:none;border:none}button{cursor:pointer}.button:disabled,button:disabled{cursor:not-allowed;opacity:.6}:root{--font-sans:ui-sans-serif,system-ui,Segoe UI,Roboto,Inter,Arial,sans-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,monospace;--radius:12px;--transition:color .15s ease,background-color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease;--accent:#f05a28;--accent-2:#33afff;--red:#d0021b;--yellow:#fc0;--blue:#33afff;--green:#0c6;--loot-grey:#ccc;--loot-green:#5ab85a;--loot-blue:#3fa9f5;--loot-purple:#9b59b6;--loot-gold:#f39c12;--loot-red:#c0392b;--loot-teal:#1abc9c;--danger:var(--red);--bg:#0d0d0d;--panel:#1a1a1a;--text:#e6e6e6;--muted:#b3b3b3;--border:#2a2a2a;--link:var(--accent);--link-hov:#ff6b3d;--shadow:0 0 0;--accent-soft:rgba(240,90,40,.07);color-scheme:dark}:root[data-theme=light]{--bg:#fff;--panel:#f3f4f6;--text:#111;--muted:#555;--border:#e5e7eb;--link:#d94e1f;--link-hov:#bf431b;--shadow:0 2px 12px rgba(0,0,0,.08);color-scheme:light}:root[data-theme=dark]{--bg:#0d0d0d;--panel:#1a1a1a;--text:#e6e6e6;--muted:#b3b3b3;--border:#2a2a2a;--link:#f05a28;--link-hov:#ff6b3d;--shadow:0 0 16px rgba(240,90,40,.1);color-scheme:dark}::selection{background:rgba(240,90,40,.35);color:var(--text)}a{color:var(--link);text-decoration:none;transition:var(--transition)}a:hover{color:var(--link-hov)}.button:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--link);outline-offset:2px}.muted{color:var(--muted)}.mono{font-family:var(--font-mono)}.page{min-height:100%;display:flex;background:var(--bg);color:var(--text)}.page>.inner{flex:1 1;max-width:1100px;margin:0 auto;padding:20px 16px}@media (min-width:768px){.page>.inner{padding:28px}}.page.admin,.page.public{background:var(--bg);color:var(--text)}.page.admin .card,.page.public .card{background:var(--panel);color:var(--text)}.page.admin .muted,.page.public .muted{color:var(--muted)}.header{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.header .title{font-weight:700;letter-spacing:-.01em;line-height:1.1;margin:0;color:var(--text);--title-main-size:clamp(32px,5vw,56px);--title-sub-size:clamp(20px,4vw,40px);font-size:var(--title-main-size)}.header .title .title-main{display:block;font-size:var(--title-main-size);color:var(--accent)}.header .title .title-sub{display:block;font-size:var(--title-sub-size);text-transform:uppercase;margin-top:2px;color:var(--text)}.header .subtitle{font-size:14px;color:var(--muted)}.header .space-between{align-items:flex-end}.header-actions{align-items:center;justify-content:flex-end}.controls,.header-actions{display:flex;gap:8px;flex-wrap:wrap}.controls{margin:10px 0 16px}.controls .icon{color:var(--muted)}.input,.select,.textarea{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:.5rem .75rem;min-width:0;line-height:1.3;transition:var(--transition)}.input::placeholder,.textarea::placeholder{color:var(--muted)}.select{padding-right:2.1rem}.input{min-width:220px}.input,.select{min-height:36px}.textarea{resize:vertical}.bp-status-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:16px;font-size:14px;color:var(--muted)}.bp-status-bar .button{padding:6px 14px}.bp-status-item{gap:4px}.bp-status-item,.button,button.button{display:inline-flex;align-items:center}.button,button.button{gap:6px;padding:8px 12px;border-radius:10px;border:1px solid var(--border);background:var(--panel);color:var(--text);text-decoration:none;transition:var(--transition)}.button:hover,button.button:hover{background:var(--accent-soft)}.button.primary,button.button.primary{background:var(--accent);border:none;color:#fff}.button.primary:hover,button.button.primary:hover{filter:brightness(1.05)}.button.danger,button.button.danger{background:var(--red);border:none;color:#fff}.button.danger:hover,button.button.danger:hover{filter:brightness(1.05)}.button.secondary,button.button.secondary{background:var(--panel);border:1px solid var(--border);color:var(--text)}.button.ghost,button.button.ghost{background:transparent;border:1px solid var(--border);color:var(--link)}.button.ghost:hover,button.button.ghost:hover{background:rgba(240,90,40,.07)}.card{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;background:var(--panel);color:var(--text);transition:var(--transition)}.card+.card{margin-top:12px}.stack-mobile{display:flex;flex-wrap:wrap;gap:12px}.stack-mobile>*{flex:1 1 220px;min-width:0}.reset-card{display:flex;flex-direction:column;gap:12px}.reset-card .reset-warning{display:flex;align-items:flex-start;gap:12px}.reset-card .reset-warning .icon{flex-shrink:0;color:var(--red)}.reset-card .reset-confirm{display:flex;flex-direction:column;gap:12px}.reset-card .reset-actions{display:flex;gap:8px;flex-wrap:wrap}@media (max-width:640px){.stack-mobile{flex-direction:column}.stack-mobile>*{width:100%}.reset-card .reset-actions,.reset-card .reset-warning{flex-direction:column}.reset-card .reset-actions>*{width:100%}}.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius)}.table{width:100%;border-collapse:collapse;font-size:14px}.table td,.table th{padding:8px 10px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;transition:var(--transition)}.table th{font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.table tr:hover td{background-color:rgba(240,90,40,.07)}@media (max-width:640px){.table td,.table th{white-space:normal}.table td .chip{white-space:nowrap}.table .clamp-1{white-space:normal;overflow:visible;text-overflow:clip}}.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border:1px solid var(--border);border-radius:999px;font-size:12px;background:transparent;color:var(--text);transition:var(--transition)}.chip.winner{background:var(--accent);color:#fff;border:none}.chip.champion{background:var(--accent-2);color:#111;border:none}.champion-banner{display:flex;align-items:center;gap:8px;background:linear-gradient(90deg,var(--accent),var(--accent-2));color:#111;border:none;font-weight:700;padding:12px;border-radius:var(--radius);box-shadow:var(--shadow)}.badge-dev,.badge-seed,.badge-war{display:inline-block;font-size:11px;padding:2px 6px;border-radius:999px;border:1px solid var(--border)}.badge-dev,.badge-seed,.badge-war{color:#b8860b;background:rgba(184,134,11,.08)}.badge[rarity=gold]{background:var(--loot-gold);color:#111}.bracket-grid{display:flex;gap:12px;align-items:flex-start;min-width:100%;position:relative}.bracket-col{flex:0 0 clamp(260px,80vw,420px);display:flex;flex-direction:column;gap:12px}.round-header{position:-webkit-sticky;position:sticky;top:0;background:var(--bg);font-weight:700;padding-bottom:4px;z-index:1}.match-card{display:block;text-decoration:none;padding:12px;position:relative;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);color:var(--text);box-shadow:var(--shadow);transition:var(--transition)}.match-card.pending{opacity:.5}.match-card .label{font-size:12px;color:var(--muted);margin-bottom:4px}.match-row{display:flex;align-items:center;justify-content:space-between;gap:8px;position:relative;padding:2px 0;border-radius:6px}.match-row.winner{background-color:rgba(240,90,40,.15);box-shadow:0 0 0 2px var(--accent)}.match-left{display:flex;align-items:center;gap:8px;min-width:0;flex:1 1}.match-time{font-family:var(--font-mono);text-align:right;min-width:6.5ch}.winner-badge{margin-left:6px;flex:0 0 auto}.alias{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slot{position:absolute;width:0;height:0}.match-row .slot{left:0}.match-row .slot,.slot.slot-out{top:50%;transform:translateY(-50%)}.slot.slot-out{right:0}.match-wrap{position:relative;will-change:transform}.bracket-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.bracket-lines path{fill:none;stroke:var(--muted);stroke-width:2;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}.bracket-lines path.ready{stroke:var(--text)}@media (min-width:1200px){.bracket-grid{min-width:0;width:100%;gap:64px;justify-content:space-evenly}.bracket-col{flex:1 1;min-width:320px;max-width:480px;align-items:center;gap:24px}.bracket-col .match-card{width:var(--match-card-width,max-content)}}.match-divider{border:none;border-top:1px solid var(--border);margin:8px 0}.competitor{display:flex;justify-content:space-between;align-items:center;padding:4px 0}.competitor.winner{background-color:rgba(240,90,40,.15);border-radius:6px;padding:4px 8px;box-shadow:0 0 0 2px var(--accent)}.match-inner{display:flex;flex-direction:column;min-height:100%}.back-link{margin-top:auto;align-self:flex-start}.match-heading{width:100%;margin:0 auto;padding:clamp(16px,6vw,48px) clamp(12px,6vw,40px);display:grid;grid-gap:clamp(12px,4vw,40px);gap:clamp(12px,4vw,40px);align-items:center;justify-items:center;text-align:center}.match-heading .player{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(8px,2vw,24px);font-size:clamp(28px,8vw,100px);font-weight:700;line-height:1;letter-spacing:-.01em;text-align:inherit;min-width:0}.match-heading .player-name{display:inline-block;line-height:1;text-align:inherit;word-break:break-word}.match-heading .player .badge-seed{font-size:clamp(14px,2.5vw,28px);padding:clamp(2px,.5vw,8px) clamp(6px,1.2vw,18px);line-height:1}.match-heading .player .trophy{font-size:clamp(28px,5vw,60px);margin:0;line-height:1}.match-heading .trophy-right{margin-left:0}.match-heading .vs{display:inline-flex;align-items:center;justify-content:center;font-size:clamp(36px,12vw,120px);font-weight:800;line-height:1;padding:clamp(4px,1.5vw,16px) clamp(12px,3vw,32px);color:var(--accent)}@supports ((-webkit-background-clip:text) or (background-clip:text)){.match-heading .vs{background:linear-gradient(90deg,var(--accent),var(--accent-2),var(--accent));background-size:200% 100%;background-position:0 50%;animation:match-vs-gradient 16s linear infinite;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}}@keyframes match-vs-gradient{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}@media (min-width:768px){.match-heading .player{flex-wrap:nowrap}.match-heading .player-name{white-space:nowrap}}@media (min-width:1024px){.page>.match-inner{max-width:1400px}}.match-inner .match-card{width:100%;max-width:640px;margin-left:auto;margin-right:auto}.time-group{display:inline-flex;gap:.25rem;align-items:center}.time-group label{display:inline-flex;flex-direction:column;font:inherit}.time-group select{font:inherit;padding:.25rem .5rem;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--text);transition:var(--transition)}.menu-root{position:fixed;top:16px;right:16px;z-index:1000;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.menu-buttons{display:flex;align-items:center;gap:8px}.menu-qr{display:block;flex-shrink:0;width:clamp(80px,14vw,140px)}.menu-qr-img{display:block;width:100%;height:auto}.menu-qr-img-dark,[data-theme=dark] .menu-qr-img-light{display:none}[data-theme=dark] .menu-qr-img-dark{display:block}.menu-trigger{padding:0;width:40px;height:40px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center}.menu-trigger .icon{color:var(--text)}.menu-toggle{width:40px;height:40px;border-radius:12px;border:1px solid var(--border);background:var(--panel);color:var(--muted);display:inline-flex;align-items:center;justify-content:center;transition:var(--transition)}.menu-toggle:hover{background:var(--accent-soft);color:var(--text)}.menu-toggle.is-on{border:none;background:var(--accent);color:#fff;box-shadow:var(--shadow)}.menu-toggle.is-on:hover{filter:brightness(1.05)}.menu-popover{position:absolute;top:100%;right:0;margin-top:8px;display:flex;flex-direction:column;gap:4px;border:1px solid var(--border);box-shadow:var(--shadow);background:var(--panel);color:var(--text);padding:8px;min-width:200px}.menu-item,.menu-popover{border-radius:var(--radius)}.menu-item{display:block;text-decoration:none;color:inherit;padding:6px 10px;background:none;border:none;text-align:left;cursor:pointer;transition:var(--transition)}.menu-item:hover{background:var(--accent-soft)}.menu-section{font-size:12px;font-weight:700;margin-top:4px;padding:6px 8px 2px;color:var(--muted)}.menu-theme{margin-top:6px;display:flex;justify-content:center}.theme-toggle{display:inline-flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:4px 8px;box-shadow:var(--shadow)}.theme-toggle-button{border:none;background:transparent;color:var(--muted);width:28px;height:28px;border-radius:50%;display:grid;place-items:center;transition:var(--transition)}.theme-toggle-button.active{color:var(--accent)}.theme-toggle-button:hover{background:var(--accent-soft);color:var(--text)}.theme-toggle-switch{position:relative;width:36px;height:20px;border-radius:999px;background:var(--border);display:inline-flex;align-items:center;justify-content:center;transition:var(--transition)}.theme-toggle-switch[data-checked=true]{background:rgba(240,90,40,.3)}.theme-toggle-switch input{position:absolute;inset:0;opacity:0;cursor:pointer}.theme-toggle-slider{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--text);box-shadow:0 1px 4px rgba(0,0,0,.18);transform:translateX(0);transition:var(--transition)}.theme-toggle-slider[data-checked=true]{transform:translateX(16px)}.row{gap:8px}.row,.space-between{display:flex;align-items:center}.space-between{justify-content:space-between}.icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;color:inherit;flex-shrink:0}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.row-dev td{background-color:rgba(184,134,11,.12)}.alias-dev{color:#b8860b}.trophy{display:inline-flex;align-items:center;justify-content:center;margin-right:4px;line-height:1;color:#d4a017}.trophy-right{margin-left:4px;margin-right:0}.clamp-1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.bp{--bp-font-size:clamp(18px,2.3vh,38px);--bp-title-size:clamp(38px,6vh,96px);--bp-subtitle-size:clamp(16px,2.6vh,34px);--bp-label-size:clamp(14px,2vh,28px);--bp-row-height:clamp(48px,5.4vh,120px);--bp-row-gap:clamp(6px,0.8vh,14px);--bp-row-padding:clamp(12px,1.8vh,24px);--bp-col-gap:clamp(16px,2vw,40px);--bp-rank-width:7fr;--bp-input-width:8fr;--bp-player-width:60fr;--bp-time-width:25fr;--bp-icon-size:clamp(26px,3vh,48px);--bp-badge-size:clamp(16px,2vh,28px);font-size:var(--bp-font-size);line-height:1.3;overflow-y:hidden}body.bp.bp-density-normal{--bp-row-height:clamp(48px,5.4vh,120px)}body.bp.bp-density-dense{--bp-row-height:clamp(40px,4.6vh,104px)}body.bp.bp-density-cozy{--bp-row-height:clamp(56px,6.5vh,136px)}body.bp .page{min-height:100dvh}body.bp .page>.inner{max-width:none;width:100%;margin:0;padding:clamp(12px,3.2vh,48px) clamp(20px,7vw,88px);display:flex;flex-direction:column;min-height:100%}body.bp .header{gap:clamp(3px,.6vh,10px);margin-bottom:clamp(4px,.8vh,14px)}body.bp .header .title{font-size:var(--bp-title-size);line-height:1.05}body.bp .header .title .title-main{font-size:inherit}body.bp .header .title .title-sub{font-size:var(--bp-subtitle-size);margin-top:clamp(2px,.4vh,8px)}body.bp .header .subtitle{font-size:clamp(14px,2vh,28px);margin-top:clamp(2px,.5vh,6px)}body.bp .controls{gap:clamp(16px,2vw,32px);margin:0 0 clamp(16px,4vh,48px);flex-wrap:nowrap;justify-content:flex-end}body.bp .select{padding:clamp(10px,1.6vh,18px) clamp(18px,2.8vw,36px);min-width:clamp(220px,24vw,360px);height:auto;line-height:1.1}body.bp .button,body.bp .select{font-size:inherit;border-radius:clamp(12px,1.8vh,20px)}body.bp .button{padding:clamp(10px,1.6vh,18px) clamp(18px,3vw,36px)}body.bp .bp-status-bar{font-size:clamp(16px,2.1vh,28px);gap:clamp(12px,2vw,32px);margin-bottom:clamp(8px,1.6vh,20px)}body.bp .bp-status-bar .button{padding:clamp(10px,1.6vh,18px) clamp(20px,3vw,40px);border-radius:clamp(12px,2vh,20px)}body.bp .bp-board{display:flex;flex-direction:column;gap:clamp(6px,.8vh,14px);width:100%;max-width:1200px;margin-left:auto;margin-right:auto;flex:1 1 auto;min-height:0;position:relative;overflow:hidden;overscroll-behavior:none}body.bp .bp-board,body.bp .bp-board *{-webkit-overflow-scrolling:auto;scroll-behavior:auto}body.bp .bp-grid{display:grid;grid-template-columns:minmax(0,var(--bp-rank-width)) minmax(0,var(--bp-input-width)) minmax(0,var(--bp-player-width)) minmax(0,var(--bp-time-width));grid-column-gap:var(--bp-col-gap);column-gap:var(--bp-col-gap);align-items:center}body.bp .bp-head{font-size:var(--bp-label-size);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);padding:0 var(--bp-row-padding);min-height:calc(var(--bp-row-height) * .6);align-items:flex-end}body.bp .bp-heading{font-weight:600}body.bp .bp-body{position:relative;overflow:hidden;flex:1 1 auto;min-height:0}body.bp .bp-loop{display:flex;flex-direction:column;will-change:transform}body.bp .bp-segment{display:flex;flex-direction:column;gap:var(--bp-row-gap)}body.bp .bp-segment+.bp-segment{margin-top:var(--bp-row-gap)}body.bp .bp-row{background:var(--panel);border-radius:clamp(14px,2vh,24px);padding:0 var(--bp-row-padding);min-height:var(--bp-row-height)}body.bp .bp-row-dev{box-shadow:none}body.bp .bp-row .badge-war{font-size:var(--bp-badge-size);padding:clamp(4px,.7vh,10px) clamp(10px,1.5vh,16px);border-radius:999px}body.bp .bp-cell{display:flex;flex-direction:column;justify-content:center;min-width:0}body.bp .bp-rank{font-size:clamp(28px,3.8vh,64px);font-weight:700;text-align:center}body.bp .bp-player{gap:clamp(4px,.8vh,12px)}body.bp .bp-player-line{display:inline-flex;align-items:flex-start;gap:clamp(10px,1.5vh,20px);min-width:0}body.bp .bp-alias{font-size:clamp(22px,3.4vh,56px);font-weight:700;letter-spacing:-.01em;line-height:1.1;flex:1 1 auto;min-width:0;max-width:100%;white-space:nowrap}body.bp .bp-alias,body.bp .bp-name{overflow:hidden;text-overflow:ellipsis}body.bp .bp-name{font-size:clamp(16px,2.3vh,32px);color:var(--muted);font-weight:500}body.bp .bp-trophy{display:inline-flex;align-items:center;justify-content:center;font-size:clamp(24px,3.6vh,52px);line-height:1;color:#d4a017}body.bp .bp-method{align-items:center}body.bp .bp-method-chip{display:inline-flex;align-items:center;justify-content:center}body.bp .bp-method .icon,body.bp .bp-method-chip{width:var(--bp-icon-size);height:var(--bp-icon-size)}body.bp .bp-time{font-size:clamp(24px,3.2vh,44px);align-items:flex-end;text-align:right}body.bp .bp-time.mono{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}body.bp .bp-empty{border:1px solid var(--border);border-radius:clamp(14px,2vh,24px);padding:clamp(24px,4vh,48px);font-size:clamp(18px,2.4vh,32px);text-align:center}