.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--gradient-dark);padding:2rem;position:relative;overflow:hidden}.login-page:before{content:"";position:absolute;top:-50%;right:-10%;width:500px;height:500px;background:radial-gradient(circle,rgba(102,126,234,.1),transparent);border-radius:50%}.login-page:after{content:"";position:absolute;bottom:-50%;left:-10%;width:500px;height:500px;background:radial-gradient(circle,rgba(118,75,162,.1),transparent);border-radius:50%}.login-container{background:linear-gradient(135deg,#ffffff14,#ffffff08);border-radius:var(--radius-2xl);padding:3rem 3.5rem;width:100%;max-width:500px;min-width:0;box-shadow:var(--shadow-xl);border:var(--border-medium);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);position:relative;z-index:10}.login-title{font-size:3rem;font-weight:800;text-align:center;margin:0 0 .5rem;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:.05em}.login-subtitle{text-align:center;color:#d4d7e6;margin:0 0 2.5rem;font-size:1.05rem;font-weight:500}.login-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.75rem}.form-group label{font-size:.95rem;color:#f3f4f8;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.form-group input{padding:1rem 1.25rem;border-radius:var(--radius-lg);border:var(--border-medium);background:#ffffff14;color:#fff;font-size:1.05rem;transition:all var(--transition-normal)}.form-group input:focus{outline:none;border-color:var(--color-primary);background:#ffffff1f;box-shadow:0 0 0 3px #667eea33}.form-group input::placeholder{color:#b8bdcf}.form-group input:disabled{opacity:.6;cursor:not-allowed}.error-message{color:#fca5a5;font-size:.95rem;margin:0;padding:1rem;background:#ef444426;border-radius:var(--radius-lg);border:1px solid rgba(239,68,68,.3)}.login-button{padding:1.125rem 2rem;border-radius:var(--radius-lg);border:none;background:var(--gradient-primary);color:#fff;font-size:1.15rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;margin-top:.5rem}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 24px #667eea66}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.7;cursor:not-allowed}.login-hint{text-align:center;color:#c7cad8;font-size:.9rem;margin:2rem 0 0}.turnstile-container{min-height:65px;display:flex;align-items:center;justify-content:center;overflow:hidden}.auth-mode-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem;margin-bottom:1.75rem;padding:.35rem;border-radius:var(--radius-lg);background:#080c1cb8}.auth-mode-tabs button{min-height:44px;padding:.65rem .5rem;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:#dfe2ef;font-weight:600;cursor:pointer}.auth-mode-tabs button.active{border-color:#aab8ff;background:#4358b8;color:#fff}.auth-mode-tabs button:focus-visible,.secondary-button:focus-visible,.login-button:focus-visible{outline:3px solid #f6c85f;outline-offset:2px}.auth-mode-tabs button:disabled{color:#8f95a8;cursor:not-allowed}.secondary-button{min-height:44px;padding:.85rem 1rem;border:1px solid #aab8ff;border-radius:var(--radius-lg);background:#202b59;color:#fff;font-weight:600;cursor:pointer}.secondary-button:disabled{opacity:.65;cursor:not-allowed}.success-message,.availability-message,.auth-instruction{margin:0;padding:1rem;border-radius:var(--radius-lg);color:#f7f8fc;line-height:1.55}.success-message{border:1px solid #58d99d;background:#164b3a}.availability-message{border:1px solid #f6c85f;background:#544318}.auth-instruction{background:#202b59}.issued-key-panel{display:flex;flex-direction:column;gap:1rem;color:#f7f8fc}.issued-key-panel h2,.issued-key-panel p{margin:0}.issued-key-panel textarea{width:100%;resize:none;padding:1rem;border:2px solid #f6c85f;border-radius:var(--radius-lg);background:#0b1024;color:#fff;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere}@media(max-width:560px){.login-page{padding:1rem;align-items:flex-start}.login-container{margin-top:max(1rem,env(safe-area-inset-top));padding:2rem 1.25rem}.login-title{font-size:2.4rem}.auth-mode-tabs{grid-template-columns:1fr}}.identity-name-button{appearance:none;border:0;border-bottom:1px dashed currentColor;background:transparent;color:inherit;font:inherit;padding:.1rem 0;cursor:pointer}.identity-name-button:hover,.identity-name-button:focus-visible{color:#fff;border-bottom-style:solid}.identity-name-button:focus-visible{outline:3px solid #fbbf24;outline-offset:3px;border-radius:2px}.identity-dialog-overlay{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:1rem;background:#020617d1}.identity-dialog{width:min(32rem,100%);max-height:calc(100vh - 2rem);overflow-y:auto;border:1px solid #94a3b8;border-radius:.9rem;background:#172033;color:#f8fafc;padding:1.25rem;box-shadow:0 24px 80px #0000008c}.identity-dialog h2{margin:0 0 1rem;font-size:1.25rem}.identity-fingerprint-details{display:grid;gap:.75rem}.identity-fingerprint-label,.identity-fingerprint-help,.identity-copy-error{margin:0}.identity-fingerprint-label{color:#e2e8f0;font-weight:700}.identity-fingerprint-value{display:block;overflow-wrap:anywhere;border:1px solid #64748b;border-radius:.5rem;background:#020617;color:#fef08a;padding:.75rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9rem;line-height:1.5;-webkit-user-select:all;user-select:all}.identity-copy-button,.identity-dialog-close{min-height:44px;border:1px solid #94a3b8;border-radius:.5rem;background:#334155;color:#fff;padding:.65rem 1rem;font-weight:700;cursor:pointer}.identity-copy-button:hover,.identity-dialog-close:hover{background:#475569}.identity-copy-button:focus-visible,.identity-dialog-close:focus-visible{outline:3px solid #fbbf24;outline-offset:2px}.identity-fingerprint-help{color:#dbeafe;font-size:.9rem;line-height:1.6}.identity-copy-error{color:#fecaca;font-size:.85rem}.identity-dialog-close{width:100%;margin-top:1.25rem}.main-menu-page{min-height:100vh;display:flex;flex-direction:column;background:var(--gradient-dark);position:relative;overflow:hidden}.menu-background{position:absolute;inset:0;pointer-events:none;overflow:hidden}.card-decoration{position:absolute;font-size:15rem;opacity:.02;font-weight:700;-webkit-user-select:none;user-select:none;animation:float 6s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(20px)}}.card-decoration.card-1{top:-5%;left:-5%;color:#000;transform:rotate(-15deg);animation-delay:0s}.card-decoration.card-2{top:10%;right:-8%;color:#dc2626;transform:rotate(20deg);animation-delay:1s}.card-decoration.card-3{bottom:-5%;left:20%;color:#dc2626;transform:rotate(-10deg);animation-delay:2s}.card-decoration.card-4{bottom:15%;right:10%;color:#000;transform:rotate(25deg);animation-delay:3s}.menu-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2.5rem;z-index:10;background:#0003;border-bottom:var(--border-light)}.user-info{display:flex;align-items:center;gap:.75rem;background:linear-gradient(135deg,#ffffff14,#ffffff08);padding:.75rem 1.5rem;border-radius:2rem;border:var(--border-medium);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all var(--transition-normal)}.user-info:hover{background:linear-gradient(135deg,#ffffff1f,#ffffff0f);border-color:#fff3}.user-avatar{font-size:1.5rem;display:flex;align-items:center;justify-content:center}.user-name{font-size:1.1rem;font-weight:600;color:#e5e7eb}.user-identity{display:flex;flex-direction:column;gap:.1rem}.user-id{color:#cbd5e1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.7rem}.logout-btn{background:#ef444426;border:1px solid rgba(239,68,68,.3);color:#fca5a5;padding:.625rem 1.5rem;border-radius:.5rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:all var(--transition-normal)}.logout-btn:hover{background:#ef444440;border-color:#ef444480;transform:translateY(-1px)}.menu-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;z-index:10}.game-title{text-align:center;margin-bottom:3rem;animation:slideDown .6s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.game-title h1{font-size:4.5rem;font-weight:800;background:var(--gradient-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0;letter-spacing:.1em;text-shadow:0 0 30px rgba(251,191,36,.2)}.game-title .subtitle{font-size:1.25rem;color:#9ca3af;margin-top:.75rem;letter-spacing:.2em;font-weight:500}.menu-buttons{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:450px;animation:slideUp .6s ease-out .2s backwards}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.menu-btn{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;border-radius:1rem;border:2px solid transparent;cursor:pointer;transition:all var(--transition-normal);text-align:left;position:relative;overflow:hidden;font-size:1rem;font-weight:600}.menu-btn:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.1) 0%,transparent 50%);opacity:0;transition:opacity var(--transition-normal)}.menu-btn:hover:before{opacity:1}.menu-btn:hover{transform:translate(8px)}.menu-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-icon{font-size:2rem;width:3rem;text-align:center;flex-shrink:0}.btn-text{display:flex;flex-direction:column;gap:.15rem}.btn-title{font-size:1.2rem;font-weight:700;color:#fff}.btn-desc{font-size:.85rem;opacity:.75}.menu-btn-primary{background:linear-gradient(135deg,#166534,#14532d);color:#fff;border-color:#22c55e80;box-shadow:0 4px 20px #22c55e4d}.menu-btn-primary:hover:not(:disabled){box-shadow:0 6px 30px #22c55e80}.menu-btn-primary .btn-desc{color:#ffffffd9}.menu-btn-secondary{background:linear-gradient(135deg,#1d4ed8,#1e40af);color:#fff;border-color:#3b82f680;box-shadow:0 4px 20px #3b82f633}.menu-btn-secondary:hover:not(:disabled){box-shadow:0 6px 30px #3b82f666}.menu-btn-secondary .btn-desc{color:#ffffffd9}.menu-btn-tertiary{background:linear-gradient(135deg,#92400e,#78350f);color:#fff;border-color:#f59e0b80;box-shadow:0 4px 20px #f59e0b33}.menu-btn-tertiary:hover:not(:disabled){box-shadow:0 6px 30px #f59e0b66}.menu-btn-tertiary .btn-desc{color:#ffffffd9}.menu-btn-info{background:#ffffff14;color:#e5e7eb;border-color:#ffffff26;box-shadow:0 2px 12px #0003}.menu-btn-info:hover:not(:disabled){background:#ffffff1f;border-color:#ffffff40;box-shadow:0 4px 18px #0000004d}.menu-btn-info .btn-desc{color:#e5e7ebcc}.menu-btn-game-master{background:linear-gradient(135deg,#5b21b6,#3b0764);border-color:#a78bfa;box-shadow:0 4px 20px #8b5cf64d;color:#fff}.menu-btn-game-master:hover:not(:disabled){box-shadow:0 6px 30px #a78bfa73}.menu-btn-game-master .btn-desc{color:#ede9fe}.loading-spinner{position:absolute;right:1.5rem;width:1.5rem;height:1.5rem;border:2px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.menu-footer{text-align:center;padding:1.5rem;color:#6b7280;font-size:.85rem;z-index:10}.lobby-page{min-height:100vh;min-width:1200px;background:var(--gradient-dark);display:flex;flex-direction:column}.lobby-header{display:flex;align-items:center;gap:1.5rem;padding:1.5rem 2.5rem;background:#0000004d;border-bottom:var(--border-light);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.lobby-header h1{flex:1;margin:0;font-size:1.75rem;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.back-btn{background:#ffffff14;border:var(--border-medium);color:#e5e7eb;padding:.625rem 1.25rem;border-radius:var(--radius-md);font-size:.95rem;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.back-btn:hover{background:#ffffff1f;border-color:#fff3;transform:translateY(-2px)}.header-right{display:flex;align-items:center;gap:1.5rem}.user-name{color:#ffffffe6;font-size:1.1rem;font-weight:600;padding:.5rem 1rem;background:#667eea26;border-radius:var(--radius-full);border:var(--border-light)}.logout-btn{padding:.625rem 1.5rem;border-radius:var(--radius-md);border:var(--border-medium);background:#ef44441a;color:#fffc;font-size:.95rem;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.logout-btn:hover{background:#ef444433;border-color:#ef44444d;transform:translateY(-2px)}.lobby-main{flex:1;padding:2.5rem 3rem;max-width:1400px;margin:0 auto;width:100%}.lobby-actions{margin-bottom:2.5rem}.create-room-btn{padding:1rem 2.25rem;border-radius:var(--radius-lg);border:none;background:var(--gradient-primary);color:#fff;font-size:1.15rem;font-weight:600;cursor:pointer;transition:all var(--transition-normal);box-shadow:var(--shadow-md);position:relative;overflow:hidden}.create-room-btn:before{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent,rgba(255,255,255,.1),transparent);opacity:0;transform:translate(-100%);transition:opacity var(--transition-normal)}.create-room-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.create-room-btn:hover:before{opacity:1;transform:translate(100%)}.rooms-section h2{font-size:1.5rem;font-weight:700;margin:0 0 1.5rem;color:#fffffff2;display:flex;align-items:center;gap:.75rem}.rooms-section h2:before{content:"";width:4px;height:1.5rem;background:var(--gradient-primary);border-radius:2px}.no-rooms{color:#ffffff80;text-align:center;padding:3rem;background:#ffffff08;border-radius:var(--radius-xl);border:1px dashed rgba(255,255,255,.1);font-size:1.1rem}.rooms-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.room-card{display:flex;flex-direction:column;justify-content:space-between;padding:1.75rem;background:linear-gradient(135deg,#ffffff14,#ffffff08);border-radius:var(--radius-xl);border:var(--border-light);transition:all var(--transition-normal);position:relative;overflow:hidden}.room-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.05) 0%,transparent 50%);opacity:0;transition:opacity var(--transition-normal)}.room-card:hover{background:linear-gradient(135deg,#ffffff1f,#ffffff0f);border-color:#ffffff26;transform:translateY(-4px);box-shadow:var(--shadow-lg)}.room-card:hover:before{opacity:1}.room-info{flex:1;position:relative;z-index:1;margin-bottom:1rem}.room-name{margin:0 0 .5rem;font-size:1.3rem;font-weight:700;color:#fff}.room-host{margin:0 0 .5rem;font-size:.95rem;color:#fff9}.room-members{margin:0;font-size:.95rem;color:#ffffff80}.room-status{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1;padding-top:1rem;border-top:var(--border-light)}.player-count{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;padding:.5rem 1rem;background:#4ade8026;border-radius:var(--radius-full);border:1px solid rgba(74,222,128,.3);color:#86efac}.player-count.full{background:#ef444426;border-color:#ef44444d;color:#fca5a5}.join-btn{padding:.75rem 1.75rem;border-radius:var(--radius-md);border:none;background:linear-gradient(135deg,#166534,#14532d);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all var(--transition-normal);box-shadow:0 2px 12px #22c55e33}.join-btn:hover:not(:disabled){background:linear-gradient(135deg,#16a34a,#15803d);transform:translateY(-2px);box-shadow:0 4px 18px #22c55e66}.join-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.join-btn:disabled{opacity:.5;cursor:not-allowed}.modal-overlay{position:fixed;inset:0;background:#000c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1.5rem;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}to{opacity:1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}}.modal{background:linear-gradient(135deg,#1a1a2ef2,#0f0f19f2);border-radius:var(--radius-2xl);padding:2.5rem;width:100%;max-width:500px;border:var(--border-medium);box-shadow:var(--shadow-xl);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);animation:slideUp .3s cubic-bezier(.34,1.56,.64,1)}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.modal h3{margin:0 0 1.5rem;font-size:1.75rem;font-weight:800;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.modal input{width:100%;padding:1rem 1.25rem;border-radius:var(--radius-lg);border:var(--border-medium);background:#ffffff14;color:#fff;font-size:1.05rem;margin-bottom:1.5rem;box-sizing:border-box;transition:all var(--transition-normal)}.modal input:focus{outline:none;border-color:var(--color-primary);background:#ffffff1f;box-shadow:0 0 0 3px #667eea33}.modal input::placeholder{color:#fff6}.modal-actions{display:flex;gap:1rem;justify-content:flex-end}.cancel-btn{padding:.875rem 1.75rem;border-radius:var(--radius-md);border:var(--border-medium);background:#ffffff14;color:#fffc;font-size:1rem;font-weight:600;cursor:pointer;transition:all var(--transition-normal)}.cancel-btn:hover{background:#ffffff1f;border-color:#fff3;transform:translateY(-2px)}.submit-btn{padding:.875rem 1.75rem;border-radius:var(--radius-md);border:none;background:var(--gradient-primary);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 16px #667eea66}.submit-btn:disabled{opacity:.5;cursor:not-allowed}.modal .error{color:#fecdd3;font-size:.95rem;margin-top:.5rem}.joined-room-section{margin-bottom:2rem}.joined-room-section h2{font-size:1.5rem;font-weight:600;margin:0 0 1.25rem;color:#4ade80}.joined-room-card{display:flex;justify-content:space-between;align-items:center;padding:1.75rem 2rem;background:linear-gradient(135deg,#4ade8026,#22c55e1a);border-radius:16px;border:2px solid rgba(74,222,128,.4)}.joined-room-card .room-info{flex:1}.joined-room-card .room-name{margin:0 0 .375rem;font-size:1.5rem;font-weight:600;color:#4ade80}.joined-room-card .room-host{margin:0 0 .375rem;font-size:1.05rem;color:#ffffffb3}.joined-room-card .room-members{margin:0 0 .5rem;font-size:1.05rem;color:#fff9}.waiting-message{margin:0;font-size:1.1rem;color:#fbbf24;font-weight:500}.leave-btn{padding:.75rem 1.75rem;border-radius:10px;border:1px solid rgba(255,107,129,.5);background:#ff6b8133;color:#fecdd3;font-size:1.05rem;font-weight:500;cursor:pointer;transition:background .2s}.leave-btn:hover{background:#ff6b814d}.room-card.current{border-color:#4ade8066;background:#4ade801a}.current-badge{display:inline-block;margin-left:.625rem;padding:.2rem .625rem;font-size:.8rem;font-weight:600;background:#4ade80;color:#1a1a2e;border-radius:6px;vertical-align:middle}.room-actions{display:flex;flex-direction:column;gap:1rem;align-items:flex-end}.com-controls{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:flex-end}.com-btn{padding:.625rem 1rem;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.com-btn.add-com{background:#6366f133;border:1px solid rgba(99,102,241,.5);color:#c7d2fe}.com-btn.add-com:hover:not(:disabled){background:#6366f14d}.com-btn.remove-com{background:#f9731633;border:1px solid rgba(249,115,22,.5);color:#fb923c}.com-btn.remove-com:hover:not(:disabled){background:#f973164d}.com-btn:disabled{opacity:.5;cursor:not-allowed}.start-com-btn{padding:.75rem 1.5rem;border-radius:10px;background:linear-gradient(135deg,#4ade80,#22c55e);border:none;color:#1a1a2e;font-size:1.1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.start-com-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #4ade8059}.start-com-btn:disabled{opacity:.6;cursor:not-allowed}:root{color-scheme:light dark;--font-sans: "Noto Sans JP", "Hiragino Sans", "Yu Gothic UI", Meiryo, "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;font-family:var(--font-sans);font-kerning:normal;font-feature-settings:"kern" 1;line-height:1.5;background-color:#1a1d2e;color:#f0f4ff;font-size:16px;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--line-height-ui: 1.35;--line-height-body: 1.5;--letter-spacing-ui: .01em;--letter-spacing-heading: .02em;--letter-spacing-label: .08em;--control-size-min: 2.75rem;--color-surface-page: #1a1d2e;--color-surface-card: #ffffff;--color-surface-game-deep: #03100c;--color-text-primary: #f8fafc;--color-text-secondary: #cbd5e1;--color-text-muted: #aebccf;--color-focus-inner: #facc15;--color-focus-outer: #111827;--color-primary: #a5b4fc;--color-primary-light: #c7d2fe;--color-primary-dark: #4055b5;--color-secondary: #c4b5fd;--color-secondary-light: #ddd6fe;--color-secondary-dark: #5b3a84;--color-accent-gold: #fbbf24;--color-accent-gold-dark: #f59e0b;--color-accent-purple: #a855f7;--color-accent-blue: #3b82f6;--color-accent-cyan: #06b6d4;--color-accent-pink: #ec4899;--color-suit-spades-on-light: #111827;--color-suit-clubs-on-light: #111827;--color-suit-hearts-on-light: #b91c1c;--color-suit-diamonds-on-light: #b91c1c;--color-suit-joker-on-light: #6d28d9;--color-suit-spades-on-dark: #f8fafc;--color-suit-clubs-on-dark: #f8fafc;--color-suit-hearts-on-dark: #fda4af;--color-suit-diamonds-on-dark: #fda4af;--color-suit-joker-on-dark: #d8b4fe;--gradient-dark: linear-gradient( 135deg, #1e2139 0%, #2a2d4a 50%, #1f2335 100% );--gradient-primary: linear-gradient( 135deg, var(--color-primary-dark) 0%, var(--color-secondary-dark) 100% );--gradient-accent: linear-gradient( 135deg, #fbbf24 0%, #f59e0b 50%, #d97706 100% );--gradient-glass: linear-gradient( 135deg, rgba(255, 255, 255, .1), rgba(255, 255, 255, .05) );--shadow-soft: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--shadow-xl: 0 12px 32px rgba(0, 0, 0, .6);--shadow-glow: 0 0 20px rgba(102, 126, 234, .3);--border-light: 1px solid rgba(255, 255, 255, .05);--border-medium: 1px solid rgba(255, 255, 255, .1);--border-strong: 1px solid rgba(255, 255, 255, .15);--game-color-surface: rgba(12, 30, 25, .9);--game-color-surface-strong: rgba(6, 20, 16, .97);--game-color-border: rgba(221, 236, 227, .18);--game-color-border-strong: rgba(221, 236, 227, .32);--game-color-action: #6ee7b7;--game-color-emphasis: #f6c768;--game-radius-sm: .65rem;--game-radius-md: 1rem;--game-radius-lg: 1.25rem;--game-space-xs: var(--space-1);--game-space-sm: var(--space-2);--game-space-md: var(--space-3);--game-space-lg: var(--space-4);--game-motion-fast: .16s;--game-motion-normal: .26s;--spacing-xs: var(--space-1);--spacing-sm: var(--space-2);--spacing-md: var(--space-4);--spacing-lg: var(--space-6);--spacing-xl: var(--space-8);--spacing-2xl: var(--space-12);--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: 1rem;--radius-xl: 1.5rem;--radius-2xl: 2rem;--radius-full: 9999px;--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease}*,*:before,*:after{box-sizing:border-box}html,body{width:100%;max-width:100%;margin:0;min-height:100vh;background-color:var(--color-surface-page);color:var(--color-text-primary);font-size:1rem;font-family:var(--font-sans);font-kerning:normal;font-feature-settings:"kern" 1;text-rendering:optimizeLegibility}:where(h1,h2,h3,h4){line-height:1.25;letter-spacing:var(--letter-spacing-heading);font-feature-settings:"kern" 1,"palt" 1}:where(button,input,select,textarea){font:inherit;letter-spacing:var(--letter-spacing-ui)}:where(button,[role=button],input,select,textarea,summary){touch-action:manipulation}body :is(button,[role=button],input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea,summary){min-block-size:var(--control-size-min)!important}:where(.score,.points,time,[data-numeric=true]){font-variant-numeric:tabular-nums}#root{min-height:100vh;min-width:0;width:100%;max-width:100%}.btn{min-height:var(--control-size-min);padding:var(--space-3) var(--space-5);border-radius:12px;font-size:var(--font-size-md);font-weight:600;line-height:var(--line-height-ui);letter-spacing:var(--letter-spacing-ui);cursor:pointer;transition:color var(--transition-normal),background-color var(--transition-normal),border-color var(--transition-normal),box-shadow var(--transition-normal),transform var(--transition-normal),opacity var(--transition-normal);border:none;position:relative;overflow:hidden}.btn:before{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent,rgba(255,255,255,.1),transparent);opacity:0;transform:translate(-100%);transition:opacity var(--transition-normal)}.btn:hover:before{opacity:1;transform:translate(100%)}.btn:disabled{opacity:.72;cursor:not-allowed;filter:saturate(.65)}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-md)}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-md)}.btn-secondary{background:#ffffff1a;color:var(--color-text-primary);border:var(--border-medium)}.btn-secondary:hover:not(:disabled){background:#ffffff26;border-color:#fff3;transform:translateY(-2px)}.btn-secondary:active:not(:disabled){transform:translateY(0)}.btn-outline{background:transparent;color:var(--color-primary-light);border:1px solid var(--color-primary-light)}.btn-outline:hover:not(:disabled){background:#667eea1a;border-color:var(--color-primary-light)}.btn-danger{background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff;box-shadow:var(--shadow-md)}.btn-danger:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.glass{background:linear-gradient(135deg,#ffffff1a,#ffffff0d);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:var(--border-light)}.glass-strong{background:linear-gradient(135deg,#ffffff26,#ffffff14);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:var(--border-medium)}.card{background:linear-gradient(135deg,#ffffff14,#ffffff08);border:var(--border-light);border-radius:var(--radius-lg);padding:var(--spacing-lg);transition:background var(--transition-normal),border-color var(--transition-normal),box-shadow var(--transition-normal),transform var(--transition-normal)}.card:hover{background:linear-gradient(135deg,#ffffff1f,#ffffff0f);border-color:#ffffff26;transform:translateY(-2px);box-shadow:var(--shadow-md)}.badge{display:inline-block;padding:.25rem .75rem;border-radius:var(--radius-full);font-size:.8rem;font-weight:600;background:#667eea33;color:var(--color-primary-light);border:1px solid rgba(102,126,234,.3)}.badge-gold{background:#fbbf2433;color:#fcd34d;border-color:#fbbf244d}.badge-purple{background:#a855f733;color:#d8b4fe;border-color:#a855f74d}.spinner{display:inline-block;width:1em;height:1em;border:2px solid rgba(255,255,255,.2);border-top-color:var(--color-primary);border-radius:var(--radius-full);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.pulse{animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 24px #667eea66}.btn-success{background:linear-gradient(135deg,#4ade80,#22c55e);color:#1a1a2e}.btn-success:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 24px #4ade8066}.btn-secondary{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:var(--color-text-primary)}.btn-secondary:hover:not(:disabled){background:#ffffff26}:where(a,button,input,select,textarea,summary,[tabindex]:not([tabindex="-1"])):focus-visible{outline:3px solid var(--color-focus-inner);outline-offset:3px;box-shadow:0 0 0 5px var(--color-focus-outer)}@media(pointer:coarse){:root{--control-size-min: 3rem}}:root{--safe-area-inset-top: env(safe-area-inset-top, 0px);--safe-area-inset-bottom: env(safe-area-inset-bottom, 0px);--safe-area-inset-left: env(safe-area-inset-left, 0px);--safe-area-inset-right: env(safe-area-inset-right, 0px)}html{overscroll-behavior:none;-webkit-overflow-scrolling:touch}body{min-height:100vh;min-height:-webkit-fill-available;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;overscroll-behavior-y:contain}input,textarea,[contenteditable=true]{-webkit-user-select:text;user-select:text}.ios-status-bar-bg{position:fixed;top:0;left:0;right:0;height:var(--safe-area-inset-top);background:var(--gradient-dark);z-index:9999}.android-nav-bar-bg{position:fixed;bottom:0;left:0;right:0;height:var(--safe-area-inset-bottom);background:var(--gradient-dark);z-index:9999}.safe-area{display:flex;flex-direction:column;min-height:100vh;background:var(--gradient-dark)}.safe-area-view{display:flex;flex-direction:column;flex:1}.bottom-nav{position:fixed;bottom:0;left:0;right:0;padding-bottom:var(--safe-area-inset-bottom);background:linear-gradient(180deg,#1e293bf2,#0f172afa);border-top:1px solid rgba(102,126,234,.2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;box-shadow:0 -4px 20px #0006}.fullscreen-modal{position:fixed;inset:0;padding-top:var(--safe-area-inset-top);padding-bottom:var(--safe-area-inset-bottom);padding-left:var(--safe-area-inset-left);padding-right:var(--safe-area-inset-right);background:var(--gradient-dark);z-index:9000;overflow-y:auto;animation:slideUp .3s cubic-bezier(.34,1.56,.64,1)}.fab{position:fixed;bottom:calc(16px + var(--safe-area-inset-bottom));right:16px;z-index:100;background:var(--gradient-primary);border-radius:50%;padding:16px;box-shadow:var(--shadow-lg);transition:all var(--transition-normal) ease}.fab:active{transform:scale(.92);box-shadow:var(--shadow-md)}.scrollable-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:auto}.touchable{transition:transform var(--transition-fast) ease,opacity var(--transition-fast) ease;border-radius:var(--radius-lg)}.touchable:active{transform:scale(.96);opacity:.85}.ios-list{background:#1e293b99;border-radius:var(--radius-xl);overflow:hidden;border:var(--border-medium);box-shadow:var(--shadow-md)}.ios-list-item{padding:16px;border-bottom:1px solid rgba(102,126,234,.15);transition:all var(--transition-fast) ease;background:transparent}.ios-list-item:hover{background:#667eea1a}.ios-list-item:last-child{border-bottom:none}.ripple{position:relative;overflow:hidden}.ripple:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#667eea66;border-radius:50%;transform:translate(-50%,-50%);opacity:0;transition:width var(--transition-normal),height var(--transition-normal),opacity var(--transition-normal)}.ripple:active:after{width:200%;height:200%;opacity:1;transition:width 0s,height 0s,opacity 0s}.keyboard-open .bottom-nav,.keyboard-open .fab{display:none}@media(orientation:landscape){.safe-area,.bottom-nav{padding-left:var(--safe-area-inset-left);padding-right:var(--safe-area-inset-right)}}@media(max-width:480px){.hide-on-mobile{display:none!important}.mobile-full-width{width:100%}.ios-list-item{padding:12px;font-size:14px}.fab{bottom:calc(12px + var(--safe-area-inset-bottom));right:12px;padding:12px}}@media(min-width:768px){.hide-on-tablet{display:none!important}.tablet-container{max-width:720px;margin:0 auto}.ios-list{max-width:600px}}@media(prefers-color-scheme:dark){:root{--bg-primary: linear-gradient(135deg, #0c0c1d 0%, #16213e 100%);--bg-secondary: rgba(30, 41, 59, .7);--text-primary: #ffffff;--text-secondary: rgba(255, 255, 255, .7)}.safe-area{background:var(--gradient-dark)}.ios-list{background:#1e293b99}}@media(prefers-color-scheme:light){:root{--bg-primary: linear-gradient(135deg, #ffffff 0%, #f5f7fa 100%);--bg-secondary: rgba(245, 247, 250, .9);--text-primary: #000000;--text-secondary: rgba(0, 0, 0, .7)}.safe-area{background:linear-gradient(135deg,#fff,#f5f7fa)}.ios-list{background:#f5f7facc}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.haptic-button{cursor:pointer}.haptic-button:active{transform:scale(.95);transition:none}.notification-banner{background:var(--gradient-primary);border-radius:var(--radius-lg);padding:12px 16px;margin:8px;color:#fff;box-shadow:var(--shadow-md);animation:slideDown .3s ease}.notification-banner.success{background:linear-gradient(135deg,#10b981,#059669)}.notification-banner.error{background:linear-gradient(135deg,#ef4444,#dc2626)}.notification-banner.warning{background:linear-gradient(135deg,#f59e0b,#d97706)}.mobile-input{font-size:16px;padding:12px 16px;border:1px solid rgba(102,126,234,.3);border-radius:var(--radius-lg);background:#1e293b99;color:#fff;transition:all var(--transition-normal) ease}.mobile-input:focus{outline:none;border-color:#667eeacc;background:#1e293bcc;box-shadow:0 0 0 3px #667eea33}.mobile-button{padding:16px;border-radius:var(--radius-lg);font-size:16px;font-weight:600;border:none;cursor:pointer;transition:all var(--transition-normal) ease;-webkit-user-select:none;user-select:none}.mobile-button:active{transform:scale(.98)}.swipeable{touch-action:pan-y;cursor:grab}.swipeable:active{cursor:grabbing}.no-overscroll{overscroll-behavior:contain}.interactive-card{background:#1e293b99;border:1px solid rgba(102,126,234,.2);border-radius:var(--radius-lg);padding:16px;transition:all var(--transition-normal) ease}.interactive-card:active{transform:scale(.98);border-color:#667eea80;background:#1e293bcc}
