@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Inter+Tight:wght@500;600;700;800&family=JetBrains+Mono:wght@400;500;600;700&display=swap";:root{--bg-1: #080c16;--bg-2: #0e1525;--bg-3: #151e36;--bg-4: #1a2440;--surface: rgba(255, 255, 255, .04);--surface-2: rgba(255, 255, 255, .06);--surface-3: rgba(255, 255, 255, .08);--surface-strong: rgba(255, 255, 255, .1);--surface-hover: rgba(255, 255, 255, .06);--border: rgba(255, 255, 255, .08);--border-2: rgba(255, 255, 255, .14);--border-focus: rgba(124, 92, 255, .5);--text: #eaedf8;--text-secondary: #c0c6da;--text-muted: #7b85a4;--text-faint: #4a536e;--accent: #7c5cff;--accent-2: #22d3ee;--accent-3: #f472b6;--accent-soft: rgba(124, 92, 255, .14);--accent-2-soft: rgba(34, 211, 238, .12);--accent-3-soft: rgba(244, 114, 182, .12);--success: #34d399;--success-soft: rgba(52, 211, 153, .14);--danger: #f87171;--danger-soft: rgba(248, 113, 113, .14);--warning: #fbbf24;--warning-soft: rgba(251, 191, 36, .14);--info: #60a5fa;--info-soft: rgba(96, 165, 250, .14);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .25);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .25);--shadow-md: 0 8px 32px rgba(0, 0, 0, .35);--shadow-lg: 0 24px 60px rgba(0, 0, 0, .45);--shadow-glow: 0 0 40px rgba(124, 92, 255, .2);--r-xs: 6px;--r-sm: 10px;--r-md: 14px;--r-lg: 20px;--r-pill: 999px;--radius: 14px;--radius-sm: 10px;--radius-xs: 6px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--s-12: 48px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: "Inter Tight", "Inter", -apple-system, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;--glow-1: rgba(124, 92, 255, .1);--glow-2: rgba(34, 211, 238, .07);--glow-3: rgba(244, 114, 182, .05);color-scheme:dark;font-family:var(--font-sans);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;background:var(--bg-1)}body{background:var(--bg-1);background-image:radial-gradient(ellipse 80% 60% at 15% 10%,var(--glow-1),transparent 60%),radial-gradient(ellipse 70% 50% at 85% 8%,var(--glow-2),transparent 60%),radial-gradient(ellipse 60% 50% at 50% 95%,var(--glow-3),transparent 60%);height:100vh;height:100svh;height:var(--app-height, 100svh);overflow:hidden;font-feature-settings:"ss01","cv11"}#root{height:100vh;height:100svh;height:var(--app-height, 100svh);overflow:hidden}h1,h2,h3,h4,h5{font-weight:700;line-height:1.1;letter-spacing:-.02em;margin:0;font-family:var(--font-display)}p{margin:0;line-height:1.5}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}button:disabled{cursor:not-allowed;opacity:.4}a{color:var(--accent);text-decoration:none}.app-shell{height:100vh;height:100svh;height:var(--app-height, 100svh);display:flex;flex-direction:column;align-items:center;padding:16px 20px 8px;position:relative;overflow:hidden}.app-shell.home-shell{padding:clamp(8px,1.5vh,20px) 20px clamp(8px,1.5vh,20px);justify-content:flex-start}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:.95rem;color:var(--text-secondary);letter-spacing:.02em;margin-bottom:clamp(6px,1.5vh,20px);-webkit-user-select:none;user-select:none}.brand .dot{width:8px;height:8px;border-radius:999px;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 0 10px #7c5cff80;animation:pulse-dot 3s ease-in-out infinite}.ui-lang-picker{position:fixed;top:14px;left:16px;z-index:900}@media (max-width: 768px){.ui-lang-picker{display:none}}.ui-lang-current{border:1px solid var(--border);background:var(--bg-2);color:var(--text-muted);font-size:.72rem;font-weight:700;letter-spacing:.06em;padding:5px 10px;border-radius:var(--r-xs);cursor:pointer;transition:border-color .15s ease,color .15s ease}.ui-lang-current:hover{border-color:var(--accent);color:var(--text)}.ui-lang-dropdown{position:absolute;top:calc(100% + 6px);left:0;display:flex;flex-direction:column;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-xs);overflow:hidden;box-shadow:var(--shadow-md);min-width:56px}.ui-lang-option{border:none;background:transparent;color:var(--text-muted);font-size:.72rem;font-weight:600;letter-spacing:.06em;padding:7px 12px;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;transition:background .12s ease,color .12s ease}.ui-lang-flag{font-size:.95rem;line-height:1}.ui-lang-option:hover{background:var(--surface-hover);color:var(--text)}.ui-lang-option.active{color:var(--accent);background:var(--accent-soft)}.conn-banner{position:fixed;top:12px;left:50%;transform:translate(-50%);background:var(--warning-soft);border:1px solid rgba(251,191,36,.3);color:#fde68a;padding:6px 14px;border-radius:999px;font-size:.78rem;font-weight:600;z-index:2000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:slide-in-top .3s ease-out}@keyframes slide-in-top{0%{opacity:0;transform:translate(-50%) translateY(-12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-radius:var(--r-sm);font-weight:600;font-size:14px;transition:transform .16s ease,background .16s ease,box-shadow .16s ease,border-color .16s ease;border:1px solid transparent;white-space:nowrap;font-family:inherit}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0)}.btn-sm{padding:7px 12px;font-size:12.5px;border-radius:8px}.btn-lg{padding:13px 22px;font-size:15px;border-radius:12px}.btn-primary{background:linear-gradient(135deg,var(--accent),color-mix(in oklab,var(--accent) 70%,#1f1aff));color:#fff;box-shadow:0 4px 16px #7c5cff4d}.btn-primary:hover:not(:disabled){box-shadow:0 8px 28px #7c5cff73}.btn-ghost{background:var(--surface);border-color:var(--border);color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text);border-color:var(--border-2)}.btn-danger{background:var(--danger-soft);border-color:#f8717147;color:#fca5a5}.btn-danger:hover:not(:disabled){background:#f8717138;border-color:#f8717173}.btn-success{background:var(--success-soft);border-color:#34d39947;color:#86efac}.btn-success:hover:not(:disabled){background:#34d39938;border-color:#34d39973}.btn-icon{width:36px;height:36px;padding:0;border-radius:9px;background:var(--surface);border:1px solid var(--border);color:var(--text-secondary)}.btn-icon:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--text-muted);border:1px solid var(--border);padding:3px 9px;border-radius:var(--r-pill);background:var(--surface);letter-spacing:.02em}.pill-accent{color:var(--accent);border-color:#7c5cff59;background:var(--accent-soft)}.pill-success{color:var(--success);border-color:#34d39959;background:var(--success-soft)}.pill-warning{color:var(--warning);border-color:#fbbf2459;background:var(--warning-soft)}.pill-danger{color:var(--danger);border-color:#f8717159;background:var(--danger-soft)}.pill-cyan{color:var(--accent-2);border-color:#22d3ee59;background:var(--accent-2-soft)}.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--text-secondary);border:1px solid var(--border);padding:6px 11px;border-radius:999px;background:var(--surface);cursor:pointer;transition:all .12s ease;-webkit-user-select:none;user-select:none}.chip:hover{background:var(--surface-2);color:var(--text)}.chip.active{background:var(--accent-soft);border-color:#7c5cff73;color:#d8d0ff}.chip .dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.8}.card{background:#0e1426b8;border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-md);padding:22px;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.card-tight{padding:14px}.card-flat{box-shadow:none;background:var(--surface)}.card h1,.card h2{margin:0 0 4px}.card-explainer-glow{border-color:#7c5cff66;box-shadow:var(--shadow-md),0 0 20px #7c5cff26,0 0 60px #7c5cff14,inset 0 0 30px #7c5cff08;animation:explainer-pulse 3s ease-in-out infinite}@keyframes explainer-pulse{0%,to{box-shadow:var(--shadow-md),0 0 20px #7c5cff26,0 0 60px #7c5cff14,inset 0 0 30px #7c5cff08}50%{box-shadow:var(--shadow-md),0 0 28px #7c5cff40,0 0 80px #7c5cff1f,inset 0 0 40px #7c5cff0d}}.input,.select,input,select{font-family:inherit;font-size:14px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 13px;height:42px;width:100%;outline:none;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease;box-sizing:border-box}.input:focus,.select:focus,input:focus,select:focus{border-color:var(--border-focus);background:var(--surface-2);box-shadow:0 0 0 3px #7c5cff26}.input::placeholder,input::placeholder{color:var(--text-muted);opacity:.6}.label{color:var(--text-muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.divider{height:1px;background:var(--border);margin:14px 0;border:0}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13px;color:#fff;flex-shrink:0;position:relative}.avatar-lg{width:44px;height:44px;font-size:16px}.avatar-xl{width:72px;height:72px;font-size:26px;border-radius:18px}.avatar-sm{width:24px;height:24px;font-size:11px}.avatar .dot{position:absolute;bottom:-2px;right:-2px;width:10px;height:10px;border-radius:50%;border:2px solid var(--bg-2);background:var(--success)}.avatar .dot.off{background:var(--text-faint)}.avatar:not([class*=av-]){background:linear-gradient(135deg,var(--accent),var(--accent-2))}.av-0{background:linear-gradient(135deg,#7c5cff,#5b3dff)}.av-1{background:linear-gradient(135deg,#22d3ee,#0891b2)}.av-2{background:linear-gradient(135deg,#f472b6,#db2777)}.av-3{background:linear-gradient(135deg,#34d399,#059669)}.av-4{background:linear-gradient(135deg,#fbbf24,#d97706)}.av-5{background:linear-gradient(135deg,#f87171,#dc2626)}.av-6{background:linear-gradient(135deg,#a78bfa,#7c3aed)}.av-7{background:linear-gradient(135deg,#60a5fa,#2563eb)}.av-8{background:linear-gradient(135deg,#fb923c,#ea580c)}.av-9{background:linear-gradient(135deg,#818cf8,#4338ca)}.av-10{background:linear-gradient(135deg,#2dd4bf,#0d9488)}.av-11{background:linear-gradient(135deg,#e879f9,#a21caf)}@keyframes pulse-dot{0%,to{box-shadow:0 0 #7c5cff80}50%{box-shadow:0 0 0 6px #7c5cff00}}@keyframes float-grain{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes hourglass-flip{0%{transform:rotate(0)}45%{transform:rotate(0)}55%{transform:rotate(180deg)}to{transform:rotate(180deg)}}@keyframes confetti-fall{0%{transform:translate3d(0,-10vh,0) rotate(0);opacity:1}to{transform:translate3d(var(--dx, 0),110vh,0) rotate(720deg);opacity:.6}}@keyframes urgent-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes ring-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.anim-fade-up{animation:fade-up .24s ease-out both}.live-dot{width:8px;height:8px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));animation:pulse-dot 2.4s ease-out infinite;box-shadow:0 0 #7c5cff80}.toast{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;background:#0e1426f2;border:1px solid var(--border-2);border-left:3px solid var(--accent);border-radius:10px;min-width:260px;max-width:360px;box-shadow:var(--shadow-md);font-size:13px;color:var(--text)}.toast .ico{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;background:var(--accent-soft);color:var(--accent)}.toast.success{border-left-color:var(--success)}.toast.success .ico{background:var(--success-soft);color:var(--success)}.toast.danger{border-left-color:var(--danger)}.toast.danger .ico{background:var(--danger-soft);color:var(--danger)}.toast.warning{border-left-color:var(--warning)}.toast.warning .ico{background:var(--warning-soft);color:var(--warning)}.toast .body{flex:1}.toast .title{font-weight:600}.toast .msg{color:var(--text-muted);margin-top:2px;font-size:12px;line-height:1.4}.toast-host{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:10px;z-index:1500;pointer-events:none}.toast-host .toast{pointer-events:auto}.ot-glyph{width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:grid;place-items:center;box-shadow:0 6px 20px #7c5cff59,inset 0 1px #ffffff2e;position:relative}.ot-glyph svg{width:20px;height:20px}.ot-wordmark{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:800;letter-spacing:-.025em;font-size:18px;color:var(--text)}.ot-wordmark .accent{background:linear-gradient(135deg,var(--accent),var(--accent-2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.room-code-pill{display:inline-flex;align-items:center;gap:10px;padding:8px 10px 8px 16px;background:linear-gradient(135deg,#7c5cff1a,#22d3ee0f);border:1px solid rgba(124,92,255,.3);border-radius:999px;font-family:var(--font-mono);font-weight:700;font-size:16px;letter-spacing:.18em;color:var(--text);cursor:pointer;transition:all .16s ease}.room-code-pill:hover{border-color:#7c5cff8c;box-shadow:0 0 0 4px #7c5cff1a}.room-code-pill .copy-btn{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:var(--surface-2);color:var(--text-secondary)}.room-code-pill.copied .copy-btn{color:var(--success);background:var(--success-soft)}.player-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);transition:all .15s ease;margin-bottom:8px}.player-row:last-child{margin-bottom:0}.player-row:hover{background:var(--surface-2)}.player-row.me{border-color:#7c5cff66;background:#7c5cff0f}.player-row.disconnected{opacity:.5}.player-row.dragging{border-color:var(--accent);background:#7c5cff1a;transform:scale(1.01);box-shadow:var(--shadow-md)}.player-row .drag{color:var(--text-faint);cursor:grab;display:flex;align-items:center;width:14px;touch-action:none}.player-row .drag:hover{color:var(--text-muted)}.player-row .info{flex:1;min-width:0}.player-row .nick{font-weight:600;font-size:14px;display:flex;align-items:center;gap:6px;color:var(--text)}.player-row .meta{font-size:11.5px;color:var(--text-muted);margin-top:1px}.player-row .actions{display:flex;gap:4px;opacity:.55;transition:opacity .15s ease}.player-row:hover .actions{opacity:1}.drag-handle{cursor:grab;padding:2px 4px;margin-right:2px;color:var(--text-muted);font-size:.95rem;display:flex;align-items:center;touch-action:none;opacity:.5;transition:opacity .15s ease,color .15s ease}.drag-handle:hover{opacity:1;color:var(--accent)}.score-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--border);transition:all .15s ease;margin-bottom:6px}.score-row:last-child{margin-bottom:0}.score-row.active{border-color:#7c5cff73;background:linear-gradient(90deg,rgba(124,92,255,.1),transparent 80%);box-shadow:inset 0 0 0 1px #7c5cff26}.score-row .nick{flex:1;font-weight:600;font-size:13.5px;display:flex;align-items:center;gap:6px;min-width:0}.score-row .nick .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score-row .score{font-family:var(--font-mono);font-weight:700;font-size:17px;color:var(--accent-2);font-variant-numeric:tabular-nums;min-width:28px;text-align:right}.score-row .role{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);background:var(--accent-soft);padding:2px 6px;border-radius:4px}.log-entry{display:flex;gap:10px;padding:8px 10px;font-size:12.5px;color:var(--text-secondary);border-radius:8px}.log-entry:hover{background:var(--surface)}.log-entry .tstamp{font-family:var(--font-mono);font-size:10.5px;color:var(--text-faint);width:36px;flex-shrink:0;padding-top:2px}.log-entry .ico{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;font-size:10px}.log-entry.correct .ico{background:var(--success-soft);color:var(--success)}.log-entry.error .ico{background:var(--danger-soft);color:var(--danger)}.log-entry.pass .ico{background:var(--warning-soft);color:var(--warning)}.log-entry.system .ico{background:var(--surface-2);color:var(--text-muted)}.log-entry .body{flex:1;line-height:1.4}.log-entry .body b{color:var(--text);font-weight:600}.log-entry .word{font-family:var(--font-mono);font-size:11.5px;color:var(--text-muted);margin-top:1px}.activity-log ul{list-style:none;padding:0;margin:0;max-height:320px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}.activity-log ul::-webkit-scrollbar{width:6px}.activity-log ul::-webkit-scrollbar-track{background:transparent}.activity-log ul::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.activity-log ul::-webkit-scrollbar-thumb:hover{background:#ffffff40}.home-container{width:100%;max-width:460px;margin-top:0;display:flex;flex-direction:column;justify-content:center;max-height:calc(100dvh - 60px)}.home-title{text-align:center;margin-bottom:clamp(6px,1.2vh,20px);flex-shrink:0}.home-title h1{font-size:clamp(1.6rem,3.6vh,2.4rem);letter-spacing:-.03em;color:var(--text);margin:0 0 8px;line-height:1.05;font-family:var(--font-display)}.home-title-grad{background:linear-gradient(135deg,var(--accent),var(--accent-2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.home-footer-line{display:flex;justify-content:space-between;margin-top:14px;padding:0 6px;font-size:.72rem;color:var(--text-faint);flex-shrink:0}.home-title p{color:var(--text-muted);margin:0;font-size:.88rem;line-height:1.4}.home-gallery{position:relative;margin-bottom:clamp(6px,1vh,12px);flex-shrink:0;cursor:pointer;-webkit-user-select:none;user-select:none;overflow:hidden;min-height:32px;display:flex;flex-direction:column;align-items:center;gap:6px}.home-gallery-slide{display:flex;align-items:center;justify-content:center;gap:6px;font-size:.78rem;line-height:1.4;text-align:center;padding:0 4px}.home-gallery-icon{flex-shrink:0;display:inline-flex;align-items:center}.home-gallery-title{font-weight:700;white-space:nowrap}.home-gallery-sep{color:var(--text-muted);opacity:.4}.home-gallery-desc{color:var(--text-muted)}.home-gallery-dots{display:flex;gap:5px;justify-content:center}.home-gallery-dot{width:5px;height:5px;border-radius:50%;background:var(--text-muted);opacity:.25;border:none;padding:0;cursor:pointer;transition:opacity .2s ease,transform .2s ease}.home-gallery-dot.active{opacity:.8;transform:scale(1.3)}@media (max-width: 460px){.home-gallery-slide{flex-wrap:wrap;font-size:.72rem}}.home-mobile{gap:14px;padding:14px 4px 20px}.home-title-mobile h1{font-size:1.5rem;line-height:1.15}.home-title-mobile p{font-size:.8rem}.home-card-mobile{padding:16px 14px}.home-howto-mobile{align-self:center;margin-top:auto;padding:8px 14px;font-size:.78rem}.lobby-mobile{height:100%;display:flex;flex-direction:column;overflow:hidden;width:100%}.lobby-mobile-top{display:flex;justify-content:space-between;align-items:center;padding:10px 16px 8px}.lobby-mobile-dot{width:6px;height:6px;border-radius:50%;background:var(--success);margin-right:4px}.lobby-mobile-body{flex:1;padding:0 14px 14px;overflow-y:auto;display:flex;flex-direction:column;gap:10px}.lobby-mobile-code-card{padding:14px;text-align:center}.lobby-mobile-pills{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.lobby-mobile-secondary{display:flex;gap:8px;margin-top:2px}.lobby-mobile-start{padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border);background:linear-gradient(180deg,rgba(10,10,18,0) 0%,var(--bg-1) 40%)}.language-selector{display:flex;justify-content:center;gap:8px;margin-bottom:clamp(8px,1.2vh,16px);flex-shrink:0}.lang-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;border-radius:20px;border:1.5px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;transition:all .2s ease;font-size:.82rem;font-weight:500}.lang-btn .lang-flag{font-size:1.1rem}.lang-btn:hover{border-color:var(--accent);color:var(--text)}.lang-btn.active{border-color:var(--accent);background:#8b5cf626;color:var(--text)}.home-container .card{padding:clamp(12px,2vh,22px) clamp(14px,2vw,22px);flex:0 0 auto;display:flex;flex-direction:column}.home-container .card-scroll{flex:0 1 auto;min-height:0;overflow-y:auto;padding-right:4px}.home-container .form-row{margin-bottom:clamp(6px,1vh,14px)}.home-container .settings-grid{gap:clamp(6px,1vh,12px)}.home-container .settings-grid .form-row{margin-bottom:0}.home-container input,.home-container select{padding:clamp(6px,.9vh,10px) 11px;height:42px;box-sizing:border-box;font-size:.88rem}.home-container .mode-card{padding:clamp(6px,.9vh,11px) 12px}.home-container .mode-card-title{font-size:.88rem}.home-container .mode-card-sub{font-size:.76rem;line-height:1.3}.home-tabs{display:flex;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:3px;margin-bottom:clamp(8px,1.2vh,16px);flex-shrink:0}.home-tabs button{flex:1;padding:clamp(6px,.9vh,10px) 10px;border-radius:7px;font-weight:600;font-size:.88rem;color:var(--text-muted);transition:all .2s ease}.home-tabs button.active{background:var(--surface-strong);color:var(--text);box-shadow:0 1px 4px #00000026}.home-tabs button:not(.active):hover{color:var(--text-secondary)}.form-row{display:flex;flex-direction:column;gap:4px;margin-bottom:14px}.level-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.level-btn{padding:7px 4px;border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--border);color:var(--text-muted);font-weight:700;font-size:13px;font-family:var(--font-mono);letter-spacing:.05em;cursor:pointer;transition:all .16s ease}.level-btn:hover{color:var(--text);border-color:var(--border-2);background:var(--surface-2)}.level-btn.active{background:var(--accent-soft);border-color:#7c5cff73;color:#d8d0ff;box-shadow:inset 0 0 0 1px #7c5cff33}.mode-card{display:flex;align-items:center;justify-content:space-between;padding:7px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);gap:12px;cursor:pointer;transition:all .16s ease}.mode-card:hover{background:var(--surface-2);border-color:var(--border-2)}.mode-card.active{background:var(--accent-soft);border-color:#7c5cff66}.mode-card .mode-card-title{font-weight:600;font-size:14px;color:var(--text)}.mode-card .mode-card-sub{font-size:12px;color:var(--text-muted);margin-top:2px}.screen{width:100%;max-width:1180px;height:100%;display:grid;grid-template-columns:1fr 360px;grid-template-rows:1fr;gap:16px;align-items:stretch;min-height:0;overflow:hidden}.screen>*{min-height:0;height:100%}.screen-single{width:100%;max-width:760px}@media (max-width: 920px){.screen{grid-template-columns:1fr}}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;gap:12px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}@media (max-width: 600px){.settings-grid{grid-template-columns:1fr}}.setting{display:flex;flex-direction:column;gap:4px}.setting .label-row{display:flex;justify-content:space-between;align-items:center}.setting .val{font-family:var(--font-mono);font-size:12px;color:var(--accent);font-weight:600}.stepper{display:flex;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);height:32px;overflow:hidden}.stepper button{width:28px;height:100%;font-size:15px;color:var(--text-muted);font-weight:600;display:grid;place-items:center}.stepper button:hover{background:var(--surface-2);color:var(--text)}.stepper .val{flex:1;text-align:center;font-family:var(--font-mono);font-size:13px;color:var(--text);font-weight:600}.segmented{display:inline-flex;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:3px;gap:2px}.segmented button{padding:6px 12px;border-radius:7px;font-size:12.5px;font-weight:600;color:var(--text-muted);transition:all .14s ease}.segmented button.active{background:var(--surface-strong);color:var(--text);box-shadow:0 1px 3px #0003}.kbd{font-family:var(--font-mono);font-size:10.5px;padding:2px 6px;border:1px solid var(--border-2);background:var(--surface);border-radius:4px;color:var(--text-muted)}.game-grid{width:100%;max-width:1280px;height:100%;display:grid;grid-template-columns:260px 1fr 320px;grid-template-rows:1fr;gap:16px;align-items:stretch;min-height:0;overflow:hidden}.game-grid>*{min-height:0;height:100%}.game-grid>:first-child{overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}.game-grid>:first-child::-webkit-scrollbar{width:6px}.game-grid>:first-child::-webkit-scrollbar-track{background:transparent}.game-grid>:first-child::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.game-grid>:first-child::-webkit-scrollbar-thumb:hover{background:#ffffff40}@media (max-width: 980px){.game-grid{grid-template-columns:1fr}}.explainer-grid{flex:1;display:grid;grid-template-columns:240px 1fr 320px;gap:16px;overflow:hidden;min-height:0;position:relative}.explainer-left,.explainer-right{display:flex;flex-direction:column;gap:14px;min-height:0;overflow:hidden}.explainer-right>:last-child{flex:1;min-height:0}.explainer-center{display:flex;flex-direction:column;gap:14px;min-width:0;min-height:0}.explainer-headline{display:flex;align-items:baseline;gap:10px;font-size:22px;font-weight:800;letter-spacing:-.01em;color:var(--text)}.explainer-headline .sep{color:var(--text-faint);font-weight:500}.explainer-headline .round{color:var(--text-secondary);font-weight:600}.ring-card{position:relative;border-radius:var(--r-md);overflow:visible;padding:2px;flex:1;min-height:0}.ring-card-inner{position:relative;height:100%;padding:26px 28px 22px;border-radius:calc(var(--r-md) - 2px);background:#0e1426d1;box-shadow:inset 0 0 0 1px #7c5cff14,0 20px 60px -20px #7c5cff59;display:flex;flex-direction:column;align-items:center;gap:14px;overflow:hidden}.ring-card-inner:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 70% 55% at 50% 0%,rgba(124,92,255,.14),transparent 60%);pointer-events:none;border-radius:inherit}.ring-card-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible;border-radius:inherit}.ring-card-svg rect.track{fill:none;stroke:#7c5cff24;stroke-width:2}.ring-card-svg rect.fill{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;filter:drop-shadow(0 0 6px rgba(124,92,255,.6));transition:stroke-dashoffset 1s linear}.ring-card-svg rect.fill.danger{stroke:var(--danger);filter:drop-shadow(0 0 6px rgba(248,113,113,.6))}.ring-card .corner-pill-left{position:absolute;top:14px;left:14px;z-index:2}.ring-card .corner-right{position:absolute;top:14px;right:14px;z-index:2;display:flex;align-items:center;gap:8px}.ring-card .corner-count{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--text-muted);font-variant-numeric:tabular-nums;letter-spacing:.05em}.ring-card .corner-count.danger{color:var(--danger)}.ring-card .target{font-family:var(--font-display);font-size:72px;font-weight:800;letter-spacing:-.035em;color:var(--text);text-shadow:0 4px 30px rgba(124,92,255,.3);line-height:1;margin:6px 0 2px;text-align:center;position:relative;z-index:1}.ring-card .forbidden-grid{width:100%;max-width:560px;position:relative;z-index:1}.pass-button{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;width:100%;min-height:56px;padding:0 14px 0 18px;border-radius:12px;background:linear-gradient(180deg,#7c5cff38,#7c5cff1f);border:1px solid rgba(124,92,255,.45);color:#e9e3ff;font-weight:700;font-size:16px;cursor:pointer;transition:all .15s}.pass-button:hover:not(:disabled){background:linear-gradient(180deg,#7c5cff52,#7c5cff2e);border-color:#7c5cffb3;box-shadow:0 0 28px #7c5cff4d}.pass-button:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.4)}.pass-button .pass-label{text-align:left}.pass-button .pass-count{padding:4px 10px;border-radius:999px;background:#00000052;border:1px solid rgba(255,255,255,.14);font-family:var(--font-mono);font-size:11px;font-weight:700;color:#ffffffd1;letter-spacing:.04em}.pass-button .pass-kbd{font-family:var(--font-mono);font-size:10.5px;font-weight:700;padding:3px 8px;background:#00000052;border-radius:5px;border:1px solid rgba(255,255,255,.18);color:#ffffffc7;letter-spacing:.06em}.host-grid{flex:1;display:grid;grid-template-columns:240px 1fr 320px;gap:16px;overflow:hidden;min-height:0;position:relative}.host-left,.host-right{display:flex;flex-direction:column;gap:14px;min-height:0;overflow:hidden}.host-right>:last-child{flex:1;min-height:0}.host-center{display:flex;flex-direction:column;gap:16px;overflow:hidden;min-width:0;min-height:0}.host-timer-block{display:flex;flex-direction:column;align-items:center;gap:10px;padding:6px 0 2px}.host-center-empty-gap .host-timer-block{flex:1;justify-content:center;padding:0}.host-timer-block .explainer-line{display:flex;align-items:center;gap:10px;font-size:15px;color:var(--text-secondary);font-weight:500}.host-timer-block .explainer-line b{color:var(--text);font-weight:700}.round-info-card{padding:14px 16px!important}.round-info-row{display:flex;align-items:center;justify-content:space-between;padding:7px 0;border-bottom:1px dashed var(--border);font-size:13px}.round-info-row:last-child{border-bottom:0}.round-info-row .k{color:var(--text-muted)}.round-info-row .v{color:var(--text);font-weight:600;font-family:var(--font-mono);font-size:12.5px}.word-card.host{padding:22px 24px 0;display:flex;flex-direction:column;gap:14px;flex:1;min-height:0;overflow:hidden;max-width:100%;width:100%;margin:0;align-items:stretch}.word-card.host .target{font-size:72px;font-weight:800;letter-spacing:-.035em;margin:2px 0;text-align:center;line-height:1}.forbidden-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;margin:0;position:relative;z-index:1}.forbidden-chip{display:flex;align-items:center;gap:10px;padding:11px 14px;background:#f871711f;border:1px solid rgba(248,113,113,.32);border-radius:10px;color:#fecaca;font-weight:600;font-size:14px;transition:background .2s,border-color .2s,transform .15s}.forbidden-chip .warn-ico{width:22px;height:22px;border-radius:6px;background:#f8717138;display:grid;place-items:center;flex-shrink:0;color:#f87171}.forbidden-chip.pulse{animation:forbidden-pulse .9s ease-out}@keyframes forbidden-pulse{0%{background:#f871711f;border-color:#f8717152;transform:scale(1)}20%{background:#f871716b;border-color:#f87171f2;transform:scale(1.04);box-shadow:0 0 0 4px #f8717140}to{background:#f871711f;border-color:#f8717152;transform:scale(1)}}.host-action-bar{margin-top:auto;display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px 0 16px;background:linear-gradient(180deg,transparent,rgba(14,20,38,.9) 30%);position:sticky;bottom:0;z-index:2}.host-action{display:flex;align-items:center;justify-content:center;position:relative;gap:10px;min-height:56px;padding:14px 56px;border-radius:12px;font-size:16px;font-weight:700;border:1px solid transparent;cursor:pointer;transition:all .15s}.host-action .kbd-inline{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:10.5px;font-weight:700;padding:3px 8px;background:#00000052;border-radius:5px;border:1px solid rgba(255,255,255,.18);color:#ffffffc7;letter-spacing:.06em}.host-action.correct{background:linear-gradient(180deg,#34d39942,#34d39924);border-color:#34d39980;color:#d1fae5}.host-action.correct:hover{background:linear-gradient(180deg,#34d3995c,#34d39933);border-color:#34d399bf;box-shadow:0 0 28px #34d3994d}.host-action.forbidden{background:linear-gradient(180deg,#f8717142,#f8717124);border-color:#f8717180;color:#fecaca}.host-action.forbidden:hover{background:linear-gradient(180deg,#f871715c,#f8717133);border-color:#f87171bf;box-shadow:0 0 28px #f871714d}.host-secondary-row{display:flex;gap:6px;justify-content:center;flex-shrink:0;margin-top:auto}.word-card{position:relative;padding:32px 28px 28px;text-align:center;border:1px solid rgba(124,92,255,.18);border-radius:var(--r-md);background:#0e1426c7;overflow:hidden;box-shadow:var(--shadow-md),0 0 0 1px #7c5cff0a,0 0 80px -20px #7c5cff4d;display:flex;flex-direction:column;align-items:center;gap:14px}.word-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 70% 50% at 50% 0%,rgba(124,92,255,.1),transparent 60%);pointer-events:none}.word-card .level-pill{position:absolute;top:14px;right:14px}.word-card .cat-pill{position:absolute;top:14px;left:14px}.word-card .target{font-family:var(--font-display);font-size:clamp(36px,5vw,56px);font-weight:800;letter-spacing:-.03em;color:var(--text);text-shadow:0 4px 30px rgba(124,92,255,.3);line-height:1;margin:18px 0 6px;position:relative;z-index:1}.word-card .forbidden-list{display:flex;flex-direction:column;gap:6px;width:100%;max-width:340px;position:relative;z-index:1}.word-card .forbidden-item{padding:9px 14px;background:#f8717114;border:1px solid rgba(248,113,113,.25);border-radius:8px;font-size:14.5px;color:#fca5a5;font-weight:500;text-align:center;position:relative}.word-card .forbidden-item .strike{display:none!important}.word-target{font-family:var(--font-display);font-size:2.4rem;font-weight:800;letter-spacing:-.03em;margin:8px 0 20px;color:var(--text);text-shadow:0 4px 30px rgba(124,92,255,.3);word-break:break-word;overflow-wrap:break-word}.forbidden-list{display:flex;flex-direction:column;gap:6px;align-items:stretch;text-align:left;margin:0 auto;max-width:340px}.forbidden-item{padding:9px 14px;background:#f8717114;border:1px solid rgba(248,113,113,.25);border-radius:8px;font-size:14.5px;color:#fca5a5;font-weight:500;text-align:center;transition:background .15s ease}.forbidden-item:hover{background:#f8717124}.countdown-ring{position:relative;width:220px;height:220px}.countdown-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.countdown-ring .label{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-family:var(--font-mono);font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.02em;text-transform:none;line-height:1}.countdown-ring.urgent .label{color:var(--danger)}.countdown-ring.urgent{animation:urgent-pulse .8s ease-in-out infinite}.timer-ring{position:relative;width:140px;height:140px}.timer-ring>svg{transform:rotate(-90deg);width:100%;height:100%}.timer-ring .bg-track{stroke:#ffffff0d}.timer-ring .progress{stroke:url(#gradient);stroke-linecap:round;transition:stroke-dashoffset .2s linear}.timer-ring .label{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-family:var(--font-mono);font-size:2rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.timer{display:flex;flex-direction:column;align-items:center;gap:10px}.hourglass{width:64px;height:64px;display:grid;place-items:center;position:relative}.hourglass-shape{position:relative;width:44px;height:56px;animation:hourglass-flip 4s ease-in-out infinite;transform-origin:center}.hourglass-shape svg{display:block}.hourglass-glyph{font-size:3.6rem;filter:drop-shadow(0 6px 14px rgba(124,92,255,.35))}.waiting-text{text-align:center;color:var(--text-muted);font-size:.88rem}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#080c16e0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.overlay-card{background:#0e1426f2;border:1px solid var(--border-2);border-radius:16px;padding:28px;max-width:420px;width:100%;text-align:center;box-shadow:var(--shadow-lg)}.overlay-card .ico-large{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;margin:0 auto 14px}.overlay-card h2{font-size:22px;margin-bottom:6px}.overlay-card p{color:var(--text-muted);font-size:14px;margin-bottom:18px}.pause-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:50;background:#080a14b8;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;padding:24px;border-radius:var(--r-md)}.pause-card{background:linear-gradient(180deg,#181c30f5,#101424f5);border:1px solid var(--border-2);border-radius:20px;padding:32px 32px 28px;max-width:440px;width:100%;text-align:center;box-shadow:0 18px 60px #00000073,0 0 0 1px #ffffff08 inset;display:flex;flex-direction:column;align-items:center;gap:14px}.pause-ico{width:80px;height:80px;border-radius:22px;display:grid;place-items:center;margin-bottom:2px;box-shadow:0 6px 24px #00000059}.pause-ico-accent{background:linear-gradient(135deg,#7c5cff38,#22d3ee2e);color:var(--accent);border:1px solid rgba(124,92,255,.35)}.pause-ico-warning{background:linear-gradient(135deg,#ffb43238,#ff8c322e);color:var(--warning);border:1px solid rgba(255,180,50,.35)}.pause-ico-danger{background:linear-gradient(135deg,#ff506e38,#f03c5a2e);color:var(--danger);border:1px solid rgba(255,80,110,.35)}.pause-title{font-size:22px;font-weight:800;letter-spacing:-.01em;color:var(--text);margin:0}.pause-desc{font-size:14.5px;line-height:1.55;color:var(--text-muted);margin:0;max-width:360px}.pause-desc b{color:var(--text);font-weight:700}.pause-cta{margin-top:8px;display:flex;justify-content:center}.winner-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:grid;place-items:center;z-index:500;padding:24px}.winner-card{max-width:520px;width:100%;text-align:center}.winner-trophy{font-size:3.5rem;margin-bottom:6px}.standings{margin-top:16px;text-align:left}.finished-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:20px;max-width:960px;width:100%;align-items:stretch}.finished-grid>.card{display:flex;flex-direction:column;gap:14px}.finished-header{position:absolute;top:20px;right:20px;display:flex;align-items:center;gap:8px;z-index:2}.winner-hero{padding:28px 26px;text-align:center;align-items:center;justify-content:center;position:relative;overflow:hidden;background:radial-gradient(120% 60% at 50% 0%,rgba(124,92,255,.18),transparent 65%),radial-gradient(80% 60% at 50% 100%,rgba(34,211,238,.1),transparent 70%),var(--surface)}.winner-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 0 1px #7c5cff38}.winner-avatar-wrap{position:relative;display:inline-block;margin:4px auto 8px}.winner-avatar-wrap .avatar{box-shadow:0 0 0 4px #7c5cff40,0 10px 34px #7c5cff59}.winner-crown{position:absolute;top:-14px;left:50%;transform:translate(-50%) rotate(-4deg);width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#fde68a,#f59e0b);color:#422006;box-shadow:0 6px 18px #f59e0b73;border:2px solid rgba(0,0,0,.15)}.winner-name{font-family:var(--font-display, var(--font-sans));font-weight:700;font-size:clamp(1.7rem,3vw,2.1rem);letter-spacing:-.01em;color:var(--accent-2);margin:0;line-height:1.15}.winner-subtitle{color:var(--text-muted);font-size:.9rem;margin:0}.winner-stats{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 14px;margin-top:6px;font-size:.88rem;color:var(--text-muted)}.winner-stats .stat{display:inline-flex;align-items:baseline;gap:4px}.winner-stats .stat b{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text);font-weight:700}.winner-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px;width:100%}.winner-actions .btn{width:100%}.winner-waiting{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:8px;width:100%}.waiting-pulse{width:100%;padding:12px 18px;text-align:center;border-radius:var(--r-md);border:1px dashed rgba(124,92,255,.35);background:#7c5cff14;color:var(--accent);font-weight:600;font-size:.92rem}.waiting-note{color:var(--text-muted);font-size:.82rem;text-align:center}.standings-card{padding:20px 22px}.standings-card .standings-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.standings-list{display:flex;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto;padding-right:2px}.standing-row{display:grid;grid-template-columns:40px auto 1fr auto;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border);min-width:0}.standing-row.gold{border-color:#fbbf2480;background:linear-gradient(90deg,rgba(251,191,36,.1) 0%,rgba(251,191,36,.04) 60%,transparent 100%);box-shadow:0 0 24px #fbbf241f}.rank-pill{font-family:var(--font-mono);font-weight:700;font-size:.9rem;color:var(--text-muted);background:var(--surface-2);border-radius:10px;padding:4px 8px;text-align:center;min-width:36px}.standing-row.gold .rank-pill{background:linear-gradient(135deg,#fde68a,#f59e0b);color:#422006;box-shadow:0 0 12px #fbbf2459}.standing-name{display:flex;flex-direction:column;min-width:0}.standing-name .nick{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}.standing-name .sub{font-size:.72rem;color:var(--text-muted)}.standing-row .crown-mark{color:#fbbf24;font-size:.9rem;line-height:1}.standing-row .standing-score{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:700;font-size:1.35rem;color:var(--accent-2);text-align:right;padding-left:8px}.standing-row.gold .standing-score{color:#fbbf24}.standing-row.disc{opacity:.55}@media (max-width: 820px){.finished-grid{grid-template-columns:1fr;max-width:520px}.standings-card{padding:16px}.standing-row{grid-template-columns:34px auto 1fr auto;gap:10px;padding:8px 10px}.standing-row .standing-score{font-size:1.1rem}.winner-hero{padding:22px 18px}.winner-actions{grid-template-columns:1fr}.finished-header{position:static;margin:0 0 8px auto}}.confetti-piece{position:absolute;top:-10vh;width:8px;height:12px;border-radius:1.5px;animation:confetti-fall var(--dur, 3.5s) linear infinite}.banner{display:flex;align-items:center;gap:10px;padding:8px 14px;font-size:12.5px;font-weight:500;background:var(--warning-soft);border-bottom:1px solid rgba(251,191,36,.25);color:#fde68a}.banner.danger{background:var(--danger-soft);border-color:#f8717140;color:#fecaca}.banner.info{background:var(--info-soft);border-color:#60a5fa40;color:#bfdbfe}.tweak-toggle{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;color:var(--text-secondary)}.tweak-switch{width:34px;height:20px;background:var(--surface-2);border-radius:999px;position:relative;cursor:pointer;border:1px solid var(--border);transition:background .16s ease;flex-shrink:0;padding:0}.tweak-switch:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:left .16s ease}.tweak-switch.on{background:var(--accent);border-color:transparent}.tweak-switch.on:after{left:16px}.tweak-switch.danger.on{background:var(--danger)}.tweak-switch:disabled{opacity:.55;cursor:not-allowed}.admin-screen{height:100%;display:flex;flex-direction:column;overflow:hidden}.admin-header{display:flex;justify-content:space-between;align-items:center;padding:14px 24px;border-bottom:1px solid var(--border);gap:12px;flex-wrap:wrap}.admin-body{flex:1;padding:24px;overflow:auto;display:flex;flex-direction:column;gap:18px}.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.admin-stat-card{padding:16px}.admin-stat-label{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);font-weight:600}.admin-stat-value{font-size:32px;font-weight:800;margin-top:4px;font-family:var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.admin-stat-sub{font-size:11px;color:var(--text-muted);margin-top:2px}.admin-rooms-card{padding:0;overflow:hidden}.admin-rooms-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border);gap:12px;flex-wrap:wrap}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table thead tr{background:#ffffff05}.admin-table th{text-align:left;padding:10px 14px;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);white-space:nowrap}.admin-table td{padding:12px 14px;border-bottom:1px solid var(--border)}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr:hover{background:#ffffff04}.admin-config-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.admin-config-tile{padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:10px}.admin-config-tile .label{margin-bottom:2px}.admin-config-tile .value{font-size:18px;font-weight:700;margin-top:2px;font-variant-numeric:tabular-nums}.admin-search-wrap{position:relative}.admin-search-wrap input{height:32px;font-size:12px;padding-left:30px;width:200px}.admin-search-wrap .icon-lead{position:absolute;top:10px;left:10px;color:var(--text-muted);pointer-events:none}.admin-empty-state{color:var(--text-muted);font-size:.88rem;text-align:center;padding:28px 16px}.admin-error-row{color:#fecaca;background:var(--danger-soft);border:1px solid rgba(248,113,113,.25);border-radius:8px;padding:8px 12px;font-size:12.5px}@media (max-width: 768px){.admin-header{padding:12px 14px}.admin-body{padding:14px 12px;gap:12px}.admin-stats{grid-template-columns:repeat(2,1fr);gap:8px}.admin-stat-card{padding:12px}.admin-stat-value{font-size:24px}.admin-config-grid{grid-template-columns:repeat(2,1fr)}.admin-rooms-head{padding:12px 14px}.admin-search-wrap input{width:100%}.admin-search-wrap{flex:1;min-width:140px}}.admin-room-card{background:#0a0e1c8c;border:1px solid var(--border);border-radius:12px;padding:12px 14px}.admin-room-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.admin-room-card-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:.88rem}.admin-room-card-label{color:var(--text-muted);font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600}.turn-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.turn-meta .metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 12px}.turn-meta .metric .v{font-family:var(--font-mono);font-weight:700;font-size:1.2rem;font-variant-numeric:tabular-nums;color:var(--text)}.turn-meta .metric .k{font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.host-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.sidebar-title{font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px}.timer-toolbar-btn{background:transparent;border:1px solid var(--border);border-radius:var(--r-xs);padding:6px 10px;font-size:12px;color:var(--text-muted);cursor:pointer;transition:all .15s ease}.timer-toolbar-btn:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.flex{display:flex}.col{flex-direction:column}.center{align-items:center;justify-content:center}.between{justify-content:space-between}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-6{gap:24px}.muted{color:var(--text-muted)}.text-sm{font-size:12.5px}.text-xs{font-size:11px}.mono{font-family:var(--font-mono)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ffffff2e}html,body{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar,body::-webkit-scrollbar{width:0!important;height:0!important;display:none}::selection{background:#7c5cff4d;color:#fff}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}@media (max-width: 768px){input,select,.input,.select,.home-container input,.home-container select{font-size:16px}}@media (max-width: 428px){.app-shell{padding:12px 12px 20px}.app-shell.home-shell{padding:clamp(6px,1.2vh,14px) 12px clamp(6px,1.2vh,14px)}.card{padding:16px 14px}.home-container .card{padding:clamp(10px,1.5vh,18px) clamp(10px,1.5vw,18px)}.label{font-size:.76rem}.sidebar-title{font-size:.74rem}.pill,.turn-meta .metric .k{font-size:.72rem}.btn{min-height:40px;padding:10px 14px}.word-card{padding:22px 16px}.word-card .target{font-size:38px}.word-target{font-size:1.8rem;word-break:break-word}.forbidden-list,.word-card .forbidden-list{max-width:100%}.forbidden-item,.word-card .forbidden-item{padding:8px 10px;font-size:.84rem}.countdown-ring{width:180px;height:180px}.timer-ring{width:110px;height:110px}.timer-ring .label{font-size:1.6rem}.hourglass{width:72px;height:72px;margin:14px auto 6px}.hourglass-glyph{font-size:2.8rem}.game-grid{gap:10px}.screen{gap:12px}.winner-overlay{padding:14px}.winner-card{max-width:100%}.winner-trophy{font-size:2.8rem}.winner-card h1{font-size:1.4rem}.player-row{padding:8px 10px}.avatar{width:28px;height:28px;font-size:.78rem}.toast{max-width:calc(100vw - 24px)}.toast-host{right:12px;bottom:12px;left:12px}.section-title{flex-direction:column;align-items:flex-start;gap:8px}.turn-meta{gap:6px}.turn-meta .metric{padding:8px 10px}.turn-meta .metric .v{font-size:1rem}.brand{font-size:.85rem}.settings-grid,.explainer-grid,.host-grid{grid-template-columns:1fr}}.player-left>div{overflow:hidden}.player-left>div>div:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.word-target{word-break:break-word;overflow-wrap:break-word}.game-mobile{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;min-height:0}.game-mobile-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px 10px;border-bottom:1px solid var(--border);flex-shrink:0}.game-mobile-body{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:10px;padding:12px 10px calc(12px + env(safe-area-inset-bottom,0px))}.host-mobile-tools{display:flex;gap:4px;justify-content:space-between;align-items:center;padding:6px 4px 2px;flex-wrap:wrap}.host-mobile-tools .btn{flex:1;min-width:40px;padding:8px 0}.game-mobile .word-card{padding:18px 14px}.game-mobile .word-card .target{font-size:clamp(26px,8vw,36px);margin:8px 0 6px}.game-mobile .forbidden-grid{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.game-mobile .forbidden-chip{font-size:.78rem;padding:5px 9px}.game-mobile .pass-button{padding:10px 12px;font-size:.9rem}.game-mobile .score-row{padding:6px 8px;gap:8px}.game-mobile .score-row .nick{font-size:.82rem}.game-mobile .score-row .role{font-size:.66rem}.game-mobile .score-row .score{font-size:.95rem}.game-mobile .host-action{min-height:52px;padding:10px 8px;font-size:.86rem;gap:6px}.game-mobile .host-action .kbd-inline{display:none}.finished-mobile{position:relative;height:100%;display:flex;flex-direction:column;overflow:hidden}.finished-mobile-confetti{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;opacity:.6}.finished-mobile-top{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;position:relative;z-index:1;gap:10px;flex-shrink:0}.finished-mobile-body{flex:1;overflow-y:auto;padding:4px 16px 12px;position:relative;z-index:1;display:flex;flex-direction:column;gap:16px}.finished-mobile-hero{min-height:260px;padding:20px 16px 22px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border-radius:14px;background:radial-gradient(ellipse at top,rgba(251,191,36,.12),transparent 70%),var(--surface);border:1px solid rgba(251,191,36,.25);position:relative}.finished-mobile-avatar{position:relative}.finished-mobile-crown{position:absolute;top:-14px;left:50%;transform:translate(-50%) rotate(-14deg);color:var(--warning);filter:drop-shadow(0 2px 6px rgba(0,0,0,.4))}.finished-mobile-name{font-family:var(--font-display);font-size:38px;font-weight:800;letter-spacing:-.03em;line-height:1.05;background:linear-gradient(135deg,#fff,var(--accent-2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-align:center;word-break:break-word}.finished-mobile-stats{font-size:13px;color:var(--text-muted);display:flex;gap:4px;align-items:baseline;flex-wrap:wrap;justify-content:center}.finished-mobile-footer{padding:12px 16px max(calc(12px + env(safe-area-inset-bottom,0px)),18px);border-top:1px solid var(--border);background:linear-gradient(180deg,rgba(10,10,18,0) 0%,var(--bg-1) 30%);position:relative;z-index:2;flex-shrink:0}.finished-mobile-waiting{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:var(--surface);border:1px solid var(--border)}
