.difficulty-icon{position:relative;flex-shrink:0;display:flex;align-items:center;justify-content:center;--icon-bg-start: var(--progress-bg);--icon-bg-end: var(--accent-primary);--icon-mid: color-mix(in srgb, var(--accent-primary) 55%, var(--surface-bg));--icon-accent: var(--accent-primary);--icon-accent-light: color-mix(in srgb, var(--accent-primary) 35%, var(--surface-bg));--icon-accent-dark: var(--accent-secondary);--icon-panel: var(--surface-bg);--icon-panel-soft: color-mix(in srgb, var(--surface-bg) 75%, transparent);--icon-cell: color-mix(in srgb, var(--progress-bg) 80%, var(--surface-bg));--icon-cell-alt: color-mix(in srgb, var(--progress-bg) 50%, var(--surface-bg));--icon-stroke: var(--accent-secondary);--icon-sparkle: color-mix(in srgb, var(--accent-primary) 70%, white);filter:drop-shadow(0 4px 14px color-mix(in srgb,var(--accent-primary) 38%,transparent))}.difficulty-icon svg{width:100%;height:100%;display:block}.ic-grad-start{stop-color:var(--icon-bg-start)}.ic-grad-mid{stop-color:var(--icon-mid)}.ic-grad-end{stop-color:var(--icon-bg-end)}.ic-panel{fill:var(--icon-panel);fill-opacity:.95}.ic-panel-soft{fill:var(--icon-panel);fill-opacity:.7}.ic-cell{fill:var(--icon-cell)}.ic-cell-alt{fill:var(--icon-cell-alt)}.ic-grid-cell{stroke:color-mix(in srgb,var(--icon-accent) 35%,transparent);stroke-width:.5}.ic-cell-active{fill:var(--icon-accent);fill-opacity:.85}.ic-accent{fill:var(--icon-accent-dark)}.ic-accent-light{fill:var(--icon-accent-light)}.ic-accent-dark{fill:var(--icon-accent-dark)}.ic-ring{fill:none;stroke:var(--icon-panel);stroke-opacity:.45;stroke-width:1.5}.ic-crown-stroke{stroke:var(--icon-accent-dark);stroke-width:1;stroke-linejoin:round}.ic-crown-band{stroke:var(--icon-accent-dark);stroke-width:.8}.ic-gem{fill:var(--icon-accent);stroke:var(--icon-panel);stroke-width:1}.ic-gem-main{fill:var(--icon-bg-end)}.ic-sparkle{fill:var(--icon-sparkle);opacity:.9}.ic-sparkle-dot{fill:var(--icon-panel);opacity:.7}.difficulty-icon--small{width:48px;height:48px}.difficulty-icon--medium{width:64px;height:64px}.difficulty-icon--large{width:72px;height:72px}.difficulty-icon--advanced.difficulty-icon--large{width:80px;height:80px;filter:drop-shadow(0 6px 20px color-mix(in srgb,var(--accent-primary) 45%,transparent))}.difficulty-icon--intermediate svg{animation:icon-float 3s ease-in-out infinite}.difficulty-icon--advanced svg{animation:icon-crown-shine 4s ease-in-out infinite}.difficulty-icon-sparkle{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;border:2px solid transparent;background:linear-gradient(135deg,var(--icon-accent-light),transparent,var(--icon-accent)) border-box;-webkit-mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.6;animation:icon-ring-pulse 2.5s ease-in-out infinite;pointer-events:none}@keyframes icon-float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes icon-crown-shine{0%,to{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.03);filter:brightness(1.08)}}@keyframes icon-ring-pulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.75;transform:scale(1.06)}}.home-screen{padding-bottom:32px}.home-top-bar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.home-top-bar .home-header{flex:1;min-width:0;text-align:left;margin-bottom:0}.home-top-bar .title-main{text-align:left;font-size:clamp(1.5rem,4vw,2rem)}.home-top-bar .subtitle{text-align:left;margin-bottom:0;font-size:clamp(.85rem,2.5vw,1rem)}.home-top-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;max-width:min(100%,220px)}.home-user-chip{display:inline-flex;align-items:center;gap:6px;max-width:148px;height:40px;padding:0 10px 0 4px;border:2px solid #22c55e;border-radius:999px;background:linear-gradient(135deg,color-mix(in srgb,#22c55e 14%,var(--card-bg)),var(--card-bg));box-shadow:0 2px 10px color-mix(in srgb,#22c55e 22%,transparent),inset 0 0 0 1px color-mix(in srgb,#22c55e 8%,white);cursor:pointer;transition:transform .2s,box-shadow .2s}.home-user-chip:hover{transform:translateY(-1px);box-shadow:0 4px 14px color-mix(in srgb,#22c55e 28%,transparent),inset 0 0 0 1px color-mix(in srgb,#22c55e 10%,white)}.home-user-chip:active{transform:scale(.98)}.home-user-chip-avatar{flex-shrink:0;width:30px;height:30px;border-radius:50%;background:var(--btn-primary-bg);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:.88rem;font-weight:800}.home-user-chip-name{flex:1;min-width:0;font-family:var(--font-display);font-size:.82rem;font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-user-chip-tag{flex-shrink:0;padding:2px 7px;border-radius:999px;background:#22c55e;color:#fff;font-size:.62rem;font-weight:800;font-family:var(--font-display);line-height:1.35;letter-spacing:.02em}.home-vip-btn{position:relative;flex-shrink:0;width:44px;height:44px;border-radius:50%;border:none;font-size:1.2rem;display:flex;align-items:center;justify-content:center;cursor:pointer;background:linear-gradient(145deg,#fde68a,#f59e0b 45%,#d97706);box-shadow:0 4px 14px #f59e0b66,inset 0 1px #ffffff73;transition:transform .2s,box-shadow .2s}.home-vip-btn:hover{transform:translateY(-2px) scale(1.04);box-shadow:0 6px 20px #f59e0b80,inset 0 1px #ffffff73}.home-vip-btn:active{transform:scale(.96)}.home-vip-badge{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 4px;border-radius:10px;background:#ef4444;color:#fff;font-size:.62rem;font-weight:800;font-family:var(--font-display);line-height:18px;text-align:center;border:2px solid var(--card-bg);box-shadow:0 2px 6px #00000026}.home-settings-btn{position:relative;flex-shrink:0;width:44px;height:44px;border-radius:50%;background:var(--card-bg);box-shadow:var(--shadow);font-size:1.25rem;display:flex;align-items:center;justify-content:center;transition:transform .2s,box-shadow .2s}.home-settings-btn:hover{transform:rotate(30deg);box-shadow:0 6px 20px #0000001f}.guest-trial-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;margin-bottom:12px;font-size:.9rem}.guest-trial-link{background:none;border:none;padding:0;font-family:var(--font-display);font-size:.9rem;font-weight:700;color:var(--accent-primary);cursor:pointer;white-space:nowrap}.guest-trial-link:hover{text-decoration:underline}.home-section-label{font-family:var(--font-display);font-size:.85rem;font-weight:700;color:var(--text-secondary);margin-bottom:10px;padding-left:2px}.home-section-label--core{margin-top:4px}.home-section-label--social{display:none}.home-sidebar,.home-social-body,.home-core-main{display:contents}.home-social{margin-bottom:20px}.home-social-actions{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}.home-social .leaderboard-entry-btn,.home-social .multiplayer-entry-btn{margin-bottom:0}.home-room-entry{padding:14px 16px;border:2px solid color-mix(in srgb,var(--accent-primary) 25%,var(--divider-color));background:linear-gradient(135deg,color-mix(in srgb,var(--accent-primary) 8%,var(--surface-bg)),var(--surface-bg))}.home-room-entry-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.home-room-entry-icon{font-size:1.75rem;line-height:1;flex-shrink:0}.home-room-entry-head strong{display:block;font-family:var(--font-display);font-size:1.05rem;margin-bottom:4px}.home-room-entry-head p{font-size:.85rem;color:var(--text-secondary);line-height:1.4}.home-room-entry-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.home-room-btn{padding:12px 10px;border-radius:14px;border:none;font-family:var(--font-display);font-size:.9rem;font-weight:700;cursor:pointer;transition:transform .2s}.home-room-btn:active{transform:scale(.98)}.home-room-btn--join{background:var(--surface-bg);color:var(--accent-primary);border:2px solid var(--accent-primary)}.home-room-btn--create{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;box-shadow:0 4px 14px var(--btn-primary-shadow)}.home-core{padding-top:4px;border-top:2px solid color-mix(in srgb,var(--divider-color) 80%,transparent)}.stats-bar{display:flex;align-items:center;justify-content:space-around;padding:14px 16px;margin-bottom:12px}.stat-item{display:flex;flex-direction:column;align-items:center;gap:2px}.stat-icon{font-size:1.4rem}.stat-value{font-family:var(--font-display);font-size:1.4rem;font-weight:800;color:var(--stat-value-color)}.stat-label{font-size:.75rem;color:var(--text-secondary)}.stat-divider{width:1px;height:36px;background:var(--divider-color)}.quick-start-icon{flex-shrink:0}.quick-start-icon.difficulty-icon--medium{width:56px;height:56px}.quick-start-9x9{display:flex;align-items:center;gap:16px;width:100%;padding:16px 18px;margin-bottom:12px;border:none;border-radius:var(--radius);background:var(--quick-start-bg);color:#fff;box-shadow:0 8px 28px var(--quick-start-shadow);cursor:pointer;text-align:left;transition:transform .2s,box-shadow .2s}.quick-start-9x9:hover{transform:translateY(-2px);box-shadow:0 12px 36px var(--quick-start-shadow)}.quick-start-text{flex:1;display:flex;flex-direction:column;gap:4px}.quick-start-text strong{font-family:var(--font-display);font-size:1.2rem}.quick-start-text span{font-size:.8rem;opacity:.9}.quick-start-arrow{font-family:var(--font-display);font-size:1.05rem;font-weight:700;flex-shrink:0}.world-map{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.world-card{display:flex;align-items:center;gap:16px;background:var(--surface-bg);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow);text-align:left;width:100%;position:relative;overflow:hidden;border:3px solid transparent;transition:all .2s ease;animation:fadeIn .5s ease backwards}.world-card:not(.locked):hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 12px 40px #0000001f}.world-card.locked{opacity:.6;cursor:not-allowed}.world-card.register-locked{cursor:pointer;opacity:.75}.world-card--beginner:before,.world-card--intermediate:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,var(--accent-light),var(--accent));border-radius:4px 0 0 4px}.world-card--advanced{background:linear-gradient(135deg,var(--surface-bg) 0%,color-mix(in srgb,var(--accent-light) 35%,var(--surface-bg)) 100%)}.world-card--advanced:before{content:"";position:absolute;top:0;left:0;width:5px;height:100%;background:linear-gradient(180deg,#fde68a,var(--accent),var(--accent-dark));border-radius:4px 0 0 4px}.world-card--advanced:after{content:"";position:absolute;top:-30px;right:-30px;width:100px;height:100px;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 20%,transparent) 0%,transparent 70%);pointer-events:none}.world-card.featured:not(.locked){border:2px solid var(--accent);box-shadow:0 8px 32px color-mix(in srgb,var(--accent) 25%,transparent)}.lock-badge{position:absolute;top:8px;right:8px;z-index:2;background:#fef3c7;color:#92400e;font-size:.75rem;padding:4px 10px;border-radius:20px;font-weight:700}.world-info{flex:1;position:relative;z-index:1}.world-info h2{font-family:var(--font-display);font-size:1.25rem;color:var(--text-primary)}.world-info p{font-size:.85rem;color:var(--text-secondary);margin:4px 0 8px}.world-progress{height:8px;background:var(--progress-bg);border-radius:4px;overflow:hidden;margin-bottom:4px}.world-progress-bar{height:100%;background:var(--accent);border-radius:4px;transition:width .5s ease}.world-stars{font-size:.8rem;color:var(--text-secondary)}.world-arrow{font-size:1.5rem;color:var(--accent);font-weight:800}.how-to-play h3{font-family:var(--font-display);font-size:1.1rem;margin-bottom:12px;color:var(--text-primary)}.how-to-play ul{list-style:none;display:flex;flex-direction:column;gap:8px}.how-to-play li{font-size:.9rem;color:var(--text-secondary);padding-left:20px;position:relative}.how-to-play li:before{content:"✦";position:absolute;left:0;color:var(--bullet-color)}@media(min-width:600px){.home-social-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.home-room-entry{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 20px}.home-room-entry-head{margin-bottom:0;flex:1}.home-room-entry-actions{flex-shrink:0;width:auto;min-width:280px}}@media(min-width:900px){.home-screen{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-template-rows:auto auto;gap:12px 24px;align-items:start}.home-top-bar{grid-column:1 / -1;grid-row:1;margin-bottom:0}.home-sidebar{display:flex;flex-direction:column;gap:12px;grid-column:2;grid-row:2}.home-social{margin-bottom:0;flex:0 0 auto;order:1}.guest-trial-banner{order:2;margin-top:0;margin-bottom:0;padding:10px 14px;font-size:.85rem;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;flex-shrink:0}.guest-trial-link{font-size:.85rem}.home-core{grid-column:1;grid-row:2;border-top:none;padding-top:0;display:flex;flex-direction:column;gap:12px}.home-core-main{flex:0 0 auto;display:grid;grid-template-columns:220px minmax(0,1fr);grid-template-rows:auto auto;gap:12px;align-items:stretch}.home-core-main .stats-bar{grid-column:1;grid-row:1;margin-bottom:0;padding:12px 10px}.home-core-main .quick-start-9x9{grid-column:2;grid-row:1;margin-bottom:0;height:100%}.home-core-main .world-map{grid-column:1 / -1;grid-row:2;margin-bottom:0}.home-guide{flex-shrink:0;padding:14px 16px}.home-guide h3{font-size:1rem;margin-bottom:10px}.home-guide li{font-size:.82rem;line-height:1.45}.home-guide ul{gap:6px}.home-section-label--social{display:block;margin-top:0;margin-bottom:10px}.home-section-label--core{margin-top:0;margin-bottom:10px;flex-shrink:0}.home-social-body{display:flex;flex-direction:column;gap:12px}.home-social-actions{display:flex;flex-direction:column;gap:10px;margin-bottom:0}.home-room-entry{flex-direction:column;align-items:stretch;margin-top:0;padding:14px 16px}.home-room-entry-head{margin-bottom:10px}.home-room-entry-actions{min-width:0;width:100%}.home-screen .world-map{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.home-screen .world-card{flex-direction:column;text-align:center;padding:16px 12px;gap:10px}.home-screen .world-info{width:100%}.home-screen .world-info h2{font-size:1.05rem}.home-screen .world-info p{font-size:.78rem;margin:2px 0 6px}.home-screen .world-card .difficulty-icon--medium{width:56px;height:56px}.home-screen .world-card .difficulty-icon--large,.home-screen .world-card .difficulty-icon--advanced.difficulty-icon--large{width:60px;height:60px}.home-screen .world-arrow{display:none}.home-social .leaderboard-entry-btn,.home-social .multiplayer-entry-btn{padding:14px 16px;font-size:1rem}}@media(min-width:1100px){.home-screen{grid-template-columns:minmax(0,1fr) 340px}.home-core-main{grid-template-columns:240px minmax(0,1fr)}}@media(max-width:599px){.home-screen{padding-bottom:16px}.home-top-bar{margin-bottom:8px;gap:8px}.home-top-actions{max-width:min(100%,168px);gap:6px}.home-user-chip{max-width:108px;height:36px;padding:0 8px 0 3px;gap:4px}.home-user-chip-avatar{width:26px;height:26px;font-size:.78rem}.home-user-chip-name{font-size:.72rem}.home-user-chip-tag{padding:2px 5px;font-size:.58rem}.home-top-bar .title-main{font-size:1.35rem;line-height:1.2}.home-top-bar .subtitle{font-size:.78rem;line-height:1.35}.home-settings-btn,.home-vip-btn{width:36px;height:36px;font-size:1rem}.home-vip-badge{min-width:16px;height:16px;line-height:16px;font-size:.58rem;top:-2px;right:-2px}.guest-trial-banner,.stats-bar{padding:8px 12px;margin-bottom:8px;font-size:.8rem;gap:8px}.guest-trial-link{font-size:.8rem}.home-social{margin-bottom:12px}.home-social-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.home-social .leaderboard-entry-btn,.home-social .multiplayer-entry-btn{margin-bottom:0;padding:10px 8px;font-size:.82rem;line-height:1.25;border-radius:14px;box-shadow:0 4px 14px #0000001f}.home-social .leaderboard-entry-btn span,.home-social .multiplayer-entry-btn span{font-size:.62rem;margin-top:2px;line-height:1.2}.home-room-entry{padding:10px 12px}.home-room-entry-head{gap:8px;margin-bottom:8px}.home-room-entry-icon{font-size:1.2rem}.home-room-entry-head strong{font-size:.92rem;margin-bottom:2px}.home-room-entry-head p{font-size:.72rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.home-room-entry-actions{gap:6px}.home-room-btn{padding:8px 6px;font-size:.76rem;border-radius:10px}.home-core{padding-top:8px}.home-section-label{font-size:.78rem;margin-bottom:6px;margin-top:0}.stats-bar{padding:8px 10px;margin-bottom:8px}.stat-icon{font-size:1.05rem}.stat-value{font-size:1.1rem}.stat-label{font-size:.65rem}.stat-divider{height:26px}.quick-start-9x9{padding:10px 12px;margin-bottom:8px;gap:10px;border-radius:14px;box-shadow:0 4px 16px var(--quick-start-shadow)}.quick-start-icon.difficulty-icon--medium{width:44px;height:44px}.quick-start-text{gap:2px}.quick-start-text strong{font-size:.95rem}.quick-start-text span{font-size:.7rem}.quick-start-arrow{font-size:.85rem}.world-map{gap:8px;margin-bottom:10px}.world-card{padding:10px 12px;gap:10px;border-radius:14px;border-width:2px}.world-card .difficulty-icon--medium{width:48px;height:48px}.world-card .difficulty-icon--large,.world-card .difficulty-icon--advanced.difficulty-icon--large{width:52px;height:52px}.world-info h2{font-size:.98rem}.world-info p{font-size:.72rem;margin:2px 0 4px}.world-progress{height:5px;margin-bottom:2px}.world-stars{font-size:.7rem}.world-arrow{font-size:1.15rem}.lock-badge{font-size:.62rem;padding:2px 7px;top:5px;right:5px}.how-to-play{padding:12px 14px}.how-to-play h3{font-size:.92rem;margin-bottom:8px}.how-to-play li{font-size:.78rem;padding-left:16px}.how-to-play ul{gap:6px}}@media(max-width:360px){.home-social-actions,.home-room-entry-actions{grid-template-columns:1fr}.home-user-chip-name{display:none}.home-user-chip{max-width:none;padding-right:8px}}.mp-server-status{text-align:center;font-size:.85rem;padding:10px 14px;border-radius:12px;margin-bottom:16px}.mp-server-status.connecting{background:#ebf8ff;color:#2b6cb0}.mp-server-status.connected{background:#f0fff4;color:#276749}.mp-server-status.error{background:#fff5f5;color:#c53030}.multiplayer-screen{padding-bottom:32px}.mp-menu{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.mp-label{font-family:var(--font-display);font-size:.9rem;color:var(--text-secondary)}.mp-input{width:100%;padding:12px 16px;border-radius:12px;border:2px solid var(--divider-color);background:var(--surface-bg);color:var(--text-primary);font-size:1rem;font-family:var(--font-body);outline:none;transition:border-color .2s}.mp-input:focus{border-color:var(--accent-primary)}.mp-room-input{font-family:var(--font-display);font-size:1.6rem;letter-spacing:.3em;text-align:center}.mp-action{width:100%}.mp-error{color:#e53e3e;font-size:.9rem;text-align:center;background:#fff5f5;padding:8px 12px;border-radius:8px}.mp-diff-options{display:flex;flex-direction:column;gap:8px}.mp-diff-btn{padding:12px 14px;border-radius:12px;border:2px solid var(--divider-color);background:var(--surface-bg);color:var(--text-primary);text-align:left;font-family:var(--font-display);transition:all .2s}.mp-diff-btn.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface-bg))}.mp-tips h3,.mp-players h3{font-family:var(--font-display);margin-bottom:12px}.mp-tips ul{list-style:none;display:flex;flex-direction:column;gap:8px}.mp-tips li{font-size:.85rem;color:var(--text-secondary);padding-left:18px;position:relative}.mp-tips li:before{content:"•";position:absolute;left:0;color:var(--accent-primary)}.mp-room-header{text-align:center;margin-bottom:16px}.mp-room-label{font-size:.85rem;color:var(--text-secondary);margin-bottom:8px}.mp-room-id-row{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:8px}.mp-room-id{font-family:var(--font-display);font-size:2.2rem;letter-spacing:.2em;color:var(--accent-primary);font-weight:800}.mp-copy-btn{padding:8px 16px;font-size:.85rem}.mp-room-meta{font-size:.9rem;color:var(--text-secondary)}.mp-room-open-badge{font-family:var(--font-display);font-size:1.3rem;color:var(--accent-primary);font-weight:700;margin-bottom:6px}.mp-room-open-hint,.mp-room-code-hint{font-size:.82rem;color:var(--text-secondary);margin-bottom:8px}.mp-access-options{display:flex;flex-direction:column;gap:8px;margin-bottom:4px}.mp-access-btn{padding:12px 14px;border-radius:12px;border:2px solid var(--divider-color);background:var(--surface-bg);color:var(--text-primary);text-align:left;transition:all .2s}.mp-access-btn strong{display:block;font-family:var(--font-display);margin-bottom:4px}.mp-access-btn span{font-size:.8rem;color:var(--text-secondary)}.mp-access-btn.active{border-color:var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 10%,var(--surface-bg))}.mp-player-list{list-style:none;display:flex;flex-direction:column;gap:8px}.mp-player{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--progress-bg);border-radius:12px}.mp-player.is-me{border:2px solid var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 10%,var(--surface-bg))}.mp-player-name{font-weight:700;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.mp-host-badge,.mp-me-badge{font-size:.65rem;padding:2px 8px;border-radius:20px;font-weight:700}.mp-host-badge{background:#fef3c7;color:#92400e}.mp-me-badge{background:var(--progress-bg);color:var(--accent-primary)}.mp-player-status{font-size:.8rem;color:var(--text-secondary)}.mp-waiting-actions{text-align:center}.mp-wait-hint{margin-top:12px;color:var(--text-secondary);font-size:.9rem}.mp-leave-modal .modal-actions{margin-top:8px}.mp-leave-modal .modal-actions .btn{min-width:110px}.mp-live-bar{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;padding:10px 14px;background:var(--learning-bar-bg);border-radius:12px}.mp-live-chip{font-size:.75rem;padding:4px 10px;border-radius:20px;background:var(--surface-bg);color:var(--text-secondary)}.mp-live-chip.done{color:#38a169;font-weight:700}.mp-results{text-align:center}.mp-results-emoji{font-size:4rem;margin-bottom:8px}.mp-results-title{font-family:var(--font-display);font-size:1.6rem;margin-bottom:4px}.mp-results-room{color:var(--text-secondary);margin-bottom:20px}.mp-champion-box{background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:16px;padding:16px;margin-bottom:16px}.mp-champion-label{font-size:.85rem;color:#92400e;margin-bottom:4px}.mp-champion-name{font-family:var(--font-display);font-size:1.8rem;color:#b45309;margin-bottom:8px}.mp-champion-detail{font-size:.85rem;color:#92400e}.mp-average-box{display:flex;flex-direction:column;gap:4px;background:var(--progress-bg);border-radius:12px;padding:14px;margin-bottom:16px}.mp-average-box strong{font-family:var(--font-display);font-size:1.5rem;color:var(--accent-primary)}.mp-average-box small{font-size:.75rem;color:var(--text-secondary)}.mp-rank-table{text-align:left;margin-top:8px}.mp-rank-header,.mp-rank-row{display:grid;grid-template-columns:40px 1fr 56px 40px 48px;gap:8px;padding:8px 4px;font-size:.8rem;align-items:center}.mp-rank-header{color:var(--text-secondary);font-weight:700;border-bottom:1px solid var(--divider-color)}.mp-rank-row{border-bottom:1px solid var(--divider-color)}.mp-rank-row.is-champion{background:color-mix(in srgb,#fde68a 40%,transparent);border-radius:8px;font-weight:700}.mp-rank-num{text-align:center}.multiplayer-entry-btn{width:100%;margin-bottom:20px;padding:16px 20px;border:none;border-radius:var(--radius);background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;font-family:var(--font-display);font-size:1.15rem;box-shadow:0 8px 24px var(--btn-primary-shadow);cursor:pointer;transition:transform .2s}.multiplayer-entry-btn:hover{transform:translateY(-2px)}.multiplayer-entry-btn span{display:block;font-size:.8rem;opacity:.9;margin-top:4px;font-family:var(--font-body)}.leaderboard-entry-btn{width:100%;margin-bottom:16px;padding:16px 20px;border:none;border-radius:var(--radius);background:linear-gradient(135deg,#f59e0b,#f97316);color:#fff;font-family:var(--font-display);font-size:1.15rem;box-shadow:0 8px 24px #f59e0b59;cursor:pointer;transition:transform .2s}.leaderboard-entry-btn:hover{transform:translateY(-2px)}.leaderboard-entry-btn span{display:block;font-size:.8rem;opacity:.9;margin-top:4px;font-family:var(--font-body)}.level-select{padding-bottom:32px}.level-header{display:flex;align-items:center;gap:16px;margin-bottom:16px}.level-header .difficulty-icon{flex-shrink:0}.level-mascot{color:var(--text-secondary);font-size:.9rem}.level-desc{margin-bottom:24px;font-size:.95rem;color:var(--text-secondary);padding:16px}.level-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}.level-btn{aspect-ratio:1;border-radius:16px;background:var(--surface-bg);box-shadow:0 4px 15px #00000014;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;transition:all .2s;border:3px solid transparent}.level-btn:not(.locked):hover{transform:scale(1.05);border-color:var(--accent)}.level-btn.completed{background:linear-gradient(135deg,var(--surface-bg),color-mix(in srgb,var(--accent) 15%,var(--surface-bg)))}.level-btn.locked{opacity:.5;cursor:not-allowed}.level-btn.register-locked{cursor:pointer;opacity:.65}.level-btn.register-locked:hover{transform:scale(1.05);opacity:.85}.guest-level-hint{margin-bottom:16px;padding:12px 16px;font-size:.9rem;color:var(--text-secondary);text-align:center}.level-num{font-family:var(--font-display);font-size:1.5rem;color:var(--accent)}.level-lock{font-size:1.5rem}.star-tips{padding:16px}.star-tips h3{font-family:var(--font-display);margin-bottom:12px}.star-tips p{font-size:.85rem;color:var(--text-secondary);margin-bottom:6px}@media(max-width:400px){.level-grid{grid-template-columns:repeat(3,1fr)}}.game-board{display:grid;grid-template-columns:repeat(var(--grid-size),1fr);gap:0;background:var(--board-border);border:3px solid var(--board-border);border-radius:12px;overflow:hidden;width:100%;max-width:360px;margin:0 auto;aspect-ratio:1;transition:border-color .3s ease}.cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:var(--cell-bg);font-family:var(--font-display);font-weight:800;border:1px solid var(--divider-color);transition:all .15s ease;min-width:0;min-height:0}.cell.fixed{background:var(--cell-fixed-bg);color:var(--cell-fixed-color)}.cell.editable{color:var(--cell-editable-color);cursor:pointer}.cell.editable:hover{background:var(--cell-hover-bg)}.cell.selected{background:var(--cell-selected-bg)!important;box-shadow:inset 0 0 0 2px var(--cell-selected-border)}.cell.hint-cell{background:#fefcbf;animation:pop .4s ease}.cell.conflict{background:#fed7d7!important;color:#c53030;animation:shake .4s ease}.cell.guide-region{background:#fefcbf!important}.cell.guide-conflict{background:#fed7d7!important;color:#c53030;box-shadow:inset 0 0 0 3px #fc8181;animation:shake .5s ease;z-index:1}.cell.border-right-thick{border-right:2px solid var(--board-border)}.cell.border-bottom-thick{border-bottom:2px solid var(--board-border)}.game-board[style*="--grid-size: 4"] .cell{font-size:clamp(1.5rem,8vw,2.5rem)}.game-board[style*="--grid-size: 6"] .cell{font-size:clamp(1rem,5vw,1.6rem)}.game-board[style*="--grid-size: 9"] .cell{font-size:clamp(.85rem,3.5vw,1.3rem)}@media(min-width:480px){.game-board{max-width:400px}}.number-pad{margin-top:16px}.number-grid{display:grid;grid-template-columns:repeat(var(--pad-size),1fr);gap:8px;margin-bottom:12px}.num-btn{aspect-ratio:1;border-radius:14px;background:var(--num-btn-bg);color:#fff;font-family:var(--font-display);font-size:clamp(1.2rem,5vw,1.6rem);font-weight:800;box-shadow:0 4px 12px var(--num-btn-shadow);transition:all .15s ease;border:none}.num-btn:hover:not(:disabled){transform:scale(1.08)}.num-btn:active:not(:disabled){transform:scale(.95)}.num-btn:disabled{opacity:.4;cursor:not-allowed}.num-btn.complete{background:var(--progress-bg);color:var(--text-secondary);box-shadow:none}.erase-btn{width:100%;padding:12px;border-radius:14px;background:var(--surface-bg);border:2px dashed var(--divider-color);font-family:var(--font-display);font-size:1rem;color:var(--text-secondary);transition:all .2s}.erase-btn:hover:not(:disabled){border-color:var(--accent-primary);color:var(--accent-secondary)}.erase-btn:disabled{opacity:.4;cursor:not-allowed}@media(min-width:480px){.number-grid{max-width:360px;margin-left:auto;margin-right:auto}.erase-btn{max-width:360px;margin-left:auto;margin-right:auto;display:block}}.error-guide{background:linear-gradient(135deg,#fff5f5,#fffbeb);border:2px solid #fc8181;border-radius:var(--radius);padding:16px;margin:16px 0;animation:pop .35s ease;box-shadow:0 4px 20px #fc818133}.error-guide-header{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}.error-guide-emoji{font-size:2rem;flex-shrink:0}.error-guide-title{font-family:var(--font-display);font-size:1.15rem;color:#c53030;margin-bottom:4px}.error-guide-message{font-size:.9rem;color:#744210;line-height:1.5}.error-guide-rule{background:#fff;border-radius:12px;padding:10px 14px;margin-bottom:10px}.rule-label{font-family:var(--font-display);font-size:.85rem;color:#667eea;display:block;margin-bottom:4px}.error-guide-rule p{font-size:.85rem;color:var(--text-secondary);line-height:1.4}.error-guide-context{background:#fff;border-radius:12px;padding:10px 14px;margin-bottom:10px;font-size:.85rem;color:var(--text-secondary)}.number-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.chip{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:#ebf4ff;color:#667eea;font-family:var(--font-display);font-weight:800}.chip-conflict{background:#fed7d7;color:#c53030;animation:shake .4s ease}.logic-regions{display:flex;flex-direction:column;gap:8px}.logic-region{display:flex;flex-direction:column;gap:4px}.region-tag{display:inline-block;padding:2px 10px;border-radius:20px;font-size:.75rem;font-weight:700;width:fit-content}.row-tag{background:#fefcbf;color:#975a16}.missing-hint{color:#38a169;font-weight:700;margin-top:4px}.error-guide-tip{display:flex;gap:8px;align-items:flex-start;background:#ebf8ff;border-radius:12px;padding:10px 14px;margin-bottom:14px}.error-guide-tip p{font-size:.9rem;color:#2b6cb0;line-height:1.4}.error-guide-btn{width:100%}.game-screen{padding-bottom:32px}.game-top-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap;gap:8px}.game-info{display:flex;align-items:center;gap:12px}.level-tag{padding:6px 14px;border-radius:50px;color:#fff;font-family:var(--font-display);font-size:.9rem;font-weight:700}.timer{background:var(--surface-bg);padding:6px 14px;border-radius:50px;font-family:var(--font-display);font-size:.9rem;box-shadow:0 2px 8px #00000014;color:var(--text-primary)}.learning-bar{display:flex;align-items:center;gap:8px;margin-bottom:16px;padding:10px 16px;background:var(--learning-bar-bg);border-radius:50px;font-size:.85rem;color:var(--learning-bar-color);flex-wrap:wrap}.learning-icon{font-size:1.2rem}.learning-stats{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap}.learning-stat{font-size:.8rem;color:var(--text-secondary);background:var(--surface-bg);padding:2px 10px;border-radius:20px;white-space:nowrap}.learning-stat-hint{color:var(--learning-bar-color);font-weight:700}.mistake-count{margin-left:auto;font-size:.8rem;color:var(--text-secondary);background:var(--surface-bg);padding:2px 10px;border-radius:20px}.keyboard-hint{text-align:center;font-size:.8rem;color:var(--keyboard-hint-color);padding:6px 12px;background:var(--keyboard-hint-bg);border-radius:20px;width:fit-content;margin:12px auto 4px}.game-actions{display:flex;justify-content:center;margin-top:16px}.hint-btn{min-width:160px}.result-modal .stars-display{justify-content:center;margin:16px 0}.result-modal .stars-display .star{font-size:2rem}.new-achievements{background:#fefcbf;border-radius:12px;padding:12px;margin-bottom:16px}.new-achievements p{font-family:var(--font-display);margin-bottom:8px}.achievement-badge{display:inline-block;background:var(--surface-bg);padding:4px 12px;border-radius:20px;margin:4px;font-size:.85rem;box-shadow:0 2px 6px #00000014}.stars-display.small .star{font-size:.7rem}.achievements-screen{padding-bottom:32px}.achievements-tabs{display:flex;gap:8px;margin-bottom:16px}.achievements-tab{flex:1;padding:10px 12px;border-radius:12px;border:2px solid var(--divider-color);background:var(--surface-bg);color:var(--text-secondary);font-family:var(--font-display);font-size:.9rem;transition:all .2s}.achievements-tab.active{border-color:var(--accent-primary);color:var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 10%,var(--surface-bg))}.achievements-grid{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.achievement-card{display:flex;align-items:center;gap:16px;background:var(--surface-bg);border-radius:16px;padding:16px;box-shadow:var(--shadow);position:relative;transition:all .2s}.achievement-card.earned{border:2px solid #fbbf24;background:linear-gradient(135deg,var(--surface-bg),#fffbeb)}.achievement-card.locked{opacity:.55}.achievement-emoji{font-size:2.5rem;flex-shrink:0}.achievement-info h3{font-family:var(--font-display);font-size:1.1rem}.achievement-info p{font-size:.85rem;color:var(--text-secondary)}.earned-mark{position:absolute;top:8px;right:12px;color:#48bb78;font-weight:800;font-size:1.2rem}.achievement-progress{text-align:center;color:var(--text-secondary);font-size:.9rem}.match-history-hint,.match-history-empty{text-align:center;color:var(--text-secondary);font-size:.9rem;padding:24px 12px}.match-history-error{text-align:center;color:#e53e3e;font-size:.9rem;padding:16px 12px}.match-history-list{list-style:none;display:flex;flex-direction:column;gap:10px}.match-history-item{padding:14px 16px}.match-history-main{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}.match-history-type{font-size:.85rem;font-weight:700;color:var(--text-primary)}.match-history-rank{font-family:var(--font-display);font-size:.95rem;color:var(--accent-primary)}.match-history-meta{font-size:.85rem;color:var(--text-secondary);margin-bottom:8px}.match-history-footer{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.82rem}.match-history-score{font-weight:700;color:var(--text-primary)}.match-history-date{color:var(--text-secondary)}.auth-screen{padding-bottom:32px}.auth-header{margin-bottom:20px}.auth-tabs{display:flex;gap:8px;margin-bottom:12px;background:var(--surface-bg);padding:4px;border-radius:50px;box-shadow:var(--shadow)}.auth-tab{flex:1;padding:10px 16px;border-radius:50px;background:transparent;border:none;font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--text-secondary);transition:all .2s}.auth-tab.active{background:var(--btn-primary-bg);color:#fff;box-shadow:0 4px 12px var(--btn-primary-shadow)}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-field{display:flex;flex-direction:column;gap:8px;text-align:left}.auth-field span{font-family:var(--font-display);font-size:.95rem;color:var(--text-secondary)}.auth-field input{padding:12px 16px;border-radius:14px;border:2px solid var(--divider-color);background:var(--surface-bg);font-family:var(--font-body);font-size:1rem;color:var(--text-primary);transition:border-color .2s}.auth-field input:focus{outline:none;border-color:var(--btn-secondary-hover)}.auth-error{color:#ef4444;font-size:.9rem;text-align:center}.auth-submit{width:100%;margin-top:4px}.auth-switch{text-align:center;margin-top:20px;color:var(--text-secondary)}.auth-switch-btn{background:none;border:none;color:var(--btn-secondary-hover);font-family:var(--font-display);font-weight:700;margin-left:4px;text-decoration:underline}.user-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;margin-bottom:16px;border-radius:var(--radius);background:var(--card-bg);box-shadow:var(--shadow)}.user-bar-info{display:flex;align-items:center;gap:10px;min-width:0}.user-avatar{width:40px;height:40px;border-radius:50%;background:var(--btn-primary-bg);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.1rem;flex-shrink:0}.user-bar-name{font-family:var(--font-display);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-bar-actions{display:flex;gap:8px;flex-shrink:0}.user-bar-actions .btn{padding:8px 14px;font-size:.9rem}.login-prompt-btn{width:100%;margin-bottom:16px;padding:14px 20px;border-radius:var(--radius);background:linear-gradient(135deg,var(--btn-primary-bg),var(--btn-secondary-hover));color:#fff;font-family:var(--font-display);font-size:1rem;font-weight:700;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;gap:8px}.room-code-modal{max-width:340px;text-align:center}.room-code-modal .mp-room-input{margin:12px 0}.room-code-modal .modal-actions{flex-direction:column;gap:10px}.room-code-modal .modal-actions .btn{width:100%}.room-code-modal .mp-error{margin-bottom:8px}.arena-screen{padding-bottom:32px}.arena-header{margin-bottom:16px}.arena-online-bar{display:inline-flex;align-items:center;gap:8px;margin-top:10px;padding:8px 14px;border-radius:20px;background:color-mix(in srgb,var(--accent-primary) 12%,var(--surface-bg));color:var(--text-secondary);font-size:.85rem;font-weight:600}.arena-online-bar.has-real{background:color-mix(in srgb,#48bb78 18%,var(--surface-bg));color:#276749}.arena-pulse{width:8px;height:8px;border-radius:50%;background:#48bb78;animation:arenaPulse 1.4s ease infinite}@keyframes arenaPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}.arena-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:16px}.arena-filters{display:flex;flex-wrap:wrap;gap:6px}.arena-filter-btn{padding:6px 12px;border-radius:20px;border:2px solid var(--divider-color);background:var(--surface-bg);color:var(--text-secondary);font-size:.82rem;font-family:var(--font-display);transition:all .2s}.arena-filter-btn.active{border-color:var(--accent-primary);color:var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 10%,var(--surface-bg))}.arena-filter-btn--beginner.active{border-color:#4ade80;color:#16a34a;background:color-mix(in srgb,#4ade80 18%,var(--surface-bg))}.arena-filter-btn--intermediate.active{border-color:#60a5fa;color:#2563eb;background:color-mix(in srgb,#60a5fa 18%,var(--surface-bg))}.arena-filter-btn--advanced.active{border-color:#f472b6;color:#db2777;background:color-mix(in srgb,#f472b6 16%,var(--surface-bg))}.arena-create-btn{padding:8px 14px;font-size:.85rem;white-space:nowrap}.arena-list{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.arena-real-hint{margin:0 0 10px;padding:8px 12px;border-radius:12px;background:color-mix(in srgb,#48bb78 12%,var(--surface-bg));color:#276749;font-size:.82rem;font-weight:600}.arena-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-left:4px solid var(--accent)}.arena-card.arena-card--beginner{border-left-color:#4ade80;background:linear-gradient(135deg,color-mix(in srgb,#4ade80 16%,var(--surface-bg)),color-mix(in srgb,#bbf7d0 35%,var(--surface-bg)))}.arena-card.arena-card--intermediate{border-left-color:#60a5fa;background:linear-gradient(135deg,color-mix(in srgb,#60a5fa 16%,var(--surface-bg)),color-mix(in srgb,#bfdbfe 40%,var(--surface-bg)))}.arena-card.arena-card--advanced{border-left-color:#f472b6;background:linear-gradient(135deg,color-mix(in srgb,#f472b6 14%,var(--surface-bg)),color-mix(in srgb,#fbcfe8 38%,var(--surface-bg)))}.arena-card--real{box-shadow:inset 0 0 0 1px color-mix(in srgb,#48bb78 22%,transparent),var(--shadow)}.arena-card--real.arena-card--beginner{border-left-color:#22c55e}.arena-card--real.arena-card--intermediate{border-left-color:#3b82f6}.arena-card--real.arena-card--advanced{border-left-color:#ec4899}.arena-card--open{border-left-color:var(--accent-primary)}.arena-card--code{border-left-color:#ed8936}.arena-access-badge{flex-shrink:0;font-size:.65rem;font-weight:700;padding:2px 8px;border-radius:10px;color:#fff}.arena-access-badge.open{background:var(--accent-primary)}.arena-access-badge.code{background:#ed8936}.arena-create-panel{margin-bottom:16px;padding:16px}.arena-create-modes{display:flex;flex-direction:column;gap:10px;margin-top:14px}.arena-create-modes .btn{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:14px 16px}.arena-create-modes .btn small{font-size:.78rem;font-weight:400;opacity:.85}.arena-card-main{flex:1;min-width:0}.arena-card-title-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}.arena-card-title-row h3{font-family:var(--font-display);font-size:1rem;margin:0}.arena-real-badge{flex-shrink:0;background:#48bb78;color:#fff;font-size:.65rem;font-weight:700;padding:2px 8px;border-radius:10px}.arena-card-meta{font-size:.82rem;color:var(--text-secondary);margin-bottom:4px}.arena-card-waiting{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--accent-primary);font-weight:600}.arena-waiting-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-primary);animation:arenaPulse 1.2s ease infinite}.arena-join-btn{flex-shrink:0;padding:10px 18px;font-size:.9rem}.arena-footer{text-align:center;padding:16px}.arena-footer p{font-size:.85rem;color:var(--text-secondary);margin-bottom:10px}.arena-waiting-screen{padding-bottom:32px}.arena-waiting-card{padding:24px 20px;text-align:center}.arena-waiting-title{font-family:var(--font-display);font-size:1.4rem;margin-bottom:8px}.arena-waiting-meta{color:var(--text-secondary);font-size:.9rem;margin-bottom:20px}.arena-countdown{font-family:var(--font-display);font-size:3rem;color:var(--accent-primary);margin-bottom:20px;animation:arenaCountPop .5s ease}@keyframes arenaCountPop{0%{transform:scale(1.4);opacity:.5}to{transform:scale(1);opacity:1}}.arena-join-log{list-style:none;text-align:left;display:flex;flex-direction:column;gap:8px}.arena-join-log li{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-radius:12px;background:var(--surface-bg);border:1px solid var(--divider-color);font-size:.9rem}.arena-join-log li.joined{border-color:color-mix(in srgb,var(--accent-primary) 30%,var(--divider-color))}.arena-join-log li.is-me{background:color-mix(in srgb,var(--accent-primary) 10%,var(--surface-bg))}.arena-join-log li em{font-style:normal;font-size:.78rem;color:var(--text-secondary)}.arena-join-log li.animate-in{animation:arenaSlideIn .35s ease}@keyframes arenaSlideIn{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.arena-join-log li.pending{opacity:.6;justify-content:center}.arena-dots:after{content:"";animation:arenaDots 1.2s steps(4,end) infinite}@keyframes arenaDots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.leaderboard-screen{padding-bottom:40px}.lb-tabs{display:flex;gap:8px;margin-bottom:16px}.lb-tab{flex:1;padding:12px 8px;border-radius:50px;background:var(--surface-bg);border:2px solid var(--divider-color);font-family:var(--font-display);font-size:.95rem;font-weight:700;color:var(--text-secondary);transition:all .2s}.lb-tab.active{background:var(--btn-primary-bg);border-color:transparent;color:#fff;box-shadow:0 4px 15px var(--btn-primary-shadow)}.lb-rules{margin-bottom:16px;text-align:left;font-size:.9rem;color:var(--text-secondary)}.lb-rules strong{display:block;color:var(--text-primary);margin-bottom:6px;font-family:var(--font-display)}.lb-rules p{margin-bottom:4px}.lb-formula{font-size:.8rem;opacity:.85;margin-top:6px}.lb-my-rank{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:16px;text-align:left}.lb-my-rank strong{font-family:var(--font-display);font-size:1.3rem;color:var(--btn-secondary-hover)}.lb-my-rank--empty{justify-content:center;text-align:center;color:var(--text-secondary)}.lb-list{display:flex;flex-direction:column;gap:10px}.lb-row{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;padding:14px 16px;border-radius:16px;background:var(--card-bg);box-shadow:var(--shadow)}.lb-row--me{outline:2px solid var(--btn-secondary-hover);background:var(--surface-bg)}.lb-medal{font-size:1.6rem;text-align:center}.lb-rank-num{font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:var(--text-secondary);text-align:center}.lb-player{min-width:0}.lb-player strong{display:block;font-family:var(--font-display);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lb-title{font-size:.75rem;color:var(--btn-secondary-hover);font-weight:600}.lb-stats{text-align:right}.lb-honor{display:block;font-family:var(--font-display);font-weight:700;font-size:.95rem;color:var(--text-primary)}.lb-detail{font-size:.72rem;color:var(--text-secondary);white-space:nowrap}.lb-status,.lb-error{text-align:center;padding:24px;color:var(--text-secondary)}.lb-error{color:#ef4444}@media(max-width:400px){.lb-row{grid-template-columns:36px 1fr;grid-template-rows:auto auto}.lb-stats{grid-column:2;text-align:left}}.theme-switcher{margin-bottom:20px}.theme-switcher.compact{margin-bottom:0}.theme-switcher-label{font-family:var(--font-display);font-size:.95rem;color:var(--text-secondary);margin-bottom:10px;text-align:center}.theme-options{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.theme-switcher.compact .theme-options{gap:6px}.theme-option{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 10px;border-radius:14px;background:var(--surface-bg);border:2px solid transparent;box-shadow:0 2px 8px #0000000f;transition:all .2s ease;min-width:72px}.theme-switcher.compact .theme-option{min-width:auto;padding:4px;border-radius:50%;background:transparent;box-shadow:none}.theme-option:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.theme-option.active{border-color:var(--theme-active-ring);box-shadow:0 0 0 2px var(--surface-bg),0 0 0 4px var(--theme-active-ring)}.theme-preview{width:36px;height:36px;border-radius:50%;border:2px solid rgba(255,255,255,.8);box-shadow:inset 0 0 0 1px #0000000d}.theme-switcher.compact .theme-preview{width:28px;height:28px}.theme-name{font-size:.7rem;color:var(--text-secondary);font-weight:700;white-space:nowrap}.theme-switcher.compact .theme-name{display:none}@media(max-width:480px){.theme-option{min-width:58px;padding:6px 8px}.theme-name{font-size:.65rem}}.font-switcher{margin-bottom:20px}.font-switcher.compact{margin-bottom:0}.font-switcher-label{font-family:var(--font-display);font-size:.95rem;color:var(--text-secondary);margin-bottom:10px;text-align:center}.font-options{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.font-switcher.compact .font-options{gap:6px}.font-option{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 10px;border-radius:14px;background:var(--surface-bg);border:2px solid transparent;box-shadow:0 2px 8px #0000000f;transition:all .2s ease;min-width:64px}.font-switcher.compact .font-option{min-width:auto;padding:4px;border-radius:12px;background:transparent;box-shadow:none}.font-option:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.font-option.active{border-color:var(--theme-active-ring);box-shadow:0 0 0 2px var(--surface-bg),0 0 0 4px var(--theme-active-ring)}.font-preview{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:700;color:var(--text-primary);background:var(--progress-bg);border-radius:10px}.font-switcher.compact .font-preview{width:30px;height:30px;font-size:1.1rem;border-radius:8px}.font-name{font-size:.68rem;color:var(--text-secondary);font-weight:700;white-space:nowrap}.font-switcher.compact .font-name{display:none}.floating-settings-bar{position:fixed;top:12px;right:12px;z-index:100;background:var(--card-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:10px 12px;border-radius:20px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px;max-width:calc(100vw - 24px)}.floating-settings-bar .theme-switcher.compact,.floating-settings-bar .font-switcher.compact{margin-bottom:0}@media(max-width:480px){.font-option{min-width:52px;padding:6px 8px}.floating-settings-bar{top:auto;bottom:12px;right:50%;transform:translate(50%)}}.settings-screen{padding-bottom:40px}.settings-section{margin-bottom:16px;text-align:left}.settings-section-title{font-family:var(--font-display);font-size:1.05rem;margin-bottom:14px;color:var(--text-primary)}.settings-section .theme-switcher,.settings-section .font-switcher{margin-bottom:0}.settings-section .theme-switcher-label,.settings-section .font-switcher-label{display:none}.settings-account{display:flex;flex-direction:column;gap:12px}.settings-auth-actions{display:flex;flex-direction:column;gap:10px;width:100%}.settings-auth-actions .btn{width:100%}@media(min-width:480px){.settings-auth-actions{flex-direction:row}}.settings-nickname{font-family:var(--font-display);font-size:1.15rem;font-weight:700;color:var(--text-primary)}.settings-phone{font-size:.85rem;color:var(--text-secondary);margin-top:2px}.settings-hint{font-size:.85rem;color:var(--text-secondary);line-height:1.5}.settings-logout{align-self:flex-start}.settings-appearance{display:flex;flex-direction:column;gap:16px}@media(min-width:768px){.settings-appearance{display:grid;grid-template-columns:1fr 1fr;gap:16px}.settings-appearance .settings-section{margin-bottom:0}}.register-prompt-modal{max-width:360px;text-align:center}.register-prompt-modal .modal-actions{flex-direction:column;gap:10px}.register-prompt-modal .modal-actions .btn{width:100%}[data-theme=sakura]{--bg-gradient: linear-gradient(145deg, #fdf2f8 0%, #fce7f3 40%, #fbcfe8 100%);--bg-overlay-1: rgba(255, 255, 255, .45);--bg-overlay-2: rgba(251, 207, 232, .35);--card-bg: rgba(255, 252, 254, .96);--surface-bg: #fffbfd;--text-primary: #831843;--text-secondary: #be185d;--shadow: 0 8px 32px rgba(236, 72, 153, .12);--accent-primary: #f472b6;--accent-secondary: #ec4899;--title-gradient: linear-gradient(135deg, #f9a8d4, #ec4899, #db2777);--btn-primary-bg: linear-gradient(135deg, #f9a8d4, #ec4899);--btn-primary-shadow: rgba(236, 72, 153, .35);--btn-secondary-hover: #ec4899;--stat-value-color: #db2777;--bullet-color: #f472b6;--board-border: #f9a8d4;--cell-bg: #fffbfd;--cell-fixed-bg: #fdf2f8;--cell-fixed-color: #831843;--cell-editable-color: #db2777;--cell-hover-bg: #fce7f3;--cell-selected-bg: #fbcfe8;--cell-selected-border: #ec4899;--num-btn-bg: linear-gradient(135deg, #f9a8d4, #ec4899);--num-btn-shadow: rgba(236, 72, 153, .28);--learning-bar-bg: linear-gradient(135deg, rgba(255, 251, 253, .98), rgba(252, 231, 243, .98));--learning-bar-color: #be185d;--keyboard-hint-bg: rgba(236, 72, 153, .15);--keyboard-hint-color: #9d174d;--quick-start-bg: linear-gradient(135deg, #f9a8d4, #f472b6);--quick-start-shadow: rgba(236, 72, 153, .3);--featured-border: #f9a8d4;--progress-bg: #fce7f3;--divider-color: #fbcfe8;--back-btn-bg: rgba(255, 251, 253, .95);--theme-active-ring: #ec4899}[data-theme=dream]{--bg-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #f093fb 100%);--bg-overlay-1: rgba(255, 255, 255, .1);--bg-overlay-2: rgba(255, 255, 255, .15);--card-bg: rgba(255, 255, 255, .95);--surface-bg: #ffffff;--text-primary: #2d3748;--text-secondary: #718096;--shadow: 0 8px 32px rgba(0, 0, 0, .15);--accent-primary: #667eea;--accent-secondary: #764ba2;--title-gradient: linear-gradient(135deg, #667eea, #764ba2, #f093fb);--btn-primary-bg: linear-gradient(135deg, #667eea, #764ba2);--btn-primary-shadow: rgba(102, 126, 234, .4);--btn-secondary-hover: #667eea;--stat-value-color: #667eea;--bullet-color: #667eea;--board-border: #4a5568;--cell-bg: #ffffff;--cell-fixed-bg: #f7fafc;--cell-fixed-color: #2d3748;--cell-editable-color: #667eea;--cell-hover-bg: #ebf4ff;--cell-selected-bg: #bee3f8;--cell-selected-border: #4299e1;--num-btn-bg: linear-gradient(135deg, #667eea, #764ba2);--num-btn-shadow: rgba(102, 126, 234, .3);--learning-bar-bg: linear-gradient(135deg, rgba(255, 255, 255, .95), rgba(235, 248, 255, .95));--learning-bar-color: #2b6cb0;--keyboard-hint-bg: rgba(0, 0, 0, .15);--keyboard-hint-color: rgba(255, 255, 255, .9);--quick-start-bg: linear-gradient(135deg, #f472b6, #ec4899);--quick-start-shadow: rgba(236, 72, 153, .35);--featured-border: #f472b6;--progress-bg: #e2e8f0;--divider-color: #e2e8f0;--back-btn-bg: rgba(255, 255, 255, .9);--theme-active-ring: #667eea}[data-theme=ocean]{--bg-gradient: linear-gradient(145deg, #e0f2fe 0%, #bae6fd 45%, #7dd3fc 100%);--bg-overlay-1: rgba(255, 255, 255, .35);--bg-overlay-2: rgba(186, 230, 253, .4);--card-bg: rgba(255, 255, 255, .96);--surface-bg: #f0f9ff;--text-primary: #0c4a6e;--text-secondary: #0369a1;--shadow: 0 8px 32px rgba(14, 165, 233, .15);--accent-primary: #0ea5e9;--accent-secondary: #0284c7;--title-gradient: linear-gradient(135deg, #38bdf8, #0ea5e9, #0369a1);--btn-primary-bg: linear-gradient(135deg, #38bdf8, #0284c7);--btn-primary-shadow: rgba(14, 165, 233, .35);--btn-secondary-hover: #0ea5e9;--stat-value-color: #0284c7;--bullet-color: #0ea5e9;--board-border: #7dd3fc;--cell-bg: #f0f9ff;--cell-fixed-bg: #e0f2fe;--cell-fixed-color: #0c4a6e;--cell-editable-color: #0284c7;--cell-hover-bg: #e0f2fe;--cell-selected-bg: #bae6fd;--cell-selected-border: #0ea5e9;--num-btn-bg: linear-gradient(135deg, #38bdf8, #0284c7);--num-btn-shadow: rgba(14, 165, 233, .3);--learning-bar-bg: linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(224, 242, 254, .98));--learning-bar-color: #0369a1;--keyboard-hint-bg: rgba(14, 165, 233, .15);--keyboard-hint-color: #0c4a6e;--quick-start-bg: linear-gradient(135deg, #38bdf8, #0284c7);--quick-start-shadow: rgba(14, 165, 233, .3);--featured-border: #38bdf8;--progress-bg: #e0f2fe;--divider-color: #bae6fd;--back-btn-bg: rgba(240, 249, 255, .95);--theme-active-ring: #0ea5e9}[data-theme=forest]{--bg-gradient: linear-gradient(145deg, #ecfdf5 0%, #d1fae5 45%, #a7f3d0 100%);--bg-overlay-1: rgba(255, 255, 255, .35);--bg-overlay-2: rgba(167, 243, 208, .35);--card-bg: rgba(255, 255, 255, .96);--surface-bg: #f0fdf4;--text-primary: #14532d;--text-secondary: #166534;--shadow: 0 8px 32px rgba(16, 185, 129, .12);--accent-primary: #34d399;--accent-secondary: #10b981;--title-gradient: linear-gradient(135deg, #6ee7b7, #10b981, #059669);--btn-primary-bg: linear-gradient(135deg, #34d399, #059669);--btn-primary-shadow: rgba(16, 185, 129, .35);--btn-secondary-hover: #10b981;--stat-value-color: #059669;--bullet-color: #10b981;--board-border: #6ee7b7;--cell-bg: #f0fdf4;--cell-fixed-bg: #ecfdf5;--cell-fixed-color: #14532d;--cell-editable-color: #059669;--cell-hover-bg: #d1fae5;--cell-selected-bg: #a7f3d0;--cell-selected-border: #10b981;--num-btn-bg: linear-gradient(135deg, #34d399, #059669);--num-btn-shadow: rgba(16, 185, 129, .28);--learning-bar-bg: linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(236, 253, 245, .98));--learning-bar-color: #166534;--keyboard-hint-bg: rgba(16, 185, 129, .15);--keyboard-hint-color: #14532d;--quick-start-bg: linear-gradient(135deg, #34d399, #059669);--quick-start-shadow: rgba(16, 185, 129, .3);--featured-border: #34d399;--progress-bg: #d1fae5;--divider-color: #a7f3d0;--back-btn-bg: rgba(240, 253, 244, .95);--theme-active-ring: #10b981}[data-theme=sunset]{--bg-gradient: linear-gradient(145deg, #fff7ed 0%, #ffedd5 45%, #fed7aa 100%);--bg-overlay-1: rgba(255, 255, 255, .35);--bg-overlay-2: rgba(254, 215, 170, .35);--card-bg: rgba(255, 255, 255, .96);--surface-bg: #fffbeb;--text-primary: #7c2d12;--text-secondary: #c2410c;--shadow: 0 8px 32px rgba(249, 115, 22, .12);--accent-primary: #fb923c;--accent-secondary: #f97316;--title-gradient: linear-gradient(135deg, #fdba74, #f97316, #ea580c);--btn-primary-bg: linear-gradient(135deg, #fb923c, #ea580c);--btn-primary-shadow: rgba(249, 115, 22, .35);--btn-secondary-hover: #f97316;--stat-value-color: #ea580c;--bullet-color: #f97316;--board-border: #fdba74;--cell-bg: #fffbeb;--cell-fixed-bg: #fff7ed;--cell-fixed-color: #7c2d12;--cell-editable-color: #ea580c;--cell-hover-bg: #ffedd5;--cell-selected-bg: #fed7aa;--cell-selected-border: #f97316;--num-btn-bg: linear-gradient(135deg, #fb923c, #ea580c);--num-btn-shadow: rgba(249, 115, 22, .28);--learning-bar-bg: linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(255, 247, 237, .98));--learning-bar-color: #c2410c;--keyboard-hint-bg: rgba(249, 115, 22, .15);--keyboard-hint-color: #7c2d12;--quick-start-bg: linear-gradient(135deg, #fb923c, #ea580c);--quick-start-shadow: rgba(249, 115, 22, .3);--featured-border: #fb923c;--progress-bg: #ffedd5;--divider-color: #fed7aa;--back-btn-bg: rgba(255, 251, 235, .95);--theme-active-ring: #f97316}html,[data-font=kuailu]{--font-display: "ZCOOL KuaiLe", "Nunito", sans-serif;--font-body: "Nunito", sans-serif}[data-font=huangyou]{--font-display: "ZCOOL QingKe HuangYou", sans-serif;--font-body: "ZCOOL QingKe HuangYou", "Noto Sans SC", sans-serif}[data-font=maocao]{--font-display: "Liu Jian Mao Cao", cursive;--font-body: "Noto Sans SC", sans-serif}[data-font=round]{--font-display: "Nunito", sans-serif;--font-body: "Nunito", sans-serif}[data-font=clean]{--font-display: "Noto Sans SC", sans-serif;--font-body: "Noto Sans SC", sans-serif}[data-font=cute]{--font-display: "Ma Shan Zheng", cursive;--font-body: "Noto Sans SC", sans-serif}body,button{transition:font-family .25s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--radius: 20px}html{font-size:16px}body{font-family:var(--font-body);background:var(--bg-gradient);min-height:100vh;color:var(--text-primary);overflow-x:hidden;transition:background .4s ease,color .3s ease}#root{min-height:100vh}button{font-family:var(--font-display);cursor:pointer;border:none;outline:none}.app{min-height:100vh;padding:16px;position:relative}.app:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 20% 80%,var(--bg-overlay-1) 0%,transparent 50%),radial-gradient(circle at 80% 20%,var(--bg-overlay-2) 0%,transparent 50%);pointer-events:none;z-index:0;transition:background .4s ease}.screen{position:relative;z-index:1;width:100%;max-width:520px;margin:0 auto;animation:fadeIn .4s ease}@media(max-width:599px){.app{padding:10px 12px}}@media(min-width:600px){.screen{max-width:640px}.app{padding:20px 24px}}@media(min-width:900px){.screen{max-width:960px}.app{padding:24px 32px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes pop{0%{transform:scale(.8);opacity:0}60%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@keyframes sparkle{0%,to{transform:scale(1) rotate(0)}50%{transform:scale(1.2) rotate(10deg)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:background .3s ease,box-shadow .3s ease}.title-main{font-family:var(--font-display);font-size:2.2rem;text-align:center;background:var(--title-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:8px}.subtitle{text-align:center;color:var(--text-secondary);font-size:1rem;margin-bottom:24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:50px;font-size:1.1rem;font-weight:700;transition:all .2s ease;box-shadow:0 4px 15px #0000001a}.btn:active{transform:scale(.96)}.btn-primary{background:var(--btn-primary-bg);color:#fff}.btn-primary:hover{box-shadow:0 6px 20px var(--btn-primary-shadow)}.btn-secondary{background:var(--surface-bg);color:var(--text-primary);border:2px solid var(--divider-color)}.btn-secondary:hover{border-color:var(--btn-secondary-hover);color:var(--btn-secondary-hover)}.btn-icon{width:44px;height:44px;padding:0;border-radius:50%;font-size:1.2rem}.stars-display{display:flex;gap:4px;align-items:center}.star{font-size:1.4rem;transition:transform .2s}.star.filled{animation:sparkle .6s ease}.star.empty{opacity:.3;filter:grayscale(1)}.toast{position:fixed;top:20px;left:50%;transform:translate(-50%);background:var(--surface-bg);padding:12px 24px;border-radius:50px;box-shadow:var(--shadow);font-family:var(--font-display);font-size:1.1rem;z-index:1000;animation:pop .3s ease;white-space:nowrap;color:var(--text-primary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:999;padding:16px;animation:fadeIn .2s ease}.modal{background:var(--surface-bg);border-radius:var(--radius);padding:32px 24px;max-width:360px;width:100%;text-align:center;animation:pop .3s ease}.modal-emoji{font-size:4rem;animation:bounce 1s ease infinite;margin-bottom:16px}.modal-title{font-family:var(--font-display);font-size:1.6rem;margin-bottom:8px;color:var(--text-primary)}.modal-desc{color:var(--text-secondary);margin-bottom:24px}.modal-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.back-btn{background:var(--back-btn-bg);border:none;padding:8px 16px;border-radius:50px;font-family:var(--font-display);font-size:1rem;color:var(--text-primary);margin-bottom:16px;box-shadow:0 2px 10px #00000014;transition:all .2s}.back-btn:hover{transform:translate(-2px)}@media(max-width:480px){.title-main{font-size:1.8rem}.card{padding:16px}}
