@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--bg: #121213;--surface: #1a1a1b;--border: #3a3a3c;--text: #ffffff;--text-muted: #818384;--correct: #538d4e;--present: #b59f3b;--absent: #3a3a3c;--tile-empty: #121213;--tile-border: #3a3a3c;--tile-filled-border: #565758;--accent: #538d4e;--error: #e74c3c;--tile-size: clamp(52px, min(16vw, 9.5vh), 110px);--tile-gap: clamp(4px, .8vmin, 12px)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%;overflow:hidden}#root{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}.app-container{height:100%;width:100%;position:relative;overflow:hidden}.screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;width:100%;padding:24px}.title{font-size:2.5rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px}.title-small{font-size:1.4rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:12px}.subtitle{font-size:1.1rem;color:var(--text-muted);margin-bottom:40px}.unlock-screen{gap:16px}.unlock-content{display:flex;flex-direction:column;align-items:center;gap:16px}.unlock-btn{background:var(--accent);color:#fff;border:none;border-radius:12px;padding:24px 48px;font-size:1.5rem;font-weight:700;cursor:pointer;transition:transform .2s,opacity .2s;margin-top:20px}.unlock-btn:active{transform:scale(.95)}.unlock-btn.pulse{animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.loading-box{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:20px}.spinner{width:48px;height:48px;border:4px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hint{font-size:.9rem;color:var(--text-muted)}.error-box{display:flex;flex-direction:column;align-items:center;gap:16px;color:var(--error);font-size:1.1rem;margin-top:20px}.footer-note{position:absolute;bottom:24px;font-size:.85rem;color:var(--text-muted);text-align:center;padding:0 24px}.stats-screen{justify-content:flex-start;padding-top:60px;gap:24px}.stats-grid{display:flex;gap:32px;margin:16px 0}.stat-item{display:flex;flex-direction:column;align-items:center;gap:4px}.stat-number{font-size:2.5rem;font-weight:700}.stat-label{font-size:.85rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.section-title{font-size:1.2rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-top:8px}.histogram{width:100%;max-width:400px;display:flex;flex-direction:column;gap:6px}.histogram-row{display:flex;align-items:center;gap:8px}.histogram-label{font-size:1rem;font-weight:600;width:20px;text-align:right}.histogram-bar-bg{flex:1;height:28px;background:transparent;border-radius:4px}.histogram-bar{height:100%;background:var(--correct);border-radius:4px;display:flex;align-items:center;justify-content:flex-end;padding-right:8px;min-width:0;transition:width .5s ease}.histogram-bar.loss{background:var(--absent)}.histogram-count{font-size:.85rem;font-weight:600}.game-screen{justify-content:flex-start;padding-top:clamp(12px,2.5vh,36px);gap:clamp(8px,1.5vh,20px)}.board{display:flex;flex-direction:column;gap:var(--tile-gap)}.board.shake{animation:shake .5s ease}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}.board-row{display:flex;gap:var(--tile-gap)}.tile{width:var(--tile-size);height:var(--tile-size);display:flex;align-items:center;justify-content:center;border:2px solid var(--tile-border);border-radius:4px;background:var(--tile-empty);transition:border-color .1s}.tile.filled{border-color:var(--tile-filled-border);animation:pop .1s ease}@keyframes pop{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.tile.flip{animation:flip .5s ease forwards}.tile.correct{--flip-bg: var(--correct)}.tile.present{--flip-bg: var(--present)}.tile.absent{--flip-bg: var(--absent)}@keyframes flip{0%{transform:rotateX(0);background:var(--tile-empty);border-color:var(--tile-filled-border)}50%{transform:rotateX(90deg);background:var(--tile-empty);border-color:var(--tile-filled-border)}51%{transform:rotateX(90deg);background:var(--flip-bg, var(--absent));border-color:var(--flip-bg, var(--absent))}to{transform:rotateX(0);background:var(--flip-bg, var(--absent));border-color:var(--flip-bg, var(--absent))}}.tile-letter{font-size:calc(var(--tile-size) * .52);font-weight:700;line-height:1}.letter-keys{display:flex;flex-direction:column;align-items:center;gap:var(--tile-gap);margin-top:calc(var(--tile-gap) * .5)}.letter-keys-row{display:flex;gap:3px}.letter-key{width:calc((5 * var(--tile-size) + 4 * var(--tile-gap) - 36px) / 13);height:calc(var(--tile-size) * .5);display:flex;align-items:center;justify-content:center;border-radius:3px;font-size:calc(var(--tile-size) * .16);font-weight:700;color:var(--text);background:#818384;transition:background .3s ease;-webkit-user-select:none;user-select:none}.letter-key.correct{background:var(--correct)}.letter-key.present{background:var(--present)}.letter-key.absent{background:var(--absent)}.voice-commands{margin-top:16px;text-align:center}.command-hint{font-size:1rem;color:var(--text-muted)}.command-hint strong{color:var(--text)}.game-commands{margin-top:8px}.listening-indicator{font-family:inherit;appearance:none;-webkit-appearance:none;display:flex;align-items:center;gap:8px;padding:10px 20px;background:#538d4e26;border:1px solid rgba(83,141,78,.3);border-radius:24px;font-size:.95rem;color:var(--accent);position:fixed;bottom:calc(24px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .2s,border-color .2s,color .2s}.listening-indicator:active{opacity:.75}.listening-indicator--muted{background:#b428282e;border-color:#c83c3c73;color:#e07070}.listening-indicator--muted .mic-icon{animation:none}.listening-indicator.inline{position:static;transform:none;margin-top:12px}.mic-icon{font-size:1.2rem;animation:mic-pulse 1.5s ease-in-out infinite}@keyframes mic-pulse{0%,to{opacity:1}50%{opacity:.4}}.result-screen{justify-content:center}.result-content{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}.result-emoji{font-size:4rem;animation:bounce-in .6s ease}.result-emoji.win{animation:bounce-in .6s ease,celebrate 1s ease .6s}@keyframes bounce-in{0%{transform:scale(0);opacity:0}50%{transform:scale(1.3)}to{transform:scale(1);opacity:1}}@keyframes celebrate{0%,to{transform:rotate(0)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}}.result-title{font-size:2rem;font-weight:800}.result-message{font-size:1.2rem;color:var(--text-muted);max-width:300px;line-height:1.5}.result-detail{font-size:1.1rem;margin-top:8px}.result-detail strong{color:var(--correct);letter-spacing:.15em}.confirm-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:100;animation:fade-in .2s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.confirm-box{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:40px;text-align:center;max-width:360px;width:90%}.confirm-message{font-size:1.4rem;font-weight:600;margin-bottom:20px}.launcher-screen{justify-content:flex-start;padding-top:60px;gap:32px}.launcher-cards{display:flex;flex-direction:column;gap:16px;width:100%;max-width:480px}.launcher-card{display:flex;align-items:center;gap:20px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:24px;transition:border-color .2s,transform .15s}.launcher-card:active{transform:scale(.98)}.launcher-card-icon{width:3.2rem;height:3.2rem;font-size:2.8rem;line-height:1;flex-shrink:0;display:flex;align-items:center;justify-content:center}.chess-launcher-icon{font-size:2.8rem;line-height:1;display:block;color:#fff;text-shadow:0 0 3px rgba(0,0,0,.9),0 0 6px rgba(0,0,0,.6);filter:drop-shadow(0 1px 2px rgba(0,0,0,.8))}.launcher-card-info{display:flex;flex-direction:column;gap:4px;text-align:left}.launcher-card-name{font-size:1.5rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.launcher-card-desc{font-size:.95rem;color:var(--text-muted);line-height:1.4}.launcher-card-cmd{font-size:.9rem;color:var(--text-muted);margin-top:4px}.launcher-card-cmd strong{color:var(--accent)}:root{--chess-sq: clamp(30px, min(9vw, 8.5vh), 64px);--chess-coord: 26px}.chess-coord-container{display:grid;grid-template-columns:var(--chess-coord) auto var(--chess-coord);grid-template-rows:var(--chess-coord) auto var(--chess-coord);gap:2px}.chess-corner{width:var(--chess-coord);height:var(--chess-coord)}.chess-files-row{display:flex}.chess-file-label{width:var(--chess-sq);height:var(--chess-coord);display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:800;color:#e8e8e8;text-transform:uppercase}.chess-ranks-col{display:flex;flex-direction:column}.chess-rank-label{width:var(--chess-coord);height:var(--chess-sq);display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:800;color:#e8e8e8}.chess-board{display:grid;grid-template-columns:repeat(8,var(--chess-sq));grid-template-rows:repeat(8,var(--chess-sq))}.chess-square{width:var(--chess-sq);height:var(--chess-sq);display:flex;align-items:center;justify-content:center;position:relative}.chess-square.light{background:#f0d9b5}.chess-square.dark{background:#b58863}.chess-square.sq-selected{background:#f7d048e6!important}.chess-square.sq-last{box-shadow:inset 0 0 0 3px #dc3232f2!important}.chess-square.sq-check{background:#dc3232d9!important}.chess-square.sq-pending-file{background:#f7d04847!important}.chess-square.sq-pending-dest{background:#50c878d9!important}.chess-square.sq-pending-dest-file{background:#50c87838!important}.chess-piece{width:calc(var(--chess-sq) * .82);height:calc(var(--chess-sq) * .82);display:flex;align-items:center;justify-content:center;position:relative;z-index:1;flex-shrink:0}.chess-valid-dot{position:absolute;width:34%;height:34%;border-radius:50%;background:#28b4508c;z-index:0}.chess-valid-dot.capture{width:92%;height:92%;background:transparent;border:4px solid rgba(40,180,80,.55);border-radius:50%}.chess-stats-screen{justify-content:flex-start;padding-top:60px;gap:20px}.chess-stats-table{display:flex;flex-direction:column;gap:8px;width:100%;max-width:320px}.chess-stats-header,.chess-stats-row{display:grid;grid-template-columns:80px 1fr 1fr 1fr;text-align:center;gap:8px;align-items:center}.chess-stats-col-label{font-size:.85rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.chess-stats-diff-label{font-size:1rem;font-weight:600;text-align:left;color:var(--text-muted)}.chess-stats-cell{font-size:1.8rem;font-weight:700}.chess-stats-cell.win{color:var(--correct)}.chess-stats-cell.loss{color:var(--error)}.chess-stats-cell.draw{color:var(--text-muted)}.chess-setup-screen{justify-content:center;gap:28px}.chess-setup-section{display:flex;flex-direction:column;align-items:center;gap:10px}.chess-setup-label{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.chess-setup-options{display:flex;gap:12px}.chess-setup-option{padding:10px 20px;border-radius:8px;border:2px solid var(--border);font-size:1.1rem;font-weight:600;color:var(--text-muted);background:var(--surface);transition:border-color .2s,color .2s}.chess-setup-option.selected{border-color:var(--accent);color:var(--text)}.chess-game-screen{justify-content:flex-start;padding-top:clamp(10px,2vh,28px);gap:10px}.chess-status-panel{width:100%;max-width:calc(8 * var(--chess-sq) + 2 * var(--chess-coord));background:#0f0f1eeb;border:2px solid rgba(255,255,255,.22);border-radius:12px;padding:14px 18px;display:flex;flex-direction:column;gap:8px;text-align:center}.chess-status-panel--selected{border-color:#f7d048d9}.chess-status-panel--confirm{border-color:#50c878d9}.chess-status-main{font-size:1.35rem;font-weight:800;color:#fff;margin:0;letter-spacing:.02em}.chess-status-hint{font-size:1rem;color:#d8d8d8;margin:0;line-height:1.4}.chess-result-emoji{font-size:5rem;line-height:1;margin-bottom:8px}.result-title{font-size:1.6rem;font-weight:700;text-align:center}@media(min-width:768px){.title{font-size:3rem}.stats-grid{gap:48px}.stat-number{font-size:3rem}.histogram{max-width:500px}}
