.game-btn{font-family:inherit;border:none;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:8px}.game-btn:disabled{opacity:.5;cursor:not-allowed}.game-btn--primary{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;box-shadow:0 4px 14px #6366f166}.game-btn--primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #6366f180}.game-btn--primary:active:not(:disabled){transform:translateY(0)}.game-btn--secondary{background:#fff;color:#374151;border:2px solid #e5e7eb}.game-btn--secondary:hover:not(:disabled){border-color:#6366f1;color:#6366f1}.game-btn--ghost{background:transparent;color:#6b7280}.game-btn--ghost:hover:not(:disabled){background:#f3f4f6;color:#374151}.game-btn--sm{padding:8px 16px;font-size:14px}.game-btn--md{padding:12px 24px;font-size:16px}.game-btn--lg{padding:16px 32px;font-size:18px}.game-card{background:#fff;border-radius:12px;transition:all .2s ease}.game-card--default{background:#fff}.game-card--elevated{box-shadow:0 4px 20px #0000001a}.game-card--outlined{border:2px solid #e5e7eb}.game-card--padding-none{padding:0}.game-card--padding-sm{padding:12px}.game-card--padding-md{padding:20px}.game-card--padding-lg{padding:32px}.game-chat{display:flex;flex-direction:column;background:var(--chat-bg, #f8f9fa);border-radius:12px;overflow:hidden;width:100%;max-width:320px;box-shadow:0 4px 20px #0000001a;font-family:inherit}.game-chat--collapsed{max-height:44px}.game-chat__header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--chat-header-bg, rgba(0, 0, 0, .05));border:none;color:var(--chat-text, #1a1a2e);cursor:pointer;font-size:14px;font-weight:600;transition:background .2s;width:100%;text-align:left}.game-chat__header:hover{background:var(--chat-header-hover, rgba(0, 0, 0, .08))}.game-chat__title{display:flex;align-items:center;gap:8px}.game-chat__badge{background:var(--chat-badge, #ef4444);color:#fff;font-size:11px;font-weight:700;padding:2px 6px;border-radius:10px;min-width:18px;text-align:center}.game-chat__toggle{font-size:10px;opacity:.7}.game-chat__content{display:flex;flex-direction:column;flex:1;min-height:0}.game-chat__messages{flex:1;overflow-y:auto;padding:12px;max-height:250px;min-height:120px;display:flex;flex-direction:column;gap:8px}.game-chat__empty{color:var(--chat-muted, rgba(0, 0, 0, .5));text-align:center;font-size:13px;padding:20px}.game-chat__message{display:flex;flex-direction:column;gap:2px;max-width:85%;animation:chat-message-in .2s ease-out}@keyframes chat-message-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.game-chat__message--own{align-self:flex-end}.game-chat__message--emote{align-self:center;max-width:none}.game-chat__sender{font-size:11px;font-weight:600;color:var(--chat-sender, #3b82f6);margin-bottom:2px}.game-chat__text{background:var(--chat-bubble, #e9ecef);padding:8px 12px;border-radius:12px;font-size:14px;color:var(--chat-text, #1a1a2e);word-break:break-word;line-height:1.4}.game-chat__message--own .game-chat__text{background:var(--chat-bubble-own, #3b82f6);color:#fff;border-bottom-right-radius:4px}.game-chat__message:not(.game-chat__message--own) .game-chat__text{border-bottom-left-radius:4px}.game-chat__message--emote .game-chat__text{background:transparent;padding:4px}.game-chat__emote-display{font-size:32px}.game-chat__time{font-size:10px;color:var(--chat-muted, rgba(0, 0, 0, .4));align-self:flex-end}.game-chat__message--own .game-chat__time{align-self:flex-end}.game-chat__form{padding:12px;border-top:1px solid var(--chat-border, rgba(0, 0, 0, .1))}.game-chat__input-row{display:flex;gap:8px}.game-chat__input{flex:1;min-width:0;background:var(--chat-input-bg, #ffffff);border:1px solid var(--chat-input-border, rgba(0, 0, 0, .15));border-radius:20px;padding:8px 14px;font-size:14px;color:var(--chat-text, #1a1a2e);outline:none;transition:border-color .2s,background .2s}.game-chat__input::placeholder{color:var(--chat-muted, rgba(0, 0, 0, .4))}.game-chat__input:focus{border-color:var(--chat-accent, #3b82f6);background:var(--chat-input-focus, #ffffff)}.game-chat__input:disabled{opacity:.5;cursor:not-allowed}.game-chat__emote-btn,.game-chat__send-btn{width:36px;height:36px;flex-shrink:0;border:none;border-radius:50%;background:var(--chat-btn-bg, rgba(0, 0, 0, .05));color:var(--chat-btn-text, #666);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,transform .1s}.game-chat__emote-btn:hover,.game-chat__send-btn:hover{background:var(--chat-btn-hover, rgba(0, 0, 0, .1))}.game-chat__send-btn:active{transform:scale(.95)}.game-chat__emote-btn:disabled,.game-chat__send-btn:disabled{opacity:.4;cursor:not-allowed}.game-chat__send-btn:not(:disabled){background:var(--chat-accent, #3b82f6);color:#fff}.game-chat__form{position:relative}.game-chat__emotes{position:absolute;bottom:100%;left:12px;right:12px;display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px;padding:8px;background:var(--chat-emotes-bg, rgba(0, 0, 0, .03));border-radius:8px;box-shadow:0 -4px 12px #0000001a;animation:emotes-in .15s ease-out}@keyframes emotes-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.game-chat__emote{width:40px;height:40px;border:none;border-radius:8px;background:transparent;font-size:24px;cursor:pointer;transition:background .2s,transform .1s}.game-chat__emote:hover{background:var(--chat-emote-hover, rgba(0, 0, 0, .08));transform:scale(1.1)}.game-chat__emote:active{transform:scale(.95)}.game-chat__messages::-webkit-scrollbar{width:6px}.game-chat__messages::-webkit-scrollbar-track{background:transparent}.game-chat__messages::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}.game-chat__messages::-webkit-scrollbar-thumb:hover{background:#0000004d}@media (max-width: 480px){.game-chat{max-width:none;border-radius:12px 12px 0 0}.game-chat__messages{max-height:180px}}.game-chat--in-drawer{max-width:none;height:100%;border-radius:0;box-shadow:none;background:transparent;display:flex;flex-direction:column}.game-chat--in-drawer .game-chat__header{display:none}.game-chat--in-drawer .game-chat__content{height:100%;display:flex;flex-direction:column;min-height:0}.game-chat--in-drawer .game-chat__messages{max-height:none;flex:1;min-height:0}.game-chat--in-drawer .game-chat__form{border-top-color:var(--chat-border, rgba(0, 0, 0, .1));flex-shrink:0;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}.game-chat--new-message{box-shadow:0 4px 20px #00000026,0 0 0 2px var(--chat-accent, #3b82f6)}.game-chat__header--pulse{animation:chat-header-pulse 1s ease-out}@keyframes chat-header-pulse{0%{background:var(--chat-header-bg, rgba(0, 0, 0, .05))}25%{background:var(--chat-accent, #3b82f6)}50%{background:var(--chat-header-bg, rgba(0, 0, 0, .05))}75%{background:var(--chat-accent, #3b82f6)}to{background:var(--chat-header-bg, rgba(0, 0, 0, .05))}}.game-chat--new-message .game-chat__badge{animation:badge-bounce .5s ease-out}@keyframes badge-bounce{0%,to{transform:scale(1)}50%{transform:scale(1.3)}}[data-theme=dark] .game-chat{--chat-bg: rgba(0, 0, 0, .8);--chat-header-bg: rgba(255, 255, 255, .1);--chat-header-hover: rgba(255, 255, 255, .15);--chat-text: #ffffff;--chat-muted: rgba(255, 255, 255, .5);--chat-sender: #60a5fa;--chat-bubble: rgba(255, 255, 255, .1);--chat-border: rgba(255, 255, 255, .1);--chat-input-bg: rgba(255, 255, 255, .1);--chat-input-border: transparent;--chat-input-focus: rgba(255, 255, 255, .15);--chat-btn-bg: rgba(255, 255, 255, .1);--chat-btn-text: #fff;--chat-btn-hover: rgba(255, 255, 255, .2);--chat-emotes-bg: rgba(255, 255, 255, .05);--chat-emote-hover: rgba(255, 255, 255, .1);box-shadow:0 4px 20px #0000004d}[data-theme=dark] .game-chat__messages::-webkit-scrollbar-thumb{background:#fff3}[data-theme=dark] .game-chat__messages::-webkit-scrollbar-thumb:hover{background:#ffffff4d}[data-theme=dark] .game-chat--new-message{box-shadow:0 4px 20px #0000004d,0 0 0 2px var(--chat-accent, #3b82f6)}[data-theme=dark] .game-chat__emotes{background:#1e1e32f2;box-shadow:0 -4px 12px #0000004d}.game-chat--widget{max-width:none;box-shadow:none;background:transparent}.game-chat--widget .game-chat__header{display:none}.game-chat--widget .game-chat__content{display:flex;flex-direction:column}.game-chat--widget .game-chat__messages{max-height:200px}.confetti-canvas{position:fixed;top:0;left:0;width:100vw;height:100vh;max-width:100vw;max-height:100vh;pointer-events:none;z-index:9999;overflow:hidden}.game-drawer-container{position:fixed;top:0;left:0;right:0;bottom:0;height:100%;height:100dvh;z-index:1000;pointer-events:none;overflow:hidden}.game-drawer-container>*{pointer-events:auto}.game-drawer__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;animation:drawer-overlay-in .2s ease-out}@keyframes drawer-overlay-in{0%{opacity:0}to{opacity:1}}.game-drawer{position:absolute;display:flex;flex-direction:column;background:var(--drawer-bg, #ffffff);box-shadow:var(--drawer-shadow, -4px 0 20px rgba(0, 0, 0, .15));outline:none;max-height:100%;overflow:hidden}.game-drawer--right{top:0;right:0;bottom:0;animation:drawer-slide-in-right .25s ease-out}@keyframes drawer-slide-in-right{0%{transform:translate(100%)}to{transform:translate(0)}}.game-drawer--left{top:0;left:0;bottom:0;animation:drawer-slide-in-left .25s ease-out}@keyframes drawer-slide-in-left{0%{transform:translate(-100%)}to{transform:translate(0)}}.game-drawer--bottom{left:0;right:0;bottom:0;border-radius:16px 16px 0 0;animation:drawer-slide-in-bottom .25s ease-out}@keyframes drawer-slide-in-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}.game-drawer--right.game-drawer--sm,.game-drawer--left.game-drawer--sm{width:280px}.game-drawer--right.game-drawer--md,.game-drawer--left.game-drawer--md{width:360px}.game-drawer--right.game-drawer--lg,.game-drawer--left.game-drawer--lg{width:480px}.game-drawer--right.game-drawer--full,.game-drawer--left.game-drawer--full{width:100%}.game-drawer--bottom.game-drawer--sm{max-height:40%}.game-drawer--bottom.game-drawer--md{max-height:60%}.game-drawer--bottom.game-drawer--lg{max-height:80%}.game-drawer--bottom.game-drawer--full{max-height:100%;border-radius:0}.game-drawer__header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--drawer-border, rgba(0, 0, 0, .1));flex-shrink:0}.game-drawer__header-left{display:flex;align-items:center;gap:12px;min-width:0}.game-drawer__header-right{display:flex;align-items:center;gap:8px}.game-drawer__title{margin:0;font-size:16px;font-weight:600;color:var(--drawer-text, #1a1a2e);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-drawer__close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:8px;background:transparent;color:var(--drawer-text-muted, rgba(0, 0, 0, .5));cursor:pointer;transition:background .2s,color .2s}.game-drawer__close:hover{background:var(--drawer-close-hover, rgba(0, 0, 0, .05));color:var(--drawer-text, #1a1a2e)}.game-drawer__body{flex:1;overflow-y:auto;overflow-x:hidden}.game-drawer__footer{padding:16px;border-top:1px solid var(--drawer-border, rgba(0, 0, 0, .1));flex-shrink:0}@media (max-width: 480px){.game-drawer--right.game-drawer--sm,.game-drawer--right.game-drawer--md,.game-drawer--left.game-drawer--sm,.game-drawer--left.game-drawer--md,.game-drawer--right.game-drawer--lg,.game-drawer--left.game-drawer--lg{width:100%}.game-drawer-container{height:100vh;height:100dvh}.game-drawer{max-height:100%;max-height:100dvh}.game-drawer__body{overflow-y:auto;-webkit-overflow-scrolling:touch}}.game-drawer__body::-webkit-scrollbar{width:6px}.game-drawer__body::-webkit-scrollbar-track{background:transparent}.game-drawer__body::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}.game-drawer__body::-webkit-scrollbar-thumb:hover{background:#0000004d}[data-theme=dark] .game-drawer{--drawer-bg: #1a1a2e;--drawer-shadow: -4px 0 20px rgba(0, 0, 0, .3);--drawer-border: rgba(255, 255, 255, .1);--drawer-text: #ffffff;--drawer-text-muted: rgba(255, 255, 255, .6);--drawer-close-hover: rgba(255, 255, 255, .1)}[data-theme=dark] .game-drawer__body::-webkit-scrollbar-thumb{background:#fff3}[data-theme=dark] .game-drawer__body::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.error-boundary{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg, #f8fafc);padding:20px}.error-boundary__content{text-align:center;max-width:400px}.error-boundary__icon{width:64px;height:64px;margin:0 auto 20px;background:#ef4444;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;color:#fff}.error-boundary__title{font-size:24px;font-weight:700;color:var(--color-text, #1e293b);margin:0 0 12px}.error-boundary__message{font-size:16px;color:var(--color-text-secondary, #64748b);margin:0 0 24px;line-height:1.5}.error-boundary__button{padding:12px 24px;background:var(--color-primary, #6366f1);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s}.error-boundary__button:hover{background:var(--color-primary-hover, #4f46e5)}[data-theme=dark] .error-boundary{background:var(--color-bg, #0f172a)}.lobby{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;min-height:400px}.lobby__connecting,.lobby__disconnected,.lobby__waiting,.lobby__menu{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:320px;text-align:center}.lobby h2{margin:0;font-size:22px;color:var(--color-text)}.lobby h3{margin:0;font-size:16px;color:var(--color-text)}.lobby p{margin:0;font-size:14px;color:var(--color-text-secondary)}.lobby__tabs{display:flex;width:100%;background:var(--color-bg-card);border-radius:12px;padding:4px}.lobby__tab{flex:1;padding:12px 16px;border:none;border-radius:8px;background:transparent;color:var(--color-text-secondary);font-size:14px;font-weight:600;cursor:pointer;transition:all .15s ease}.lobby__tab:hover:not(.lobby__tab--active){color:var(--color-text)}.lobby__tab--active{background:var(--color-primary);color:#fff;box-shadow:0 2px 8px #6366f14d}.lobby__tab-content{display:flex;flex-direction:column;gap:16px;width:100%;animation:lobby-tab-fade .2s ease-out}.lobby__tab-content form{display:flex;flex-direction:column;gap:20px;width:100%}@keyframes lobby-tab-fade{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.lobby__spinner{width:40px;height:40px;border:4px solid var(--color-gray-200);border-top-color:var(--color-primary);border-radius:50%;animation:lobby-spin 1s linear infinite}@keyframes lobby-spin{to{transform:rotate(360deg)}}.lobby__btn{width:100%;padding:14px 24px;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .15s ease}.lobby__btn--primary{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;box-shadow:0 4px 12px #6366f14d}.lobby__btn--primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #6366f166}.lobby__btn--primary:disabled{opacity:.5;cursor:not-allowed}.lobby__btn--secondary{background:var(--color-bg-card);color:var(--color-text-secondary)}.lobby__btn--secondary:hover{background:var(--color-gray-200);color:var(--color-text)}[data-theme=dark] .lobby__btn--secondary:hover{background:var(--color-gray-700)}.lobby__btn--share{display:flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 4px 12px #10b9814d}.lobby__btn--share:hover{transform:translateY(-2px);box-shadow:0 6px 16px #10b98166}.lobby__btn--share svg{flex-shrink:0}.lobby__error{padding:12px 16px;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:8px;color:#ef4444;font-size:14px}.lobby__game-header{display:flex;flex-direction:column;align-items:center;gap:2px}.lobby__game-owner{font-size:24px;font-weight:700;color:var(--color-primary)}.lobby__game-suffix{font-size:13px;color:var(--color-text-secondary);text-transform:lowercase}.lobby__waiting-status{display:flex;align-items:center;gap:10px;font-size:15px;color:var(--color-text-secondary)}.lobby__pulse{width:10px;height:10px;border-radius:50%;background:#10b981;animation:lobby-pulse 1.5s ease-in-out infinite;flex-shrink:0}@keyframes lobby-pulse{0%,to{box-shadow:0 0 #10b98199}50%{box-shadow:0 0 0 8px #10b98100}}.lobby__invite-card{display:flex;align-items:stretch;background:var(--color-bg-card);border-radius:16px;overflow:hidden;width:100%}.lobby__invite-code{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:16px;cursor:pointer;transition:background .15s ease}.lobby__invite-code:hover{background:#00000008}[data-theme=dark] .lobby__invite-code:hover{background:#ffffff08}.lobby__invite-code:active{background:#0000000f}.lobby__invite-divider{width:1px;background:var(--color-border)}.lobby__invite-qr{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:12px 16px;background:#fff;color:#1a1a1a}[data-theme=dark] .lobby__invite-qr{background:#f5f5f5}.lobby__qr-hint{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#666}.lobby__code-label{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--color-text-secondary)}.lobby__code-value{font-size:28px;font-weight:700;font-family:monospace;letter-spacing:3px;color:var(--color-primary)}.lobby__copy-hint{font-size:11px;color:var(--color-text-secondary)}.lobby__nickname{width:100%}.lobby__nickname-display{display:flex;align-items:center;gap:8px;padding:4px;background:var(--color-bg-card);border-radius:12px}.lobby__nickname-info{display:flex;align-items:center;justify-content:center;gap:8px;flex:1;padding:10px 12px;border-radius:8px;cursor:pointer;transition:background .15s ease}.lobby__nickname-info:hover{background:#0000000d}[data-theme=dark] .lobby__nickname-info:hover{background:#ffffff0d}.lobby__nickname-info svg{color:var(--color-text-secondary);flex-shrink:0}.lobby__nickname-regenerate{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:8px;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all .15s ease}.lobby__nickname-regenerate:hover{background:#0000000d;color:var(--color-primary)}[data-theme=dark] .lobby__nickname-regenerate:hover{background:#ffffff0d}.lobby__nickname-label{font-size:13px;color:var(--color-text-secondary)}.lobby__nickname-value{font-weight:600;color:var(--color-primary)}.lobby__nickname-edit{display:flex;align-items:center;gap:8px}.lobby__nickname-input{flex:1;padding:10px 12px;border:2px solid var(--color-primary);border-radius:8px;background:var(--color-bg);color:var(--color-text);font-size:14px;font-weight:600;outline:none}.lobby__nickname-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:8px;background:var(--color-bg-card);color:var(--color-text);cursor:pointer;transition:all .15s ease}.lobby__nickname-btn:hover{background:var(--color-gray-200)}[data-theme=dark] .lobby__nickname-btn:hover{background:var(--color-gray-700)}.lobby__input{width:100%;padding:14px 16px;border:2px solid var(--color-border);border-radius:12px;background:var(--color-bg);color:var(--color-text);font-size:20px;font-family:monospace;font-weight:600;text-align:center;letter-spacing:4px;text-transform:uppercase;transition:border-color .15s ease;box-sizing:border-box}.lobby__input:focus{outline:none;border-color:var(--color-primary)}.lobby__input::placeholder{font-family:inherit;letter-spacing:0;text-transform:none;color:var(--color-text-secondary)}.lobby__input-wrapper{position:relative;width:100%}.lobby__input-wrapper .lobby__input{padding-right:48px}.lobby__paste-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;border-radius:8px;background:var(--color-bg-card);color:var(--color-text-secondary);cursor:pointer;transition:all .15s ease}.lobby__paste-btn:hover{background:var(--color-primary);color:#fff}.lobby__paste-btn:active{transform:translateY(-50%) scale(.95)}.lobby__mode-selector{display:flex;gap:12px;width:100%}.lobby__mode-btn{flex:1;display:flex;flex-direction:column;gap:6px;padding:16px;border:2px solid var(--color-border);border-radius:12px;background:var(--color-bg);cursor:pointer;transition:all .15s ease;text-align:left}.lobby__mode-btn:hover{border-color:var(--color-primary);background:#6366f10d}.lobby__mode-btn--active{border-color:var(--color-primary);background:#6366f11a}.lobby__mode-title{font-size:14px;font-weight:600;color:var(--color-text)}.lobby__mode-btn--active .lobby__mode-title{color:var(--color-primary)}.lobby__mode-desc{font-size:12px;color:var(--color-text-secondary);line-height:1.4}.lobby__mode-badge{display:inline-block;padding:6px 12px;background:#6366f11a;border:1px solid rgba(99,102,241,.3);border-radius:16px;font-size:12px;font-weight:600;color:var(--color-primary);text-transform:uppercase;letter-spacing:.5px}.lobby__share-split{display:flex;width:100%;border-radius:12px;overflow:hidden}.lobby__btn--share-main{flex:1;border-radius:12px 0 0 12px}.lobby__btn--share-copy{width:50px;padding:14px 0;border-radius:0 12px 12px 0;border-left:1px solid rgba(255,255,255,.2)}.lobby__btn--share-copy:hover{background:linear-gradient(135deg,#059669,#047857)}.game-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.game-modal{background:var(--color-bg-card);border-radius:16px;width:90vw;max-width:400px;max-height:85vh;max-height:85dvh;overflow:auto;box-shadow:var(--shadow-xl);animation:modalSlideIn .3s ease;margin:auto}.game-modal__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--color-border)}.game-modal__title{margin:0;font-size:20px;font-weight:600;color:var(--color-text)}.game-modal__close{background:none;border:none;font-size:28px;color:var(--color-text-secondary);cursor:pointer;padding:0;line-height:1;transition:color .2s}.game-modal__close:hover{color:var(--color-text)}.game-modal__content{padding:24px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.toast{position:fixed;z-index:9999;display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border-radius:12px;box-shadow:0 4px 20px #00000026;max-width:320px;animation:toast-enter .2s ease-out}.toast--leaving{animation:toast-leave .2s ease-in forwards}.toast--top-right{top:16px;right:16px}.toast--top-left{top:16px;left:16px}.toast--top-center{top:16px;left:50%;transform:translate(-50%)}.toast--bottom-right{bottom:16px;right:16px}.toast--bottom-left{bottom:16px;left:16px}.toast--bottom-center{bottom:16px;left:50%;transform:translate(-50%)}.toast--primary{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff}.toast--secondary{background:var(--color-bg-card, #f8fafc);color:var(--color-text, #1e293b);border:1px solid var(--color-border, #e2e8f0)}.toast--success{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff}.toast--warning{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.toast--error{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.toast__content{flex:1;min-width:0}.toast__title{font-size:13px;font-weight:700;margin-bottom:2px;opacity:.9}.toast__message{font-size:14px;font-weight:500;line-height:1.4;word-break:break-word}.toast__close{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;border-radius:6px;background:#fff3;color:inherit;cursor:pointer;opacity:.7;transition:opacity .15s ease,background .15s ease}.toast__close:hover{opacity:1;background:#ffffff4d}.toast--secondary .toast__close{background:#0000000d}.toast--secondary .toast__close:hover{background:#0000001a}@keyframes toast-enter{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.toast--top-center.toast--leaving,.toast--bottom-center.toast--leaving{animation:toast-leave-center .2s ease-in forwards}@keyframes toast-leave{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-12px)}}@keyframes toast-leave-center{0%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(-12px)}}.toast--bottom-right,.toast--bottom-left,.toast--bottom-center{animation:toast-enter-bottom .2s ease-out}.toast--bottom-right.toast--leaving,.toast--bottom-left.toast--leaving{animation:toast-leave-bottom .2s ease-in forwards}.toast--bottom-center.toast--leaving{animation:toast-leave-bottom-center .2s ease-in forwards}@keyframes toast-enter-bottom{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-leave-bottom{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(12px)}}@keyframes toast-leave-bottom-center{0%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(12px)}}.toast--top-center{animation:toast-enter-center .2s ease-out}.toast--bottom-center{animation:toast-enter-bottom-center .2s ease-out}@keyframes toast-enter-center{0%{opacity:0;transform:translate(-50%) translateY(-12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes toast-enter-bottom-center{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.app{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(circle at 20% 80%,rgba(99,102,241,.15) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(139,92,246,.15) 0%,transparent 50%),radial-gradient(circle at 50% 50%,rgba(99,102,241,.05) 0%,transparent 70%),var(--color-bg);transition:background-color .2s ease;position:relative}.app:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle,rgba(99,102,241,.08) 1px,transparent 1px);background-size:24px 24px;pointer-events:none;z-index:0}.app>*:not(.header){position:relative;z-index:1}[data-theme=dark] .app{background:radial-gradient(circle at 20% 80%,rgba(99,102,241,.2) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(139,92,246,.2) 0%,transparent 50%),radial-gradient(circle at 50% 50%,rgba(99,102,241,.08) 0%,transparent 70%),var(--color-bg)}[data-theme=dark] .app:before{background-image:radial-gradient(circle,rgba(99,102,241,.12) 1px,transparent 1px)}.game-container{flex:1;display:flex;flex-direction:column;align-items:center;padding:20px;gap:24px}.mode-selector{display:flex;gap:4px;background:var(--color-bg-card);border-radius:12px;padding:4px}.mode-btn{padding:10px 20px;border:none;border-radius:8px;background:transparent;color:var(--color-text-secondary);font-size:14px;font-weight:600;cursor:pointer;transition:all .15s ease}.mode-btn:hover{color:var(--color-text)}.mode-btn--active,.mode-btn--active:hover,.mode-btn--active:focus,.mode-btn--active:active{background:var(--color-primary);color:#fff;box-shadow:0 2px 8px #6366f14d}.race-status{width:100%;max-width:320px}.race-progress{display:flex;flex-direction:column;gap:8px}.race-player{display:flex;align-items:center;gap:10px}.race-player__name{font-size:13px;font-weight:600;width:80px;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.race-player--me .race-player__name{color:var(--color-primary)}.race-player--opponent .race-player__name{color:var(--color-text-secondary)}.race-player__bar{flex:1;height:12px;background:var(--color-bg-card);border-radius:6px;overflow:hidden}.race-player__fill{height:100%;border-radius:6px;transition:width .3s ease}.race-player__fill--me{background:linear-gradient(90deg,#6366f1,#8b5cf6)}.race-player__fill--opponent{background:linear-gradient(90deg,#f97316,#ea580c)}.race-player__score{font-size:14px;font-weight:700;width:40px;text-align:left;color:var(--color-text)}.race-result{text-align:center;padding:0;margin:-8px 0;animation:result-pop .5s cubic-bezier(.34,1.56,.64,1)}@keyframes result-pop{0%{transform:scale(.9) translateY(-10px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.race-result__icon{font-size:32px;margin-bottom:4px;display:block}.race-result__title{font-size:18px;font-weight:700;margin-bottom:4px}.race-result--win .race-result__title{color:#22c55e}.race-result--lose .race-result__title{color:#ef4444}.race-result__reason{font-size:12px;font-weight:500;color:var(--color-text-secondary);margin-bottom:8px}.race-result__scores{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--color-bg-card);border-radius:12px;padding:10px 16px;box-shadow:var(--shadow-sm)}.race-result__player{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:70px}.race-result__player-name{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary)}.race-result__player-score{font-size:28px;font-weight:800;color:var(--color-text)}.race-result__player--winner .race-result__player-name,.race-result__player--winner .race-result__player-score{color:#22c55e}.race-result__player--loser .race-result__player-score{color:var(--color-text-secondary);opacity:.6}.race-result__vs{font-size:13px;font-weight:700;color:var(--color-text-secondary);opacity:.4;text-transform:uppercase}.leave-btn{padding:12px 24px;border:none;border-radius:8px;background:var(--color-bg-card);color:var(--color-text-secondary);font-size:14px;font-weight:600;cursor:pointer;transition:all .15s ease;min-width:130px}.game-actions .button{min-width:130px}.leave-btn:hover{background:var(--color-gray-200);color:var(--color-text)}[data-theme=dark] .leave-btn:hover{background:var(--color-gray-700)}.game-actions{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:12px;min-height:60px;flex-wrap:wrap}.combo-indicator{padding:8px 20px;border-radius:20px;font-size:18px;font-weight:700;animation:combo-pop .3s ease-out;text-transform:uppercase;letter-spacing:1px}@keyframes combo-pop{0%{transform:scale(.5);opacity:0}50%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.combo-indicator--x2{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;box-shadow:0 4px 12px #22c55e66}.combo-indicator--x3{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 4px 12px #3b82f666}.combo-indicator--x4{background:linear-gradient(135deg,#a855f7,#9333ea);color:#fff;box-shadow:0 4px 12px #a855f766}.combo-indicator--x5{background:linear-gradient(135deg,#f97316,#ea580c);color:#fff;box-shadow:0 4px 12px #f9731666;animation:combo-pop .3s ease-out,combo-glow 1s ease-in-out infinite}@keyframes combo-glow{0%,to{box-shadow:0 4px 12px #f9731666}50%{box-shadow:0 4px 24px #f9731699,0 0 40px #f973164d}}.stuck-indicator{padding:8px 20px;border-radius:20px;font-size:14px;font-weight:600;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;box-shadow:0 4px 12px #f59e0b66;animation:combo-pop .3s ease-out}.help-content{max-width:360px}.help-content h4{margin:16px 0 8px;color:var(--color-text)}.help-content ul{margin:0;padding-left:20px;color:var(--color-text-secondary)}.help-content li{margin-bottom:8px}.win-content{text-align:center;padding:20px}.win-emoji{font-size:64px;margin:0 0 16px}.win-content p{margin:8px 0;color:var(--color-text-secondary)}.win-content .game-btn{margin-top:20px}.settings-content{min-width:280px}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--color-border)}.settings-row:last-child{border-bottom:none}.settings-label{font-size:16px;font-weight:500;color:var(--color-text)}.toggle{position:relative;width:52px;height:28px;background:var(--color-gray-300);border:none;border-radius:14px;cursor:pointer;transition:background .2s ease;padding:0}.toggle--on{background:var(--color-primary)}.toggle__knob{position:absolute;top:2px;left:2px;width:24px;height:24px;background:#fff;border-radius:50%;box-shadow:0 2px 4px #0003;transition:transform .2s ease}.toggle--on .toggle__knob{transform:translate(24px)}.theme-selector{display:flex;gap:4px;background:var(--color-bg);border-radius:8px;padding:4px}.theme-btn{padding:8px 12px;border:none;border-radius:6px;background:transparent;color:var(--color-text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.theme-btn:hover{color:var(--color-text)}.theme-btn--active{background:var(--color-bg-card);color:var(--color-primary);box-shadow:var(--shadow-sm)}.language-selector{display:flex;gap:4px;background:var(--color-bg);border-radius:8px;padding:4px}.language-btn{width:40px;height:36px;border:none;border-radius:6px;background:transparent;font-size:20px;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.language-btn:hover{background:var(--color-bg-card)}.language-btn--active{background:var(--color-bg-card);box-shadow:var(--shadow-sm)}.shared-status{width:100%;max-width:320px}.shared-scores{display:flex;align-items:center;justify-content:center;gap:16px;padding:12px;background:var(--color-bg-card);border-radius:12px}.shared-player{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1}.shared-player__name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.shared-player--me .shared-player__name{color:var(--color-primary)}.shared-player--opponent .shared-player__name{color:#06b6d4}.shared-player__score{font-size:28px;font-weight:700;color:var(--color-text)}.shared-vs{font-size:14px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase}.chat-widget{width:100%;max-width:400px;margin-top:16px;border-radius:16px;background:var(--color-bg-card);box-shadow:var(--shadow-md);overflow:hidden}.chat-widget__chat{height:250px}:root{--color-primary: #6366f1;--color-primary-dark: #4f46e5;--color-secondary: #8b5cf6;--color-success: #10b981;--color-warning: #f59e0b;--color-error: #ef4444;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--color-bg: #f9fafb;--color-bg-card: #ffffff;--color-bg-elevated: #ffffff;--color-text: #111827;--color-text-secondary: #6b7280;--color-border: #e5e7eb;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 30px;--spacing-1: 4px;--spacing-2: 8px;--spacing-3: 12px;--spacing-4: 16px;--spacing-5: 20px;--spacing-6: 24px;--spacing-8: 32px;--spacing-10: 40px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .15)}[data-theme=dark]{--color-primary: #818cf8;--color-primary-dark: #6366f1;--color-secondary: #a78bfa;--color-gray-50: #111827;--color-gray-100: #1f2937;--color-gray-200: #374151;--color-gray-300: #4b5563;--color-gray-400: #6b7280;--color-gray-500: #9ca3af;--color-gray-600: #d1d5db;--color-gray-700: #e5e7eb;--color-gray-800: #f3f4f6;--color-gray-900: #f9fafb;--color-bg: #0f172a;--color-bg-card: #1e293b;--color-bg-elevated: #334155;--color-text: #f1f5f9;--color-text-secondary: #94a3b8;--color-border: #334155;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .5)}*,*:before,*:after{box-sizing:border-box}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-bg);margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .2s ease,color .2s ease}.header{position:relative;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--color-bg-card);border-bottom:1px solid var(--color-border);gap:12px;transition:background-color .2s ease,border-color .2s ease}.header__title{margin:0;font-size:22px;font-weight:800;color:var(--color-primary);letter-spacing:-.5px}.header__stats{display:flex;gap:20px}.stat{display:flex;flex-direction:column;align-items:center;gap:2px}.stat__value{font-size:22px;font-weight:700;color:var(--color-text);line-height:1}.stat__label{font-size:10px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;font-weight:500}.stat--best .stat__value,.stat--best .stat__label{color:var(--color-primary)}.header__actions{display:flex;gap:4px}.icon-btn{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;border-radius:10px;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all .15s ease}.icon-btn svg{pointer-events:none}.icon-btn__badge{position:absolute;top:4px;right:4px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#ef4444;color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center}.icon-btn--pulse{animation:icon-btn-pulse 1s ease-out}@keyframes icon-btn-pulse{0%,to{box-shadow:none}25%,75%{box-shadow:0 0 0 3px var(--color-primary, #3b82f6)}50%{box-shadow:none}}.icon-btn:hover{background:var(--color-bg-elevated);color:var(--color-text)}.icon-btn:active{transform:scale(.95)}.header__menu{position:relative}.header__dropdown{position:absolute;top:100%;right:0;margin-top:8px;min-width:160px;background:var(--color-bg-card);border-radius:12px;box-shadow:0 4px 20px #00000026;border:1px solid var(--color-border);overflow:hidden;z-index:9999;animation:dropdown-in .15s ease-out}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.header__dropdown-item{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;background:none;border:none;font-size:15px;font-weight:500;color:var(--color-text);cursor:pointer;transition:background .15s;text-align:left}.header__dropdown-item:hover{background:var(--color-bg)}.header__dropdown-item svg{color:var(--color-text-secondary)}[data-theme=dark] .header__dropdown{box-shadow:0 4px 20px #0006}@media (max-width: 420px){.header{padding:10px 12px}.header__title{font-size:18px}.header__stats{gap:16px}.stat__value{font-size:18px}.icon-btn{width:40px;height:40px}}.game-board{width:100%;max-width:400px;margin:0 auto;padding:16px}.game-board__grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;background:linear-gradient(145deg,#6366f1,#4f46e5);padding:14px;border-radius:16px;transition:background-color .2s ease;box-shadow:inset 0 2px 4px #ffffff26,inset 0 -4px 8px #0003,0 4px #4338ca,0 8px #3730a3,0 12px 20px #00000040,0 4px 6px #0000001a}[data-theme=dark] .game-board__grid{background:linear-gradient(145deg,#4f46e5,#4338ca);box-shadow:inset 0 2px 4px #ffffff1a,inset 0 -4px 8px #0000004d,0 4px #3730a3,0 8px #312e81,0 12px 20px #0006,0 4px 6px #0003}@media (max-width: 420px){.game-board{padding:8px}.game-board__grid{gap:4px;padding:8px}}.number-cell{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#fff,#f3f4f6);border:none;border-radius:10px;cursor:pointer;font-family:inherit;transition:all .2s ease;padding:0;min-width:44px;min-height:44px;box-shadow:0 2px 4px #00000014,0 4px 8px #0000000a,inset 0 1px #fffc}[data-theme=dark] .number-cell{background:linear-gradient(145deg,#374151,#1f2937);box-shadow:0 2px 4px #0000004d,0 4px 8px #0003,inset 0 1px #ffffff1a}.number-cell:hover:not(:disabled):not(.number-cell--selected):not(.number-cell--matched){transform:translateY(-2px) scale(1.02);box-shadow:0 4px 8px #0000001f,0 8px 16px #00000014,inset 0 1px #fffc}.number-cell:active:not(:disabled):not(.number-cell--matched){transform:scale(.95);box-shadow:0 1px 2px #0000001a,inset 0 1px #fffc}.number-cell--selected,.number-cell--selected:hover{background:linear-gradient(145deg,#fbbf24,#f59e0b);transform:scale(1.12);box-shadow:0 0 0 4px #fbbf2480,0 6px 16px #f59e0b80,inset 0 2px #fff6;animation:pulse-selected 1s ease-in-out infinite}@keyframes pulse-selected{0%,to{box-shadow:0 0 0 4px #fbbf2480,0 6px 16px #f59e0b80,inset 0 2px #fff6;transform:scale(1.12)}50%{box-shadow:0 0 0 6px #fbbf244d,0 8px 24px #f59e0b99,0 0 30px #fbbf2466,inset 0 2px #fff6;transform:scale(1.15)}}.number-cell--selected .number-cell__value,.number-cell--selected:hover .number-cell__value{color:#1e1b4b;text-shadow:0 1px 0 rgba(255,255,255,.3);font-weight:800}.number-cell--just-matched{animation:match-pop .4s ease-out forwards}@keyframes match-pop{0%{transform:scale(1);background:linear-gradient(145deg,#34d399,#10b981);box-shadow:0 0 #10b981b3,0 4px 12px #10b98166}50%{transform:scale(1.2);background:linear-gradient(145deg,#34d399,#10b981);box-shadow:0 0 0 12px #10b98100,0 8px 24px #10b9814d}to{transform:scale(1);background:var(--color-gray-100);box-shadow:none}}.number-cell--just-matched .number-cell__value{animation:value-fade .4s ease-out forwards}@keyframes value-fade{0%,50%{color:#fff;transform:scale(1.1)}to{color:var(--color-gray-400);transform:scale(1)}}.number-cell--matched{background:var(--color-gray-100);cursor:default;box-shadow:none}[data-theme=dark] .number-cell--matched{background:var(--color-gray-800)}.number-cell--matched .number-cell__value{color:var(--color-gray-400)}.number-cell--opponent-selected{box-shadow:0 0 0 4px #06b6d4,0 4px 16px #06b6d480;animation:opponent-pulse 1.2s ease-in-out infinite}.number-cell--opponent-selected:not(.number-cell--selected){background:linear-gradient(145deg,#ecfeff,#cffafe)}[data-theme=dark] .number-cell--opponent-selected:not(.number-cell--selected){background:linear-gradient(145deg,#083344,#155e75)}@keyframes opponent-pulse{0%,to{box-shadow:0 0 0 4px #06b6d4,0 4px 16px #06b6d480}50%{box-shadow:0 0 0 6px #06b6d4cc,0 6px 24px #06b6d499,0 0 30px #06b6d466}}.number-cell--selected.number-cell--opponent-selected{box-shadow:0 0 0 4px #fbbf24,0 0 0 8px #06b6d4,0 6px 20px #06b6d480}.number-cell__value{font-size:22px;font-weight:700;color:var(--color-text);z-index:1}.number-cell__cross{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.number-cell__cross:before,.number-cell__cross:after{content:"";position:absolute;width:80%;height:2px;background:var(--color-gray-400);border-radius:1px}.number-cell__cross:before{transform:rotate(45deg)}.number-cell__cross:after{transform:rotate(-45deg)}@media (max-width: 420px){.number-cell{min-width:40px;min-height:40px;border-radius:6px}.number-cell__value{font-size:18px}}
