:root{color-scheme:dark;font-family:Space Grotesk,ui-sans-serif,system-ui,-apple-system,sans-serif;--bg: #080e1a;--surface: #0d1828;--card: #111e30;--card-h: #152340;--cyan: #00e5ff;--cyan-dim: rgba(0, 229, 255, .1);--cyan-glow: rgba(0, 229, 255, .3);--cyan-mid: rgba(0, 229, 255, .2);--text: #e8f0fe;--muted: #4e6a85;--muted2: #7a9ab8;--sep: rgba(0, 229, 255, .12);--danger: #ff4d6a;--theme-panel: rgba(18, 24, 32, .86);--theme-panel-strong: rgba(12, 16, 22, .96);--theme-text: #f8fafc;--theme-muted: #aab6c5;--theme-accent: #4dd8ff;--theme-danger: #fb7185;--menu-text: var(--text);--menu-muted: var(--muted2);--menu-accent: var(--cyan);--menu-accent-2: #86efac;--menu-danger: var(--danger);--ui-font-scale: 1.34}*,*:before,*:after{box-sizing:border-box}html,body,#app{width:100%;height:100%;min-height:0;overflow:hidden;margin:0}body{background:var(--bg);background-image:radial-gradient(ellipse at 15% 0%,rgba(0,229,255,.05) 0%,transparent 55%),radial-gradient(ellipse at 85% 100%,rgba(0,229,255,.03) 0%,transparent 50%);color:var(--text)}button,input,select{font:inherit}button{border:0;background:transparent}.menu-layout{height:100dvh;display:flex;flex-direction:column;overflow:hidden}.menu-topbar{height:52px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid var(--sep);background:#080e1aeb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:relative;z-index:10}.menu-topbar-left{display:flex;align-items:center;gap:12px;min-width:0}.menu-topbar-right{display:flex;align-items:center;gap:10px}.menu-logo{width:34px;height:34px;border:2px solid var(--cyan);border-radius:8px;display:grid;place-items:center;font-weight:800;font-size:calc(16px * var(--ui-font-scale));color:var(--cyan);box-shadow:0 0 10px var(--cyan-glow);flex-shrink:0}.menu-brand{font-size:calc(16px * var(--ui-font-scale));font-weight:800;letter-spacing:3px;text-transform:uppercase;color:var(--text)}.menu-brand span{color:var(--cyan)}.menu-back-btn{display:inline-flex;align-items:center;gap:6px;font-size:calc(12px * var(--ui-font-scale));font-weight:700;color:var(--cyan);cursor:pointer;padding:6px 10px;border-radius:999px;border:1px solid rgba(0,229,255,.35);background:#00e5ff1a;transition:border-color .15s,background .15s,transform .15s;-webkit-user-select:none;user-select:none;min-width:0;max-width:100%}.menu-back-btn:hover{border-color:#00e5ffb3;background:#00e5ff2e;transform:translateY(-1px)}.menu-back-btn:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.menu-back-btn[hidden]{display:none}.menu-back-btn svg{width:16px;height:16px}#menu-back-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-location{display:inline-flex;align-items:baseline;gap:6px;min-width:0;color:var(--muted2);font-size:calc(11px * var(--ui-font-scale))}.menu-location-prefix{color:var(--muted);letter-spacing:.2px;white-space:nowrap}.menu-location-label{color:var(--text);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-username{font-size:calc(13px * var(--ui-font-scale));font-weight:600;color:var(--muted2)}.menu-avatar{width:30px;height:30px;border-radius:50%;background:var(--cyan-dim);border:1.5px solid var(--cyan);display:grid;place-items:center;font-size:calc(11px * var(--ui-font-scale));font-weight:700;color:var(--cyan);flex-shrink:0}.menu-body{flex:1;display:flex;overflow:hidden;position:relative}.menu-left-panel{display:none}@media (min-width: 768px){.menu-left-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;width:380px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--sep);padding:32px 28px;position:relative;overflow:hidden;gap:16px}.menu-left-panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 30%,rgba(0,229,255,.06) 0%,transparent 65%);pointer-events:none}}.deco-grid{display:grid;grid-template-columns:repeat(6,32px);grid-template-rows:repeat(12,32px);gap:4px;margin-bottom:8px}.deco-cell{border-radius:4px;background:#ffffff08}.deco-cell.deco-on{background:var(--cyan);box-shadow:0 0 8px var(--cyan-glow)}.deco-cell.deco-on2{background:#00e5ff61}.deco-cell.deco-on3{background:#00e5ff2e}.menu-left-title{font-size:calc(36px * var(--ui-font-scale));font-weight:800;letter-spacing:5px;text-transform:uppercase;text-align:center;text-shadow:0 0 30px var(--cyan-glow);line-height:1}.menu-left-title span{color:var(--cyan)}.menu-left-sub{font-size:calc(11px * var(--ui-font-scale));letter-spacing:2.5px;text-transform:uppercase;color:var(--muted);text-align:center}.menu-left-stats{display:flex;gap:24px;margin-top:8px}.mls{text-align:center}.mls-val{font-size:calc(20px * var(--ui-font-scale));font-weight:700;color:var(--cyan)}.mls-lbl{font-size:calc(10px * var(--ui-font-scale));color:var(--muted);letter-spacing:1.5px;text-transform:uppercase;margin-top:2px}.menu-screens{flex:1;position:relative;overflow:hidden}.ms-screen{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s cubic-bezier(.4,0,.2,1);scrollbar-width:thin;scrollbar-color:var(--sep) transparent}.ms-screen.active{opacity:1;pointer-events:auto;transform:translate(0)}.ms-screen.ms-enter-right{transform:translate(60px);opacity:0}.ms-screen.ms-enter-left{transform:translate(-40px);opacity:0}.ms-screen.ms-exit-left{transform:translate(-30px);opacity:0}.ms-screen.ms-exit-right{transform:translate(30px);opacity:0}.ms-inner{max-width:760px;margin:0 auto;padding:36px 24px 48px}@media (min-width: 768px){.ms-inner{padding:48px 52px 60px}}@media (min-width: 1280px){.ms-inner--ghost{max-width:1120px}}.ms-inner--center{min-height:calc(100vh - 52px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;text-align:center}.ms-heading{font-size:calc(24px * var(--ui-font-scale));font-weight:800;margin-bottom:6px}@media (min-width: 768px){.ms-heading{font-size:calc(26px * var(--ui-font-scale))}}.ms-sub{font-size:calc(14px * var(--ui-font-scale));color:var(--muted2);margin-bottom:28px}.ms-empty{color:var(--muted2);font-size:calc(14px * var(--ui-font-scale));margin-top:24px}.menu-error-banner{position:fixed;bottom:20px;left:50%;transform:translate(-50%);padding:10px 18px;border-radius:8px;background:#ff4d6a26;border:1px solid rgba(255,77,106,.4);color:var(--danger);font-size:calc(13px * var(--ui-font-scale));font-weight:600;z-index:80}.menu-error-banner[hidden]{display:none}.menu-cards{display:flex;flex-direction:column;gap:10px}.mcard{background:var(--card);border:1px solid rgba(0,229,255,.07);border-radius:14px;cursor:pointer;display:flex;align-items:center;gap:16px;padding:18px 20px;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s;-webkit-user-select:none;user-select:none}.mcard:hover{background:var(--card-h);border-color:#00e5ff4d;box-shadow:0 0 20px var(--cyan-dim);transform:translate(3px)}.mcard-icon{width:48px;height:48px;flex-shrink:0;background:var(--cyan-dim);border-radius:12px;display:grid;place-items:center;font-size:calc(22px * var(--ui-font-scale));border:1px solid rgba(0,229,255,.12)}.mcard-text{flex:1;min-width:0}.mcard-label{font-size:calc(15px * var(--ui-font-scale));font-weight:700;color:var(--text)}.mcard-desc{font-size:calc(12px * var(--ui-font-scale));color:var(--muted2);margin-top:3px}.mcard-arrow{font-size:calc(22px * var(--ui-font-scale));color:var(--muted2)}.menu-divider{display:flex;align-items:center;gap:10px;margin:4px 0 2px}.menu-divider-line{flex:1;height:1px;background:var(--sep)}.menu-divider-label{font-size:calc(9px * var(--ui-font-scale));font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--muted)}.ms-secondary{display:flex;align-items:center;justify-content:flex-end;margin-top:16px;padding-top:14px;border-top:1px solid var(--sep)}.ms-logout-btn{font-size:calc(12px * var(--ui-font-scale));color:var(--muted);cursor:pointer;padding:5px 10px;border-radius:7px;transition:color .15s,background .15s}.ms-logout-btn:hover{color:var(--danger);background:#ff4d6a14}.ghost-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:28px;flex-wrap:wrap}.runs-section-label{font-size:calc(11px * var(--ui-font-scale));font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}.runs-grid{display:grid;grid-template-columns:1fr;gap:12px}@media (min-width: 640px){.runs-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.runs-grid{grid-template-columns:repeat(3,1fr)}}.run-card{background:var(--card);border:1px solid rgba(0,229,255,.08);border-radius:14px;overflow:hidden;transition:border-color .15s,box-shadow .15s,transform .15s}.run-card:hover{border-color:#00e5ff47;box-shadow:0 0 18px var(--cyan-dim);transform:translateY(-2px)}.runs-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.runs-section-header .runs-section-label{margin-bottom:0}.runs-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}.runs-filter-btn{padding:7px 10px;background:var(--surface);border:1px solid var(--sep);color:var(--muted2);border-radius:8px;font-family:inherit;font-size:calc(11px * var(--ui-font-scale));font-weight:600;letter-spacing:.3px;cursor:pointer;transition:border-color .15s,color .15s}.runs-filter-btn:hover{border-color:var(--cyan);color:var(--cyan)}.runs-search-btn{width:30px;height:30px;border-radius:8px;background:var(--cyan-dim);border:1px solid var(--cyan-mid);color:var(--cyan);display:grid;place-items:center;cursor:pointer;transition:opacity .15s,transform .15s}.runs-search-btn svg{width:14px;height:14px}.runs-search-btn:hover{opacity:.88;transform:translateY(-1px)}.runs-search-btn--hidden{visibility:hidden;pointer-events:none}.runs-refresh-btn{width:30px;height:30px;border-radius:8px;background:var(--surface);border:1px solid var(--sep);display:grid;place-items:center;cursor:pointer;color:var(--muted2);transition:border-color .15s,color .15s,transform .3s}.runs-refresh-btn:hover{border-color:var(--cyan);color:var(--cyan)}.runs-refresh-btn.spinning{animation:spin-refresh .6s linear}@keyframes spin-refresh{to{transform:rotate(360deg)}}.runs-refresh-btn svg{width:15px;height:15px}.rc-head{padding:14px 16px 10px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--sep)}.rc-av{width:36px;height:36px;border-radius:50%;background:var(--cyan-dim);border:1.5px solid var(--cyan);display:grid;place-items:center;font-weight:700;font-size:calc(12px * var(--ui-font-scale));color:var(--cyan);flex-shrink:0}.rc-head-info{flex:1;min-width:0}.rc-name{font-size:calc(14px * var(--ui-font-scale));font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rc-wait{font-size:calc(11px * var(--ui-font-scale));color:var(--muted2);margin-top:1px}.rc-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px;background:var(--sep)}.rc-stats>*{min-width:0}.rc-stat{background:var(--card);padding:10px 8px;text-align:center}.rc-stat-val{font-size:calc(14px * var(--ui-font-scale));font-weight:700;color:var(--cyan)}.rc-stat-lbl{font-size:calc(9px * var(--ui-font-scale));color:var(--muted);margin-top:1px;letter-spacing:1px;text-transform:uppercase}.rc-stat--metric{padding:9px 10px 10px;text-align:left;display:grid;gap:7px}.rc-metric-head{display:flex;align-items:center;justify-content:flex-start}.rc-metric-label{display:inline-flex;align-items:center;gap:5px;font-size:calc(9px * var(--ui-font-scale));letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.rc-metric-icon{width:13px;height:13px;display:block;opacity:.9}.rc-meter{display:grid;gap:2px}.rc-meter--10{grid-template-columns:repeat(10,minmax(0,1fr))}.rc-meter--5{grid-template-columns:repeat(5,minmax(0,1fr))}.rc-meter-seg{height:4px;border-radius:999px;background:#7a9ab833}.rc-meter-seg.is-on{background:linear-gradient(90deg,rgba(0,229,255,.58),var(--cyan));box-shadow:0 0 6px #00e5ff47}.rc-meter--infinite .rc-meter-seg.is-on{opacity:.8}.rc-stat--result{display:grid;place-content:center;padding:8px 6px}.rc-stat--result .rc-stat-val{margin:0;line-height:1.15;white-space:normal;overflow-wrap:anywhere;word-break:break-word;text-align:center;font-size:calc(clamp(13px,1.1vw,16px) * var(--ui-font-scale))}.rc-foot{padding:10px 14px;display:flex;align-items:center;justify-content:space-between;background:var(--card);gap:8px}.rc-foot-left{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.rc-rank-btn{font-size:calc(11px * var(--ui-font-scale));display:inline-flex;align-items:center;gap:5px}.rc-rank-icon{font-size:calc(11px * var(--ui-font-scale));line-height:1}.rc-players-btn{display:inline-flex;align-items:center;gap:6px}.rc-players-icon{width:13px;height:13px;display:inline-flex}.rc-players-icon svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.rc-players-count{font-variant-numeric:tabular-nums}.runs-nav{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:16px}.rnav-btn{width:34px;height:34px;border-radius:50%;background:var(--surface);border:1px solid var(--sep);display:grid;place-items:center;cursor:pointer;font-size:calc(18px * var(--ui-font-scale));color:var(--muted2);transition:border-color .15s,color .15s;-webkit-user-select:none;user-select:none}.rnav-btn:hover{border-color:var(--cyan);color:var(--cyan)}.rnav-btn[disabled]{opacity:.25;cursor:default;pointer-events:none}.nav-dots{display:flex;gap:6px;align-items:center}.nav-dot{width:6px;height:6px;border-radius:50%;background:var(--muted);transition:background .2s,transform .2s}.nav-dot.active{background:var(--cyan);transform:scale(1.3)}.ghost-code-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:28px;padding-top:22px;border-top:1px solid var(--sep);flex-wrap:wrap}.ghost-code-title{font-size:calc(13px * var(--ui-font-scale));font-weight:600;color:var(--muted2)}.ghost-code-sub{font-size:calc(12px * var(--ui-font-scale));color:var(--muted);margin-top:2px}.mm-vs{display:flex;align-items:center;gap:36px;margin-bottom:8px}.mm-player{display:flex;flex-direction:column;align-items:center;gap:8px}.mm-refresh-btn{padding:6px 10px;font-size:calc(11px * var(--ui-font-scale))}.mm-av{width:64px;height:64px;border-radius:50%;background:var(--cyan-dim);border:2px solid var(--cyan);display:grid;place-items:center;font-size:calc(22px * var(--ui-font-scale));font-weight:700;color:var(--cyan);box-shadow:0 0 14px var(--cyan-glow)}.mm-av--ghost{border-color:var(--muted);color:var(--muted);box-shadow:none;background:#ffffff08;animation:mm-ghost-pulse 1.5s ease-in-out infinite}@keyframes mm-ghost-pulse{0%,to{opacity:.4}50%{opacity:.9}}.mm-pname{font-size:calc(14px * var(--ui-font-scale));font-weight:600}.mm-pname--muted{color:var(--muted)}.mm-psub{font-size:calc(12px * var(--ui-font-scale));color:var(--muted2)}.mm-vs-badge{font-size:calc(20px * var(--ui-font-scale));font-weight:800;color:var(--muted)}.mm-status{text-align:center}.mm-title{font-size:calc(18px * var(--ui-font-scale));font-weight:700}.mm-dots{display:flex;gap:6px;justify-content:center;margin-top:8px}.mm-dot{width:7px;height:7px;border-radius:50%;background:var(--cyan);opacity:.3;animation:mm-pulse 1.2s ease-in-out infinite}.mm-dot:nth-child(2){animation-delay:.2s}.mm-dot:nth-child(3){animation-delay:.4s}@keyframes mm-pulse{0%,to{opacity:.2}50%{opacity:1}}.mm-sub{font-size:calc(13px * var(--ui-font-scale));color:var(--muted2);max-width:300px}.btn-primary:disabled,.btn-outline:disabled,.btn-cancel:disabled,.btn-join:disabled{opacity:.5;cursor:not-allowed}.runs-list{display:flex;flex-direction:column;gap:10px}.my-runs-page-label{margin-top:10px;text-align:center;font-size:calc(11px * var(--ui-font-scale));color:var(--muted2)}.run-row{background:var(--card);border:1px solid rgba(0,229,255,.07);border-radius:12px;padding:14px 16px;display:flex;align-items:flex-start;gap:12px}.run-row-rank{width:34px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:6px}.run-row-rank-num{font-size:calc(22px * var(--ui-font-scale));font-weight:800;color:var(--cyan);text-align:center;text-shadow:0 0 12px var(--cyan-glow)}.run-row-share{width:24px;height:24px;border-radius:8px;border:1px solid var(--sep);background:var(--surface);color:var(--muted2);display:grid;place-items:center;cursor:pointer;transition:border-color .15s,color .15s,transform .15s}.run-row-share svg{width:13px;height:13px;fill:currentColor}.run-row-share:hover{border-color:var(--cyan-mid);color:var(--cyan);transform:translateY(-1px)}.run-row-info{flex:1;min-width:0}.run-row-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.run-row-score{font-size:calc(16px * var(--ui-font-scale));font-weight:700}.run-row-top .mode-tag--inline{margin-top:0;flex-shrink:0}.run-row-metrics{margin-top:8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.run-row-metrics .rc-stat--metric{border:1px solid var(--sep);border-radius:10px;background:var(--surface)}.run-row-right{display:flex;align-items:center;gap:8px;flex-shrink:0;align-self:center}.mode-tag{display:inline-flex;align-items:center;gap:4px;font-size:calc(10px * var(--ui-font-scale));font-weight:700;letter-spacing:.4px;padding:2px 8px 2px 6px;border-radius:20px;margin-top:5px;white-space:nowrap}.mode-tag--block{background:var(--cyan-dim);color:var(--cyan);border:1px solid var(--cyan-mid)}.mode-tag--time{background:#ff4d6a1a;color:var(--danger);border:1px solid rgba(255,77,106,.25)}.mode-tag--endless{background:#ffffff0d;color:var(--muted2);border:1px solid var(--sep)}.rank-badge{font-size:calc(11px * var(--ui-font-scale));font-weight:700;letter-spacing:.5px;padding:5px 10px;border-radius:8px;border:1.5px solid transparent;transition:opacity .15s,transform .1s;white-space:nowrap}button.rank-badge{cursor:pointer}button.rank-badge:hover{opacity:.8;transform:scale(1.05)}.rank-badge--block{background:var(--cyan-dim);color:var(--cyan);border-color:var(--cyan-mid)}.rank-badge--time{background:#ff4d6a1a;color:var(--danger);border-color:#ff4d6a4d}.rank-badge--solo{background:#ffffff0d;color:var(--muted2);border-color:var(--sep)}.rank-badge--static{cursor:default}.rank-badge--static:hover{opacity:1;transform:none}@media (max-width: 640px){.menu-topbar{padding:0 10px}.menu-topbar-left{gap:8px;min-width:0;flex:1}.menu-topbar-right{gap:6px;flex-shrink:0}.menu-brand{font-size:calc(13px * var(--ui-font-scale));letter-spacing:2px;white-space:nowrap}.menu-topbar.menu-topbar--submenu .menu-brand,.menu-topbar.menu-topbar--submenu .menu-logo{display:none}.menu-back-btn{padding:5px 8px;font-size:calc(11px * var(--ui-font-scale));gap:3px;flex-shrink:0}#menu-back-label{max-width:6.3rem}.menu-location{font-size:calc(10px * var(--ui-font-scale));gap:4px;max-width:6.8rem}.menu-location-prefix,.menu-username{display:none}.run-row{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:start;padding:12px;gap:10px}.run-row-info{min-width:0}.run-row-metrics,.run-row-top{gap:6px}.run-row-metrics .rc-stat--metric{padding:8px 9px 9px}.run-row-rank{width:34px}.run-row-right{grid-column:2;width:100%;margin-left:0;justify-content:flex-end;flex-wrap:wrap;gap:6px}}.btn-primary{padding:13px 24px;background:var(--cyan);color:#050d18;border:none;border-radius:12px;font-family:inherit;font-size:calc(14px * var(--ui-font-scale));font-weight:800;cursor:pointer;white-space:nowrap;box-shadow:0 4px 20px var(--cyan-glow);transition:opacity .15s,transform .15s;display:inline-flex;align-items:center;gap:6px;letter-spacing:.3px}.btn-primary:hover{opacity:.88;transform:translateY(-1px)}.btn-outline{padding:11px 18px;background:transparent;border:1px solid rgba(0,229,255,.25);color:var(--muted2);border-radius:10px;font-family:inherit;font-size:calc(13px * var(--ui-font-scale));font-weight:600;cursor:pointer;transition:border-color .15s,color .15s;display:inline-flex;align-items:center;gap:6px}.btn-outline:hover{border-color:var(--cyan);color:var(--cyan)}.btn-join{padding:8px 14px;background:transparent;border:1px solid var(--cyan);color:var(--cyan);border-radius:8px;font-family:inherit;font-size:calc(12px * var(--ui-font-scale));font-weight:700;cursor:pointer;transition:background .15s;-webkit-user-select:none;user-select:none;display:inline-flex;align-items:center;gap:4px}.btn-join:hover{background:var(--cyan-dim)}.btn-join--sm{padding:5px 10px;font-size:calc(11px * var(--ui-font-scale))}.btn-cancel{padding:12px 28px;background:transparent;border:1px solid var(--sep);color:var(--muted2);border-radius:10px;font-family:inherit;font-size:calc(14px * var(--ui-font-scale));font-weight:600;cursor:pointer;transition:border-color .15s,color .15s}.btn-cancel:hover{border-color:var(--danger);color:var(--danger)}.splash-layout{height:100dvh;display:grid;place-items:center;padding:2rem;background:var(--bg);background-image:radial-gradient(ellipse at 20% 10%,rgba(0,229,255,.07) 0%,transparent 50%),radial-gradient(ellipse at 80% 90%,rgba(0,229,255,.04) 0%,transparent 50%)}.splash-card{position:relative;display:grid;gap:2.5rem;width:100%;max-width:22rem;padding:2.5rem 2rem;background:var(--surface);border:1px solid var(--sep);border-radius:20px;box-shadow:0 0 60px #00e5ff12,0 2rem 6rem #00000085;animation:splash-in .45s cubic-bezier(.16,1,.3,1)}.splash-fullscreen-btn{position:absolute;top:.9rem;right:.9rem;width:2.1rem;height:2.1rem;border-radius:10px;border:1px solid rgba(0,229,255,.3);background:#060d16e0;color:var(--cyan);display:grid;place-items:center;cursor:pointer;transition:border-color .15s,transform .15s,background .15s}.splash-fullscreen-btn svg{width:1.05rem;height:1.05rem;fill:none;stroke:currentColor;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}.splash-fullscreen-btn:hover{border-color:#00e5ffb3;background:#060d16fa;transform:translateY(-1px)}.splash-fullscreen-btn:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}@keyframes splash-in{0%{opacity:0;transform:translateY(1.5rem) scale(.97)}to{opacity:1;transform:none}}.splash-brand{display:grid;gap:.5rem;text-align:center}.splash-ghost{font-size:calc(3.5rem * var(--ui-font-scale));line-height:1;filter:drop-shadow(0 0 1.2rem rgba(0,229,255,.7));animation:ghost-float 3s ease-in-out infinite}@keyframes ghost-float{0%,to{transform:translateY(0)}50%{transform:translateY(-.4rem)}}.splash-title{margin:0;font-size:calc(2.8rem * var(--ui-font-scale));font-weight:800;letter-spacing:4px;text-transform:uppercase;line-height:1;text-shadow:0 0 30px var(--cyan-glow)}.splash-title span{color:var(--cyan)}.splash-tagline{margin:0;font-size:calc(11px * var(--ui-font-scale));letter-spacing:2px;text-transform:uppercase;color:var(--muted)}.splash-tetris-art{display:block;width:min(100%,21rem);height:auto;margin:.4rem auto 0;border-radius:14px;border:1px solid rgba(0,229,255,.3);background:#070e17e6;box-shadow:0 0 24px #00e5ff2e}.splash-tetris-bg{fill:#060c14f5}.splash-tetris-grid path{fill:none;stroke:#00e5ff24;stroke-width:1;stroke-linecap:square}.splash-tetris-block rect{stroke:#ffffff57;stroke-width:1}.splash-tetris-block--cyan rect{fill:#22d3ee}.splash-tetris-block--yellow rect{fill:#fde047}.splash-tetris-block--purple rect{fill:#a78bfa}.splash-tetris-block--orange rect{fill:#fb923c}.splash-tetris-block--green rect{fill:#4ade80}.splash-mobile-note{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.9rem;padding:.95rem 1rem;border-radius:16px;border:1px solid rgba(0,229,255,.22);background:linear-gradient(135deg,#00e5ff17,#00e5ff08),#070e17d6;box-shadow:0 0 24px #00e5ff1f,inset 0 0 0 1px #ffffff05}.splash-mobile-note-logo{width:2.8rem;height:2.8rem;display:grid;place-items:center;border-radius:50%;font-size:calc(1.4rem * var(--ui-font-scale));background:radial-gradient(circle,#ffffff2e,#00e5ff1f 55%,#00e5ff05);box-shadow:0 0 22px #00e5ff47}.splash-mobile-note-copy{min-width:0;display:grid;gap:.28rem}.splash-mobile-note-icons{color:var(--cyan);font-size:calc(.82rem * var(--ui-font-scale));font-weight:800;letter-spacing:.18em;text-transform:uppercase;text-shadow:0 0 16px rgba(0,229,255,.25)}.splash-mobile-note-icons span{color:#ffffff6b}.splash-mobile-note-text{margin:0;color:var(--text);font-size:calc(.9rem * var(--ui-font-scale));font-weight:700;line-height:1.35}.splash-form{display:grid;gap:14px}.splash-label{font-size:calc(13px * var(--ui-font-scale));color:var(--muted2);font-weight:600}.splash-input{width:100%;padding:12px 14px;background:var(--card);border:1.5px solid rgba(0,229,255,.15);border-radius:10px;color:var(--text);outline:none;font-size:calc(15px * var(--ui-font-scale));transition:border-color .15s}.splash-input:focus{border-color:var(--cyan);box-shadow:0 0 10px var(--cyan-glow)}.splash-btn{width:100%;justify-content:center;padding:14px;font-size:calc(15px * var(--ui-font-scale));border-radius:12px}.splash-return{display:grid;gap:14px}.splash-welcome{text-align:center;font-size:calc(13px * var(--ui-font-scale));color:var(--muted2);letter-spacing:.2px}.splash-hero-btn{border:1px solid rgba(0,229,255,.3);border-radius:14px;padding:0;background:#070e17e6;cursor:pointer;overflow:hidden;display:grid;gap:0;box-shadow:0 0 24px #00e5ff26;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.splash-hero-btn:hover{transform:translateY(-1px);border-color:#00e5ff8c;box-shadow:0 0 30px #00e5ff3d}.splash-hero-btn:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.splash-hero-text{display:flex;align-items:center;justify-content:center;min-height:3.2rem;padding:.8rem 1rem;font-size:calc(16px * var(--ui-font-scale));font-weight:800;letter-spacing:.4px;color:var(--text);background:linear-gradient(180deg,#ffffff08,#fff0)}@media (max-width: 640px){.splash-layout{place-items:start center;overflow-y:auto;padding:max(1rem,calc(env(safe-area-inset-top) + .8rem)) max(.9rem,calc(env(safe-area-inset-right) + .9rem)) max(1.25rem,calc(env(safe-area-inset-bottom) + 1rem)) max(.9rem,calc(env(safe-area-inset-left) + .9rem))}.splash-card{gap:1.5rem;max-width:26rem;padding:3.5rem 1rem 1.25rem;border-radius:18px}.splash-fullscreen-btn{top:.75rem;right:.75rem}.splash-brand{gap:.35rem}.splash-ghost{font-size:calc(2.6rem * var(--ui-font-scale))}.splash-title{font-size:calc(2.08rem * var(--ui-font-scale));letter-spacing:2px}.splash-tagline{font-size:calc(9px * var(--ui-font-scale));letter-spacing:1.4px}.splash-tetris-art{width:100%;margin-top:.15rem}.splash-mobile-note{gap:.7rem;padding:.8rem .85rem}.splash-mobile-note-logo{width:2.45rem;height:2.45rem}.splash-mobile-note-text{font-size:calc(.78rem * var(--ui-font-scale))}.splash-form,.splash-return{gap:12px}.splash-label,.splash-welcome,.splash-login-link{font-size:calc(12px * var(--ui-font-scale))}.splash-input{padding:11px 12px;font-size:calc(14px * var(--ui-font-scale))}.splash-btn{padding:12px;font-size:calc(14px * var(--ui-font-scale))}.splash-hero-text{min-height:3rem;padding:.75rem .9rem;font-size:calc(14px * var(--ui-font-scale))}}@media (max-width: 380px){.splash-layout{padding-inline:.7rem}.splash-card{gap:1.2rem;padding-inline:.85rem}.splash-title{font-size:calc(1.82rem * var(--ui-font-scale))}.splash-mobile-note{grid-template-columns:1fr;text-align:center}.splash-mobile-note-logo{margin:0 auto}}.cfg-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#040912d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:flex-end;justify-content:center;z-index:100;opacity:0;pointer-events:none;transition:opacity .25s}.cfg-overlay.cfg-overlay--show{opacity:1;pointer-events:all}@media (min-width: 600px){.cfg-overlay{align-items:center}.cfg-sheet{border-radius:18px!important;max-width:440px}}.cfg-sheet{width:100%;max-width:480px;height:80vh;height:80dvh;max-height:80dvh;background:#0f1c2e;border-top:1px solid var(--sep);border-radius:22px 22px 0 0;padding:28px 22px 36px;transform:translateY(60px);transition:transform .3s cubic-bezier(.4,0,.2,1);display:grid;gap:16px;align-content:start;overflow-y:auto;overscroll-behavior:contain;padding-bottom:calc(36px + env(safe-area-inset-bottom,0px))}.cfg-overlay--show .cfg-sheet{transform:translateY(0)}.cfg-handle{width:36px;height:4px;border-radius:2px;background:var(--muted);margin:0 auto -4px}.cfg-title{font-size:calc(18px * var(--ui-font-scale));font-weight:700}.cfg-sub{font-size:calc(13px * var(--ui-font-scale));color:var(--muted2);margin-top:-8px}.cfg-error{font-size:calc(13px * var(--ui-font-scale));color:var(--danger);background:#ff4d6a1a;padding:8px 12px;border-radius:8px}.cfg-section-label{font-size:calc(11px * var(--ui-font-scale));font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:8px}.cfg-val{color:var(--cyan);font-size:calc(13px * var(--ui-font-scale));font-weight:700;letter-spacing:0}.cfg-modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px}.cfg-mode-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;background:var(--surface);border:1.5px solid rgba(0,229,255,.1);border-radius:12px;cursor:pointer;transition:background .15s,border-color .15s}.cfg-mode-btn:hover{background:var(--card);border-color:#00e5ff40}.cfg-mode-btn.active{border-color:var(--cyan);background:var(--cyan-dim)}.cfg-mode-icon{font-size:calc(22px * var(--ui-font-scale))}.cfg-mode-name{font-size:calc(11px * var(--ui-font-scale));font-weight:700;color:var(--muted2);letter-spacing:.3px}.cfg-mode-btn.active .cfg-mode-name{color:var(--cyan)}.cfg-slider{width:100%;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--surface);border-radius:3px;outline:none;cursor:pointer;accent-color:var(--cyan)}.cfg-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--cyan);cursor:pointer;box-shadow:0 0 8px var(--cyan-glow)}.cfg-theme-select{width:100%;padding:11px 12px;border-radius:10px;border:1.5px solid rgba(0,229,255,.15);background:var(--surface);color:var(--text);font-family:inherit;font-size:calc(13px * var(--ui-font-scale))}.cfg-theme-select:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 10px var(--cyan-glow)}.cfg-actions{display:flex;gap:10px;margin-top:4px}.cfg-cancel{flex:1}.cfg-confirm{flex:2;justify-content:center}.cfg-theme-layout{display:grid;gap:10px;grid-template-rows:auto auto}.cfg-theme-list{display:grid;gap:8px;align-content:start;grid-template-columns:repeat(2,minmax(0,1fr))}.cfg-theme-card{display:grid;grid-template-columns:44px 1fr;align-items:center;gap:8px;width:100%;padding:7px;border-radius:12px;border:1.5px solid rgba(0,229,255,.16);background:var(--surface);color:var(--muted2);cursor:pointer;transition:border-color .15s,background .15s,color .15s;text-align:left}.cfg-theme-card:hover{border-color:#00e5ff59;background:var(--card)}.cfg-theme-card.active{border-color:var(--cyan);background:var(--cyan-dim);color:var(--cyan)}.cfg-theme-card-thumb{width:44px;height:32px;border-radius:8px;object-fit:cover;border:1px solid rgba(255,255,255,.12)}.cfg-theme-card-name{font-size:calc(11px * var(--ui-font-scale));font-weight:700;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cfg-theme-preview{position:relative;min-height:0;height:clamp(220px,44dvh,320px);max-height:44dvh;border-radius:14px;overflow:hidden;border:1px solid color-mix(in srgb,var(--tp-accent, var(--cyan)) 40%,transparent);background:#0b121f}.cfg-theme-preview-bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:.85}.cfg-theme-preview-layer{position:relative;z-index:1;height:100%;padding:10px;display:grid;grid-template-rows:auto 1fr;gap:8px;background:linear-gradient(180deg,#00000061,#0000009e)}.cfg-theme-preview-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.cfg-theme-preview-head strong{color:var(--tp-text, #f8fafc);font-size:calc(12px * var(--ui-font-scale));letter-spacing:.2px}.cfg-theme-preview-head span{color:var(--tp-muted, #aab6c5);font-size:calc(10px * var(--ui-font-scale));text-transform:uppercase;letter-spacing:.9px}.cfg-theme-mini-board{position:relative;width:min(100%,22dvh);max-width:100%;height:auto;max-height:100%;justify-self:center;border-radius:10px;overflow:hidden;border:2px solid color-mix(in srgb,var(--tp-accent, var(--cyan)) 75%,transparent);background:var(--tp-panel, rgba(10, 16, 24, .96));box-shadow:0 0 0 2px #0000007a,0 0 20px color-mix(in srgb,var(--tp-accent, var(--cyan)) 35%,transparent);aspect-ratio:10 / 20}.cfg-theme-mini-board:before{content:none}.cfg-theme-mini-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.snd-picker{display:flex;align-items:stretch;gap:6px}.snd-cards{flex:1;display:flex;gap:6px;min-width:0}.snd-card{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:5px;padding:12px 4px 10px;background:var(--surface);border:1.5px solid rgba(0,229,255,.1);border-radius:12px;cursor:pointer;transition:background .15s,border-color .15s;text-align:center;-webkit-user-select:none;user-select:none}.snd-card:hover{background:var(--card);border-color:#00e5ff40}.snd-card.active{border-color:var(--cyan);background:var(--cyan-dim)}.snd-card-icon{font-size:calc(18px * var(--ui-font-scale));line-height:1;opacity:.7}.snd-card.active .snd-card-icon{opacity:1}.snd-card-name{font-size:calc(10px * var(--ui-font-scale));font-weight:700;color:var(--muted2);letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}.snd-card.active .snd-card-name{color:var(--cyan)}.snd-nav{flex-shrink:0;width:30px;display:flex;align-items:center;justify-content:center;background:var(--surface);border:1.5px solid rgba(0,229,255,.1);border-radius:8px;color:var(--muted2);font-size:calc(20px * var(--ui-font-scale));line-height:1;cursor:pointer;transition:background .15s,color .15s}.snd-nav:not([disabled]):hover{background:var(--card);color:var(--text)}.snd-nav[disabled]{opacity:.25;cursor:default;pointer-events:none}@media (min-width: 780px){.cfg-theme-layout{grid-template-columns:minmax(160px,.95fr) minmax(0,1.2fr);grid-template-rows:1fr;align-items:stretch}.cfg-theme-list{grid-template-columns:1fr}.cfg-theme-card{grid-template-columns:56px 1fr;gap:10px;padding:8px}.cfg-theme-card-thumb{width:56px;height:40px}.cfg-theme-card-name{font-size:calc(12px * var(--ui-font-scale))}.cfg-theme-preview{height:min(100%,calc(80dvh - 14rem));max-height:calc(80dvh - 14rem)}.cfg-theme-mini-board{width:min(100%,calc((80dvh - 14rem)/2))}}@media (max-width: 520px){.cfg-sheet{max-width:100%;height:92dvh;max-height:92dvh;border-radius:20px 20px 0 0;padding:20px 14px calc(20px + env(safe-area-inset-bottom,0px));gap:12px}.cfg-title{font-size:calc(16px * var(--ui-font-scale))}.cfg-sub{font-size:calc(12px * var(--ui-font-scale));margin-top:-4px}.cfg-theme-preview{height:clamp(170px,34dvh,250px);max-height:34dvh}.cfg-theme-mini-board{width:min(100%,17dvh)}.cfg-actions{position:sticky;bottom:calc(-1*env(safe-area-inset-bottom,0px));z-index:2;margin-top:auto;padding-top:10px;padding-bottom:calc(2px + env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,#0f1c2e00,#0f1c2ef5 24%,#0f1c2e)}.snd-picker{display:grid;grid-template-columns:30px minmax(0,1fr) 30px;gap:6px;align-items:stretch}.snd-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}}.orientation-lock-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;display:grid;place-items:center;padding:1.2rem;background:#03080feb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.orientation-lock-card{width:min(100%,22rem);display:grid;gap:.5rem;text-align:center;padding:1.35rem 1.1rem;background:linear-gradient(165deg,#101a2bfa,#0a101bfa);border:1px solid rgba(0,229,255,.28);border-radius:.9rem;box-shadow:0 1rem 2.5rem #00000075}.orientation-lock-icon{font-size:calc(2rem * var(--ui-font-scale));line-height:1}.orientation-lock-title{font-size:calc(1.02rem * var(--ui-font-scale));font-weight:800;color:var(--text)}.orientation-lock-sub{font-size:calc(.82rem * var(--ui-font-scale));color:var(--muted2);line-height:1.35}.code-input-row{display:flex;gap:8px;justify-content:center}.code-box{width:44px;height:56px;text-align:center;background:var(--surface);border:1.5px solid rgba(0,229,255,.15);border-radius:10px;color:var(--cyan);font-size:calc(22px * var(--ui-font-scale));font-weight:700;outline:none;transition:border-color .15s}.code-box:focus{border-color:var(--cyan);box-shadow:0 0 10px var(--cyan-glow)}.found-card{background:var(--surface);border:1px solid var(--sep);border-radius:12px;overflow:hidden}.found-result{padding:10px 16px;font-size:calc(13px * var(--ui-font-scale));color:var(--muted2)}.found-result strong{color:var(--cyan)}.loading-screen{height:100dvh;display:grid;grid-template-rows:1fr auto 1fr;align-items:center;justify-items:center;padding:2rem;gap:2rem;background:var(--bg)}.loading-brand{align-self:end;display:grid;gap:.6rem;text-align:center}.loading-ghost-icon{font-size:calc(3.5rem * var(--ui-font-scale));line-height:1;filter:drop-shadow(0 0 1.2rem rgba(0,229,255,.7));animation:ghost-float 3s ease-in-out infinite}.loading-title{margin:0;font-size:calc(3rem * var(--ui-font-scale));font-weight:800;letter-spacing:5px;text-transform:uppercase}.loading-ghost{color:var(--cyan);text-shadow:0 0 20px var(--cyan-glow)}.loading-rix{color:var(--text)}.loading-progress{align-self:start;width:min(18rem,72vw);display:grid;gap:.6rem}.loading-bar-track{height:3px;background:#ffffff1a;border-radius:2px;overflow:hidden}.loading-bar-fill{height:100%;background:var(--cyan);border-radius:2px;transition:width .2s ease-out;box-shadow:0 0 6px var(--cyan)}.loading-label{margin:0;font-size:calc(.75rem * var(--ui-font-scale));color:var(--muted);text-align:center;letter-spacing:.08em;text-transform:uppercase}.game-view{position:relative;height:100dvh;min-height:0;padding:1rem;display:grid;grid-template-columns:minmax(22rem,calc((100dvh - 10rem)/2 + 2rem)) clamp(22rem,38vw,44rem);justify-content:center;gap:1rem;overflow:hidden;background:linear-gradient(90deg,#0000007a,#00000014,#0000007a),linear-gradient(180deg,#02040852,#0204082e),var(--game-bg, none) center / cover fixed,#0a0d12;color:var(--theme-text)}.game-table{position:relative;min-width:0;min-height:0;height:calc(100dvh - 2rem);display:flex;flex-direction:column;align-items:center;gap:.85rem;overflow:hidden}.game-exit-button{position:fixed;top:1rem;right:1rem;z-index:20;width:2.75rem;height:2.75rem;display:inline-grid;place-items:center;color:var(--theme-text);background:var(--theme-panel-strong);border:.125rem solid rgba(255,255,255,.16);border-radius:.35rem;box-shadow:inset 0 0 0 .0625rem #00000085,0 .8rem 2rem #00000059;cursor:pointer}.game-exit-button:hover,.game-exit-button:focus-visible{color:#061018;background:var(--theme-danger);outline:none}.game-exit-button svg{width:1.35rem;height:1.35rem;fill:none;stroke:currentColor;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}.modifier-warning-pulse-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:6;overflow:hidden}.modifier-warning-pulse{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 50%,color-mix(in srgb,var(--theme-danger) 42%,transparent) 0%,transparent 68%),radial-gradient(ellipse at 50% 50%,color-mix(in srgb,#ffffff 12%,transparent) 0%,transparent 52%);box-shadow:inset 0 0 .9rem color-mix(in srgb,var(--theme-danger) 24%,transparent);animation:pulse-warning .68s ease-out forwards}@keyframes pulse-warning{0%{opacity:0;transform:scale(1)}18%{opacity:1}to{opacity:0;transform:scale(1.02)}}.modifier-banner-layer{position:absolute;top:3.8rem;left:50%;transform:translate(-50%);pointer-events:none;z-index:7;text-align:center;width:max-content;max-width:90vw}.modifier-banner{display:inline-block;font-size:calc(1.55rem * var(--ui-font-scale));font-weight:900;letter-spacing:.22em;text-transform:uppercase;opacity:0;text-shadow:0 0 .35rem rgba(255,255,255,.75),0 0 1.2rem color-mix(in srgb,var(--theme-accent) 85%,transparent),0 0 2.1rem color-mix(in srgb,var(--theme-danger) 45%,transparent);filter:saturate(1.4);animation:modifier-banner-fade 3.5s ease-out forwards}@keyframes modifier-banner-fade{0%{opacity:0;transform:translateY(.5rem) scale(.95)}14%{opacity:.95;transform:translateY(0) scale(1)}76%{opacity:.86}to{opacity:0;transform:translateY(-.35rem) scale(1.05)}}.hud-panel{min-width:0;min-height:0;max-height:calc(100dvh - 2rem);background:var(--theme-panel);border:.125rem solid rgba(255,255,255,.14);border-radius:.35rem;padding:.85rem;align-self:start;display:grid;gap:.8rem;overflow:hidden;box-shadow:inset 0 0 0 .125rem #0000005c,0 1rem 2.5rem #00000057}.piece-tray{flex-shrink:0;width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.65rem;padding:.65rem .8rem;background:var(--theme-panel);border:.125rem solid rgba(255,255,255,.14);border-radius:.35rem;box-shadow:inset 0 0 0 .125rem #0000005c,0 1rem 2.5rem #00000047}.game-mode-icon{width:3.9rem;height:3.9rem;display:grid;place-items:center;color:var(--theme-accent);background:var(--theme-panel-strong);border:.0625rem solid rgba(255,255,255,.1);border-radius:.25rem;box-shadow:inset 0 0 0 .0625rem #0000006b}.game-mode-icon svg{width:2.45rem;height:2.45rem;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.piece-strip{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.5rem;align-items:stretch}.piece-slot{min-width:0;display:grid;gap:.25rem;align-items:center;padding:.4rem;background:var(--theme-panel-strong);border:.0625rem solid rgba(255,255,255,.08);border-radius:.25rem}.piece-slot span{color:var(--theme-muted);font-size:calc(.72rem * var(--ui-font-scale));font-weight:800;text-transform:uppercase}.hold-slot{width:5.4rem}.next-slot{min-width:0}.next-pieces{min-width:0;display:grid;grid-template-columns:repeat(5,minmax(2.3rem,1fr));gap:.3rem}.piece-preview{width:100%;height:3rem;min-width:0;background:#02060a;border:.0625rem solid rgba(255,255,255,.1);border-radius:.18rem}.hold-preview{height:3.65rem}.hud-panel>section,.right-block{min-height:0}#right-hud{display:flex;flex-direction:column}.leaderboard-section{flex:0 0 auto;min-height:0;display:flex;flex-direction:column;gap:.45rem}.hud-panel h2,.hud-panel h3{margin:0;font-size:calc(1rem * var(--ui-font-scale));letter-spacing:0}.stat-grid{display:grid;gap:.55rem}.stat{display:grid;gap:.15rem;padding:.65rem;background:var(--theme-panel-strong);border:.0625rem solid rgba(255,255,255,.08);border-radius:.25rem}.stat span{color:var(--theme-muted);font-size:calc(.78rem * var(--ui-font-scale))}.stat strong{font-size:calc(1.25rem * var(--ui-font-scale));line-height:1.1}.board-wrap{flex:1 1 auto;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;width:100%;overflow:visible}.board-stage{--combo-lane-size: clamp(3.5rem, 8vw, 4.8rem);--board-stage-gap: clamp(.45rem, 1.4vw, .9rem);--board-stage-offset: calc(var(--combo-lane-size) + var(--board-stage-gap));width:100%;height:100%;max-width:100%;min-width:0;display:flex;align-items:center;justify-content:center;gap:var(--board-stage-gap);overflow:visible}.combo-lane{flex:0 0 var(--combo-lane-size);width:var(--combo-lane-size);min-height:14rem;display:flex;align-items:center;justify-content:center}.board-frame{--board-frame-pad: .72rem;position:relative;min-width:0;width:auto;height:min(100%,max(0px,calc((100% - var(--board-stage-offset)) * 2)));aspect-ratio:10 / 20;max-width:max(0px,calc(100% - var(--board-stage-offset)));border-radius:.35rem;padding:var(--board-frame-pad);background:linear-gradient(135deg,#ffffff42,#ffffff0a 18%,#0000009e 70%),var(--theme-panel-strong);border:.18rem solid var(--theme-accent);box-shadow:0 0 0 .28rem #000000bd,0 0 2rem color-mix(in srgb,var(--theme-accent) 45%,transparent),0 1.5rem 5rem #00000094}.board-frame:before,.board-frame:after{content:"";position:absolute;pointer-events:none;top:.28rem;right:.28rem;bottom:.28rem;left:.28rem;border:.0625rem solid rgba(255,255,255,.22);border-radius:.22rem}.board-frame:after{top:-.48rem;right:-.48rem;bottom:-.48rem;left:-.48rem;border-color:#000000b8;box-shadow:inset 0 0 0 .12rem #ffffff1a}canvas{position:relative;z-index:1;width:100%;height:100%;display:block;border-radius:.12rem}.board-overlay-layer{position:absolute;inset:var(--board-frame-pad);z-index:3;overflow:visible;pointer-events:none}.combo-score-popup{position:absolute;transform:translate(-50%,-50%) scale(var(--combo-popup-scale, 1));display:grid;gap:.06rem;justify-items:center;padding:.28rem .45rem;border-radius:.55rem;background:linear-gradient(180deg,#ffffff1f,#ffffff05),color-mix(in srgb,var(--theme-panel-strong) 78%,transparent);border:.0625rem solid color-mix(in srgb,var(--theme-accent) 48%,transparent);box-shadow:0 0 1.35rem color-mix(in srgb,var(--theme-accent) 34%,transparent);white-space:nowrap;animation:combo-popup-rise 2s cubic-bezier(.16,1,.3,1) forwards}.combo-score-popup-formula{font-size:calc(.62rem * var(--ui-font-scale));font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb,var(--theme-accent) 72%,#ffffff)}.combo-score-popup strong{font-size:calc(1.18rem * var(--ui-font-scale));line-height:1;color:var(--theme-text);text-shadow:0 0 .45rem rgba(255,255,255,.58),0 0 1.2rem color-mix(in srgb,var(--theme-accent) 52%,transparent)}@keyframes combo-popup-rise{0%{opacity:0;transform:translate(-50%,-18%) scale(calc(var(--combo-popup-scale, 1) + .18));filter:blur(.35rem)}14%{opacity:1;transform:translate(-50%,-50%) scale(var(--combo-popup-scale, 1));filter:blur(0)}to{opacity:0;transform:translate(-50%,-150%) scale(calc(var(--combo-popup-scale, 1) * .96));filter:blur(.08rem)}}.combo-rail{--combo-scale: 1;position:relative;z-index:4;flex:0 0 auto;width:clamp(3.5rem,8vw,4.8rem);min-height:14rem;display:grid;justify-items:center;align-content:center;gap:.42rem;padding:.65rem .45rem .72rem;border-radius:1rem;background:linear-gradient(180deg,#ffffff1c,#ffffff05),linear-gradient(180deg,color-mix(in srgb,var(--theme-panel) 88%,transparent),color-mix(in srgb,var(--theme-panel-strong) 96%,transparent));box-shadow:0 .8rem 2.4rem #00000070,0 0 1.4rem color-mix(in srgb,var(--theme-accent) 22%,transparent);pointer-events:none;overflow:hidden;isolation:isolate;opacity:0;visibility:hidden;transform:translateY(.7rem) scale(.82);transition:opacity .75s ease,transform .75s cubic-bezier(.16,1,.3,1),filter .75s ease,box-shadow .75s ease,visibility 0s linear .75s}.combo-rail:before{content:"";position:absolute;top:.28rem;right:.28rem;bottom:.28rem;left:.28rem;border-radius:.75rem;border:.0625rem solid rgba(255,255,255,.08);pointer-events:none}.combo-rail.is-active{opacity:1;visibility:visible;transform:translateY(0) scale(1);filter:saturate(1.08);animation:combo-rail-enter .42s cubic-bezier(.18,.9,.22,1.2);box-shadow:0 .9rem 2.6rem #00000080,0 0 1.8rem color-mix(in srgb,var(--theme-accent) 34%,transparent);transition-delay:0s}.combo-rail.is-active.is-fading{opacity:0;transform:translateY(.7rem) scale(.82);filter:saturate(.86);box-shadow:0 .35rem 1.1rem #00000042,0 0 .7rem color-mix(in srgb,var(--theme-accent) 14%,transparent)}.combo-rail.is-active:before{opacity:0}@keyframes combo-rail-enter{0%{opacity:0;transform:translateY(1rem) scale(.68);filter:saturate(.72) blur(.08rem)}58%{opacity:1;transform:translateY(-.08rem) scale(1.08);filter:saturate(1.2) blur(0)}to{opacity:1;transform:translateY(0) scale(1);filter:saturate(1.08) blur(0)}}.combo-rail-burst{position:absolute;top:-18%;right:-18%;bottom:-18%;left:-18%;background:radial-gradient(circle at 50% 18%,color-mix(in srgb,#ffffff 42%,transparent) 0%,transparent 32%),radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--theme-accent) 34%,transparent) 0%,transparent 60%);opacity:0;pointer-events:none}.combo-rail.combo-hit .combo-rail-burst{animation:combo-rail-burst .42s ease-out forwards}@keyframes combo-rail-burst{0%{opacity:.95;transform:scale(.84)}to{opacity:0;transform:scale(1.2)}}.combo-rail-label{position:relative;z-index:1;font-size:calc(.6rem * var(--ui-font-scale));font-weight:900;letter-spacing:.26em;text-transform:uppercase;color:var(--theme-muted)}.combo-rail-meter{position:relative;z-index:1;width:.9rem;height:min(25vh,10.8rem);padding:.15rem;display:flex;align-items:flex-end;border-radius:999px;background:#0000005c;border:.0625rem solid rgba(255,255,255,.08);box-shadow:inset 0 .1rem .25rem #0000006b;overflow:hidden}.combo-rail-meter-fill{position:relative;width:100%;min-height:0;height:0%;border-radius:999px;overflow:hidden;background:linear-gradient(180deg,#fffffff2,color-mix(in srgb,var(--theme-accent) 82%,#ffffff) 20%,color-mix(in srgb,var(--theme-accent) 80%,var(--theme-danger)) 58%,color-mix(in srgb,var(--theme-danger) 88%,var(--theme-accent)));box-shadow:0 0 .85rem color-mix(in srgb,var(--theme-accent) 58%,transparent),0 0 1.4rem color-mix(in srgb,var(--theme-danger) 24%,transparent);transition:height .1s linear,box-shadow .14s ease,filter .14s ease}.combo-rail-meter-fill:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(155deg,rgba(255,255,255,.36) 0 .18rem,rgba(255,255,255,.08) .18rem .42rem,transparent .42rem .74rem);mix-blend-mode:screen;opacity:.52;animation:combo-meter-flow 1.2s linear infinite}.combo-rail-meter-fill:after{content:"";position:absolute;top:0;left:50%;width:140%;height:.58rem;transform:translate(-50%,-18%);border-radius:999px;background:radial-gradient(circle,rgba(255,255,255,.92) 0%,color-mix(in srgb,var(--theme-accent) 84%,#ffffff) 36%,transparent 76%);filter:blur(.02rem)}@keyframes combo-meter-flow{0%{transform:translateY(0)}to{transform:translateY(.75rem)}}.combo-rail-value{position:relative;z-index:1;transform:scale(var(--combo-scale));filter:drop-shadow(0 0 .18rem rgba(255,255,255,.48));text-shadow:0 0 .5rem rgba(255,255,255,.4),0 0 1.4rem color-mix(in srgb,var(--theme-accent) 46%,transparent);animation:combo-value-idle 2.1s ease-in-out infinite;transition:transform .12s ease,text-shadow .12s ease,filter .12s ease;display:inline-flex;align-items:flex-start;gap:.18rem}.combo-rail-multiplier{margin-top:.32rem;font-size:calc(.78rem * var(--ui-font-scale));font-weight:900;line-height:1;letter-spacing:.02em;color:color-mix(in srgb,var(--theme-text) 78%,var(--theme-accent))}.combo-rail-value-number{font-size:calc(2.25rem * var(--ui-font-scale));font-weight:1000;line-height:.84;color:transparent;background:linear-gradient(180deg,#fff,color-mix(in srgb,#ffffff 72%,var(--theme-accent)) 26%,color-mix(in srgb,var(--theme-accent) 88%,#ffffff) 55%,color-mix(in srgb,var(--theme-danger) 34%,var(--theme-accent)));-webkit-background-clip:text;background-clip:text}@keyframes combo-value-idle{0%,to{transform:translateY(0) scale(var(--combo-scale))}50%{transform:translateY(-.08rem) scale(calc(var(--combo-scale) * 1.02))}}.combo-rail.combo-hit .combo-rail-value{animation:combo-value-slam .42s cubic-bezier(.16,1,.3,1)}@keyframes combo-value-slam{0%{transform:translateY(.28rem) scale(calc(var(--combo-scale) * .72));filter:drop-shadow(0 0 .1rem rgba(255,255,255,.2))}42%{transform:translateY(-.12rem) scale(calc(var(--combo-scale) * 1.24));filter:drop-shadow(0 0 .34rem rgba(255,255,255,.72))}to{transform:translateY(0) scale(var(--combo-scale));filter:drop-shadow(0 0 .18rem rgba(255,255,255,.48))}}.combo-rail[data-tier="1"] .combo-rail-value{text-shadow:0 0 .55rem rgba(255,255,255,.46),0 0 1.6rem color-mix(in srgb,var(--theme-accent) 58%,transparent)}.combo-rail[data-tier="2"] .combo-rail-value,.combo-rail[data-tier="3"] .combo-rail-value{color:color-mix(in srgb,var(--theme-text) 88%,#ffffff);text-shadow:0 0 .7rem rgba(255,255,255,.62),0 0 2rem color-mix(in srgb,var(--theme-accent) 76%,transparent),0 0 2.8rem color-mix(in srgb,var(--theme-danger) 30%,transparent)}.combo-rail[data-tier="3"]{box-shadow:0 1rem 2.8rem #0000008a,0 0 2.4rem color-mix(in srgb,var(--theme-accent) 40%,transparent)}.combo-rail.is-urgent .combo-rail-meter-fill{animation:combo-meter-alert .28s ease-in-out infinite alternate}@keyframes combo-meter-alert{0%{filter:saturate(1);box-shadow:0 0 .8rem color-mix(in srgb,var(--theme-accent) 48%,transparent)}to{filter:saturate(1.25);box-shadow:0 0 1.2rem color-mix(in srgb,var(--theme-danger) 54%,transparent)}}.leaderboard{display:grid;gap:.45rem;overflow-y:auto;min-height:0;flex:1}.leader-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.55rem;padding:.55rem;background:var(--theme-panel-strong);border:.0625rem solid rgba(255,255,255,.08);border-radius:.25rem;color:var(--theme-text)}.player-name-with-level{display:inline-flex;align-items:center;gap:.4rem;flex-wrap:wrap}.player-level-badge{display:inline-flex;align-items:center;gap:.28rem;padding:.18rem .44rem;border-radius:999px;font-size:calc(.66rem * var(--ui-font-scale));font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--theme-text);background:linear-gradient(180deg,#ffffff24,#ffffff0a);border:.0625rem solid color-mix(in srgb,var(--theme-accent) 45%,rgba(255,255,255,.16));box-shadow:0 0 .9rem color-mix(in srgb,var(--theme-accent) 16%,transparent);white-space:nowrap}.player-level-badge--inline{font-size:calc(.58rem * var(--ui-font-scale));padding:.14rem .34rem}.player-level-badge-icon{color:var(--theme-accent);font-size:.84em}.player-progress-section{display:grid;gap:.55rem}.player-progress-card,.finish-progress-card{display:grid;gap:.55rem;padding:.8rem .9rem;border-radius:.55rem;background:linear-gradient(180deg,#ffffff1f,#ffffff05),color-mix(in srgb,var(--theme-panel) 92%,transparent);border:.0625rem solid color-mix(in srgb,var(--theme-accent) 32%,transparent);box-shadow:0 0 1.4rem color-mix(in srgb,var(--theme-accent) 16%,transparent)}.player-progress-card--compact{padding:.72rem .8rem}.player-progress-head,.finish-progress-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.player-progress-head span,.finish-progress-head span{display:block;color:var(--theme-muted);font-size:calc(.7rem * var(--ui-font-scale));font-weight:800;text-transform:uppercase;letter-spacing:.08em}.player-progress-head strong,.finish-progress-head strong{display:block;color:var(--theme-text);font-size:calc(1.4rem * var(--ui-font-scale));line-height:1;text-shadow:0 0 .9rem color-mix(in srgb,var(--theme-accent) 30%,transparent)}.player-progress-bar-bg,.finish-progress-bar-bg{height:.8rem;background:#ffffff0f;border-radius:999px;overflow:hidden;box-shadow:inset 0 .08rem .24rem #00000070}.player-progress-bar-fill,.finish-progress-bar-fill{height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,color-mix(in srgb,#ffffff 25%,var(--theme-accent)) 0%,var(--theme-accent) 55%,color-mix(in srgb,var(--theme-danger) 25%,var(--theme-accent)) 100%);box-shadow:0 0 .8rem color-mix(in srgb,var(--theme-accent) 48%,transparent),0 0 1.4rem color-mix(in srgb,var(--theme-danger) 18%,transparent);transition:width .14s linear}.player-progress-foot,.finish-progress-foot{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.6rem;color:var(--theme-muted);font-size:calc(.68rem * var(--ui-font-scale));font-weight:700}.player-progress-foot span:nth-child(2),.finish-progress-foot span:nth-child(2){justify-self:center;text-align:center}.finish-progress-card.is-level-up{animation:finish-level-up .6s ease-out 2}@keyframes finish-level-up{0%{transform:scale(1);box-shadow:0 0 1.4rem color-mix(in srgb,var(--theme-accent) 16%,transparent)}50%{transform:scale(1.02);box-shadow:0 0 2.1rem color-mix(in srgb,var(--theme-accent) 38%,transparent)}to{transform:scale(1);box-shadow:0 0 1.4rem color-mix(in srgb,var(--theme-accent) 16%,transparent)}}.game-info-section{display:grid;gap:.55rem}.stat-compact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.stat-compact>div{min-width:0;padding:.45rem .55rem;background:var(--theme-panel-strong);border:.0625rem solid rgba(255,255,255,.08);border-radius:.25rem}.stat-compact span{display:block;color:var(--theme-muted);font-size:calc(.72rem * var(--ui-font-scale))}.stat-compact strong{display:block;color:var(--theme-text);font-size:calc(1.05rem * var(--ui-font-scale));line-height:1.1;white-space:nowrap}.ghost-grid{min-height:0;height:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:.55rem;overflow:hidden}.ghost-section{flex:1 1 auto;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:.45rem;overflow:hidden}.ghost-card{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:.35rem;padding:.45rem;background:var(--theme-panel-strong);border:.0625rem solid rgba(255,255,255,.1);border-radius:.28rem}.ghost-name{min-width:0;color:var(--theme-text);font-size:calc(.78rem * var(--ui-font-scale));font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ghost-canvas{width:100%;height:100%;min-width:0;min-height:0;background:#02060a;border:.1rem solid var(--theme-accent);border-radius:.18rem}.token-box{-webkit-user-select:all;user-select:all;padding:.75rem;border-radius:.45rem;background:#ffffff1a;border:.0625rem dashed var(--theme-accent);color:var(--theme-text);overflow-wrap:anywhere}.kbd{display:inline-grid;place-items:center;min-width:1.75rem;min-height:1.5rem;padding:0 .4rem;border-radius:.3rem;background:#ffffff1f;color:var(--theme-text);font-size:calc(.8rem * var(--ui-font-scale))}.error{color:var(--danger)}.muted{color:var(--muted2)}.attack-progress-wrap{grid-column:1 / -1;padding:.55rem .6rem;background:var(--theme-panel-strong);border:.0625rem solid rgba(255,255,255,.08);border-radius:.25rem}.attack-progress-bar-bg{height:.6rem;background:#ffffff12;border-radius:.5rem;overflow:hidden;box-shadow:inset 0 .05rem .15rem #00000080}.attack-progress-bar-fill{height:100%;border-radius:.5rem;background:linear-gradient(90deg,var(--menu-accent-2) 0%,var(--theme-accent) 100%);box-shadow:0 0 .4rem color-mix(in srgb,var(--theme-accent) 60%,transparent);transition:width .12s linear}.attack-progress-wrap.urgent .attack-progress-bar-fill{background:linear-gradient(90deg,#f59e0b 0%,var(--theme-danger) 100%);animation:pulse-bar .4s ease-in-out infinite alternate}@keyframes pulse-bar{0%{opacity:.85}to{opacity:1}}.server-loading-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:320;display:flex;align-items:center;justify-content:center;padding:1.25rem;background:#04080f94;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);opacity:0;pointer-events:none;transition:opacity .18s ease}.server-loading-backdrop--show{opacity:1;pointer-events:auto}.server-loading-modal{position:relative;width:min(100%,24rem);display:grid;gap:.9rem;justify-items:center;padding:1.4rem 1.2rem 1.15rem;border-radius:1rem;border:.0625rem solid rgba(255,255,255,.14);background:radial-gradient(circle at top,rgba(74,222,128,.12),transparent 45%),linear-gradient(160deg,#111924f5,#080c14fa);box-shadow:0 0 0 .125rem #ffffff0d,0 1.8rem 4rem #00000085;animation:server-loading-modal-in .24s cubic-bezier(.16,1,.3,1)}@keyframes server-loading-modal-in{0%{opacity:0;transform:translateY(.8rem) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.server-loading-close{position:absolute;top:.55rem;right:.55rem;width:2rem;height:2rem;border:0;border-radius:999px;color:#fffc;background:#ffffff14;font-size:1.1rem;line-height:1;cursor:pointer;transition:background .12s ease,transform .12s ease}.server-loading-close:hover{background:#ffffff29;transform:scale(1.04)}.server-loading-spinner{display:flex;align-items:center;gap:.45rem;padding-top:.2rem}.server-loading-dot{width:.7rem;height:.7rem;border-radius:999px;background:var(--theme-accent, var(--cyan));box-shadow:0 0 1rem color-mix(in srgb,var(--theme-accent, var(--cyan)) 60%,transparent);animation:server-loading-bounce .9s ease-in-out infinite}.server-loading-dot:nth-child(2){animation-delay:.12s}.server-loading-dot:nth-child(3){animation-delay:.24s}@keyframes server-loading-bounce{0%,80%,to{transform:translateY(0) scale(.9);opacity:.45}40%{transform:translateY(-.3rem) scale(1);opacity:1}}.server-loading-title{margin:0;font-size:calc(1.2rem * var(--ui-font-scale));color:var(--theme-text, #f8fafc)}.server-loading-text{margin:0;text-align:center;color:var(--theme-muted, #94a3b8);font-size:calc(.8rem * var(--ui-font-scale));line-height:1.45}.finish-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000ad;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:200;display:flex;align-items:center;justify-content:center;animation:backdrop-in .25s ease}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}.finish-modal{background:var(--theme-panel-strong);border:.125rem solid rgba(255,255,255,.16);border-radius:.75rem;padding:1.5rem;min-width:20rem;max-width:30rem;width:90vw;display:grid;gap:1rem;box-shadow:0 0 0 .25rem #00000080,0 2rem 6rem #000000b8;animation:modal-in .3s cubic-bezier(.16,1,.3,1)}@keyframes modal-in{0%{opacity:0;transform:translateY(1.5rem) scale(.97)}to{opacity:1;transform:none}}.finish-modal-title{margin:0;font-size:calc(1.4rem * var(--ui-font-scale));letter-spacing:.02em;color:var(--theme-accent)}.finish-modal-result{font-size:calc(2rem * var(--ui-font-scale));font-weight:800;color:var(--theme-text)}.finish-modal-score-card{display:grid;gap:.2rem;padding:.8rem .9rem;border-radius:.55rem;background:linear-gradient(180deg,#ffffff1f,#ffffff05),color-mix(in srgb,var(--theme-panel) 90%,transparent);border:.0625rem solid color-mix(in srgb,var(--theme-accent) 38%,transparent);box-shadow:0 0 1.2rem color-mix(in srgb,var(--theme-accent) 18%,transparent)}.finish-modal-score-card span{font-size:calc(.72rem * var(--ui-font-scale));font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:var(--theme-muted)}.finish-modal-score-card strong{font-size:calc(1.65rem * var(--ui-font-scale));line-height:1;color:var(--theme-text);text-shadow:0 0 .8rem color-mix(in srgb,var(--theme-accent) 46%,transparent)}.finish-modal-board{display:grid;gap:.35rem}.modal-leader-row{display:grid;grid-template-columns:2.8rem 1fr auto;align-items:center;gap:.55rem;padding:.5rem .65rem;background:#ffffff0d;border:.0625rem solid rgba(255,255,255,.07);border-radius:.3rem;color:var(--theme-text)}.modal-leader-row.modal-me{background:color-mix(in srgb,var(--theme-accent) 18%,transparent);border-color:color-mix(in srgb,var(--theme-accent) 60%,transparent);font-weight:700}.modal-rank{color:var(--theme-muted);font-size:calc(.78rem * var(--ui-font-scale));font-variant-numeric:tabular-nums}.modal-me .modal-rank{color:var(--theme-accent)}.modal-sep{text-align:center;color:var(--theme-muted);font-size:calc(.75rem * var(--ui-font-scale));letter-spacing:.15em;padding:.1rem 0}.finish-modal-back{justify-self:stretch;min-height:3rem;font-size:calc(1rem * var(--ui-font-scale))}.modal-token-wrap{display:grid;gap:.35rem}.modal-token-label{font-size:calc(.75rem * var(--ui-font-scale));color:var(--theme-muted)}.modal-token{font-size:calc(1rem * var(--ui-font-scale));font-weight:700;letter-spacing:.04em}.pause-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:200;display:flex;align-items:center;justify-content:center;animation:backdrop-in .18s ease}.pause-modal{display:grid;gap:2.2rem;place-items:center;animation:pause-modal-in .28s cubic-bezier(.16,1,.3,1)}@keyframes pause-modal-in{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}.pause-icon{display:flex;align-items:center;gap:.6rem}.pause-icon-bar{width:.58rem;height:3rem;border-radius:.22rem;background:var(--theme-accent,var(--cyan));box-shadow:0 0 1rem color-mix(in srgb,var(--theme-accent,var(--cyan)) 70%,transparent),0 0 2.4rem color-mix(in srgb,var(--theme-accent,var(--cyan)) 32%,transparent)}.pause-actions{display:flex;gap:1.6rem}.pause-btn{width:6rem;height:6rem;display:grid;place-items:center;border-radius:1rem;cursor:pointer;border:.15rem solid rgba(255,255,255,.18);box-shadow:inset 0 0 0 .08rem #0000006b,0 1rem 2.5rem #0006;transition:transform .12s ease,box-shadow .12s ease}.pause-btn:hover{transform:scale(1.08);outline:none}.pause-btn svg{width:50%;height:50%;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.pause-btn-resume{color:#061018;background:linear-gradient(135deg,#ffffff61,#ffffff14),var(--menu-accent-2);border-color:#ffffff47;box-shadow:inset 0 0 0 .08rem #00000061,0 0 1.4rem color-mix(in srgb,var(--menu-accent-2) 35%,transparent),0 1rem 2.5rem #0006}.pause-btn-resume svg{fill:currentColor;stroke:none}.pause-btn-quit{color:var(--danger);background:linear-gradient(135deg,#ffffff1f,#ffffff06),#ff4d6a1f;border-color:#ff4d6a61}.pause-btn-quit:hover{background:linear-gradient(135deg,#ffffff2e,#ffffff0d),#ff4d6a47}@media (max-width: 640px){.server-loading-backdrop{align-items:flex-start;padding:max(1rem,env(safe-area-inset-top)) .9rem .9rem}.server-loading-modal{width:100%;margin-top:.7rem;padding:1.15rem 1rem 1rem}}.game-view--mobile{display:flex;flex-direction:column;padding:0;gap:0;grid-template-columns:unset;justify-content:unset}.mobile-top{flex:0 0 auto;background:var(--theme-panel);border-bottom:.0625rem solid rgba(255,255,255,.08)}.mobile-top .attack-progress-wrap{grid-column:unset;padding:0;background:transparent;border:none;border-radius:0}.mobile-top .attack-progress-bar-bg{height:.2rem;border-radius:0}.mobile-hud-row{display:flex;align-items:center;gap:.5rem;padding:.3rem .5rem}.mobile-mode-icon{width:2.2rem;height:2.2rem;flex-shrink:0}.mobile-mode-icon svg{width:1.35rem;height:1.35rem}.mobile-stats{display:flex;gap:.6rem;flex-shrink:0}.mobile-stat{display:grid;gap:.05rem;text-align:center}.mobile-stat span{font-size:calc(.58rem * var(--ui-font-scale));color:var(--theme-muted);font-weight:700;text-transform:uppercase}.mobile-stat strong{font-size:calc(.88rem * var(--ui-font-scale));line-height:1;font-variant-numeric:tabular-nums}.mobile-pieces{flex:1;display:flex;gap:.45rem;align-items:center;justify-content:flex-end}.mobile-hold-slot,.mobile-next-slot{display:grid;gap:.12rem;align-content:start}.mobile-hold-slot span,.mobile-next-slot>span{font-size:calc(.56rem * var(--ui-font-scale));color:var(--theme-muted);font-weight:800;text-transform:uppercase;text-align:center}.mobile-hold-slot .hold-preview{width:2.6rem;height:1.9rem}.mobile-next-list{display:flex;gap:.18rem}.mobile-next-list .piece-preview{width:1.55rem;height:1.2rem}.mobile-play{flex:1 1 auto;min-height:0;display:flex;align-items:stretch}.game-view--mobile .game-table{flex:1 1 auto;min-width:0;min-height:0;height:auto;gap:0}.mobile-ghost-col{flex:0 0 4.5rem;min-height:0;display:grid;grid-template-rows:repeat(4,minmax(0,1fr));gap:.25rem;padding:.25rem;background:var(--theme-panel);border-left:.0625rem solid rgba(255,255,255,.08)}.mobile-ghost-col.mobile-ghost-col--duel{flex-basis:7.2rem;grid-template-rows:minmax(0,1fr)}.mobile-ghost-col[hidden]{display:none}.mobile-ghost-card{min-height:0;min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:.1rem;padding:.2rem;background:var(--theme-panel-strong);border:.0625rem solid rgba(255,255,255,.08);border-radius:.2rem}.mobile-duel-card{grid-row:1 / -1}.mobile-duel-progress .attack-progress-wrap{margin:0;padding:.2rem .25rem}.mobile-duel-stats{display:grid;gap:.1rem;font-size:calc(.58rem * var(--ui-font-scale));color:var(--theme-muted,#94a3b8)}.mobile-duel-stats strong{color:var(--theme-text,#e2e8f0);font-size:calc(.68rem * var(--ui-font-scale))}.mobile-ghost-card .ghost-name{font-size:calc(.55rem * var(--ui-font-scale))}.mobile-ghost-card .ghost-canvas{width:100%;height:100%;min-width:0;min-height:0}.game-view--mobile .game-exit-button{top:.4rem;right:auto;left:.4rem}.game-view--mobile .combo-rail{width:2.95rem;min-height:8.75rem;padding:.42rem .3rem .48rem;border-radius:.85rem}.game-view--mobile .combo-lane{min-height:8.75rem}.game-view--mobile .board-stage{--combo-lane-size: 2.95rem;--board-stage-gap: .65rem}.game-view--mobile .combo-rail-meter{width:.72rem;height:min(18vh,6.3rem)}.game-view--mobile .combo-rail-label{font-size:calc(.48rem * var(--ui-font-scale));letter-spacing:.18em}.game-view--mobile .combo-rail-multiplier{margin-top:.22rem;font-size:calc(.6rem * var(--ui-font-scale))}.game-view--mobile .combo-rail-value-number{font-size:calc(1.75rem * var(--ui-font-scale))}.game-view--mobile .combo-score-popup{padding:.22rem .34rem}.game-view--mobile .combo-score-popup-formula{font-size:calc(.52rem * var(--ui-font-scale))}.game-view--mobile .combo-score-popup strong{font-size:calc(.92rem * var(--ui-font-scale))}.mobile-controls-host{flex:0 0 auto}.touch-controls{display:grid;grid-template-columns:1fr .82fr 1fr;grid-template-rows:1fr 1fr;background:var(--theme-panel-strong);border-top:.125rem solid rgba(255,255,255,.1)}.tc-btn{min-height:5.5rem;display:grid;place-items:center;background:linear-gradient(180deg,#ffffff0a,#0000001f);border:none;border-right:.0625rem solid rgba(255,255,255,.07);border-bottom:.0625rem solid rgba(255,255,255,.07);color:var(--theme-muted);cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;transition:background .08s ease,color .08s ease}.tc-btn:nth-child(3n){border-right:none}.tc-btn:nth-child(n+4){border-bottom:none}.tc-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;pointer-events:none}.tc-label{font-size:calc(.56rem * var(--ui-font-scale));font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:inherit;opacity:.72;pointer-events:none;text-align:center;line-height:1.15}.tc-btn svg{width:2rem;height:2rem;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.tc-btn:nth-child(2) svg,.tc-btn:nth-child(5) svg{width:1.75rem;height:1.75rem}.tc-btn--rotate{color:color-mix(in srgb,var(--theme-accent) 75%,var(--theme-text))}.tc-btn--drop{color:var(--theme-accent);background:linear-gradient(180deg,#4dd8ff1a,#00000024)}.tc-btn--hold{color:var(--theme-text);background:linear-gradient(180deg,#86efac0f,#0000001f)}.tc-btn--rotate.tc-active{background:#4dd8ff2e;color:var(--theme-accent)}.tc-btn--move.tc-active{background:#ffffff24}.tc-btn--drop.tc-active{background:#4dd8ff47;color:var(--theme-accent)}.tc-btn--hold.tc-active{background:#86efac26;color:#86efac}.ctrl-splash-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:250;display:flex;align-items:center;justify-content:center;padding:1rem;animation:backdrop-in .2s ease}.ctrl-splash-modal{background:linear-gradient(160deg,#121820fa,#080b12fa),#0c1016fa;border:.125rem solid rgba(255,255,255,.14);border-radius:1rem;padding:1.6rem 1.4rem;width:min(100%,24rem);display:grid;gap:1.1rem;box-shadow:0 0 0 .25rem #00000080,0 2rem 6rem #000000b8;animation:modal-in .32s cubic-bezier(.16,1,.3,1)}.ctrl-splash-header{text-align:center;display:grid;gap:.25rem}.ctrl-splash-icon{font-size:calc(2.4rem * var(--ui-font-scale));line-height:1;filter:drop-shadow(0 0 1rem rgba(0,229,255,.7))}.ctrl-splash-title{margin:0;font-size:calc(1.3rem * var(--ui-font-scale));font-weight:900;letter-spacing:-.01em;color:var(--text)}.ctrl-splash-sub{margin:0;font-size:calc(.8rem * var(--ui-font-scale));color:var(--muted2)}.ctrl-diag{display:grid;gap:.22rem;padding:.55rem;background:#00000052;border:.0625rem solid rgba(255,255,255,.08);border-radius:.55rem}.ctrl-diag-row{display:grid;grid-template-columns:1fr .82fr 1fr;gap:.22rem}.ctrl-diag-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.18rem;padding:.5rem .2rem;background:#ffffff0d;border:.0625rem solid rgba(255,255,255,.1);border-radius:.35rem;font-size:calc(.58rem * var(--ui-font-scale));font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--muted2)}.ctrl-diag-btn--drop{color:var(--cyan);border-color:#00e5ff47;background:#00e5ff0f}.ctrl-diag-btn--rotate{color:color-mix(in srgb,var(--cyan) 70%,var(--text))}.ctrl-diag-btn--hold{color:#86efac;border-color:#86efac33;background:#86efac0d}.ctrl-diag-btn--wide{flex:2}.ctrl-diag-btn svg{width:1.15rem;height:1.15rem;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.ctrl-legend{display:grid;gap:.45rem}.ctrl-legend-row{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:.7rem}.ctrl-legend-key{display:inline-flex;gap:.2rem;align-items:center;flex-shrink:0;min-width:3.8rem;justify-content:flex-end}.ctrl-legend-desc{font-size:calc(.8rem * var(--ui-font-scale));color:var(--muted2);line-height:1.3}.ctrl-key-rows{display:grid;gap:.5rem}.ctrl-key-row{display:grid;grid-template-columns:5.5rem 1fr;align-items:center;gap:.65rem}.ctrl-key-chips{display:flex;gap:.2rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}.ctrl-key-desc{font-size:calc(.8rem * var(--ui-font-scale));color:var(--muted2)}.ctrl-splash-noshow{display:flex;align-items:center;gap:.6rem;font-size:calc(.82rem * var(--ui-font-scale));color:var(--muted2);cursor:pointer;-webkit-user-select:none;user-select:none}.ctrl-splash-noshow input[type=checkbox]{width:1.05rem;height:1.05rem;accent-color:var(--cyan);cursor:pointer;flex-shrink:0}.ctrl-splash-ok{width:100%;min-height:3rem;font-size:calc(1rem * var(--ui-font-scale));font-weight:800}.button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1.3rem;border-radius:.4rem;cursor:pointer;font-weight:700;font-size:calc(.95rem * var(--ui-font-scale));transition:filter .15s,box-shadow .15s}.button.positive{color:#061018;background:var(--cyan);box-shadow:0 4px 16px var(--cyan-glow)}.button.positive:hover{filter:brightness(1.08)}.button.secondary{color:var(--text);background:#ffffff14;border:1px solid rgba(255,255,255,.14)}.button.secondary:hover{background:#ffffff1f}#latency-alert{position:fixed;top:10px;right:10px;z-index:9999;display:flex;align-items:center;gap:5px;padding:4px 9px 4px 6px;background:#0a0a12b8;border:1px solid rgba(244,67,54,.45);border-radius:6px;color:#f44336;font-size:calc(11px * var(--ui-font-scale));font-weight:600;letter-spacing:.04em;pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}#latency-alert svg{width:14px;height:14px;fill:currentColor;flex-shrink:0}#duel-invite-overlay{position:fixed;top:0;left:50%;transform:translate(-50%);z-index:9998;display:flex;align-items:center;gap:10px;padding:14px 22px 14px 24px;background:#070a12b8;border:1px solid rgba(0,229,255,.58);border-top:none;border-radius:0 0 16px 16px;color:var(--theme-text,#e2e8f0);font-size:calc(1.28rem * var(--ui-font-scale));font-weight:700;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 10px 34px #00000094,0 0 24px #00e5ff2e;max-width:min(94vw,48rem);overflow:hidden;isolation:isolate;animation:duel-invite-pop .42s cubic-bezier(.22,1.25,.36,1),duel-invite-wave 2.4s ease-in-out .52s infinite}#duel-invite-overlay:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:inherit;background:radial-gradient(circle at 50% 0%,#00e5ff47,#00e5ff00 70%);opacity:0;transform:scale(.92);animation:duel-invite-halo 2.4s ease-out .52s infinite}.duel-invite-from{font-weight:800;color:var(--theme-accent,var(--cyan));max-width:9rem;overflow:hidden;text-overflow:ellipsis}.duel-invite-btn{display:flex;align-items:center;justify-content:center;width:2.2rem;height:2.2rem;border-radius:.45rem;border:none;cursor:pointer;padding:0;flex-shrink:0}.duel-invite-btn svg{width:1.15rem;height:1.15rem;fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round}.duel-invite-accept{background:#4caf50bf}.duel-invite-accept:hover{background:#4caf50f2}.duel-invite-decline{background:#f44336a6}.duel-invite-decline:hover{background:#f44336e6}.duel-invite-meta{color:var(--theme-muted,#94a3b8);font-size:calc(1rem * var(--ui-font-scale))}.duel-invite-mode svg{width:1.25rem;height:1.25rem;fill:none;stroke:var(--theme-muted,#94a3b8);stroke-width:2.2;stroke-linecap:round}@keyframes duel-invite-pop{0%{transform:translate(-50%) scale(.9);opacity:0}65%{transform:translate(-50%) scale(1.08);opacity:1}to{transform:translate(-50%) scale(1);opacity:1}}@keyframes duel-invite-wave{0%,to{transform:translate(-50%) scale(1)}20%{transform:translate(-50%) scale(1.03)}38%{transform:translate(-50%) scale(.992)}58%{transform:translate(-50%) scale(1.022)}76%{transform:translate(-50%) scale(.998)}}@keyframes duel-invite-halo{0%{opacity:0;transform:scale(.92)}18%{opacity:.5}55%{opacity:.12;transform:scale(1.06)}to{opacity:0;transform:scale(1.11)}}.duel-opponent-section{display:flex;flex-direction:column;align-items:center;padding:.5rem .25rem;height:100%;gap:.35rem}.duel-status-section{display:grid}.duel-status-card{display:grid;gap:.35rem}.duel-status-label{font-size:calc(.7rem * var(--ui-font-scale));font-weight:800;letter-spacing:.08em;color:var(--theme-accent,var(--cyan));text-transform:uppercase;opacity:.85}.duel-mini-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.3rem}.duel-mini-stats>div{padding:.35rem .45rem;background:var(--theme-panel-strong);border:.0625rem solid rgba(255,255,255,.08);border-radius:.25rem;min-width:0}.duel-mini-stats span{display:block;color:var(--theme-muted,#94a3b8);font-size:calc(.65rem * var(--ui-font-scale))}.duel-mini-stats strong{display:block;color:var(--theme-text,#e2e8f0);font-size:calc(.9rem * var(--ui-font-scale));line-height:1.1}.duel-vs-badge{font-size:calc(.65rem * var(--ui-font-scale));font-weight:800;letter-spacing:.2em;color:var(--theme-accent,var(--cyan));opacity:.6;text-transform:uppercase}.duel-opponent-name{font-size:calc(.82rem * var(--ui-font-scale));font-weight:700;color:var(--theme-text,#e2e8f0);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.duel-status-card .attack-progress-wrap,.duel-opponent-section .attack-progress-wrap{width:100%}.duel-opponent-board{flex:1;width:100%;min-height:0;border-radius:4px;display:block}.duel-opponent-stats{display:flex;align-items:center;gap:.6rem;font-size:calc(.72rem * var(--ui-font-scale));color:var(--theme-muted,#94a3b8)}.duel-opponent-stats strong{color:var(--theme-text,#e2e8f0)}.duel-status-banner{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:9997;padding:5px 14px;background:#0a0a12d9;border:1px solid rgba(255,152,0,.45);border-radius:6px;color:#ff9800;font-size:calc(12px * var(--ui-font-scale));font-weight:600;pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.duel-status-banner--finished{border-color:#f4433673;color:#f44336}@media (max-width: 600px){#duel-invite-overlay{font-size:calc(1rem * var(--ui-font-scale));padding:10px 12px;gap:8px}.duel-invite-from{max-width:6rem}.duel-invite-meta{display:none}}.duel-finish-modal{max-width:34rem;gap:.8rem}.duel-finish-outcome{font-size:calc(1.85rem * var(--ui-font-scale));font-weight:900;color:var(--theme-accent,var(--cyan));text-align:center;letter-spacing:.02em}.duel-finish-score{display:grid;gap:.25rem;font-size:calc(1rem * var(--ui-font-scale));color:var(--theme-text,#e2e8f0);text-align:center;opacity:.9}.duel-finish-score-meta{font-size:calc(.78rem * var(--ui-font-scale));letter-spacing:.08em;text-transform:uppercase;color:var(--theme-accent,#7dd3fc)}.duel-finish-emoji-row{display:flex;align-items:center;justify-content:center;gap:.55rem;padding:.65rem;border:1px solid rgba(255,255,255,.12);border-radius:.5rem;background:#ffffff0a}.duel-emoji-btn{width:2.6rem;height:2.6rem;border-radius:.5rem;border:1px solid rgba(255,255,255,.16);background:#ffffff0f;color:#fff;cursor:pointer;font-size:calc(1.45rem * var(--ui-font-scale));line-height:1}.duel-emoji-btn:hover{background:#ffffff24}.duel-finish-actions{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.duel-emoji-toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10020;padding:.7rem 1rem;border-radius:.6rem;border:1px solid rgba(255,255,255,.2);background:#090c15d1;color:var(--theme-text,#e2e8f0);font-size:calc(1.2rem * var(--ui-font-scale));font-weight:700;box-shadow:0 .8rem 2rem #00000073;pointer-events:none;animation:duel-emoji-fade 2s ease forwards}@keyframes duel-emoji-fade{0%{opacity:0;transform:translate(-50%,-46%) scale(.92)}20%{opacity:1;transform:translate(-50%,-50%) scale(1)}80%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-54%) scale(1.02)}}.splash-login-link{background:none;border:none;color:var(--muted);font-size:calc(.82rem * var(--ui-font-scale));cursor:pointer;padding:0;margin-top:10px;text-decoration:underline;font-family:inherit}.splash-login-link:hover{color:var(--text)}.recovery-block{background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:14px 16px;margin:12px 0;text-align:center}.recovery-label{font-size:calc(.75rem * var(--ui-font-scale));color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}.recovery-code{font-size:calc(1.45rem * var(--ui-font-scale));font-weight:700;letter-spacing:.06em;color:var(--cyan);font-family:Space Grotesk,monospace}.recovery-hint{font-size:calc(.75rem * var(--ui-font-scale));color:var(--muted);margin-top:8px;line-height:1.4}.logout-sheet{max-width:470px}.logout-recovery-block{margin-top:2px}.recovery-code--small{font-size:calc(1.1rem * var(--ui-font-scale));letter-spacing:.03em}#menu-avatar{cursor:pointer}#menu-avatar:hover{opacity:.8}
