@media (width<=480px){:root{--radius-lg:12px;--radius-xl:16px;--radius-2xl:20px}}@media (width>=481px) and (width<=1024px){:root{--radius-lg:14px;--radius-xl:20px;--radius-2xl:26px}}:root{--brand-500:#b30919;--brand-hover:#a30817;--brand-pressed:#7f0612;--highlight-500:#0d97cb;--highlight-hover:#0c89b9;--highlight-pressed:#096b90;--success-500:#31a064;--success-hover:#2d925b;--success-pressed:#237247;--live-tag:red;--live-tag-hover:#e80000;--gradient-popular:linear-gradient(135deg,#f41b3b,#ae46b9,#8f76fc,#1884f7);--fei-purple:#4b0a57;--badminton-blue:#1d4c94;--major-league-green:#6ef322;--usef-blue:#14377d;--neutral-white:#fff;--neutral-50:#ebecec;--neutral-100:#c2c3c5;--neutral-200:#a3a6ab;--neutral-300:#7a7e82;--neutral-400:#61656a;--neutral-500:#393e45;--neutral-600:#333f53;--neutral-700:#222731;--neutral-800:#070e16;--neutral-900:#080e16;--neutral-950:#1f2226;--text-primary:var(--neutral-white);--text-secondary:var(--neutral-100);--text-muted:var(--neutral-200);--text-subtle:var(--neutral-300);--text-disabled:var(--neutral-400);--card-bg:#222731;--card-surface:#333f53;--card-radius:12px;--card-padding:16px;--transparent-bg:#070e16bf;--lm-bg:var(--neutral-800);--lm-border:var(--neutral-600);--lm-text-primary:var(--neutral-white);--lm-text-muted:var(--neutral-200);--lm-input-bg:#ffffff0f;--lm-input-bg-focus:#ffffff17;--lm-btn-bg:#ffffff1f;--lm-btn-bg-hover:#fff3;--font-family:"Roboto",sans-serif;--heading-sm:24px;--text-xs:11px;--text-sm:14px;--text-base:15px;--text-md:17px;--text-lg:20px;--text-xl:24px;--text-2xl:30px;--text-3xl:38px;--text-4xl:48px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--space-40:160px;--radius-2xs:2px;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-2xl:32px;--radius-full:9999px;--ease-out:cubic-bezier(.16,1,.3,1);--ease-spring:cubic-bezier(.34,1.56,.64,1);--transition-fast:.15s;--grid-columns-mobile:2;--grid-columns-tablet:4;--grid-columns-desktop:6;--grid-columns-ultrawide:8;--grid-gutter-mobile:8px;--grid-gutter-tablet:12px;--grid-gutter-desktop:16px;--grid-margin-mobile:20px;--grid-margin-tablet:32px;--grid-margin-desktop:40px;--grid-max-width:1600px;--grid-max-width-ultrawide:2560px;--breakpoint-mobile:480px;--breakpoint-tablet:768px;--breakpoint-desktop:1200px;--breakpoint-ultrawide:1920px;--light-canvas:#fff;--light-card:#fff;--light-card-border:var(--neutral-50);--light-panel:var(--neutral-50);--light-text-primary:var(--neutral-800);--light-text-body:var(--neutral-500);--light-text-muted:var(--neutral-400);--light-text-subtle:var(--neutral-300);--light-btn-dark:var(--neutral-500);--light-btn-dark-hover:var(--neutral-600);--light-focus:var(--highlight-500)}@media (width<=480px){:root{--radius-lg:12px;--radius-xl:16px;--radius-2xl:20px}}@media (width>=481px) and (width<=1024px){:root{--radius-lg:14px;--radius-xl:20px;--radius-2xl:26px}}html.light{--lm-bg:#dde0e4}*,:before,:after{box-sizing:border-box}html,body{background:var(--neutral-800);height:100%;color:var(--text-primary);font-family:var(--font-family);font-size:var(--text-base);-webkit-font-smoothing:antialiased;margin:0;line-height:1.5}body{overflow:hidden}#scene{width:100%;height:100%;display:block;position:fixed;inset:0}#app{z-index:2;position:fixed;inset:0;overflow-y:auto}#app:empty{pointer-events:none}h1,h2,h3,p{margin:0}h1{font-size:var(--text-3xl);font-weight:700;line-height:1.15}h2{font-size:var(--text-xl);font-weight:700;line-height:1.25}h3{font-size:var(--text-md);font-weight:700}.muted{color:var(--text-muted)}.subtle{color:var(--text-subtle);font-size:var(--text-sm)}svg.icon{flex:none;width:24px;height:24px}svg.icon-20{width:20px;height:20px}:focus-visible{outline:2px solid var(--highlight-500);outline-offset:2px}.btn{justify-content:center;align-items:center;gap:var(--space-2);height:48px;padding:0 var(--space-6);border-radius:var(--radius-sm);font-family:inherit;font-size:var(--text-base);color:var(--neutral-white);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast) var(--ease-out), transform var(--transition-fast) var(--ease-out), color var(--transition-fast) var(--ease-out);border:0;font-weight:700;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{cursor:not-allowed;background:var(--neutral-600);color:var(--text-muted)}.btn-primary{background:var(--brand-500)}.btn-primary:hover:not(:disabled){background:var(--brand-hover)}.btn-primary:active:not(:disabled){background:var(--brand-pressed)}.btn-secondary{background:var(--lm-btn-bg)}.btn-secondary:hover:not(:disabled){background:var(--lm-btn-bg-hover)}.btn-ghost{color:var(--text-secondary);background:0 0}.btn-ghost:hover:not(:disabled){color:var(--text-primary);background:#ffffff1a}.btn-positive{background:var(--success-500)}.btn-positive:hover:not(:disabled){background:var(--success-hover)}.btn-sm{height:32px;padding:0 var(--space-3);font-size:var(--text-sm)}.btn-icon{width:48px;padding:0}.btn-block{width:100%}.badge{align-items:center;gap:var(--space-1);padding:4px var(--space-2);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.5px;border-radius:var(--radius-xs);white-space:nowrap;font-weight:700;line-height:1;display:inline-flex}.badge-brand{background:var(--brand-500);color:var(--neutral-white)}.badge-success{background:var(--success-500);color:var(--neutral-white)}.badge-highlight{background:var(--highlight-500);color:var(--neutral-white)}.badge-fei{background:var(--fei-purple);color:var(--neutral-white)}.badge-neutral{background:var(--neutral-600);color:var(--neutral-100)}.input-wrapper{gap:var(--space-2);flex-direction:column;display:flex}.input-label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:500}.input-field{background:var(--neutral-800);border:1px solid var(--neutral-500);border-radius:var(--radius-sm);height:48px;color:var(--text-primary);font-family:inherit;font-size:var(--text-base);transition:border-color .2s var(--ease-out), box-shadow .2s var(--ease-out);padding:12px 16px}.input-field::placeholder{color:var(--neutral-400)}.input-field:hover{border-color:var(--neutral-400)}.input-field:focus{border-color:var(--highlight-500);outline:none;box-shadow:0 0 0 3px #0d97cb33}.input-helper{font-size:var(--text-sm);color:var(--text-muted)}.input-error{font-size:var(--text-sm);color:var(--neutral-white);background:var(--brand-500);border-radius:var(--radius-xs);padding:var(--space-1) var(--space-2);align-self:flex-start}.chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.btn-chip{height:36px;padding:0 var(--space-4);border-radius:var(--radius-full);color:var(--text-secondary);font-family:inherit;font-size:var(--text-sm);cursor:pointer;transition:background var(--transition-fast) var(--ease-out), color var(--transition-fast) var(--ease-out), transform var(--transition-fast) var(--ease-out);background:0 0;border:0;font-weight:500}.btn-chip:hover{color:var(--text-primary);background:#ffffff1a}.btn-chip:active{transform:scale(.97)}.btn-chip.is-active{background:var(--card-surface);color:var(--text-primary)}.page{background:var(--neutral-800);min-height:100%}.page-inner{max-width:1200px;padding:var(--space-6) var(--grid-margin-desktop) var(--space-16);margin:0 auto}.topbar{align-items:center;gap:var(--space-4);height:72px;padding:0 var(--grid-margin-desktop);background:var(--neutral-800);border-bottom:1px solid var(--neutral-700);z-index:3;display:flex;position:sticky;top:0}.topbar .logo{width:auto;height:22px;display:block}.topbar .product{font-size:var(--text-md);padding-left:var(--space-4);border-left:1px solid var(--neutral-600);font-weight:700}.topbar nav{gap:var(--space-1);margin-left:var(--space-6);display:flex}.topbar .spacer{flex:1}.nav-link{height:40px;padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--text-muted);font-family:inherit;font-size:var(--text-base);cursor:pointer;transition:color var(--transition-fast) var(--ease-out), background var(--transition-fast) var(--ease-out);background:0 0;border:0;font-weight:500}.nav-link:hover,.nav-link.is-active{color:var(--text-primary)}.nav-link.is-active{background:var(--neutral-700)}.user-chip{align-items:center;gap:var(--space-2);color:var(--text-secondary);font-weight:500;display:inline-flex}.grid{gap:var(--space-4);display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.stack{gap:var(--space-4);flex-direction:column;display:flex}.row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.section{margin-top:var(--space-10)}.section-tight{margin-top:var(--space-6)}.section-head{justify-content:space-between;align-items:baseline;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.card{background:var(--card-bg);border-radius:var(--radius-md);padding:var(--space-6)}.card-lg{border-radius:var(--radius-xl);padding:var(--space-8)}.card-click{transition:transform .25s var(--ease-out), background .25s var(--ease-out)}.card-click:hover{background:var(--neutral-600);transform:translateY(-2px)}.hero{border-radius:var(--radius-xl);background:var(--card-bg);padding:var(--space-6) var(--space-8);gap:var(--space-8);grid-template-columns:minmax(0,1fr) 150px;align-items:center;display:grid;position:relative;overflow:hidden}.hero canvas{aspect-ratio:3/4;border-radius:var(--radius-md);background:var(--neutral-800);width:100%;display:block}.facts{gap:var(--space-4);margin-top:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.fact .k{font-size:var(--text-sm);color:var(--text-muted)}.fact .v{font-size:var(--text-lg);font-weight:700}.round-card{gap:var(--space-4);flex-direction:column;display:flex}.round-card .num{font-size:var(--text-sm);color:var(--text-muted);font-weight:500}.round-card .specs{gap:var(--space-2) var(--space-4);font-size:var(--text-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.round-card .specs .k{color:var(--text-muted)}.round-card .best{background:var(--neutral-800);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);font-size:var(--text-sm)}.round-card .round-sub{min-height:3em;margin-top:4px}.difficulty{gap:4px;display:flex}.difficulty span{border-radius:var(--radius-2xs);background:var(--neutral-600);width:18px;height:6px}.difficulty span.on{background:var(--brand-500)}.table{border-collapse:collapse;width:100%;font-size:var(--text-base)}.table th{text-align:left;font-size:var(--text-sm);color:var(--text-muted);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--neutral-600);font-weight:500}.table td{padding:var(--space-3);border-bottom:1px solid var(--neutral-700)}.table tr.me td{background:var(--neutral-700)}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table .rank{width:48px;font-weight:700}.empty{padding:var(--space-8);text-align:center;color:var(--text-muted)}.center-screen{min-height:100%;padding:var(--space-6);background:radial-gradient(ellipse at 50% 0%, var(--neutral-700), var(--neutral-800) 70%);place-items:center;display:grid}.entry-card{width:min(440px,100%)}.entry-card .logo{height:26px;margin-bottom:var(--space-8);display:block}.overlay{background:var(--transparent-bg);z-index:5;padding:var(--space-6);animation:fadeIn .25s var(--ease-out);place-items:center;display:grid;position:fixed;inset:0}.overlay .card{width:min(560px,100%);max-height:calc(100vh - 2 * var(--space-6));overflow-y:auto}.overlay .card.card-result{width:min(1000px,100%)}.result-layout{gap:var(--space-8);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}.result-board-head h3{margin:0}@media (width<=899px){.result-layout{gap:var(--space-6);grid-template-columns:minmax(0,1fr)}}.result-board-head{margin-bottom:var(--space-2);justify-content:space-between}.table-compact{font-size:var(--text-sm)}.table-compact td{padding:var(--space-2) var(--space-3)}.table tr.gap td{color:var(--text-muted);text-align:center;padding:0;line-height:1.4}.result-big{gap:var(--space-4);margin:var(--space-6) 0;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.result-big .k{font-size:var(--text-sm);color:var(--text-muted)}.result-big .v{font-size:var(--text-2xl);font-variant-numeric:tabular-nums;font-weight:700}.kbd{min-width:28px;padding:2px var(--space-2);border-radius:var(--radius-xs);background:var(--neutral-600);color:var(--text-primary);font-size:var(--text-sm);text-align:center;font-weight:700;display:inline-block}.rules-list{padding-left:var(--space-6);gap:var(--space-2);color:var(--text-secondary);flex-direction:column;margin:0;display:flex}#hud{pointer-events:none;z-index:3;font-variant-numeric:tabular-nums;position:fixed;inset:0}.hud-panel{background:var(--transparent-bg);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);position:absolute}.hud-tl{top:var(--space-4);left:var(--space-4);min-width:240px}.hud-tr{top:var(--space-4);right:var(--space-4);text-align:right;min-width:200px}.hud-bl{bottom:var(--space-4);left:var(--space-4);padding:var(--space-2)}.hud-bc{bottom:var(--space-4);gap:var(--space-2);flex-direction:column;width:min(560px,100% - 420px);display:flex;position:absolute;left:50%;transform:translate(-50%)}.hud-bc .hud-panel{position:relative}.timing-bar{border-radius:var(--radius-full);background:var(--neutral-500);height:20px;margin-top:var(--space-2);position:relative}.timing-marker{background:var(--neutral-white);border-radius:var(--radius-2xs);width:6px;box-shadow:0 0 0 2px var(--neutral-800);margin-left:-3px;position:absolute;top:-4px;bottom:-4px}.timing-marker.armed{background:var(--highlight-500)}.timing-call{color:var(--text-primary);font-weight:700}.timing-call.go{color:var(--neutral-white);background:var(--success-500);border-radius:var(--radius-xs);padding:0 var(--space-2)}.hud-br{bottom:var(--space-4);right:var(--space-4);font-size:var(--text-sm);color:var(--text-secondary)}.hud-label{font-size:var(--text-sm);color:var(--text-muted)}.hud-timer{font-size:var(--text-4xl);font-weight:700;line-height:1.05}.hud-timer.over{color:var(--neutral-white);background:var(--brand-500);border-radius:var(--radius-xs);padding:0 var(--space-2);display:inline-block}.hud-faults{font-size:var(--text-4xl);font-weight:700;line-height:1.05}.hud-row{justify-content:space-between;gap:var(--space-3);font-size:var(--text-sm);color:var(--text-secondary);display:flex}.hud-minimap{border-radius:var(--radius-sm);display:block}.speed-bar{border-radius:var(--radius-full);background:var(--neutral-400);height:10px;margin-top:var(--space-2);overflow:hidden}.speed-bar div{border-radius:var(--radius-full);background:var(--neutral-800);height:100%}.hud-center{text-align:center;position:absolute;top:22%;left:50%;transform:translate(-50%)}.hud-big{font-size:96px;font-weight:900;line-height:1}.hud-banner{background:var(--transparent-bg);border-radius:var(--radius-md);padding:var(--space-3) var(--space-6);font-size:var(--text-lg);font-weight:700}#toasts{align-items:center;gap:var(--space-2);z-index:6;pointer-events:none;flex-direction:column;display:flex;position:fixed;top:120px;left:50%;transform:translate(-50%)}.toast{background:var(--card-bg);color:var(--text-primary);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-5);font-weight:700;font-size:var(--text-md);animation:toastIn .3s var(--ease-out)}.toast.bad{background:var(--brand-500)}.toast.good{background:var(--success-500)}.toast.info{background:var(--highlight-pressed)}.reveal{animation:fadeUp .35s var(--ease-out) both}.reveal:nth-child(2){animation-delay:60ms}.reveal:nth-child(3){animation-delay:.12s}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes toastIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media (width<=1023px){.grid-3,.grid-2,.hero{grid-template-columns:minmax(0,1fr)}.facts{grid-template-columns:repeat(2,minmax(0,1fr))}.hero canvas{display:none}.page-inner,.topbar{padding-left:var(--grid-margin-tablet);padding-right:var(--grid-margin-tablet)}.topbar .product{display:none}}@media (width<=639px){.page-inner,.topbar{padding-left:var(--grid-margin-mobile);padding-right:var(--grid-margin-mobile)}.topbar nav{margin-left:0}h1{font-size:var(--text-2xl)}}
