:root{color:#e2e8f0;font-synthesis:none;background:#0f172a;font-family:Inter,system-ui,sans-serif}*{box-sizing:border-box}body{background-color:#0f172a;background-image:radial-gradient(circle at top,#1e3a5f 0,#0000 38rem),linear-gradient(#94a3b80a 1px,#0000 1px),linear-gradient(90deg,#94a3b80a 1px,#0000 1px);background-size:auto,32px 32px,32px 32px;min-width:320px;min-height:100vh;margin:0}.app-shell{flex-direction:column;width:min(100% - 32px,640px);min-height:100vh;margin:0 auto;padding:clamp(20px,5vw,40px) 0;display:flex}.top-bar,.player-bar,.name-form{align-items:center;gap:12px;display:flex}.top-bar{border-bottom:1px solid #334155;justify-content:space-between;gap:16px;padding-bottom:20px}.top-bar h1{color:#f8fafc;letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:clamp(1.5rem,4vw,2rem)}.player-name{color:#f8fafc;align-items:center;gap:8px;font-weight:700;display:inline-flex}.connection-dot{border-radius:50%;width:9px;height:9px;box-shadow:0 0 10px}.connection-dot--online{color:#4ade80;background:#4ade80}.connection-dot--offline{color:#f87171;background:#f87171}.name-form{gap:12px;width:min(100%,360px);display:grid}.name-form label{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.name-entry-area{gap:16px}.name-entry-area .form-error{margin:0}.game-area{text-align:center;flex:1;align-content:center;justify-items:center;gap:12px;display:grid}input,button{font:inherit}input{color:#e2e8f0;background:#0f172a;border:1px solid #475569;border-radius:10px;outline:none;width:100%;min-height:44px;padding:10px 12px}button{color:#082f49;cursor:pointer;background:#38bdf8;border:1px solid #0000;border-radius:10px;min-height:44px;padding:10px 16px;font-weight:700;transition:background-color .15s,box-shadow .15s,transform .15s}button:hover:not(:disabled){background:#7dd3fc;transform:translateY(-1px);box-shadow:0 4px 18px #38bdf840}button:focus-visible,input:focus-visible{outline-offset:2px;outline:2px solid #38bdf8}button:disabled{color:#94a3b8;cursor:not-allowed;opacity:.65;background:#334155}.icon-button{color:#bae6fd;background:0 0;border-color:#475569;place-items:center;width:32px;min-width:32px;height:32px;min-height:32px;padding:0;font-size:1.25rem;line-height:1;display:inline-grid}.icon-button:hover:not(:disabled){color:#f8fafc;background:#334155}.form-error{color:#fca5a5;margin:12px 0 0;font-weight:600}.secret-word{color:#f8fafc;letter-spacing:.06em;white-space:nowrap;text-transform:uppercase;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:700;line-height:1;animation:.4s ease-out reveal-word}.connection-status{color:#94a3b8;margin:16px 0 0;font-size:.875rem}.room-selection{background:#1e293b;border:1px solid #334155;border-radius:10px;gap:12px;margin:auto 0;padding:20px;display:grid}.room-selection form{gap:8px;display:grid}.room-code{color:#bae6fd;background:#172554;border:1px solid #1d4ed8;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin:20px 0 0;padding:12px 16px;display:flex}.room-code-value{align-items:center;gap:8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:inline-flex}.room-code-digits{gap:.5ch;display:inline-flex}.room-code-value svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:18px;height:18px}.leave-button{color:#bae6fd;background:0 0;border-color:#475569;min-height:32px;padding:6px 10px;font-size:.875rem}.leave-button:hover:not(:disabled){color:#f8fafc;box-shadow:none;background:#334155}.participants{background:#1e293b;border:1px solid #334155;border-radius:10px;margin-top:20px;padding:14px}.participants h2{color:#f8fafc;margin:0;font-size:1rem}.participants ul{scrollbar-color:#475569 transparent;gap:6px;max-height:50vh;margin:12px 0 0;padding:0 4px 0 0;list-style:none;display:grid;overflow-y:auto}.participants li{color:#cbd5e1;background:#0f172a;border-left:3px solid #38bdf8;border-radius:10px;align-items:center;gap:8px;min-height:36px;padding:7px 9px;display:flex}.participant-icon{object-fit:contain;filter:invert(84%)sepia(30%)saturate(652%)hue-rotate(162deg)brightness(102%)contrast(97%);border:1px solid #475569;border-radius:50%;flex:0 0 20px;width:20px;height:20px;padding:2px;display:block}.game-area{text-align:center;background:#1e293b;border:1px solid #334155;border-radius:10px;flex:1;align-content:center;justify-items:center;gap:16px;min-height:280px;margin-top:20px;padding:28px 20px;display:grid}.game-area h2{color:#f8fafc;margin:0}.game-status{letter-spacing:.14em;border:1px solid #1d4ed8;border-radius:10px;padding:5px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;font-weight:700;color:#7dd3fc!important}.game-area--started .game-status{border-color:#7c3aed;color:#c4b5fd!important}.spy-role{color:#f87171!important}.danger-button{color:#fee2e2;background:#b91c1c}.danger-button:hover:not(:disabled){background:#ef4444;box-shadow:0 4px 18px #f8717140}@keyframes reveal-word{0%{opacity:0;letter-spacing:.3em;transform:translateY(8px)}to{opacity:1;letter-spacing:.06em;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.secret-word{animation:none}}.game-area p{color:#cbd5e1;margin:0}.game-result{background:#0f172a;border:1px solid #475569;border-radius:10px;gap:12px;width:min(100%,340px);padding:20px;display:grid}.game-result strong{color:#f8fafc;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}@media (width<=540px){.app-shell{width:min(100% - 24px,640px)}.top-bar{align-items:flex-start}.name-form input{min-width:0}.room-code{flex-direction:row;align-items:center;padding:8px 10px}.room-selection button,.game-area button{width:100%}}
