:root{--bg:#fff;--soft:#f7f7f9;--sunk:#f0f0f3;--text:#121216;--text-2:#3b3b44;--muted:#6c6c78;--faint:#9b9ba6;--line:#e9e9ee;--line-2:#d8d8df;--purple:#6a3de8;--purple-2:#5a2fd2;--purple-soft:#f2eefe;--purple-ink:#4b25b5;--yellow:#ffe14d;--yellow-soft:#fff7c7;--red:#d63b3b;--red-soft:#fdeeee;--green:#128a5a;--green-soft:#e8f6ef;--r:12px;--r-sm:8px;--shadow:0 1px 2px #1212160a, 0 8px 28px #12121612;--shadow-sm:0 1px 2px #1212160f;--font:"Segoe UI Variable Text", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Roboto, "Helvetica Neue", Arial, sans-serif;--font-d:"Segoe UI Variable Display", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "SF Mono", "Cascadia Mono", Consolas, monospace;--wrap:1080px;--player:var(--purple);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;margin:0;font-size:15px;line-height:1.55}::selection{background:var(--yellow);color:var(--text)}a{color:var(--purple);text-decoration:none}a:hover{color:var(--purple-2)}img,svg{display:block}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--purple);outline-offset:2px}.skip{background:var(--text);color:#fff;z-index:100;border-radius:var(--r-sm);padding:8px 12px;position:absolute;top:8px;left:-999px}.skip:focus{left:8px}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}main{outline:none;min-height:calc(100vh - 64px)}.wrap{width:min(var(--wrap), 100% - 48px);margin-inline:auto}.page{padding:44px 0 96px}.display{font-family:var(--font-d);letter-spacing:-.035em;margin:0;font-size:clamp(38px,5.2vw,60px);font-weight:700;line-height:1.04}.h1{font-family:var(--font-d);letter-spacing:-.03em;margin:0;font-size:clamp(28px,3.4vw,36px);font-weight:700;line-height:1.1}.h2{font-family:var(--font-d);letter-spacing:-.015em;margin:0;font-size:19px;font-weight:650;line-height:1.25}.h3{margin:0;font-size:15px;font-weight:600}.lead{color:var(--muted);max-width:54ch;margin:0;font-size:17px;line-height:1.6}.muted{color:var(--muted)}.dim{color:var(--faint)}.small{font-size:13.5px}.tiny{font-size:12.5px}.mono{font-family:var(--mono)}.label{color:var(--text-2);margin:0 0 8px;font-size:13px;font-weight:600;display:block}.hl,.hit,mark{background:var(--yellow);color:var(--text);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:3px;padding:0 3px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px;display:flex}.page-head p{margin:6px 0 0}.site-header{border-bottom:1px solid var(--line);background:var(--bg);z-index:30;position:sticky;top:0}.site-header .wrap{align-items:center;gap:32px;height:64px;display:flex}.logo{white-space:nowrap;color:var(--text);font-family:var(--font-d);letter-spacing:-.02em;align-items:center;gap:10px;font-size:17px;font-weight:700;display:flex}.logo:hover{color:var(--text)}.logo-mark{box-sizing:content-box;background:var(--purple);border-radius:7px;align-items:flex-end;gap:2px;height:18px;padding:5px;display:flex}.logo-mark i{background:#fff;border-radius:1px;width:3px}.logo-mark i:first-child{height:45%}.logo-mark i:nth-child(2){height:80%}.logo-mark i:nth-child(3){background:var(--yellow);height:100%}.logo-mark i:nth-child(4){height:60%}.nav{flex:1;gap:2px;display:flex}.nav a{color:var(--muted);border-radius:var(--r-sm);padding:7px 12px;font-size:14.5px;font-weight:550}.nav a:hover{color:var(--text);background:var(--soft)}.nav a.active{color:var(--text);background:var(--sunk)}.header-actions{align-items:center;gap:8px;display:flex}.me-chip{color:var(--text);border-radius:999px;align-items:center;gap:9px;padding:4px 10px 4px 4px;font-size:14px;font-weight:600;display:flex}.me-chip:hover{background:var(--soft);color:var(--text)}.avatar{background:var(--c,var(--purple));color:#fff;text-transform:uppercase;border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-size:12.5px;font-weight:700;display:grid}.avatar.lg{width:44px;height:44px;font-size:17px}@media (max-width:640px){.site-header .wrap{gap:14px}.nav a{padding:7px 8px}.me-chip span:last-child{display:none}}.btn{border-radius:var(--r-sm);background:var(--sunk);height:40px;color:var(--text);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:14.5px;font-weight:600;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}.btn:hover{color:var(--text);background:#e7e7ec}.btn:active{transform:translateY(.5px)}.btn[disabled],.btn.is-disabled{opacity:.45;cursor:not-allowed;transform:none}.btn svg{flex:none;width:17px;height:17px}.btn-primary{background:var(--purple);color:#fff}.btn-primary:hover{background:var(--purple-2);color:#fff}.btn-primary[disabled]{background:var(--line-2);color:var(--muted);opacity:1}.btn-outline{background:var(--bg);border-color:var(--line-2)}.btn-outline:hover{background:var(--soft);border-color:var(--line-2)}.btn-ghost{color:var(--text-2);background:0 0}.btn-ghost:hover{background:var(--soft)}.btn-ok,.btn-ok:hover{background:var(--green-soft);color:var(--green)}.btn-ok[disabled]{opacity:1;cursor:default}.btn-danger{color:var(--muted);background:0 0}.btn-danger:hover{background:var(--red-soft);color:var(--red)}.btn-sm{height:32px;padding:0 12px;font-size:13.5px}.btn-lg{border-radius:10px;height:48px;padding:0 22px;font-size:15.5px}.btn-wide{width:100%}.btn-icon{width:40px;padding:0}.btn-sm.btn-icon{width:32px}.link-btn{color:var(--purple);cursor:pointer;background:0 0;border:0;padding:0;font-size:14px;font-weight:550}.link-btn:hover{color:var(--purple-2)}.field{gap:7px;display:grid}.field>span{color:var(--text-2);font-size:13px;font-weight:600}.input{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--r-sm);width:100%;height:44px;padding:0 13px;font-size:15px;transition:border-color .15s,box-shadow .15s}.input::placeholder{color:var(--faint)}.input:hover{border-color:#c6c6cf}.input:focus{border-color:var(--purple);box-shadow:0 0 0 3px var(--purple-soft);outline:none}.input.code{font-family:var(--mono);text-transform:uppercase;letter-spacing:.18em;font-size:16px;font-weight:600}.input[aria-invalid=true]{border-color:var(--red)}.check{cursor:pointer;color:var(--text-2);align-items:flex-start;gap:11px;font-size:14px;line-height:1.45;display:flex}.check input{appearance:none;border:1.5px solid var(--line-2);background:var(--bg);cursor:pointer;border-radius:5px;flex:none;place-content:center;width:18px;height:18px;margin:1px 0 0;transition:background-color .15s,border-color .15s;display:grid}.check input:checked{background:var(--purple);border-color:var(--purple)}.check input:checked:after{content:"";border:0 solid #fff;border-width:0 0 2px 2px;width:9px;height:5px;transform:translateY(-1px)rotate(-45deg)}.form-error{color:var(--red);min-height:1.3em;margin:0;font-size:13.5px}.seg{background:var(--sunk);border-radius:10px;gap:2px;padding:3px;display:inline-flex}.seg button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:6px 14px;font-size:13.5px;font-weight:600;transition:background-color .15s,color .15s}.seg button:hover:not([disabled]){color:var(--text)}.seg button[aria-pressed=true]{background:var(--bg);color:var(--text);box-shadow:var(--shadow-sm)}.seg button[disabled]{cursor:default}.card{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:22px}.card.soft{background:var(--soft);border-color:#0000}.card.tight{padding:16px}.card-title{justify-content:space-between;align-items:center;gap:12px;margin:0 0 14px;display:flex}.divider{background:var(--line);border:0;height:1px;margin:20px 0}.tag{background:var(--sunk);color:var(--muted);border-radius:6px;align-items:center;gap:5px;padding:2px 8px;font-size:12px;font-weight:600;line-height:1.6;display:inline-flex}.tag.p{background:var(--purple-soft);color:var(--purple-ink)}.tag.ok{background:var(--green-soft);color:var(--green)}.tag.y{background:var(--yellow-soft);color:#6d5600}.tag.no,.tag.rec{background:var(--red-soft);color:var(--red)}.tag.rec:before{content:"";background:var(--red);border-radius:50%;width:7px;height:7px;animation:1.2s steps(2,end) infinite blink}@keyframes blink{50%{opacity:.25}}.swatch{background:var(--c,var(--purple));border-radius:50%;flex:none;width:10px;height:10px}.swatch.lg{width:14px;height:14px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.stack{gap:16px;display:grid}.stack-sm{gap:10px;display:grid}.row{align-items:center;gap:12px;display:flex}.row.wrap-ok{flex-wrap:wrap}.between{justify-content:space-between}.spacer{flex:1}@media (max-width:860px){.grid-2{grid-template-columns:1fr}}#toasts{z-index:90;gap:8px;width:min(420px,100vw - 32px);display:grid;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{background:var(--text);color:#fff;box-shadow:var(--shadow);border-radius:10px;align-items:baseline;gap:10px;padding:11px 15px;font-size:14px;display:flex}.toast.err:before{content:"";background:#ff6b6b;border-radius:50%;flex:none;width:8px;height:8px;transform:translateY(-1px)}.modal-back{z-index:80;background:#12121659;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--bg);border-radius:16px;gap:14px;width:min(440px,100%);padding:26px;display:grid;box-shadow:0 24px 64px #12121633}.hero{padding:72px 0 80px}.hero .wrap{grid-template-columns:1fr 1.05fr;align-items:center;gap:64px;display:grid}.hero .lead{margin-top:20px}.hero-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:30px;display:flex}.hero-note{color:var(--muted);margin-top:18px;font-size:13.5px}@media (max-width:900px){.hero .wrap{grid-template-columns:1fr;gap:44px}.hero{padding-top:44px}}.preview{border:1px solid var(--line);box-shadow:var(--shadow);background:var(--bg);border-radius:16px;overflow:hidden}.preview-top{border-bottom:1px solid var(--line);color:var(--muted);align-items:center;gap:10px;padding:12px 16px;font-size:13px;display:flex}.preview-top .spacer{flex:1}.preview-body{grid-template-columns:1fr;display:grid}.preview-side{border-right:1px solid var(--line);background:var(--soft);align-content:start;gap:6px;padding:14px;display:grid}.pv-players{flex-wrap:wrap;gap:6px;display:flex}.pv-player{background:var(--soft);border-radius:8px;align-items:center;gap:7px;padding:5px 10px;font-size:13px;font-weight:600;display:inline-flex}.pv-player .s{color:var(--muted);font-weight:500}.pv-player.on{background:var(--bg);box-shadow:var(--shadow-sm), 0 0 0 1px var(--c,var(--purple)) inset}.preview-main{align-content:start;gap:14px;min-width:0;padding:18px 18px 22px;display:grid}.pv-wrap{padding-top:16px;position:relative}.pv-sheet .srow{height:54px;left:auto;right:auto}.pv-sheet .cell .cw{font-size:16px}.pv-sheet .srow.past{opacity:.6}.pv-kind{color:var(--muted);font-size:13px;font-weight:550}.pv-word{font-family:var(--font-d);letter-spacing:-.04em;color:var(--player);font-size:clamp(40px,5vw,58px);font-weight:700;line-height:1}.pv-lines{color:var(--text-2);gap:6px;min-height:4.8em;font-size:16px;display:grid}.pv-lines .cur{color:var(--text);font-weight:600}.dots{align-items:center;gap:7px;display:flex}.dots i{background:var(--line-2);border-radius:50%;width:10px;height:10px;transition:background-color 80ms}.dots i.on{background:var(--player)}.how{border-top:1px solid var(--line);padding:56px 0}.how .wrap{grid-template-columns:1fr 1.6fr;gap:48px;display:grid}.how ol{counter-reset:how;gap:22px;margin:0;padding:0;list-style:none;display:grid}.how li{counter-increment:how;grid-template-columns:32px 1fr;gap:14px;display:grid}.how li:before{content:counter(how);background:var(--purple-soft);width:28px;height:28px;color:var(--purple-ink);border-radius:50%;place-items:center;font-size:13px;font-weight:700;display:grid}.how li b{margin-bottom:2px;font-size:15.5px;display:block}.how li p{color:var(--muted);margin:0}.needs{color:var(--muted);flex-wrap:wrap;gap:8px 22px;margin-top:18px;font-size:14px;display:flex}.needs span{align-items:center;gap:7px;display:flex}.needs svg{width:16px;height:16px;color:var(--purple)}@media (max-width:860px){.how .wrap{grid-template-columns:1fr;gap:24px}}.dash{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:start;gap:24px;display:grid}.play-list{border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.play-row{grid-template-columns:44px 1fr auto;align-items:center;gap:16px;padding:18px 20px;display:grid}.play-row+.play-row{border-top:1px solid var(--line)}.play-row .ic{background:var(--purple-soft);width:44px;height:44px;color:var(--purple);border-radius:11px;place-items:center;display:grid}.play-row .ic svg{width:21px;height:21px}.play-row .ic.y{background:var(--yellow-soft);color:#7a6100}.play-row .ic.g{background:var(--sunk);color:var(--text-2)}.play-row h3{margin:0;font-size:15.5px;font-weight:650}.play-row p{color:var(--muted);margin:2px 0 0;font-size:14px}.join-row{gap:8px;display:flex}.join-row .input{width:130px;height:40px}@media (max-width:900px){.dash{grid-template-columns:1fr}}@media (max-width:560px){.play-row{grid-template-columns:1fr}.play-row .ic{display:none}}.lb{display:grid}.lb-row{grid-template-columns:22px 1fr auto;align-items:center;gap:12px;padding:9px 0;font-size:14.5px;display:grid}.lb-row+.lb-row{border-top:1px solid var(--line)}.lb-row .rk{color:var(--faint);font-size:13px}.lb-row .nm{align-items:center;gap:9px;min-width:0;font-weight:550;display:flex}.lb-row .sc{font-weight:600}.mini-stats{background:var(--line);border:1px solid var(--line);border-radius:10px;grid-template-columns:repeat(3,1fr);gap:1px;display:grid;overflow:hidden}.mini-stats div{background:var(--bg);padding:12px 14px}.mini-stats b{font-size:20px;font-family:var(--font-d);letter-spacing:-.02em;display:block}.mini-stats span{color:var(--muted);font-size:12.5px}.table{border-collapse:collapse;width:100%;font-size:14.5px}.table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:0 12px 10px 0;font-size:12.5px;font-weight:550}.table td{border-bottom:1px solid var(--line);padding:12px 12px 12px 0}.table td.num,.table th.num{text-align:right}.table tr:last-child td{border-bottom:0}.auth{background:var(--soft);place-items:center;min-height:calc(100vh - 64px);padding:48px 20px 80px;display:grid}.auth-card{background:var(--bg);border:1px solid var(--line);width:min(410px,100%);box-shadow:var(--shadow);border-radius:16px;gap:18px;padding:30px;display:grid}.auth-card .seg{width:100%}.auth-card .seg a{text-align:center;color:var(--muted);border-radius:7px;flex:1;padding:7px 0;font-size:13.5px;font-weight:600}.auth-card .seg a.on{background:var(--bg);color:var(--text);box-shadow:var(--shadow-sm)}.auth-beat{gap:6px;display:flex}.auth-beat i{background:var(--line-2);border-radius:50%;width:8px;height:8px}.pw-wrap{position:relative}.pw-wrap .input{padding-right:64px}.pw-wrap button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:6px 8px;font-size:13px;font-weight:600;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.pw-wrap button:hover{background:var(--soft);color:var(--text)}.color-pick{flex-wrap:wrap;gap:8px;display:flex}.color-pick button{background:var(--c);cursor:pointer;width:30px;height:30px;box-shadow:0 0 0 2px var(--bg), 0 0 0 2px transparent;border:0;border-radius:50%;transition:box-shadow .15s}.color-pick button[aria-pressed=true]{box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--c)}.auth-foot{text-align:center;color:var(--muted);margin:0;font-size:13.5px}.beat-list{border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.beat-row{grid-template-columns:40px minmax(0,1.5fr) minmax(0,1fr) 70px auto;align-items:center;gap:18px;padding:14px 18px;display:grid}.beat-row+.beat-row{border-top:1px solid var(--line)}.beat-row.playing{background:var(--soft)}.beat-play{background:var(--purple);cursor:pointer;color:#fff;border:0;border-radius:50%;place-items:center;width:40px;height:40px;transition:background-color .15s;display:grid}.beat-play:hover{background:var(--purple-2)}.beat-play svg{width:16px;height:16px}.beat-title{font-size:15.5px;font-weight:650}.beat-meta{color:var(--muted);font-size:13.5px}.beat-progress{background:var(--line);border-radius:2px;max-width:260px;height:3px;margin-top:8px;overflow:hidden}.beat-progress i{background:var(--purple);width:0;height:100%;display:block}.beat-row:not(.playing) .beat-progress{visibility:hidden}.bpm{color:var(--muted);font-size:13.5px}@media (max-width:760px){.beat-row{grid-template-columns:40px 1fr}.beat-row>:nth-child(n+3){grid-column:2}}.pads{border:1px solid var(--line);border-radius:var(--r);display:grid;overflow:hidden}.pad{text-align:left;background:var(--bg);cursor:pointer;border:0;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;column-gap:14px;padding:12px 16px;transition:background-color .15s;display:grid}.pad+.pad{border-top:1px solid var(--line)}.pad:before{content:"";border:1.5px solid var(--line-2);box-sizing:border-box;border-radius:50%;grid-row:span 2;width:16px;height:16px;transition:border .15s}.pad:hover:not([disabled]){background:var(--soft)}.pad[aria-pressed=true]{background:var(--purple-soft)}.pad[aria-pressed=true]:before{border:5px solid var(--purple)}.pad[disabled]{cursor:default}.pad[disabled]:not([aria-pressed=true]){color:var(--muted)}.pad .t{grid-column:2;font-weight:650;line-height:1.3}.pad .m{color:var(--muted);grid-column:2;font-size:13px}.pad .bpm{color:var(--muted);grid-area:1/3/span 2;font-size:13px}.setup{grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:32px;display:grid}.setup .opts{gap:28px;display:grid}.opt-row{flex-wrap:wrap;gap:28px;display:flex}.side-card{position:sticky;top:88px}@media (max-width:960px){.setup{grid-template-columns:1fr}.side-card{position:static}}.code-box{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.code-box .code{font-family:var(--mono);letter-spacing:.16em;background:var(--soft);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:5px 12px;font-size:20px;font-weight:650}.players{gap:6px;display:grid}.player{border:1px solid var(--line);border-radius:10px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:10px 12px;transition:border-color .15s,box-shadow .15s;display:grid}.player .name{flex-wrap:wrap;align-items:center;gap:8px;font-weight:650;display:flex}.player.off{opacity:.55}.player.talking{border-color:var(--c);box-shadow:0 0 0 1px var(--c) inset}.player .talk-ind{color:var(--c);font-size:12px;font-weight:600;display:none}.player.talking .talk-ind{display:inline}.slot{border:1px dashed var(--line-2);color:var(--faint);text-align:center;border-radius:10px;padding:12px;font-size:13.5px}.ptt{background:var(--sunk);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;border:0;border-radius:10px;justify-content:center;align-items:center;gap:9px;width:100%;height:52px;font-size:15px;font-weight:650;transition:background-color .1s;display:flex}.ptt:hover{background:#e7e7ec}.ptt svg{width:18px;height:18px}.ptt.live,.ptt.live:hover{background:var(--player);color:#fff}.ptt.blocked{color:var(--muted);cursor:not-allowed}.meter{background:var(--sunk);border-radius:2px;height:4px;overflow:hidden}.meter i{background:var(--green);width:0;height:100%;transition:width 60ms linear;display:block}.notice{background:var(--soft);color:var(--text-2);border-radius:10px;margin:0;padding:10px 13px;font-size:13.5px}.notice.warn{background:var(--red-soft);color:#8f2424}.stage{grid-template-rows:auto 1fr auto;min-height:calc(100vh - 64px);display:grid}.stage-top{border-bottom:1px solid var(--line)}.stage .wrap{width:100%;max-width:none;padding:0 24px}.stage-top .wrap{flex-wrap:wrap;align-items:center;gap:14px;min-height:56px;display:flex}.timeline{flex:1;gap:2px;min-width:160px;height:6px;display:flex;position:relative}.timeline i{background:var(--c);opacity:.25;border-radius:2px}.timeline i.done{opacity:1}.timeline i.gap{background:0 0}.timeline .head{background:var(--text);border-radius:1px;width:2px;position:absolute;top:-5px;bottom:-5px;left:0}.stage-main{grid-template-columns:240px minmax(0,1fr);display:grid}.stage-side{border-right:1px solid var(--line);background:var(--soft);align-content:start;gap:4px;padding:22px 16px;display:grid}.sp{border-radius:9px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:9px 10px;display:grid}.sp .score{font-weight:650}.sp.on{background:var(--bg);box-shadow:var(--shadow-sm), 0 0 0 1px var(--c) inset}.sp .live{color:var(--c);font-size:12px;font-weight:600}.stage-center{align-content:start;gap:26px;padding:32px clamp(20px,4vw,56px) 40px;display:grid;position:relative}.turn-banner{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.turn-banner .who{font-family:var(--font-d);letter-spacing:-.025em;color:var(--text);font-size:clamp(22px,2.6vw,28px);font-weight:700;line-height:1.1}.turn-banner .who:before{content:"";background:var(--player);border-radius:50%;width:12px;height:12px;margin-right:10px;display:inline-block;transform:translateY(-2px)}.turn-banner .barcount{color:var(--muted);font-size:14px;font-weight:550}.sheet{background:var(--soft);border:1px solid var(--line);border-radius:16px;position:relative;overflow:hidden}.sheet-now{background:color-mix(in srgb, var(--player) 7%, transparent);border-block:1px solid color-mix(in srgb, var(--player) 18%, transparent);pointer-events:none;transition:background-color .3s;position:absolute;left:0;right:0}.srows{position:absolute;top:0;left:0;right:0}.srow{grid-template-columns:26px repeat(4,minmax(0,1fr));gap:8px;height:60px;transition:opacity .25s;display:grid;position:absolute;left:14px;right:14px}.srow .rn{color:var(--faint);text-align:right;align-self:center;font-size:12.5px;font-weight:550}.srow.past{opacity:.72}.srow.scoring .rn:after{content:"";background:var(--c);border-radius:50%;width:6px;height:6px;margin:4px 0 0 auto;animation:.8s steps(2,end) infinite blink;display:block}.cell{background:var(--bg);border:1px solid var(--line);text-align:center;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:1px;min-width:0;padding:4px 8px;transition:border-color .1s,box-shadow .1s,background-color .2s;display:flex;position:relative}.cell.cue{background:color-mix(in srgb, var(--c) 11%, var(--bg));border-color:color-mix(in srgb, var(--c) 32%, var(--bg))}.cell .cw{font-family:var(--font-d);letter-spacing:-.02em;color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:19px;font-weight:700;line-height:1.15;overflow:hidden}.cell .said{color:var(--c);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12.5px;font-weight:600;line-height:1.3;overflow:hidden}.cell .said:empty{display:none}.cell.now{border-color:var(--c);box-shadow:0 0 0 1px var(--c) inset}.cell.hit{background:var(--yellow-soft);border-color:#efd24f}.cell.hit .cw{background:var(--yellow);border-radius:4px;padding:0 5px}.cell.miss .cw{color:var(--faint);text-decoration:line-through;text-decoration-thickness:1.5px}.cell.beat:after{content:"";background:var(--green);border-radius:50%;width:7px;height:7px;position:absolute;top:6px;right:6px}.srow.gap .gapmsg{border:1px dashed var(--line-2);color:var(--muted);border-radius:10px;grid-column:2/span 4;place-items:center;font-size:14px;font-weight:550;display:grid}.srow.gap.cur .gapmsg{border-color:var(--c);color:var(--text);background:var(--bg);border-style:solid}.ball{background:var(--player);width:13px;height:13px;box-shadow:0 3px 8px color-mix(in srgb, var(--player) 40%, transparent);z-index:3;pointer-events:none;opacity:0;border-radius:50%;margin-left:-6.5px;transition:opacity .2s,background-color .3s;position:absolute;top:0;left:0}.legend{flex-wrap:wrap;align-items:center;gap:6px 18px;margin-top:-10px;display:flex}.legend>span:not(.spacer):not(.stage-status){align-items:center;gap:6px;display:inline-flex}.legend i{border-radius:3px;width:12px;height:12px;display:inline-block}.lg-cue{background:color-mix(in srgb, var(--player) 14%, white);border:1px solid color-mix(in srgb, var(--player) 35%, white)}.lg-hit{background:var(--yellow)}.legend i.lg-beat{background:var(--green);border-radius:50%;width:8px;height:8px}.stage-status{color:var(--muted)}.bars-sheet{gap:8px;display:grid}.bars-sheet .srow{position:relative;left:auto;right:auto}.bars-sheet .srow .rn{font-size:11.5px}.bars-sheet.with-pts .srow{grid-template-columns:26px repeat(4,minmax(0,1fr)) 52px}.bars-sheet .pts{text-align:right;align-self:center;font-size:14px;font-weight:650}.popup .x{opacity:.75;font-weight:550}@media (max-width:640px){.srow{grid-template-columns:18px repeat(4,minmax(0,1fr));gap:5px;left:8px;right:8px}.cell{padding:3px 4px}.cell .cw{font-size:15px}.cell .said{font-size:11px}}.popup-layer{pointer-events:none;position:absolute;inset:0;overflow:hidden}.popup{background:var(--yellow);color:var(--text);box-shadow:var(--shadow-sm);border-radius:8px;padding:6px 12px;font-size:15px;font-weight:700;position:absolute;top:28px;right:clamp(20px,4vw,56px)}.popup.miss{background:var(--sunk);color:var(--muted)}.transcript{gap:6px;display:grid}.tline{grid-template-columns:30px 1fr;align-items:baseline;gap:12px;font-size:19px;line-height:1.45;display:grid}.tline .n{color:var(--faint);font-size:12.5px}.tline .words{color:var(--c);min-height:1.45em;font-weight:600}.tline.old{opacity:.45}.tline.live .words:after{content:"";background:var(--c);width:2px;height:1em;margin-left:3px;animation:1s steps(2,end) infinite blink;display:inline-block;transform:translateY(2px)}.stage-bottom{border-top:1px solid var(--line)}.stage-bottom .wrap{flex-wrap:wrap;align-items:center;gap:20px;min-height:56px;display:flex}.vol{color:var(--muted);align-items:center;gap:10px;font-size:13.5px;display:flex}.vol input[type=range]{accent-color:var(--purple);width:120px}.countdown{pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.countdown span{font-family:var(--font-d);color:var(--player);letter-spacing:-.05em;font-size:clamp(120px,20vw,220px);font-weight:700;line-height:1}.overlay-tap{z-index:70;background:#ffffffeb;place-items:center;display:grid;position:fixed;inset:0}@media (max-width:900px){.stage-main{grid-template-columns:1fr}.stage-side{border-right:0;border-bottom:1px solid var(--line);grid-auto-flow:column;padding:10px 16px;overflow-x:auto}.sp{min-width:170px}}.podium{border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.podium-row{grid-template-columns:34px auto 1fr auto;align-items:center;gap:14px;padding:16px 20px;display:grid}.podium-row+.podium-row{border-top:1px solid var(--line)}.podium.solo .podium-row{grid-template-columns:auto 1fr auto}.podium-row .place{color:var(--faint);font-size:14px;font-weight:600}.podium-row.first{background:var(--soft)}.podium-row.first .place{color:var(--text)}.podium-row .pname{font-size:16px;font-weight:650}.podium-row .pscore{font-family:var(--font-d);letter-spacing:-.02em;font-size:26px;font-weight:700}.stat-grid{background:var(--line);border:1px solid var(--line);border-radius:var(--r);grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.stat{background:var(--bg);padding:16px 18px}.stat .v{font-family:var(--font-d);letter-spacing:-.02em;font-size:26px;font-weight:700;line-height:1.15}.stat .k{color:var(--muted);margin-top:2px;font-size:13px}@media (max-width:760px){.stat-grid{grid-template-columns:repeat(2,1fr)}}.tabs{flex-wrap:wrap;gap:4px;margin-bottom:14px;display:flex}.tabs:empty{display:none}.tabs button{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:7px;padding:6px 12px;font-size:13.5px;font-weight:600;display:flex}.tabs button[aria-selected=true]{color:var(--text);border-color:var(--text)}.bars-list{border:1px solid var(--line);border-radius:var(--r);max-height:480px;overflow:auto}.bar-item{grid-template-columns:44px 120px 1fr 56px;align-items:baseline;gap:14px;padding:10px 16px;font-size:14.5px;display:grid}.bar-item+.bar-item{border-top:1px solid var(--line)}.bar-item .n{color:var(--faint);font-size:12.5px}.bar-item .cue{font-weight:650}.bar-item .cue small{color:var(--muted);font-size:12px;font-weight:500;display:block}.bar-item .ws{color:var(--c);font-weight:550}.bar-item .pts{text-align:right;font-weight:600}.rec-panel{gap:12px;display:grid}.consent-list{gap:6px;display:grid}.consent-item{align-items:center;gap:10px;font-size:14px;display:flex}.best-bar{margin-top:12px}.best-bar .words{color:var(--c);margin-top:4px;font-size:18px;font-weight:600}.empty{border:1px dashed var(--line-2);border-radius:var(--r);color:var(--muted);text-align:center;padding:26px;font-size:14px}.footer{border-top:1px solid var(--line);color:var(--muted);padding:24px 0 36px;font-size:13px}.footer .wrap{flex-wrap:wrap;justify-content:space-between;gap:20px;display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
