@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-latin-400-normal-BLhwKU8k.woff2) format("woff2"),url(/assets/montserrat-latin-400-normal-xItZbAXg.woff) format("woff")}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-latin-500-normal-DRFEGfly.woff2) format("woff2"),url(/assets/montserrat-latin-500-normal-Dok2oTci.woff) format("woff")}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-latin-600-normal-UVxSCcoG.woff2) format("woff2"),url(/assets/montserrat-latin-600-normal-CdhFl4lI.woff) format("woff")}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-latin-700-normal-BdjcYUrC.woff2) format("woff2"),url(/assets/montserrat-latin-700-normal-BWkrl476.woff) format("woff")}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/montserrat-latin-800-normal-axpkC1rd.woff2) format("woff2"),url(/assets/montserrat-latin-800-normal-C3dfDxXV.woff) format("woff")}@font-face{font-family:AHDN;src:url(/api/assets/ahdn.ttf) format("truetype");font-style:normal;font-weight:400;font-display:swap}:root{color:#14213d;background:#f4f7fc;font-family:Montserrat,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;--blue: #2f5bea;--blue-dark: #0a2a8a;--blue-soft: #e3eaff;--ink: #14213d;--muted: #5a6785;--paper: #fff;--canvas: #f4f7fc;--surface: #eef3fb;--line: #e1e7f1;--pink: #e8578a;--gold: #b7791f;--green: #0f8a6a;--green-soft: #dcf5ec;--red: #d1344b;--red-soft: #fff0f2;--shadow: 0 16px 45px rgba(35, 57, 112, .09);--text-caption: 13px;--text-ui: 14px;--text-body: 15px}*{box-sizing:border-box}html{scroll-behavior:smooth;overscroll-behavior-y:none}body{margin:0;min-width:320px;min-height:100vh;background:var(--canvas);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid rgba(47,91,234,.35);outline-offset:3px}.app-shell{min-height:100vh}.topbar{position:fixed;top:0;right:0;left:0;z-index:60;min-height:68px;padding:12px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fffffff7;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-family:AHDN,Montserrat,sans-serif;font-size:27px;font-weight:400;letter-spacing:.01em;line-height:1}.brand>span:last-child>span{color:var(--blue)}.brand-logo{width:34px;height:42px;object-fit:contain}.account-area{position:relative;margin-left:auto;display:flex;align-items:center;gap:9px}.elo-pill{min-height:40px;padding:0 15px 0 12px;display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:10px;font-size:13px}.elo-pill svg{color:var(--blue)}.elo-pill span{color:var(--muted)}.elo-pill strong{font-weight:700;font-variant-numeric:tabular-nums}.elo-ladder{display:inline-flex;align-items:baseline;gap:6px;white-space:nowrap}.profile-button{height:40px;padding:0 8px 0 4px;display:flex;align-items:center;gap:8px;color:var(--ink);background:var(--surface);border:0;border-radius:20px;font-size:13px;font-weight:600;cursor:pointer}.profile-button:hover{background:#e4ebf6}.avatar{--avatar-size: 34px;width:var(--avatar-size);height:var(--avatar-size);flex:0 0 var(--avatar-size);display:grid;place-items:center;color:var(--blue-dark);background:var(--blue-soft);border-radius:50%;font-size:calc(var(--avatar-size) * .42);font-weight:700;text-transform:uppercase;object-fit:cover}.avatar-sm{--avatar-size: 32px;color:#7a1c41;background:#ffe4ee}.avatar-md{--avatar-size: 34px}.avatar-lg{--avatar-size: 38px}.avatar-xl{--avatar-size: 96px}.sign-in-button{height:40px;padding:0 17px;color:#fff;background:var(--ink);border:0;border-radius:20px;font-size:var(--text-ui);font-weight:600;cursor:pointer}.sign-in-button:hover{background:var(--blue-dark)}.profile-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:40;width:240px;padding:8px 0;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 34px #14213d2e}.profile-menu-head{padding:9px 16px 13px;display:flex;flex-direction:column;gap:3px;margin-bottom:7px;border-bottom:1px solid var(--line)}.profile-menu-head strong{font-size:15px}.profile-menu-head span{color:var(--muted);font-size:13px}.profile-menu a,.profile-menu button{width:100%;padding:11px 16px;display:block;color:var(--ink);background:transparent;border:0;text-align:left;font-size:14px;cursor:pointer}.profile-menu a:hover,.profile-menu button:hover{background:var(--surface)}.profile-menu .sign-out{color:var(--red)}.menu-divider{height:1px;margin:7px 0;background:var(--line)}.workspace{min-height:100vh;padding-top:68px;padding-left:88px}.rail{position:fixed;top:68px;bottom:0;left:0;z-index:40;width:88px;padding:28px 8px;display:flex;flex-direction:column;align-items:center;gap:14px;background:var(--canvas);border-right:1px solid rgba(225,231,241,.7)}.rail-item{padding:0;display:flex;flex-direction:column;align-items:center;gap:5px;color:#74809b;background:transparent;border:0;font-size:var(--text-caption);font-weight:500;cursor:pointer}.rail-item>span{width:56px;height:33px;display:grid;place-items:center;border-radius:18px}.rail-item:hover>span{background:#e7ecf6}.rail-item.active{color:var(--ink);font-weight:600}.rail-item.active>span{color:var(--blue-dark);background:var(--blue-soft)}.main-content{width:min(1480px,100%);margin:0 auto;padding:38px 42px 64px}.page-intro{margin-bottom:26px;display:flex;justify-content:space-between;align-items:flex-end;gap:32px}.page-intro h1{margin:0;color:var(--ink);font-size:clamp(32px,3.4vw,44px);font-weight:700;letter-spacing:-.025em;line-height:1.1}.page-intro p{max-width:720px;margin:12px 0 0;color:var(--muted);font-size:15px;line-height:1.6}.intro-stats{flex:0 0 auto;display:flex;gap:8px}.intro-stats span{padding:9px 13px;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:999px;font-size:var(--text-ui)}.intro-stats strong{color:var(--blue-dark);font-weight:700}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:20px}.game-card,.side-card,.panel{background:var(--paper);border:1px solid rgba(225,231,241,.78);box-shadow:var(--shadow)}.game-card{min-height:690px;padding:28px;overflow:hidden;border-radius:24px}.match-meta{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.match-tags{display:flex;flex-wrap:wrap;gap:8px}.mode-tag,.difficulty-tag{min-height:32px;padding:0 11px;display:inline-flex;align-items:center;border-radius:8px;font-size:var(--text-caption)}.mode-tag{color:var(--blue-dark);background:var(--blue-soft);font-weight:600}.difficulty-tag{color:var(--muted);border:1px solid #b8c3d9;font-weight:500}.round-score{color:var(--muted);font-size:var(--text-ui)}.round-score.intro-stats{margin-left:auto;justify-content:flex-end}.progress-track{margin-top:15px;display:grid;grid-template-columns:repeat(5,1fr);gap:4px}.progress-track span{position:relative;height:4px;overflow:hidden;background:#e4ebf6;border-radius:3px}.progress-track span.current{background:#b8c3d9}.progress-track span.current:after{content:"";position:absolute;inset:0 auto 0 0;width:calc(var(--fill, 0) * 100%);background:var(--blue);border-radius:3px}.progress-track.is-ticking span.current:after{transition:width var(--fill-step, 1s) linear}.progress-track span.complete{background:var(--blue)}.setup-view{margin-top:26px}.setup-view>h2{margin:0;color:var(--ink);font-size:27px;font-weight:700;letter-spacing:-.025em}.setup-view>p{margin:7px 0 0;color:var(--muted);font-size:14px;line-height:1.5}.setup-section{margin-top:20px}.setup-section h3{margin:0 0 9px;color:var(--ink);font-size:var(--text-ui);font-weight:600}.mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mode-grid button,.difficulty-grid button{padding:13px 15px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;color:var(--ink);background:var(--surface);border:2px solid transparent;border-radius:13px;text-align:left;cursor:pointer}.mode-grid button{min-height:76px}.difficulty-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.difficulty-grid button{min-height:76px}.mode-grid button:hover,.difficulty-grid button:hover{background:#e7edfa}.mode-grid button.selected,.difficulty-grid button.selected{background:var(--blue-soft);border-color:var(--blue)}.mode-grid strong,.difficulty-grid strong{font-size:14px;font-weight:700}.mode-grid span,.difficulty-grid span{color:var(--muted);font-size:var(--text-caption);line-height:1.4}.duration-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.animated-number{font-variant-numeric:tabular-nums;transition:color .2s ease}.animated-number.counting{color:var(--green)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.crown{display:inline-flex}.crown.crown{color:var(--gold)}.option-name{display:inline-flex;align-items:center;gap:7px}.duration-options[data-count="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}.setup-note{margin:10px 0 0;color:var(--muted);font-size:var(--text-ui);line-height:1.5}.locked-setting{padding:14px 16px;display:flex;align-items:flex-start;gap:13px;background:var(--blue-soft);border:2px solid var(--blue);border-radius:12px}.locked-setting>svg{margin-top:1px;flex:0 0 auto;color:var(--blue)}.locked-setting .option-name{display:flex}.locked-setting strong{margin-bottom:3px;font-size:14px;font-weight:700}.locked-setting span{color:var(--muted);font-size:var(--text-ui);line-height:1.5}.duration-options button{height:42px;display:inline-flex;align-items:center;justify-content:center;gap:7px;color:var(--muted);background:#fff;border:1px solid #b8c3d9;border-radius:10px;font-size:var(--text-caption);font-weight:500;cursor:pointer}.duration-options button:hover{background:var(--surface)}.duration-options button.selected{color:var(--blue-dark);background:var(--blue-soft);border:2px solid var(--blue);font-weight:600}.start-button{min-width:190px;height:52px;margin:28px auto 0;padding:0 28px;display:block;color:#fff;background:var(--blue);border:0;border-radius:26px;box-shadow:0 10px 24px #2f5bea38;font-size:14px;font-weight:600;cursor:pointer}.start-button:hover{background:#244ed6}.round-view{margin-top:23px}.game-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.status-kicker{color:var(--blue);font-size:var(--text-caption);font-weight:600}.game-card-head h2{margin:5px 0;color:var(--ink);font-size:25px;font-weight:700;letter-spacing:-.025em}.game-card-head p{max-width:610px;min-height:20px;margin:0;color:var(--muted);font-size:var(--text-ui);line-height:1.5}.round-tools{display:flex;align-items:center;gap:14px}.replay-status{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:var(--text-caption);white-space:nowrap}.replay-status i{width:10px;height:10px;border:2px solid #c8d1e3;border-radius:50%}.replay-status i.available{border-color:var(--blue);background:var(--blue)}.player-zone{padding:25px 0 22px;display:flex;flex-direction:column;align-items:center}.vinyl-stage{position:relative;width:286px;height:286px;display:grid;place-items:center}.vinyl{position:relative;z-index:2;width:230px;height:230px;display:grid;place-items:center;overflow:hidden;background:#14213d;border:8px solid #1c2a49;border-radius:50%;box-shadow:0 20px 45px #14213d40,inset 0 0 0 1px #ffffff1a}.vinyl:before{content:"";position:absolute;width:44%;height:120%;transform:rotate(28deg);background:#ffffff06}.groove{position:absolute;border:1px solid rgba(255,255,255,.11);border-radius:50%}.groove-one{width:196px;height:196px}.groove-two{width:164px;height:164px}.groove-three{width:132px;height:132px}.record-label{position:relative;width:76px;height:76px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;color:#fff;background:var(--blue);border-radius:50%;line-height:.9}.record-label:before{content:"";position:absolute;top:0;right:0;bottom:50%;left:0;background:var(--pink)}.record-label strong,.record-label small{position:relative;z-index:1}.record-label strong{font-size:27px;font-weight:700}.record-label small{margin-top:3px;font-size:9px;font-weight:600}.spindle{position:absolute;z-index:5;width:8px;height:8px;background:#fff;border:2px solid #14213d;border-radius:50%}.tonearm{position:absolute;z-index:4;top:17px;right:8px;width:16px;height:164px;transform:rotate(18deg);transform-origin:top center;background:#a8b4ca;border-radius:10px;box-shadow:inset -3px 0 #14213d2e;transition:transform .25s ease}.tonearm:before{content:"";position:absolute;top:-8px;left:-10px;width:36px;height:36px;background:#dce3ee;border:6px solid white;border-radius:50%;box-shadow:0 3px 8px #14213d26}.tonearm i{position:absolute;bottom:-6px;left:-7px;width:30px;height:20px;background:#7b87a1;border-radius:5px}.vinyl-ripple{position:absolute;z-index:1;width:230px;height:230px;border:2px solid rgba(47,91,234,.16);border-radius:50%;opacity:0}.is-playing .vinyl{animation:spin 1.25s linear infinite}.is-playing .tonearm{transform:rotate(28deg)}.is-playing .ripple-one{animation:ripple 1s ease-out infinite}.is-playing .ripple-two{animation:ripple 1s ease-out .35s infinite}.clip-meter{width:min(310px,80%);height:5px;margin:9px 0 18px;overflow:hidden;background:#e7ecf5;border-radius:6px}.clip-meter span{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left;background:var(--pink)}.clip-meter.running span{animation:clip-progress var(--clip-duration) linear forwards}.listen-button{min-width:154px;height:48px;padding:0 24px;display:inline-flex;align-items:center;justify-content:center;gap:9px;color:#fff;background:var(--blue);border:0;border-radius:24px;box-shadow:0 9px 24px #2f5bea3d;font-size:14px;font-weight:600;cursor:pointer}.listen-button:hover:not(:disabled){background:#244ed6}.listen-button:disabled{color:#9ba6bb;background:#e9edf4;box-shadow:none;cursor:not-allowed}.room-rules{margin:4px 0 0;color:var(--ink);font-size:var(--text-ui);font-weight:600}.listen-note{margin-top:10px;color:var(--muted);font-size:var(--text-ui)}.guess-form{padding:20px;background:#f8faff;border:1px solid var(--line);border-radius:17px}.guess-form label{display:block;margin-bottom:8px;color:var(--muted);font-size:var(--text-caption);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.guess-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.guess-row input{min-width:0;height:48px;padding:0 14px;color:var(--ink);background:#fff;border:1px solid #c8d1e3;border-radius:11px;font-size:14px}.guess-row input::placeholder{color:#98a4ba}.guess-row input:disabled{background:#f0f3f8}.guess-row button,.result-card button{height:48px;padding:0 21px;color:#fff;background:var(--ink);border:0;border-radius:11px;font-size:var(--text-ui);font-weight:600;cursor:pointer}.guess-row button{display:inline-flex;align-items:center;justify-content:center;gap:8px}.guess-row button:disabled{color:#9ba6bb;background:#e3e8f0;cursor:not-allowed}.guess-form>small{display:block;margin:10px 0 0 2px;color:var(--muted);font-size:var(--text-ui);line-height:1.5}.inline-error,.inline-notice{margin:11px 0 0;font-size:var(--text-ui);line-height:1.5}.inline-error{color:var(--red)}.inline-notice{color:var(--blue-dark)}.retry-button{height:42px;margin:18px auto 0;padding:0 18px;display:flex;align-items:center;gap:8px;color:var(--blue);background:#fff;border:1px solid var(--blue);border-radius:10px;font-weight:600;cursor:pointer}.result-card{min-height:108px;padding:17px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;border-radius:17px}.result-card.correct{color:#0a3d30;background:var(--green-soft)}.result-card.missed{color:#671824;background:var(--red-soft)}.result-icon{width:42px;height:42px;display:grid;place-items:center;color:#fff;background:var(--green);border-radius:50%}.result-card.missed .result-icon,.result-icon.missed{background:var(--red)}.result-cover{position:relative;width:92px;height:92px;flex:0 0 auto;display:block;animation:cover-in .4s ease-out}.result-cover img{width:100%;height:100%;display:block;object-fit:cover;background:var(--surface);border-radius:10px;box-shadow:0 6px 18px #14213d38}.result-badge{position:absolute;right:-9px;bottom:-9px;width:32px;height:32px;display:grid;place-items:center;color:#fff;border:3px solid var(--paper);border-radius:50%}.result-badge.correct{background:var(--green)}.result-badge.missed{background:var(--red)}.result-cover-lg{width:168px;height:168px}.result-cover-lg img{border-radius:14px}.result-cover-lg .result-badge{right:-12px;bottom:-12px;width:42px;height:42px;border-width:4px}@keyframes cover-in{0%{opacity:0;transform:scale(.88) rotate(-3deg)}to{opacity:1;transform:none}}.result-card>div small,.result-card>div strong,.result-card>div span{display:block}.result-card small{margin-bottom:3px;font-size:var(--text-caption);font-weight:600}.marquee{display:block;overflow:hidden;white-space:nowrap}.marquee-inner{display:inline-block}.marquee.is-overflowing .marquee-inner{animation:marquee-pingpong var(--marquee-seconds, 6s) ease-in-out infinite alternate}@keyframes marquee-pingpong{0%,12%{transform:translate(0)}88%,to{transform:translate(var(--marquee-distance, 0))}}.result-card strong{overflow:hidden;font-size:19px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.result-card div>span{margin-top:3px;font-size:var(--text-ui);opacity:.76}.result-card button{display:flex;align-items:center;gap:7px}.result-card div>.result-guess{margin-top:6px;display:flex;align-items:baseline;gap:8px;min-width:0;opacity:1}.result-guess-label{flex:none;font-size:var(--text-ui);font-style:normal;font-weight:700}.result-guess-text{min-width:0;display:flex;font-size:var(--text-body);font-weight:500}.result-guess-text i{flex:none;font-style:normal}.game-over-view{min-height:580px;padding:48px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.game-over-record{width:74px;height:74px;display:grid;place-items:center;color:var(--blue);background:var(--blue-soft);border-radius:50%}.game-over-view>p{margin:20px 0 5px;color:var(--blue);font-size:var(--text-ui);font-weight:700}.game-over-view h2{margin:0;font-size:34px;letter-spacing:-.035em}.final-score{margin:25px 0 28px;display:flex;align-items:baseline;gap:8px}.final-score strong{font-size:58px;line-height:1;letter-spacing:-.055em}.final-score span{color:var(--muted);font-size:14px}.game-over-stats{width:min(620px,100%);display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.game-over-stats div{padding:18px 12px;display:flex;flex-direction:column;gap:6px;border-right:1px solid var(--line)}.game-over-stats div:last-child{border-right:0}.game-over-stats span{color:var(--muted);font-size:var(--text-ui)}.game-over-stats strong{font-size:21px}.game-over-actions{margin-top:30px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px}.play-again-button,.practice-options-button{height:50px;padding:0 24px;border-radius:25px;font-size:14px;font-weight:700;cursor:pointer}.play-again-button{display:inline-flex;align-items:center;gap:9px;color:#fff;background:var(--blue);border:0;box-shadow:0 9px 24px #2f5bea33}.practice-options-button{color:var(--ink);background:#fff;border:1px solid #b8c3d9}.practice-options-button:hover{background:var(--surface)}.game-over-view>small{margin-top:22px;color:var(--muted);font-size:var(--text-ui);line-height:1.5}.side-stack{display:flex;flex-direction:column;gap:16px}.side-card,.side-stack .panel{padding:20px;border-radius:20px}.side-card-title,.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.side-card-title{align-items:center}.side-card-title h2,.panel-heading h2{margin:0;color:var(--ink);font-size:16px;font-weight:700;letter-spacing:-.015em}.side-card-title p{margin:4px 0 0;color:var(--muted);font-size:var(--text-ui)}.side-card-title>svg{color:var(--blue)}.score-block{margin:20px 0;display:flex;align-items:baseline;gap:8px}.score-block strong{font-size:40px;font-weight:700;line-height:1;letter-spacing:-.035em}.score-block span{color:var(--muted);font-size:var(--text-ui)}.session-stats{padding-top:15px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.session-stats div{display:flex;flex-direction:column;gap:4px}.session-stats span{color:var(--muted);font-size:var(--text-ui)}.session-stats strong{font-size:17px}.match-card{min-height:108px}.match-card .panel-heading{padding:0 0 10px}.empty-copy{margin:9px 0 0;color:var(--muted);font-size:var(--text-ui);line-height:1.5}.match-list{margin-top:2px}.match-row{min-height:44px;padding:10px 0;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);font-size:var(--text-ui);line-height:1.4}.match-row:last-child{border-bottom:0}.match-round{flex:0 0 22px;color:var(--muted);font-size:var(--text-caption);font-style:normal;font-weight:700;font-variant-numeric:tabular-nums}.match-row span{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.match-row strong{flex:0 0 auto;color:var(--muted);font-size:var(--text-ui);font-weight:700}.match-row strong.positive{color:var(--green)}.panel-heading{padding:0 0 12px;align-items:center}.panel-heading button{padding:0;color:var(--blue);background:transparent;border:0;font-size:var(--text-ui);font-weight:600;cursor:pointer}.stats-section+.stats-section,.stats-section+.stats-signin{margin-top:30px}.stats-section-heading{margin-bottom:13px}.stats-section-heading h2{margin:0;font-size:22px;letter-spacing:-.02em}.practice-stats-panel{min-height:190px;padding:28px 32px;display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);align-items:stretch;gap:30px;border-radius:24px}.practice-score{padding-right:30px;display:flex;flex-direction:column;justify-content:center;border-right:1px solid var(--line)}.practice-score span,.practice-stats-grid span{color:var(--muted);font-size:var(--text-ui);font-weight:600;line-height:1.35}.practice-score strong{margin:8px 0 2px;font-size:52px;line-height:1;letter-spacing:-.045em}.practice-score small{color:var(--muted);font-size:var(--text-caption)}.practice-mode{margin-top:26px}.practice-mode>h3{margin:0 0 14px;color:var(--ink);font-size:20px;font-weight:700;letter-spacing:-.015em}.practice-levels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.practice-level{padding:22px;display:flex;flex-direction:column;border-radius:20px}.practice-level h4{margin:0 0 12px;color:var(--ink);font-size:var(--text-body);font-weight:700}.practice-level-score{font-size:34px;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1}.practice-level-caption{margin:6px 0 14px;color:var(--muted);font-size:var(--text-caption);font-weight:600}.practice-level dl{margin:0;padding-top:12px;display:grid;gap:8px;border-top:1px solid var(--line)}.practice-level dl>div{display:flex;justify-content:space-between;gap:10px}.practice-level dt{color:var(--muted);font-size:var(--text-ui)}.practice-level dd{margin:0;color:var(--ink);font-size:var(--text-ui);font-weight:700;font-variant-numeric:tabular-nums}.practice-note{margin:14px 2px 0;color:var(--muted);font-size:var(--text-ui);line-height:1.5}.practice-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:12px}.practice-stats-grid>div{min-width:0;padding:18px;display:flex;flex-direction:column;justify-content:space-between;gap:9px;background:var(--surface);border-radius:15px}.practice-stats-grid strong{font-size:26px;letter-spacing:-.025em}.stats-signin{min-height:300px;padding:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-radius:24px}.stats-signin>svg{width:64px;height:64px;padding:15px;color:var(--blue);background:var(--blue-soft);border-radius:20px}.stats-signin h2{margin:20px 0 7px;font-size:27px;letter-spacing:-.025em}.stats-signin p{max-width:460px;margin:0 0 24px;color:var(--muted);line-height:1.55}.stats-dashboard{display:grid;gap:18px}.ladder-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.elo-overview{min-height:300px;padding:34px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:space-between;gap:24px;border-radius:24px}.elo-overview>div:first-child{display:flex;flex-direction:column}.elo-overview>div:first-child span,.stats-metrics span{color:var(--muted);font-size:var(--text-ui);font-weight:600}.elo-overview>div:first-child strong{margin:8px 0 3px;font-size:64px;line-height:.95;letter-spacing:-.055em}.elo-overview small,.stats-metrics small{color:var(--muted);font-size:var(--text-ui);line-height:1.5}.elo-overview>svg{color:var(--blue)}.elo-overview dl{grid-column:1 / -1;margin:0;padding-top:24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:16px;border-top:1px solid var(--line)}.elo-overview dl div{display:flex;flex-direction:column;gap:5px}.elo-overview dt{color:var(--muted);font-size:var(--text-ui)}.elo-overview dd{margin:0;font-size:23px;font-weight:700}.stats-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.stats-metrics .panel{min-height:171px;padding:26px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:22px;text-align:center}.stats-metrics strong{margin:11px 0 7px;font-size:38px;line-height:1;letter-spacing:-.04em}.stats-metrics small{max-width:280px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;padding:24px;display:grid;place-items:center;overflow-y:auto;background:#0a142b94;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal-card{width:min(460px,100%);max-height:calc(100vh - 48px);padding:26px;overflow-y:auto;background:#fff;border:1px solid rgba(255,255,255,.5);border-radius:22px;box-shadow:0 28px 90px #0a142b4d}.modal-card.wide{width:min(720px,100%)}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.modal-head h2{margin:0;font-size:26px;letter-spacing:-.025em}.icon-button{width:38px;height:38px;display:grid;place-items:center;color:var(--muted);background:var(--surface);border:0;border-radius:50%;cursor:pointer}.auth-copy{margin:30px 0 22px}.auth-copy h3{margin:0 0 7px;font-size:18px}.auth-copy p{color:var(--muted);font-size:var(--text-ui);line-height:1.55}.ladder-tabs{max-width:420px;margin-bottom:18px}.ladder-status{margin:14px 4px 0;color:var(--muted);font-size:var(--text-ui);line-height:1.5}.auth-method-tabs{margin-bottom:18px;padding:4px;display:grid;grid-template-columns:1fr 1fr;gap:4px;background:var(--surface);border-radius:12px}.auth-method-tabs button{height:40px;color:var(--muted);background:transparent;border:0;border-radius:9px;font-size:var(--text-ui);font-weight:600;cursor:pointer}.auth-method-tabs button.active{color:var(--ink);background:#fff;box-shadow:0 2px 8px #14213d14}.password-auth{display:flex;flex-direction:column;gap:13px}.password-auth label{display:flex;flex-direction:column;gap:7px;color:var(--muted);font-size:var(--text-ui);font-weight:600}.password-auth label>span,.account-form label>span{display:flex;align-items:baseline;gap:5px}.password-auth label small,.account-form label small{color:#7d899f;font-size:var(--text-caption);font-style:italic;font-weight:500}.password-auth input{width:100%;height:44px;padding:0 13px;color:var(--ink);background:#fff;border:1px solid #c8d1e3;border-radius:10px}.password-auth>button{height:46px;margin-top:3px;color:#fff;background:var(--ink);border:0;border-radius:11px;font-size:var(--text-ui);font-weight:700;cursor:pointer}.password-auth>button:hover:not(:disabled){background:var(--blue-dark)}.password-auth>button:disabled{color:#9ba6bb;background:#e3e8f0;cursor:not-allowed}.auth-divider{margin:20px 0;display:flex;align-items:center;gap:12px;color:var(--muted);font-size:var(--text-caption)}.auth-divider:before,.auth-divider:after{content:"";height:1px;flex:1;background:var(--line)}.google-button{min-height:44px;display:flex;justify-content:center}.dev-login{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.dev-login label{display:block;margin-bottom:7px;color:var(--muted);font-size:var(--text-ui);font-weight:600}.dev-login>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.dev-login input,.account-form input,.danger-zone input,.room-entry-form input{min-width:0;height:44px;padding:0 13px;color:var(--ink);background:#fff;border:1px solid #c8d1e3;border-radius:10px}.dev-login button,.room-entry-form button{padding:0 18px;color:#fff;background:var(--ink);border:0;border-radius:10px;font-size:var(--text-ui);font-weight:600;cursor:pointer}.dev-login button:disabled,.room-entry-form button:disabled{background:#c8d1e3}.account-tabs{margin:24px 0;display:flex;gap:5px;border-bottom:1px solid var(--line)}.account-tabs button{padding:11px 13px;color:var(--muted);background:transparent;border:0;border-bottom:2px solid transparent;font-size:var(--text-ui);font-weight:600;cursor:pointer}.account-tabs button.active{color:var(--blue);border-bottom-color:var(--blue)}.avatar-editor{margin-bottom:22px;display:flex;align-items:center;gap:20px}.avatar-editor h3{margin:0 0 4px;font-size:var(--text-body)}.avatar-editor p{margin:0 0 12px;color:var(--muted);font-size:var(--text-ui);line-height:1.5}.avatar-actions{display:flex;flex-wrap:wrap;gap:10px}.secondary-action:disabled{color:#9ba6bb;cursor:not-allowed}.secondary-action:hover:not(:disabled){background:var(--blue-soft)}.account-form{display:grid;grid-template-columns:1fr 1fr;gap:15px}.account-form label{display:flex;flex-direction:column;gap:7px;color:var(--muted);font-size:var(--text-ui);font-weight:600}.account-form label:nth-child(3){grid-column:1 / -1}.account-form input:disabled{color:#7d879c;background:var(--surface)}.primary-action,.secondary-action{min-height:44px;padding:0 18px;border-radius:10px;font-size:var(--text-ui);font-weight:600;cursor:pointer}.primary-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:fit-content;color:#fff;background:var(--blue);border:0}.primary-action:hover:not(:disabled){background:#244ed6}.primary-action:disabled{color:#9ba6bb;background:#e3e8f0;cursor:not-allowed}.secondary-action{color:var(--blue-dark);background:#fff;border:1px solid #b8c3d9}.history-list{display:flex;flex-direction:column;gap:8px}.history-item{min-height:62px;padding:10px 12px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;background:var(--surface);border-radius:12px}.history-place{width:36px;height:36px;display:grid;place-items:center;color:var(--blue-dark);background:var(--blue-soft);border-radius:50%;font-size:var(--text-caption);font-weight:700}.history-item div{min-width:0;display:flex;flex-direction:column;gap:3px}.history-item div strong{font-size:var(--text-ui)}.history-item small{overflow:hidden;color:var(--muted);font-size:var(--text-caption);text-overflow:ellipsis;white-space:nowrap}.history-item>b{font-size:var(--text-caption)}.security-pane h3{margin:0 0 10px;font-size:14px}.security-actions{display:flex;flex-wrap:wrap;gap:8px}.session-list{margin-bottom:13px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px}.session-list>div{padding:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.session-list>div:last-child{border:0}.session-list span{min-width:0;display:flex;flex-direction:column;gap:3px}.session-list strong{font-size:var(--text-ui)}.session-list small{overflow:hidden;color:var(--muted);font-size:var(--text-caption);text-overflow:ellipsis;white-space:nowrap}.session-list b{color:var(--green);font-size:var(--text-caption)}.danger-zone{margin-top:26px;padding:17px;background:var(--red-soft);border:1px solid #ffd6dc;border-radius:14px}.danger-zone p{color:#8b4250;font-size:var(--text-ui);line-height:1.5}.danger-zone input{width:180px;margin-right:8px;border-color:#ebb5be}.danger-zone button{height:44px;padding:0 15px;color:#fff;background:var(--red);border:0;border-radius:10px;font-size:var(--text-ui);font-weight:600}.danger-zone button:disabled{opacity:.4}.standalone-view{min-height:680px}.full-leaderboard{padding:10px 22px;overflow:hidden;border-radius:22px}.ranking-head,.ranking-row{min-height:66px;display:grid;grid-template-columns:70px minmax(230px,1.4fr) minmax(160px,.8fr) 100px;align-items:center;gap:14px}.ranking-head{min-height:46px;color:var(--muted);border-bottom:1px solid var(--line);font-size:var(--text-caption);font-weight:600;text-transform:uppercase;letter-spacing:.06em}.ranking-head>span:last-child{text-align:right}.ranking-row{border-bottom:1px solid var(--line);font-size:var(--text-ui)}.ranking-row:last-child{border-bottom:0}.ranking-row>strong{color:var(--muted)}.ranking-row>span:nth-child(3){color:var(--muted)}.ranking-row>b{color:var(--blue-dark);font-size:15px;text-align:right}.ranking-row.is-you{margin:0 -12px;padding:0 12px;background:var(--blue-soft);border-radius:12px}.ranking-person{display:flex;align-items:center;gap:11px}.ranking-person>span{min-width:0;display:flex;flex-direction:column;gap:3px}.ranking-person b,.ranking-person small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranking-person small{color:var(--muted);font-size:var(--text-caption)}.empty-ranking{padding:60px 20px;color:var(--muted);text-align:center}.open-duels{margin-top:18px;padding:28px;border-radius:22px}.open-duels-head{margin-bottom:14px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.open-duels-head h2{margin:0 0 6px;font-size:21px}.open-duels-head p{margin:0;color:var(--muted);font-size:var(--text-ui);line-height:1.55}.open-duel-list{margin:0;padding:0;list-style:none}.open-duel-list li{min-height:76px;display:grid;grid-template-columns:auto minmax(0,1.2fr) minmax(0,1fr) 90px auto;align-items:center;gap:16px;border-top:1px solid var(--line)}.open-duel-host,.open-duel-rules,.open-duel-elo{min-width:0;display:flex;flex-direction:column;gap:3px}.open-duel-host strong,.open-duel-host small,.open-duel-rules b,.open-duel-rules small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.open-duel-host strong,.open-duel-rules b,.open-duel-elo b{font-size:var(--text-body);font-weight:700}.open-duel-host small,.open-duel-rules small,.open-duel-elo small{color:var(--muted);font-size:var(--text-caption)}.open-duel-elo{align-items:flex-end;font-variant-numeric:tabular-nums}.open-duels-empty{padding:26px 10px 14px;display:flex;flex-direction:column;align-items:center;gap:14px;border-top:1px solid var(--line);text-align:center}.open-duels-empty .waiting-record{width:56px;height:56px}.open-duels-empty p{max-width:460px;margin:0;color:var(--muted);font-size:var(--text-body);line-height:1.55}.entry-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}.multiplayer-settings{margin-bottom:18px;padding:28px;border-radius:24px}.multiplayer-settings-head{display:flex;align-items:center;gap:15px}.multiplayer-settings-head .mode-emblem{width:52px;height:52px;flex:0 0 52px;border-radius:15px}.multiplayer-settings-head h2{margin:0 0 4px;font-size:22px;letter-spacing:-.02em}.multiplayer-settings-head p{margin:0;color:var(--muted);font-size:var(--text-ui);line-height:1.45}.multiplayer-settings .settings-selector{margin-top:22px;padding-top:1px;border-top:1px solid var(--line)}.multiplayer-settings .setup-section{margin-top:18px}.create-room-card,.join-room-card{padding:28px;border-radius:22px}.mode-emblem{width:58px;height:58px;display:grid;place-items:center;color:#fff;background:var(--blue);border-radius:18px;box-shadow:0 10px 24px #2f5bea38}.create-room-card h2,.join-room-card h2{margin:24px 0 8px;font-size:21px}.create-room-card p,.join-room-card p{max-width:520px;margin:0 0 26px;color:var(--muted);font-size:var(--text-ui);line-height:1.55}.join-room-card h2{margin-top:49px}.entry-grid .create-room-card,.entry-grid .join-room-card{min-height:205px}.entry-grid .create-room-card h2,.entry-grid .join-room-card h2{margin:12px 0 8px}.room-entry-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:9px}.room-entry-form input,.room-entry-form button{height:48px;font-size:var(--text-ui)}.room-entry-form .room-code-input{font-size:15px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.room-entry-form .primary-action{min-height:44px}.nickname-copy{margin:24px 0 18px;color:var(--muted);font-size:var(--text-ui);line-height:1.55}.nickname-copy p{margin:0}.nickname-form{display:flex;flex-direction:column;gap:8px}.nickname-form label{color:var(--muted);font-size:var(--text-ui);font-weight:600}.nickname-form input{height:48px;padding:0 14px;color:var(--ink);border:1px solid #c8d1e3;border-radius:11px;font-size:15px}.nickname-form button{height:48px;margin-top:6px;color:#fff;background:var(--ink);border:0;border-radius:11px;font-size:var(--text-ui);font-weight:700;cursor:pointer}.nickname-form button:disabled{color:#9ba6bb;background:#e3e8f0;cursor:not-allowed}.room-banner{margin-bottom:22px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.room-banner h1{margin:0;font-size:38px;letter-spacing:-.03em}.room-title{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}.code-chip{position:relative;padding:3px 10px 3px 12px;display:inline-flex;align-items:center;gap:10px;color:var(--blue);background:var(--blue-soft);border:0;border-radius:10px;font:inherit;letter-spacing:.08em;cursor:copy;transition:background .15s ease}.code-chip:hover{background:#d6e0ff}.code-chip-icon{display:inline-flex;color:var(--blue);opacity:.75}.code-chip-icon.is-copied{color:var(--green);opacity:1}.code-chip:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:50%;padding:6px 11px;color:#fff;background:var(--ink);border-radius:8px;font-size:var(--text-caption);font-weight:600;letter-spacing:0;line-height:1.3;white-space:nowrap;pointer-events:none;opacity:0;transform:translate(-50%,4px);transition:opacity .15s ease,transform .15s ease}.code-chip:hover:after,.code-chip:focus-visible:after{opacity:1;transform:translate(-50%)}.copy-link{height:40px;padding:0 16px;display:inline-flex;align-items:center;gap:8px;color:var(--blue-dark);background:#fff;border:1px solid #b8c3d9;border-radius:10px;font-size:var(--text-ui);font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease}.copy-link:hover{background:var(--blue-soft);border-color:var(--blue)}.copy-link.is-copied{color:var(--green);background:var(--green-soft);border-color:#9bd9c4}.room-banner p{margin:8px 0 0;color:var(--muted);font-size:var(--text-ui)}.room-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.player-count{height:34px;padding:0 12px 0 10px;display:flex;align-items:center;gap:8px;color:var(--ink);background:var(--surface);border-radius:10px;font-size:var(--text-ui);font-weight:600}.player-count>svg{color:var(--blue)}.player-count strong{font-size:16px;font-weight:800;font-variant-numeric:tabular-nums}.player-count span{white-space:nowrap}.seat-meter{width:36px;height:6px;flex:0 0 36px;overflow:hidden;background:#d5ddec;border-radius:3px}.seat-meter:after{content:"";width:calc(var(--filled, 0) * 100%);height:100%;display:block;background:var(--blue);border-radius:3px;transition:width .3s ease}.player-count.is-full{color:var(--green);background:var(--green-soft)}.player-count.is-full>svg{color:var(--green)}.player-count.is-full .seat-meter:after{background:var(--green)}.leave-button{height:44px;padding:0 16px;display:flex;align-items:center;gap:8px;color:var(--red);background:#fff;border:1px solid #efb4bf;border-radius:12px;font-size:var(--text-ui);font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease}.leave-button:hover{background:var(--red-soft);border-color:var(--red)}.leave-button:active{transform:translateY(1px)}.room-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px}.donut-timer{position:relative;width:46px;height:46px;flex:0 0 auto;display:grid;place-items:center;color:var(--blue)}.donut-timer svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;transform:rotate(-90deg)}.donut-timer circle{fill:none;stroke-width:5}.donut-timer-track{stroke:#e2e8f3}.donut-timer-progress{stroke:currentColor;stroke-linecap:round;transition:stroke-dashoffset .1s linear,stroke .2s ease}.donut-timer>span{position:relative;display:grid;place-items:center;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1}.donut-timer>span strong{font-size:14px}.donut-timer.urgent{color:var(--red)}.donut-timer.urgent>span strong{color:var(--red)}.waiting-state,.multiplayer-result,.final-standings{min-height:500px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.waiting-record{width:82px;height:82px;display:grid;place-items:center;color:var(--blue);background:var(--blue-soft);border-radius:50%;animation:spin 8s linear infinite}.waiting-state h2,.multiplayer-result h2,.final-standings h2{margin:22px 0 7px;font-size:25px}.waiting-state p,.host-note{color:var(--muted);font-size:var(--text-ui);line-height:1.5}.waiting-state .primary-action{margin-top:16px}.text-action{margin-top:12px;color:var(--muted);background:transparent;border:0;font-size:var(--text-caption);text-decoration:underline;cursor:pointer}.multiplayer-result .result-icon{width:58px;height:58px}.multiplayer-result p{margin:17px 0 0;color:var(--muted);font-size:var(--text-ui)}.multiplayer-result h2{margin:5px 0;font-size:30px}.multiplayer-result>span:not(.result-icon):not(.result-cover){color:var(--muted);font-size:var(--text-ui)}.multiplayer-result .primary-action{margin-top:25px}.multiplayer-result .round-countdown{margin-top:24px;padding:9px 13px;color:var(--blue-dark);background:var(--blue-soft);border-radius:999px;font-size:var(--text-caption)}.final-standings>svg{color:#c68b17}.final-standings{padding:35px 0;justify-content:flex-start;gap:0}.final-standings .final-note{max-width:420px;margin:0;color:var(--muted);font-size:var(--text-body);line-height:1.5}.standings-list{width:min(520px,100%);margin:24px 0 28px;padding:0;list-style:none;border-top:1px solid var(--line)}.standings-list li{min-height:60px;padding:0 14px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:16px;border-bottom:1px solid var(--line);text-align:left;font-size:var(--text-body)}.standings-list strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.standings-list span{color:var(--muted);font-size:var(--text-ui)}.standings-list b{min-width:96px;color:var(--blue);text-align:right;font-size:var(--text-ui)}.room-sidebar{display:flex;flex-direction:column;gap:16px}.room-sidebar .side-card{padding:20px;border-radius:20px}.roster{margin:8px 0 0;padding:0;list-style:none}.roster li{padding:11px 2px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;border-bottom:1px solid var(--line)}.roster li:last-child{border-bottom:0}.roster li.is-offline .avatar{opacity:.55}.roster-info{min-width:0;display:flex;flex-direction:column;gap:3px}.roster-name{min-width:0;display:flex;align-items:center;gap:8px}.presence-dot{width:10px;height:10px;flex:0 0 10px;border-radius:50%;transition:background-color .3s ease,box-shadow .3s ease}.presence-dot.is-online{background:var(--green);box-shadow:0 0 0 3px var(--green-soft)}.presence-dot.is-offline{background:#9aa6bd;box-shadow:0 0 0 3px #e8ecf4}.roster-name strong{min-width:0;overflow:hidden;font-size:var(--text-body);text-overflow:ellipsis;white-space:nowrap}.host-tag,.offline-tag{flex:0 0 auto;padding:2px 8px;border-radius:999px;font-size:var(--text-caption);font-style:normal;font-weight:600}.host-tag{color:var(--blue-dark);background:var(--blue-soft)}.offline-tag{color:var(--muted);background:var(--surface)}.roster-status{min-width:0;display:flex;align-items:center;gap:7px;overflow:hidden;color:var(--muted);font-size:var(--text-ui);line-height:1.35;white-space:nowrap}.roster-guess{min-width:0;flex:0 1 auto;display:flex;overflow:hidden}.roster-guess .marquee{min-width:0;flex:0 1 auto}.roster-result{flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;font-weight:600}.roster-result.correct{color:var(--green)}.roster-result.missed{color:var(--red)}.roster-points{display:flex;flex-direction:column;align-items:flex-end;gap:1px}.roster-points b{color:var(--blue-dark);font-size:18px;font-variant-numeric:tabular-nums}.roster-points small{color:var(--green);font-size:var(--text-caption);font-weight:600}.live-dot{color:var(--green);font-size:var(--text-caption);font-weight:700}.live-dot:before{content:"";width:6px;height:6px;margin-right:5px;display:inline-block;background:var(--green);border-radius:50%}.live-feed{max-height:286px;margin:14px -7px -4px 0;padding-right:7px;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:#b9c5dc transparent;scrollbar-width:thin}.live-feed::-webkit-scrollbar{width:6px}.live-feed::-webkit-scrollbar-track{background:transparent}.live-feed::-webkit-scrollbar-thumb{background:#b9c5dc;border-radius:999px}.activity-item,.activity-empty{min-height:51px;padding:9px 8px;display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;border-bottom:1px solid var(--line)}.activity-item:last-child,.activity-empty:last-child{border-bottom:0}.activity-icon{width:34px;height:34px;display:grid;place-items:center;color:var(--blue);background:var(--blue-soft);border-radius:50%}.activity-item p,.activity-empty p{margin:0;color:var(--ink);font-size:var(--text-ui);line-height:1.45}.activity-empty p{color:var(--muted)}.activity-join .activity-icon{color:var(--blue-dark);background:var(--blue-soft)}.activity-answer .activity-icon{color:#a24970;background:#ffe5ef}.activity-correct .activity-icon{color:var(--green);background:var(--green-soft)}.activity-correct p{color:#0a614b;font-weight:650}.activity-leave .activity-icon{color:var(--red);background:var(--red-soft)}.activity-round .activity-icon{color:#9a6200;background:#fff1ca}.activity-finish .activity-icon{color:#875800;background:#ffedb8}.activity-finish p{font-weight:650}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ripple{0%{opacity:.7;transform:scale(.9)}to{opacity:0;transform:scale(1.28)}}@keyframes clip-progress{to{transform:scaleX(1)}}@media (max-width: 1180px){.main-content{padding-left:28px;padding-right:28px}.game-layout{grid-template-columns:minmax(0,1fr) 290px}}@media (max-width: 920px){.game-layout{grid-template-columns:1fr}.side-stack{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.room-grid{grid-template-columns:1fr}.room-sidebar{display:grid;grid-template-columns:1fr 1fr}.ladder-grid{grid-template-columns:1fr}.stats-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-stats-panel{grid-template-columns:1fr}.practice-levels{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-score{padding:0 0 24px;border-right:0;border-bottom:1px solid var(--line)}}@media (max-width: 720px){.topbar{padding:11px 16px}.profile-name{display:none}.profile-button{padding-right:6px}.workspace{padding-left:0}.rail{position:fixed;top:auto;right:0;bottom:0;left:0;z-index:50;width:100%;height:66px;padding:6px 10px;flex:none;flex-direction:row;justify-content:space-around;gap:4px;background:#fffffff7;border-top:1px solid var(--line);border-right:0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.rail-item{flex:1}.rail-item>span{width:46px;height:28px}.main-content{width:100%;padding:27px 16px 100px}.page-intro{display:block}.intro-stats{margin-top:16px}.game-card{min-height:0;padding:21px 17px;border-radius:20px}.match-meta{align-items:flex-start}.round-score{width:100%}.mode-grid,.difficulty-grid{grid-template-columns:1fr}.game-card-head{flex-direction:column}.round-tools{width:100%;justify-content:space-between}.replay-status{align-self:flex-end;order:-1}.vinyl-stage{width:248px;height:248px}.vinyl{width:196px;height:196px}.groove-one{width:166px;height:166px}.groove-two{width:138px;height:138px}.groove-three{width:110px;height:110px}.tonearm{right:9px;height:142px}.guess-row{grid-template-columns:1fr}.guess-row button{width:100%}.result-card{grid-template-columns:auto minmax(0,1fr)}.result-card button{grid-column:1 / -1;justify-content:center}.side-stack,.entry-grid,.account-form{grid-template-columns:1fr}.open-duel-list li{padding:14px 0;grid-template-columns:auto minmax(0,1fr) auto;row-gap:10px}.open-duel-rules{grid-column:2;grid-row:2}.open-duel-elo{grid-column:3;grid-row:1}.open-duel-list li>.primary-action{width:100%;grid-column:1 / -1;grid-row:3}.avatar-editor{flex-direction:column;align-items:flex-start}.account-form label:nth-child(3){grid-column:auto}.ranking-head{display:none}.ranking-row{padding:12px 0;grid-template-columns:44px minmax(0,1fr) auto}.ranking-row>span:nth-child(3){display:none}.room-banner{align-items:flex-start;flex-direction:column}.room-sidebar,.stats-metrics{grid-template-columns:1fr}.practice-stats-grid{grid-template-columns:1fr 1fr}.practice-levels{grid-template-columns:1fr}.game-over-stats{grid-template-columns:1fr 1fr}.game-over-stats div:nth-child(2){border-right:0}.game-over-stats div:nth-child(-n+2){border-bottom:1px solid var(--line)}}@media (max-width: 480px){.elo-pill{padding:3px 10px;flex-direction:column;align-items:flex-start;gap:0;line-height:1.3}.elo-pill>svg{display:none}.brand{font-size:23px}.brand-logo{width:30px;height:37px}.page-intro h1{font-size:35px}.duration-options{grid-template-columns:1fr 1fr}.vinyl-stage{width:224px;height:224px}.vinyl{width:176px;height:176px}.groove-one{width:150px;height:150px}.groove-two{width:124px;height:124px}.groove-three{width:98px;height:98px}.tonearm{height:126px}.modal-backdrop{padding:10px}.modal-card{max-height:calc(100vh - 20px);padding:20px}.danger-zone input{width:100%;margin:0 0 8px}.danger-zone button{width:100%}.room-entry-form,.dev-login>div{grid-template-columns:1fr}.room-entry-form button,.dev-login button{height:44px}}.wordmark{color:var(--ink);font-family:AHDN,Montserrat,sans-serif;font-size:1.15em;font-weight:400;letter-spacing:.01em;line-height:1}.wordmark-accent{color:var(--blue)}.eyebrow{margin:0 0 12px;color:var(--blue);font-size:var(--text-ui);font-weight:700;letter-spacing:.06em;text-transform:uppercase}.home{display:grid;gap:34px}.home-section h2{margin:0 0 16px;color:var(--ink);font-size:24px;font-weight:700;letter-spacing:-.015em}.home-hero{position:relative;padding:44px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center;gap:44px;overflow:hidden;border-radius:28px}.home-hero h1{margin:0;color:var(--ink);font-size:clamp(34px,4vw,54px);font-weight:700;letter-spacing:-.03em;line-height:1.06}.home-hero-copy>p:not(.eyebrow){max-width:520px;margin:18px 0 0;color:var(--muted);font-size:17px;line-height:1.6}.home-actions{margin-top:28px;display:flex;flex-wrap:wrap;gap:12px}.home-actions .primary-action,.home-actions .secondary-action{min-height:50px;padding:0 24px;border-radius:25px}.home-hero-photo{position:relative;margin:0;isolation:isolate}.home-hero-photo:before{content:"";position:absolute;z-index:-1;right:-16%;bottom:-26%;width:74%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,var(--pink) 0 9%,var(--ink) 9.5% 11%,transparent 11.5%),repeating-radial-gradient(circle,#1b2c52 0 3px,var(--ink) 3px 7px);box-shadow:0 18px 40px #14213d38}.home-hero-photo img{width:100%;height:auto;display:block;border-radius:20px;box-shadow:0 18px 40px #14213d33}.home-hero-photo figcaption{margin-top:10px;color:var(--muted);font-size:var(--text-caption)}.home-facts{margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.home-fact{padding:20px 22px;background:var(--paper);border:1px solid rgba(225,231,241,.78);border-radius:20px;box-shadow:var(--shadow)}.home-fact dt{color:var(--blue-dark);font-size:30px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1}.home-fact dd{margin:8px 0 0;color:var(--muted);font-size:var(--text-ui);line-height:1.5}.home-levels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.level-card{padding:32px;display:flex;flex-direction:column;align-items:flex-start;gap:14px;border-radius:26px;box-shadow:var(--shadow)}.level-casual{color:var(--ink);background:linear-gradient(135deg,var(--blue-soft),var(--paper) 80%);border:1px solid var(--line)}.level-seasoned{color:#fff;background:linear-gradient(135deg,var(--ink),var(--blue-dark));border:1px solid var(--ink)}.level-audience{margin:0;font-size:var(--text-ui);font-weight:700;letter-spacing:.06em;text-transform:uppercase}.level-casual .level-audience{color:var(--blue)}.level-seasoned .level-audience{color:#ff9ec1}.level-card h3{margin:0;font-size:26px;font-weight:700;letter-spacing:-.02em;line-height:1.2}.level-body{max-width:520px;margin:0;font-size:var(--text-body);line-height:1.7}.level-casual .level-body{color:var(--muted)}.level-seasoned .level-body{color:#d5def5}.level-chips{margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px;list-style:none}.level-chips li{padding:7px 14px;border-radius:999px;font-size:var(--text-ui);font-weight:600}.level-casual .level-chips li{color:var(--blue-dark);background:#fff;border:1px solid #c9d5f2}.level-seasoned .level-chips li{color:#fff;background:#ffffff1f;border:1px solid rgba(255,255,255,.28)}.level-action{margin-top:auto;min-height:46px;padding:0 20px;display:inline-flex;align-items:center;gap:8px;border:0;border-radius:23px;font:inherit;font-size:var(--text-ui);font-weight:600;cursor:pointer}.level-casual .level-action{color:#fff;background:var(--blue)}.level-casual .level-action:hover{background:#244ed6}.level-seasoned .level-action{color:var(--ink);background:#fff}.level-seasoned .level-action:hover{background:var(--blue-soft)}.level-action:focus-visible{outline:3px solid rgba(232,87,138,.6);outline-offset:3px}.cover-marquee{--cover-size: clamp(88px, 11vw, 140px);--cover-gap: 16px;overflow:hidden;padding:14px 0 22px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}.cover-track{margin:0;padding:0;width:max-content;display:flex;list-style:none}.cover-track li{width:var(--cover-size);flex:none;margin-right:var(--cover-gap)}.cover-track img{width:100%;height:auto;aspect-ratio:1;display:block;object-fit:cover;border-radius:12px;box-shadow:0 10px 24px #14213d29}.home-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.home-step{padding:26px;border-radius:22px}.home-step-icon{width:46px;height:46px;display:grid;place-items:center;color:var(--blue-dark);background:var(--blue-soft);border-radius:14px}.home-step h3{margin:18px 0 8px;display:flex;align-items:center;gap:10px;color:var(--ink);font-size:18px;font-weight:700}.home-step-number{width:26px;height:26px;display:inline-grid;place-items:center;color:#fff;background:var(--pink);border-radius:50%;font-size:var(--text-caption);font-weight:700}.home-step p{margin:0;color:var(--muted);font-size:var(--text-body);line-height:1.65}.home-ways{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.home-way{position:relative;padding:24px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;color:var(--ink);border-radius:22px;font:inherit;text-align:left;cursor:pointer}.home-way:hover{border-color:var(--blue)}.home-way-tag{margin-top:6px;color:var(--pink);font-size:var(--text-caption);font-weight:700;letter-spacing:.06em;text-transform:uppercase}.home-way-title{margin-top:-4px;font-size:18px;font-weight:700}.home-way-body{color:var(--muted);font-size:var(--text-body);line-height:1.6}.home-way-go{margin-top:auto;padding-top:6px;display:inline-flex;color:var(--blue)}.home-band{padding:30px;display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);align-items:center;gap:40px;border-radius:28px}.home-band-photo{margin:0}.home-band-photo img{width:100%;height:auto;aspect-ratio:1;display:block;object-fit:cover;border-radius:20px}.home-band-copy h2{margin:0;color:var(--ink);font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.2}.home-band-copy>p:not(.eyebrow){max-width:600px;margin:14px 0 22px;color:var(--muted);font-size:var(--text-body);line-height:1.7}.home-band-copy .secondary-action{display:inline-flex;align-items:center;gap:8px}.about-layout{display:grid;grid-template-columns:220px minmax(0,780px);align-items:start;gap:36px}.about-contents{position:sticky;top:96px;display:flex;flex-direction:column;gap:2px}.about-contents a{padding:9px 12px;color:var(--muted);border-radius:10px;font-size:var(--text-ui);font-weight:600}.about-contents a:hover{color:var(--ink);background:var(--surface)}.about-contents a.active{color:var(--blue-dark);background:var(--blue-soft)}.about-sections{display:grid;gap:18px}.about-section{padding:30px 32px;border-radius:22px;scroll-margin-top:92px}.about-section h2{margin:0 0 12px;color:var(--ink);font-size:22px;font-weight:700;letter-spacing:-.015em}.about-section h3{margin:24px 0 8px;color:var(--ink);font-size:16px;font-weight:700}.about-section p,.about-section li{color:var(--ink);font-size:var(--text-body);line-height:1.7}.about-section p{margin:0 0 12px}.about-section ul{margin:0 0 12px;padding-left:20px}.about-section li{margin-bottom:8px}.about-section li::marker{color:var(--blue)}.about-section p:last-child,.about-section ul:last-child{margin-bottom:0}.text-link{color:var(--blue);font-weight:600;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.text-link:hover{color:var(--blue-dark)}.promise{background:linear-gradient(135deg,var(--blue-soft),var(--paper) 65%)}.tier-scale{margin:18px 0 14px;display:flex;gap:4px}.tier-segment{flex:1 1 0;min-width:88px;padding:12px 14px;display:flex;flex-direction:column;gap:2px;border-radius:12px}.tier-segment strong{font-size:var(--text-ui);font-weight:700}.tier-segment small{font-size:var(--text-caption);opacity:.92}.tier-hard{color:#fff;background:var(--blue-dark)}.tier-medium{color:#fff;background:var(--blue)}.tier-easy{color:var(--blue-dark);background:var(--blue-soft)}.about-section .tier-list{padding-left:0;list-style:none}.about-section .tier-list li{display:flex;flex-wrap:wrap;gap:4px 10px}.tier-list strong{min-width:84px;color:var(--blue-dark);font-weight:700}@keyframes cover-drift{0%{transform:translate(-50%)}to{transform:translate(0)}}@keyframes entry-in{0%{opacity:0;transform:translateY(-14px);max-height:0;min-height:0;padding-top:0;padding-bottom:0;background-color:var(--blue-soft)}to{opacity:1;transform:none;max-height:160px;background-color:transparent}}@keyframes entry-out{0%{opacity:1;transform:none;max-height:120px}to{opacity:0;transform:translate(22px);max-height:0;padding-top:0;padding-bottom:0;border-bottom-width:0}}@keyframes status-pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: no-preference){.activity-item,.match-row,.roster li.is-arriving{animation:entry-in .45s cubic-bezier(.2,.8,.2,1) backwards}.roster li.is-leaving{overflow:hidden;pointer-events:none;animation:entry-out .42s ease-in forwards}.roster-result,.roster-points small{animation:status-pop .32s cubic-bezier(.2,1.4,.4,1) backwards}}@media (prefers-reduced-motion: reduce){.cover-marquee{overflow-x:auto;-webkit-mask-image:none;mask-image:none}.cover-track li[aria-hidden=true]{display:none}}@media (prefers-reduced-motion: no-preference){.cover-track{animation:cover-drift 80s linear infinite}.cover-marquee:hover .cover-track{animation-play-state:paused}.cover-track img{transition:transform .2s ease,box-shadow .2s ease}.cover-track img:hover{transform:translateY(-4px) rotate(-1deg);box-shadow:0 16px 30px #14213d38}.home-way{transition:border-color .15s ease,transform .15s ease}.home-way:hover{transform:translateY(-2px)}}@media (max-width: 1180px){.home-facts,.home-ways{grid-template-columns:repeat(2,minmax(0,1fr))}.about-layout{grid-template-columns:180px minmax(0,1fr);gap:24px}}@media (max-width: 920px){.home-hero{padding:30px;grid-template-columns:1fr;gap:32px}.home-hero-photo{max-width:560px}.home-hero-photo:before{display:none}.home-band{padding:24px;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:28px}.about-layout{grid-template-columns:1fr}.about-contents{display:none}}@media (max-width: 720px){.home{gap:28px}.home-hero{padding:24px 20px;border-radius:22px}.home-steps,.home-ways,.home-levels{grid-template-columns:1fr}.level-card{padding:26px 22px}.home-band{grid-template-columns:1fr}.home-band-photo{max-width:240px}.about-section{padding:24px 20px}}@media (max-width: 480px){.home-actions .primary-action,.home-actions .secondary-action{width:100%}.home-facts{grid-template-columns:1fr}.tier-scale{flex-direction:column}.tier-segment{flex:none}}@media (prefers-reduced-motion: reduce){.marquee{white-space:normal}html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
