html,body,#root{min-height:100%}body{margin:0}#root{width:100%}.container{min-height:100dvh;display:grid;place-items:center;padding:24px 16px}.game{width:100%;display:grid;gap:14px;justify-items:center}.stage{width:100%;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:12px;-webkit-user-select:none;user-select:none;touch-action:none}.square{position:relative;width:100%;aspect-ratio:1 / 1;border-radius:0;overflow:hidden;background:#000;background-clip:padding-box;outline:1px solid rgba(0,0,0,.85);outline-offset:-1px;transform:translateZ(0)}.stageCover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;pointer-events:none;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.stageCoverFallback{position:absolute;inset:0;background:#00000040;z-index:1}.stageBottomShade{position:absolute;left:0;right:0;bottom:0;height:140px;background:linear-gradient(to top,rgba(0,0,0,.55),transparent);z-index:2;pointer-events:none}.playerBar{position:absolute;left:0;right:0;bottom:0;width:100%;height:100px;border:0;display:block;z-index:3;overflow:hidden}.playerBarMasked{opacity:0}.stageMask{position:absolute;inset:-2px;background:#000;opacity:1;z-index:10;transition:none;touch-action:none;display:grid;place-items:center}@keyframes spin{to{transform:rotate(360deg)}}.turntable{position:relative;width:min(72%,420px);aspect-ratio:1 / 1;display:grid;place-items:center}.disc{width:100%;height:100%;object-fit:contain;will-change:transform;transform:translateZ(0);filter:drop-shadow(0 18px 45px rgba(0,0,0,.55))}.disc.spin{animation:spin 1.7s linear infinite}.label{position:absolute;width:20%;aspect-ratio:1 / 1;border-radius:50%;overflow:hidden;background:#fffffff2;background:transparent;display:grid;place-items:center;box-shadow:0 2px 14px #00000040}.labelIcon{width:100%;height:100%;object-fit:cover;border-radius:50%}.label img{width:82%;height:82%;object-fit:contain}.gloss{position:absolute;inset:0;border-radius:50%;pointer-events:none;background:radial-gradient(circle at 35% 25%,#ffffff2e,#fff0 45%),radial-gradient(circle at 65% 75%,#ffffff1a,#fff0 55%);mix-blend-mode:screen;opacity:.9}@media(prefers-reduced-motion:reduce){.disc.spin{animation:none}}.noHit{pointer-events:none}.stageMaskHidden{opacity:0;transition:opacity .24s ease;pointer-events:none}.answerBtn:disabled{opacity:.65;cursor:not-allowed}.answers{width:min(900px,100%);margin-inline:auto;display:grid;grid-template-columns:1fr 1fr;gap:12px}.answerBtn{border:1px solid rgba(255,255,255,.14);background:#ffffff0f;color:var(--text);border-radius:14px;padding:16px;min-height:84px;cursor:pointer;display:grid;grid-template-columns:34px 1fr;align-items:center;gap:12px}.answerBtn:hover{background:#ffffff1a}.badge{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-weight:700;border:1px solid rgba(255,255,255,.16);background:#ffffff14}.answerMain{display:grid;gap:2px}.answerTitle{font-size:15px}.answerSub{font-size:13px;color:var(--muted)}.gamePage{height:100dvh;overflow:hidden}.stageBlock{width:min(560px,92vw,70vh);margin-inline:auto}.stageHeader{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:0 2px;margin-bottom:10px}.stageHeaderLeft{min-width:0;flex:1 1 auto;display:flex;align-items:center;gap:8px}.stageHomeBtn{flex:0 0 auto;height:30px;padding:0 10px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;color:var(--text);cursor:pointer;font-size:12px;font-weight:800;white-space:nowrap}.stageHomeBtn:hover{background:#ffffff1a}.stageHeaderTitle{min-width:0;flex:1 1 auto;display:flex;align-items:baseline;gap:8px;overflow:hidden}.stagePlaylistName{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:18px;font-weight:700}.stageModeText{flex:0 0 auto;font-size:12px;opacity:.75;white-space:nowrap}.stageHeaderProgress{flex:0 0 auto}.progressPill,.scorePill{height:20px;display:inline-flex;align-items:center;border-radius:6px;background:transparent;border:0}.progressPill{padding:0 6px;font-size:12px;line-height:1;font-weight:750;color:#ffffffc7}.progressPillLoading{min-width:72px;justify-content:center}.scorePill{gap:5px;padding:0 6px}.scoreLabel{font-size:11px;line-height:1;color:#ffffff8c}.scoreValue{min-width:22px;height:20px;padding:0 6px;display:grid;place-items:center;border-radius:6px;font-size:12px;line-height:1;font-weight:850;font-variant-numeric:tabular-nums;color:#ffffffeb;background:#50f0aa24}.lobbyPage{min-height:100dvh;padding:22px 16px 40px;max-width:1100px;margin:0 auto}.lobbyHeader{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px}.lobbyTitleMain{font-size:22px;font-weight:800;letter-spacing:.5px}.lobbyTitleSub{font-size:13px;color:var(--muted);margin-top:4px}.importBtn{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:14px;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;color:var(--text);cursor:pointer}.importBtn:hover{background:#ffffff1a}.lobbyError{margin:12px 0;color:#ffb4b4eb}.playlistGrid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:12px}@media(min-width:520px){.playlistGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:820px){.playlistGrid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1024px){.playlistGrid{grid-template-columns:repeat(4,minmax(0,1fr))}}.playlistCard{text-align:left;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;border-radius:16px;overflow:hidden;padding:0;cursor:pointer;display:flex;flex-direction:column}.playlistCard:hover{background:#ffffff1a}.playlistCover{width:100%;aspect-ratio:1 / 1;background:#ffffff0d}.playlistCover img{width:100%;height:100%;object-fit:cover;display:block}.playlistCoverFallback{width:100%;height:100%;background:#00000040}.playlistMeta{padding:10px 10px 12px;display:grid;gap:4px;min-height:62px}.playlistName{font-weight:750;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playlistCount{font-size:12px;color:var(--muted)}.skeleton{background:#ffffff0a;border-color:#ffffff14}.skelBlock,.skelLine{position:relative;overflow:hidden;border-radius:12px;background:#ffffff14}.skelBlock:after,.skelLine:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);animation:skelShimmer 1.2s infinite}.skelLine{height:12px}@keyframes skelShimmer{to{transform:translate(100%)}}.modalBackdrop{position:fixed;inset:0;background:#0000008c;display:grid;place-items:center;padding:16px;z-index:50}.modal{width:min(560px,100%);border-radius:18px;border:1px solid rgba(255,255,255,.14);background:#101827eb;box-shadow:var(--shadow);overflow:hidden}.tuneModal{align-self:start;margin-top:200px;max-height:calc(100dvh - 140px);overflow-y:auto}@media(max-width:859px){.tuneModal{margin-top:120px;max-height:calc(100dvh - 80px)}}.modalHeader{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.1)}.modalTitle{font-weight:800}.modalClose{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:18px}.modalBody{padding:14px;display:grid;gap:12px}.modalHint{color:var(--muted);font-size:13px}.modalInput{width:100%;border-radius:14px;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;color:var(--text);padding:12px;outline:none}.modalError{color:#ffb4b4eb;font-size:13px}.choiceRow{display:flex;gap:10px;flex-wrap:wrap}.pill{padding:10px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;color:var(--text);cursor:pointer}.pill:hover{background:#ffffff1a}.modalActions{display:flex;justify-content:flex-end;gap:10px}.btnGhost,.btnPrimary{padding:10px 12px;border-radius:14px;cursor:pointer}.btnGhost{border:1px solid rgba(255,255,255,.14);background:#ffffff0f;color:var(--text)}.btnGhost:hover{background:#ffffff1a}.btnPrimary{border:1px solid rgba(255,255,255,.18);background:#567eff40;color:var(--text)}.btnPrimary:hover{background:#567eff52}.btnPrimary:disabled{opacity:.6;cursor:not-allowed}.loaderBar{height:8px;border-radius:999px;background:#ffffff1a;overflow:hidden;position:relative}.loaderBar:after{content:"";position:absolute;inset:0;width:45%;background:#ffffff2e;transform:translate(-60%);animation:slide .9s infinite ease-in-out}@keyframes slide{0%{transform:translate(-60%)}to{transform:translate(160%)}}.rateBox{border-radius:16px;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;padding:12px;display:grid;place-items:center;gap:4px}.ratePct{font-size:28px;font-weight:900}.rateSub{font-size:13px;color:var(--muted)}.resultBig{font-size:22px;font-weight:800;letter-spacing:.2px}.resultSub{margin-top:8px;font-size:12px;color:var(--muted)}.nextBtn{width:min(900px,100%);border-radius:14px;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;color:var(--text);padding:12px 14px;cursor:pointer}.nextBtn:hover{background:#ffffff1a}.stageRightOverlay{position:absolute;right:10px;top:50%;transform:translateY(-50%);z-index:4;pointer-events:auto}.stageRightButtons{display:grid;gap:10px}.stageBtn{width:44px;height:44px;border-radius:14px;border:1px solid rgba(255,255,255,.18);background:#00000059;color:#fff;cursor:pointer;font-size:18px;display:grid;place-items:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.stageBtn:hover{background:#00000080}.stageBottomOverlay{position:absolute;left:0;right:0;bottom:110px;z-index:4;display:grid;place-items:center;pointer-events:none}.stageCenterOverlay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:4;pointer-events:none}.stageCenterBtn{pointer-events:auto;width:72px;height:72px;border-radius:18px;border:1px solid rgba(255,255,255,.2);background:#00000073;color:#fff;font-size:26px;display:grid;place-items:center;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 16px 40px #0006}.stageCenterBtn:hover{background:#0009}.nextBtnMobile{pointer-events:auto;border:1px solid rgba(255,255,255,.18);background:#00000073;color:#fff;border-radius:14px;padding:12px 18px;font-weight:700}@media(min-width:860px){.nextBtnMobile{display:none}}@media(max-width:859px){.stageRightOverlay{display:none}}.answerBtn{min-height:84px;height:100%}.answerMain{min-width:0}.clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.answerTitle{font-size:15px;line-height:1.25}.stageShell{position:relative;width:100%}.floatControls{position:absolute;top:50%;right:-140px;transform:translateY(-50%);display:flex;gap:10px;pointer-events:none;z-index:6}.floatBtn{pointer-events:auto;width:48px;height:48px;border-radius:16px;border:1px solid rgba(255,255,255,.18);background:#00000059;color:#fff;cursor:pointer;font-size:20px;display:grid;place-items:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:opacity .12s ease,transform .12s ease}.floatBtn:hover{background:#00000080}.floatBtn.isHidden{opacity:0;transform:scale(.96);pointer-events:none}.sideActionBtn{pointer-events:auto;height:48px;min-width:124px;padding:0 16px;border-radius:16px;border:1px solid rgba(255,255,255,.18);background:#ffffff14;color:var(--text);cursor:pointer;font-weight:800;letter-spacing:.2px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 16px 40px #00000047;display:grid;place-items:center;transition:background .14s ease,transform .12s ease,opacity .12s ease}.sideActionBtn:hover{background:#ffffff1f}.sideActionBtn:active{transform:translateY(1px) scale(.995)}.sideActionBtn:disabled{opacity:.55;cursor:not-allowed}@media(min-width:860px){.stageCenterAction{display:none}.floatControls{display:flex}}@media(max-width:859px){.floatControls{display:none}.stageCenterAction{display:grid}}@media(max-width:859px){.floatControls{display:none}}.stageCenterAction{position:absolute;inset:0;display:grid;place-items:center;z-index:999;pointer-events:none}.answerBtn{position:relative;transition:transform .12s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease}.answerBtn:active{transform:translateY(1px) scale(.995)}.answerBtn.isDim{opacity:.55;filter:saturate(.8)}.answerBtn.isCorrect{border-color:#50f0aad9;background:radial-gradient(800px 200px at 20% 10%,rgba(80,240,170,.2),transparent 55%),#ffffff0f;box-shadow:0 0 0 1px #50f0aa33 inset,0 12px 28px #14dc9624;transform:translateY(-1px)}.answerBtn.isWrong{border-color:#ff5f5fe6;background:radial-gradient(800px 200px at 20% 10%,rgba(255,95,95,.18),transparent 55%),#ffffff0f;box-shadow:0 0 0 1px #ff5f5f2e inset,0 12px 28px #ff5f5f24}.answerBtn.isCorrect .badge{border-color:#50f0aad9;background:#50f0aa29}.answerBtn.isWrong .badge{border-color:#ff5f5fe6;background:#ff5f5f29}.answerBtn.isCorrect:after,.answerBtn.isWrong:before,.answerBtn.isWrong:after{content:"";position:absolute;top:50%;right:14px;pointer-events:none;box-sizing:border-box}.answerBtn.isCorrect:after{width:24px;height:24px;transform:translateY(-50%);border-radius:999px;border:4px solid rgba(80,240,170,.95);background:transparent;box-shadow:none}.answerBtn.isWrong:before,.answerBtn.isWrong:after{width:28px;height:4px;right:12px;border-radius:999px;background:#ff7878f5;box-shadow:0 8px 18px #ff5f5f29;transform-origin:center}.answerBtn.isWrong:before{transform:translateY(-50%) rotate(45deg)}.answerBtn.isWrong:after{transform:translateY(-50%) rotate(-45deg)}.niceScroll{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.28) rgba(255,255,255,.06)}.niceScroll::-webkit-scrollbar{width:10px;height:10px}.niceScroll::-webkit-scrollbar-track{background:#ffffff0f;border-radius:999px}.niceScroll::-webkit-scrollbar-thumb{background:#ffffff38;border-radius:999px;border:2px solid rgba(0,0,0,0);background-clip:padding-box}.niceScroll::-webkit-scrollbar-thumb:hover{background:#ffffff52;border:2px solid rgba(0,0,0,0);background-clip:padding-box}.niceScroll::-webkit-scrollbar-corner{background:transparent}.niceScroll{scroll-behavior:smooth}.square{position:relative}.stageCenterAction{position:absolute;inset:0;display:grid;place-items:center;z-index:9999;pointer-events:none}.stageCenterAction>*{pointer-events:auto}@media(min-width:860px){.floatControls{display:flex}.stageCenterAction{display:none}}@media(max-width:859px){.floatControls{display:none}.stageCenterAction{display:grid}.answerBtn.isCorrect:after,.answerBtn.isWrong:before,.answerBtn.isWrong:after{content:none;display:none}}:root{--mobile-btn-x: 0px;--mobile-btn-y: 131px;--desktop-btn-right: -160px;--desktop-btn-y: 0px}@media(max-width:859px){.stageCenterAction{transform:translate(var(--mobile-btn-x),var(--mobile-btn-y))}.stageHeader{gap:8px}.stageHeaderLeft{min-width:0;flex:1 1 auto;max-width:calc(100% - 122px)}.stageHeaderTitle{min-width:0;overflow:hidden}.stagePlaylistName{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stageModeText{display:none}}@media(min-width:860px){.floatControls{right:var(--desktop-btn-right);top:calc(50% + var(--desktop-btn-y));transform:translateY(-50%)}.stageHomeBtn{height:36px;padding:0 14px;border-radius:12px;font-size:14px}}.limitBox{margin-top:14px;display:grid;gap:10px;padding:12px;border-radius:16px;border:1px solid rgba(255,255,255,.12);background:#ffffff0a}.limitToggle{min-height:44px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.limitToggle input{position:absolute;opacity:0;pointer-events:none}.limitSwitch{width:44px;height:26px;border-radius:999px;padding:3px;border:1px solid rgba(255,255,255,.18);background:#ffffff1a;transition:background .16s ease,border-color .16s ease}.limitSwitch span{display:block;width:18px;height:18px;border-radius:50%;background:#ffffffd1;transition:transform .16s ease}.limitToggle input:checked+.limitSwitch{border-color:#567eff99;background:#567eff5c}.limitToggle input:checked+.limitSwitch span{transform:translate(18px)}.limitToggleText{font-size:14px;font-weight:700}.limitValueText{justify-self:end;font-size:15px;line-height:1;font-weight:850;color:#ffffffeb;white-space:nowrap}.limitSliderArea{display:grid;gap:8px}.limitSliderTop,.limitSliderScale{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted)}.limitSliderTop strong{color:var(--text);font-size:14px}.limitSlider{width:100%;accent-color:rgba(125,155,255,.95)}.debugPanel{position:fixed;left:14px;bottom:14px;z-index:10000;width:min(360px,calc(100vw - 28px));padding:12px;border-radius:16px;border:1px solid rgba(255,255,255,.18);background:#080c14d1;color:var(--text);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 18px 50px #0000006b;font-size:12px;line-height:1.45}.debugPanelTop{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.debugPill{padding:4px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:#ffffff14;color:var(--muted);white-space:nowrap}.debugRows{display:grid;gap:4px;color:#ffffffc7}.debugActions{margin-top:10px;display:flex;justify-content:flex-end}.debugButton{border:1px solid rgba(255,255,255,.18);background:#ffffff14;color:var(--text);border-radius:12px;padding:8px 10px;cursor:pointer;font-size:12px;font-weight:700}.debugButton:hover{background:#ffffff1f}@media(max-width:859px){.debugPanel{left:10px;right:10px;bottom:10px;width:auto}}:root{--bg0: #0b0f17;--bg1: #101827;--card: rgba(255,255,255,.06);--card2: rgba(255,255,255,.09);--border: rgba(255,255,255,.1);--text: rgba(255,255,255,.92);--muted: rgba(255,255,255,.62);--shadow: 0 20px 60px rgba(0,0,0,.55);--radius: 18px}*{box-sizing:border-box}html{background:linear-gradient(180deg,var(--bg0),var(--bg1));background-repeat:no-repeat;background-size:cover}body{margin:0;color:var(--text);background:radial-gradient(1000px 500px at 15% 15%,rgba(86,126,255,.25),transparent 60%),radial-gradient(900px 500px at 85% 25%,rgba(255,120,195,.18),transparent 60%),radial-gradient(900px 500px at 50% 90%,rgba(53,255,197,.12),transparent 60%),linear-gradient(180deg,var(--bg0),var(--bg1));background-repeat:no-repeat;background-size:cover;font-family:system-ui,-apple-system,Noto Sans TC,sans-serif}a{color:inherit}
