:root{--bg-color: #fafaf7;--text-main: #3d4652;--text-muted: #6b7684;--accent-orange: #ef8a55;--card-bg: #fffdf8;--card-border: rgba(61, 70, 82, .12);--radius-lg: 22px;--font-heading: "Outfit", "Segoe UI", system-ui, -apple-system, sans-serif;--font-body: "Plus Jakarta Sans", "Segoe UI", system-ui, -apple-system, sans-serif;--shadow-soft: 0 18px 40px -20px rgba(61, 70, 82, .35)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;background:var(--bg-color);color:var(--text-main);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-container{position:relative;width:100vw;height:100vh;background:var(--bg-color)}.canvas-container{position:absolute;inset:0;z-index:1}.canvas-container canvas{width:100%;height:100%;display:block;touch-action:none}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.game-ui{position:absolute;left:50%;bottom:clamp(16px,4vh,40px);transform:translate(-50%);z-index:10;display:flex;flex-direction:column;align-items:center;gap:12px;width:min(560px,calc(100vw - 32px))}.btn{font-family:var(--font-heading);font-size:.95rem;font-weight:700;color:var(--text-main);background:var(--card-bg);border:1px solid var(--card-border);border-radius:999px;padding:12px 20px;cursor:pointer;box-shadow:var(--shadow-soft);transition:transform .12s ease,background .15s ease,box-shadow .15s ease;-webkit-tap-highlight-color:transparent}.btn:hover:not(:disabled){transform:translateY(-1px);background:#fff}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:default;box-shadow:none}.btn:focus-visible{outline:3px solid var(--accent-orange);outline-offset:3px}.game-invite{padding:14px 22px 12px;text-align:center;background:#fffdf8eb;backdrop-filter:blur(6px);border:1px solid var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}.game-invite-text{font-family:var(--font-heading);font-weight:700;font-size:1.02rem;margin-bottom:10px}.game-invite-hint{margin-top:9px;font-size:.76rem;line-height:1.45;color:var(--text-muted)}.btn-start{padding:14px 28px;font-size:1.05rem;color:#fff;background:var(--accent-orange);border-color:transparent;animation:invite-pulse 2.6s ease-in-out infinite}.btn-start:hover:not(:disabled){background:#e97a41;animation:none}@keyframes invite-pulse{0%,to{box-shadow:0 0 #ef8a5580}55%{box-shadow:0 0 0 14px #ef8a5500}}@media(prefers-reduced-motion:reduce){.btn-start{animation:none}}.btn-action{color:#fff;background:var(--accent-orange);border-color:transparent;min-width:150px}.btn-action:hover:not(:disabled){background:#e97a41}.game-panel{width:100%;padding:16px 18px 12px;text-align:center;background:#fffdf8eb;backdrop-filter:blur(6px);border:1px solid var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}.game-status{font-family:var(--font-heading);font-weight:700;font-size:.95rem;letter-spacing:.01em}.game-message{min-height:1.35em;margin-top:2px;font-size:.85rem;color:var(--text-muted)}.game-message.is-warning{color:var(--accent-orange);font-weight:600}.game-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:12px}.game-hint{margin-top:10px;font-size:.72rem;color:var(--text-muted)}.game-hint kbd{font-family:inherit;font-size:.72rem;padding:1px 6px;border:1px solid var(--card-border);border-bottom-width:2px;border-radius:5px;background:#fff}@media(max-width:480px){.btn{padding:11px 15px;font-size:.88rem}.btn-action{min-width:0;flex-basis:100%}}.webgl-fallback,.noscript-banner{position:absolute;inset:0;z-index:100;background:var(--bg-color);display:flex;align-items:center;justify-content:center;padding:24px}.fallback-card{max-width:480px;text-align:center;background:var(--card-bg);border:1px solid var(--card-border);padding:36px 32px;border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}.fallback-icon{font-size:3rem;margin-bottom:16px}.fallback-card h2{font-family:var(--font-heading);font-size:1.6rem;font-weight:800;letter-spacing:-.02em;margin-bottom:12px}.fallback-card p{color:var(--text-muted);line-height:1.6}.fallback-note{margin-top:14px;font-size:.85rem;color:var(--accent-orange)}.hidden{display:none!important}@media(max-width:480px){.fallback-card{padding:28px 22px}.fallback-card h2{font-size:1.35rem}}
