:root{--bg: #14141c;--bg-elevated: #1c1c28;--bg-soft: #242436;--surface: #222232;--surface-2: #2a2a3c;--text: #f4f1fa;--text-muted: #a8a0b8;--text-dim: #7a728c;--tile-border: #3a3650;--tile-filled-border: #5a5478;--key-bg: #4a4660;--key-text: #f4f1fa;--correct: #7bc9a6;--present: #e8c97a;--absent: #3a3650;--accent: #b8a4e8;--accent-2: #8ec5e8;--accent-soft: color-mix(in srgb, var(--accent) 22%, transparent);--accent-glow: color-mix(in srgb, var(--accent) 35%, transparent);--danger: #e8a0b0;--success: #7bc9a6;--warning: #e8c97a;--toast-bg: #f4f1fa;--toast-text: #1c1c28;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--shadow-soft: 0 8px 28px rgba(10, 8, 24, .45);--shadow-card: 0 4px 16px rgba(10, 8, 24, .28);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px)}html.color-blind{--correct: #f0a070;--present: #8ec5e8}*{box-sizing:border-box}html,body,#root{height:100%}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;background:radial-gradient(1200px 600px at 10% -10%,rgba(184,164,232,.18),transparent 55%),radial-gradient(900px 500px at 100% 0%,rgba(142,197,232,.14),transparent 50%),radial-gradient(800px 500px at 50% 110%,rgba(232,160,176,.1),transparent 45%),var(--bg);background-attachment:fixed;color:var(--text);-webkit-font-smoothing:antialiased;overflow-x:hidden}button,input,textarea{font:inherit;touch-action:manipulation}button{-webkit-tap-highlight-color:transparent}#root{min-height:100%;padding-left:var(--safe-left);padding-right:var(--safe-right)}.app-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--text-muted);padding:24px}.loading-content{width:min(100%,320px);display:flex;flex-direction:column;align-items:center;gap:14px}.loading-logo{display:block;width:min(90%,250px);height:auto}.loading-content p{margin:0;font-size:.9rem}.loading-progress{width:100%;height:8px;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--tile-border));border-radius:999px;background:var(--surface);box-shadow:inset 0 1px 3px #0a08184d}.loading-progress-bar{display:block;width:42%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-2));box-shadow:0 0 12px var(--accent-glow);animation:loading-progress 1.25s ease-in-out infinite}@keyframes loading-progress{0%{transform:translate(-110%)}to{transform:translate(250%)}}.launcher{height:100%;min-height:100%;overflow-y:auto;scrollbar-width:none;overscroll-behavior:contain;max-width:760px;margin:0 auto;padding:calc(20px + var(--safe-top)) 16px calc(36px + var(--safe-bottom))}.launcher::-webkit-scrollbar{display:none}.launcher-header{text-align:center;margin-bottom:28px}.launcher-logo{display:block;margin:0 auto 10px;width:min(90%,250px);height:auto}.launcher-header p{margin:0;color:var(--text-muted);font-size:.95rem}.game-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.game-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:16px;min-height:128px;border:1px solid color-mix(in srgb,var(--accent, var(--accent)) 35%,var(--tile-border));border-radius:var(--radius-lg);background:linear-gradient(155deg,color-mix(in srgb,var(--accent, #b8a4e8) 16%,var(--surface)) 0%,var(--surface) 55%);box-shadow:var(--shadow-card);color:var(--text);cursor:pointer;text-align:left;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.game-card:hover,.game-card:focus-visible{border-color:var(--accent, var(--correct));transform:translateY(-3px);box-shadow:0 10px 28px #0a081866,0 0 0 1px color-mix(in srgb,var(--accent, #b8a4e8) 40%,transparent);outline:none}.game-card:active{transform:translateY(-1px)}.game-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:color-mix(in srgb,var(--accent, #b8a4e8) 28%,transparent);color:var(--accent, var(--correct));font-size:1.25rem;font-weight:700;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent, #b8a4e8) 35%,transparent)}.game-name{font-size:1.05rem;font-weight:750;letter-spacing:.01em}.game-tagline{font-size:.78rem;color:var(--text-muted);line-height:1.4}.game-theme-root{min-height:100%}.connections-app,.nerdle-app,.bee-app,.crossword-app,.wordle-app,.ooi-app,.rf-app,.wl-app,.sudoku-app{min-height:100%;width:100%;margin:0 auto;display:flex;flex-direction:column;padding-bottom:var(--safe-bottom)}.connections-app,.nerdle-app,.bee-app,.crossword-app{max-width:560px}.connections-main,.nerdle-main,.bee-main,.crossword-main{flex:1;padding:14px 14px 20px;display:flex;flex-direction:column;align-items:center;gap:14px;width:100%}.header{display:grid;grid-template-columns:minmax(64px,1fr) auto minmax(64px,1fr);align-items:center;min-height:56px;padding:calc(6px + var(--safe-top)) 10px 8px;border-bottom:1px solid color-mix(in srgb,var(--accent) 18%,var(--tile-border));background:color-mix(in srgb,var(--bg-elevated) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);gap:6px;position:sticky;top:0;z-index:20}.header-side{display:flex;align-items:center;gap:4px;min-width:0}.header-side.left{justify-content:flex-start}.header-side.right{justify-content:flex-end}.header-center{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}.header h1{margin:0;font-size:clamp(1rem,4vw,1.3rem);font-weight:750;letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46vw}.header-meta{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.meta-badge{font-size:.62rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);background:var(--surface);border:1px solid var(--tile-border);border-radius:999px;padding:3px 9px}.text-btn{border:none;background:transparent;color:var(--text);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;padding:8px 10px;border-radius:var(--radius-sm);min-height:40px}.text-btn:hover,.text-btn:focus-visible{background:var(--surface);outline:none}.icon-btn{width:40px;height:40px;border:none;background:transparent;color:var(--text);font-size:1.15rem;cursor:pointer;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center}.icon-btn:hover,.icon-btn:focus-visible{background:var(--surface);outline:none}.toast{background:var(--toast-bg);color:var(--toast-text);padding:12px 16px;border-radius:var(--radius-md);font-weight:700;font-size:.875rem;text-align:center;box-shadow:var(--shadow-soft)}.toast.hint-toast{background:#b8dff8;color:#1c1c28}.primary-btn,.secondary-btn{border:none;border-radius:var(--radius-md);padding:12px 16px;font-weight:700;cursor:pointer;min-height:44px;transition:transform .12s ease,opacity .12s ease,box-shadow .12s ease}.primary-btn{background:linear-gradient(135deg,var(--accent) 0%,color-mix(in srgb,var(--accent) 70%,#8ec5e8) 100%);color:#1a1528;box-shadow:0 4px 14px var(--accent-glow)}.primary-btn:hover:not(:disabled){transform:translateY(-1px)}.primary-btn:disabled{opacity:.45;cursor:default;box-shadow:none}.secondary-btn{background:var(--surface-2);color:var(--text);border:1px solid var(--tile-border)}.secondary-btn:hover{background:color-mix(in srgb,var(--accent) 14%,var(--surface-2))}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0c0a16b8;display:flex;align-items:center;justify-content:center;z-index:1000;padding:max(16px,var(--safe-top)) 12px max(16px,var(--safe-bottom));overflow-y:auto;-webkit-overflow-scrolling:touch}.modal{position:relative;background:linear-gradient(180deg,var(--bg-elevated),var(--surface));border:1px solid color-mix(in srgb,var(--accent) 28%,var(--tile-border));border-radius:var(--radius-lg);padding:22px 22px 20px;text-align:center;max-width:380px;width:100%;max-height:min(88vh,640px);overflow-y:auto;box-shadow:var(--shadow-soft);margin:auto}.modal h2{margin:0 0 8px}.modal p{margin:0 0 14px;color:var(--text-muted)}.play-again{background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 65%,#8ec5e8));color:#1a1528;border:none;border-radius:var(--radius-md);padding:12px 24px;font-weight:700;cursor:pointer;min-height:44px;width:100%;max-width:240px}.hint-action-btn{border:1px solid var(--tile-border);background:var(--surface-2);color:var(--text);border-radius:var(--radius-sm, 8px);padding:8px 12px;min-height:44px;font-size:.78rem;font-weight:700;cursor:pointer;white-space:nowrap}.hint-action-btn:hover:not(:disabled){border-color:var(--accent, #b8a4e8);background:color-mix(in srgb,var(--accent, #b8a4e8) 18%,var(--surface-2))}.hint-action-btn:disabled,.hint-action-btn.exhausted{opacity:.45;cursor:default}.game-info-modal{text-align:left;max-width:420px;max-height:none;overflow:visible;padding:18px 18px 16px}.game-info-eyebrow{margin:0 0 6px;font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--accent, #b8a4e8);text-align:center}.game-info-modal h2{text-align:center;padding-right:24px;margin:0 0 6px}.game-info-modal h3{margin:8px 0 5px;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.game-info-concept{margin:0 0 10px;color:var(--text-muted);line-height:1.35;font-size:.82rem}.game-info-rules{margin:0 0 12px;padding-left:16px;display:flex;flex-direction:column;gap:4px}.game-info-rules li{color:var(--text-muted);font-size:.76rem;line-height:1.25}.game-info-modal .primary-btn{width:100%;min-height:42px;margin-top:2px}.modal-close{position:absolute;top:8px;right:10px;border:none;background:transparent;color:var(--text);font-size:1.5rem;line-height:1;cursor:pointer;width:40px;height:40px}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}.shake{animation:shake .6s ease}@media (max-width: 480px){.game-info-modal{padding:14px 14px 12px}.game-info-eyebrow{margin-bottom:3px;font-size:.62rem}.game-info-modal h2{font-size:1.15rem}.game-info-concept{margin-bottom:7px;font-size:.74rem;line-height:1.25}.game-info-modal h3{margin-top:6px;margin-bottom:4px;font-size:.68rem}.game-info-rules{gap:3px;margin-bottom:9px;padding-left:14px}.game-info-rules li{font-size:.68rem;line-height:1.18}.game-info-modal .primary-btn{min-height:40px;padding:9px 14px}.launcher{padding-left:12px;padding-right:12px}.game-grid{grid-template-columns:1fr 1fr;gap:10px}.game-card{min-height:118px;padding:14px 12px}.game-tagline{font-size:.72rem}.connections-main,.nerdle-main,.bee-main,.crossword-main{padding:12px 10px 18px;gap:12px}.header{min-height:52px;padding-left:6px;padding-right:6px}.text-btn{padding:8px 6px;font-size:.68rem}}@media (max-width: 360px){.game-grid{grid-template-columns:1fr}}.keyboard{width:100%;max-width:500px;display:flex;flex-direction:column;gap:8px;-webkit-user-select:none;user-select:none;margin:0 auto}.keyboard-row{display:flex;justify-content:center;gap:6px}.key{min-width:43px;height:58px;padding:0 8px;border:none;border-radius:4px;background:var(--key-bg);color:var(--key-text);font-size:.8125rem;font-weight:700;cursor:pointer;text-transform:uppercase;display:flex;align-items:center;justify-content:center}.key.wide{min-width:65px;flex:1.5;font-size:.75rem}.key:active:not(:disabled){opacity:.85}.key:disabled{cursor:default;opacity:.7}.key.correct{background:var(--correct);color:#fff}.key.present{background:var(--present);color:#1c1c28}.key.absent{background:#1a1826;color:var(--text-muted)}@media (max-width: 480px){.key{min-width:28px;height:48px;padding:0 4px;font-size:.75rem}.key.wide{min-width:42px;font-size:.65rem}}
