body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.leaderboard-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.leaderboard-modal{background-color:#fff;border-radius:8px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;display:flex;flex-direction:column;max-height:90vh;max-width:900px;overflow:hidden;width:100%}.leaderboard-header{align-items:center;background-color:#f9fafb;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1.5rem}.leaderboard-header h2{color:#1f2937;font-size:1.5rem;font-weight:600;margin:0}.leaderboard-tabs{align-items:stretch;background-color:#f9fafb;border-bottom:1px solid #e5e7eb;display:flex;min-height:48px;overflow-x:auto}.tab-button{align-items:center;background:none;border:none;border-bottom:2px solid #0000;color:#6b7280;cursor:pointer;display:flex;flex:0 0 auto;font-size:.875rem;font-weight:500;height:48px;justify-content:center;min-height:48px;padding:.75rem 1rem;transition:all .2s;white-space:nowrap}.tab-button:hover{background-color:#f3f4f6;color:#374151}.tab-button.active{background-color:#fff;border-bottom-color:#3b82f6;color:#3b82f6;height:48px}.leaderboard-content{flex:1 1;overflow-y:auto;padding:1.5rem}.overview-stats{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:2rem}.stat-card{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:1rem;text-align:center}.stat-card h3{color:#6b7280;font-size:.875rem;font-weight:500;margin:0 0 .5rem}.stat-value{color:#1f2937;font-size:1.5rem;font-weight:700}.quick-stats h3{color:#1f2937;margin-bottom:1rem}.difficulty-breakdown{display:flex;flex-direction:column;gap:.5rem}.diff-stat{align-items:center;background-color:#f9fafb;border-radius:4px;display:flex;gap:.5rem;padding:.5rem}.diff-name{color:#374151;font-weight:600;min-width:70px}.diff-games{color:#6b7280;font-size:.875rem}.diff-winrate{color:#059669;font-size:.875rem;font-weight:500}.personal-tab h3{color:#1f2937;margin-bottom:1.5rem}.personal-stats{display:flex;flex-direction:column;gap:2rem}.stats-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.stat-card .stat-label{color:#6b7280;font-size:.875rem;margin-bottom:.25rem}.stat-card .stat-value{color:#1f2937;font-size:1.25rem;font-weight:600}.difficulty-stats h4{color:#1f2937;margin-bottom:1rem}.difficulty-table{display:flex;flex-direction:column;gap:.5rem}.difficulty-row{grid-gap:1rem;align-items:center;background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;display:grid;gap:1rem;grid-template-columns:80px 80px 100px 80px 80px;padding:.75rem}.difficulty-row .diff-name{color:#374151;font-weight:600}.difficulty-row span:not(.diff-name){color:#6b7280;font-size:.875rem}.recent-personal-games h4{color:#1f2937;margin-bottom:1rem}.game-list{display:flex;flex-direction:column;gap:.5rem}.game-item{grid-gap:1rem;align-items:center;border:1px solid #e5e7eb;border-radius:6px;display:grid;gap:1rem;grid-template-columns:60px 80px 80px 80px 100px 80px 60px;padding:.75rem}.game-item.win{background-color:#f0fdf4;border-color:#bbf7d0}.game-item.loss{background-color:#fef2f2;border-color:#fecaca}.game-item.tie{background-color:#f9fafb;border-color:#e5e7eb}.game-result{font-size:.875rem;font-weight:600}.game-item.win .game-result{color:#059669}.game-item.loss .game-result{color:#dc2626}.game-item.tie .game-result{color:#6b7280}.game-date,.game-difficulty,.game-duration,.game-score{color:#6b7280;font-size:.875rem}.game-efficiency,.game-end-reason{color:#9ca3af;font-size:.75rem;font-style:italic}.no-player-selected{color:#6b7280;padding:3rem;text-align:center}.leaderboard-tab h3{color:#1f2937;margin-bottom:1.5rem}.leaderboard-controls{align-items:center;display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.leaderboard-controls label{align-items:center;color:#374151;display:flex;font-size:.875rem;gap:.5rem}.leaderboard-select{background-color:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;font-size:.875rem;padding:.5rem}.leaderboard-note{color:#6b7280;font-size:.75rem;font-style:italic}.top-players-list{display:flex;flex-direction:column;gap:.5rem}.player-row{grid-gap:1rem;align-items:center;background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;display:grid;gap:1rem;grid-template-columns:50px 1fr 100px 100px 100px 100px;padding:1rem;transition:all .2s}.player-row:hover{background-color:#f3f4f6;border-color:#d1d5db}.player-row.current-player{background-color:#dbeafe;border-color:#3b82f6}.player-rank{color:#3b82f6;font-size:1.1rem;font-weight:700}.player-name{color:#1f2937;font-weight:600}.player-avg-score,.player-best-score,.player-games,.player-winrate{color:#6b7280;font-size:.875rem}.player-highlight{color:#3b82f6;font-weight:600}.no-data{color:#6b7280;padding:2rem;text-align:center}.no-data p{margin:0}.records-tab h3{color:#1f2937;margin-bottom:1.5rem}.records-controls{align-items:center;display:flex;flex-direction:column;margin-bottom:1.5rem}.records-controls label{align-items:center;color:#374151;display:flex;font-size:.875rem;gap:.5rem}.records-controls select{background-color:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;padding:.5rem}.records-display{display:flex;flex-direction:column;gap:1rem}.record-section{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.record-item{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;display:flex;gap:1rem;padding:1.5rem;transition:all .2s}.record-item:hover{background-color:#f3f4f6;border-color:#d1d5db;box-shadow:0 4px 6px #0000001a;transform:translateY(-2px)}.record-icon{font-size:2rem;line-height:1}.record-info{flex:1 1}.record-info h4{color:#6b7280;font-size:.875rem;font-weight:500;margin:0 0 .5rem}.record-main{color:#1f2937;font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.record-holder{color:#6b7280;font-size:.875rem}.record-empty{color:#9ca3af;font-size:.875rem;font-style:italic}.fastest-wins-list{display:flex;flex-direction:column;gap:.5rem}.record-row{grid-gap:1rem;align-items:center;background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;display:grid;gap:1rem;grid-template-columns:50px 1fr 80px 80px 80px 100px;padding:.75rem}.record-rank{color:#3b82f6;font-weight:600}.record-player{color:#1f2937;font-weight:500}.record-time{color:#059669;font-weight:600}.record-date,.record-difficulty,.record-score{color:#6b7280;font-size:.875rem}.recent-tab h3{color:#1f2937;margin-bottom:1.5rem}.recent-games-list{display:flex;flex-direction:column;gap:1rem}.recent-game-item{border:1px solid #e5e7eb;border-radius:8px;padding:1rem;transition:all .2s}.recent-game-item.win{background-color:#f0fdf4;border-color:#bbf7d0}.recent-game-item.loss{background-color:#fef2f2;border-color:#fecaca}.recent-game-item.tie{background-color:#f9fafb;border-color:#e5e7eb}.recent-game-item:hover{box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.game-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.game-player{color:#1f2937;font-weight:600}.game-result.win{background-color:#d1fae5;color:#059669}.game-result.loss,.game-result.win{border-radius:4px;font-size:.875rem;font-weight:600;padding:.25rem .5rem}.game-result.loss{background-color:#fee2e2;color:#dc2626}.game-result.tie{background-color:#f3f4f6;border-radius:4px;font-weight:600;padding:.25rem .5rem}.game-result.tie,.game-timestamp{color:#6b7280;font-size:.875rem}.game-details{display:flex;flex-wrap:wrap;gap:1rem}.game-details span{color:#6b7280;font-size:.875rem}.game-strategy{font-style:italic}.game-ai-info{align-items:center;display:inline-flex;gap:.25rem}.leaderboard-footer{background-color:#f9fafb;border-top:1px solid #e5e7eb;display:flex;gap:1rem;justify-content:flex-end;padding:1rem 1.5rem}.utility-button{background-color:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:.875rem;padding:.5rem 1rem;transition:all .2s}.utility-button:hover{background-color:#f3f4f6;border-color:#9ca3af}.utility-button.danger{border-color:#f87171;color:#dc2626}.utility-button.danger:hover{background-color:#fef2f2;border-color:#ef4444}.enhanced-stats{margin-top:2rem}.enhanced-stats h4{border-bottom:2px solid #e5e7eb;color:#1f2937;margin-bottom:1.5rem;padding-bottom:.5rem}.stat-section{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:2rem;padding:1rem}.stat-section h5{color:#374151;font-size:1rem;font-weight:600;margin:0 0 1rem}.stat-sublabel{color:#9ca3af;display:block;font-size:.75rem;font-weight:400;margin-top:.25rem}.phase-stats{display:flex;flex-direction:column;gap:.75rem}.phase-stat{grid-gap:1rem;align-items:center;background-color:#fff;border:1px solid #e5e7eb;border-radius:6px;display:grid;gap:1rem;grid-template-columns:100px 100px 100px;padding:.75rem}.phase-name{color:#1f2937;font-weight:600}.phase-efficiency,.phase-moves{color:#6b7280;font-size:.875rem}.strategy-stats{display:flex;flex-direction:column;gap:.5rem}.strategy-stat{grid-gap:1rem;align-items:center;background-color:#fff;border:1px solid #e5e7eb;border-radius:6px;display:grid;gap:1rem;grid-template-columns:120px 80px 100px 80px;padding:.75rem}.strategy-name{color:#1f2937;font-weight:600}.strategy-avg-score,.strategy-games,.strategy-winrate{color:#6b7280;font-size:.875rem}.dominance-stats{display:flex;flex-direction:column;gap:.5rem}.dominance-stat{align-items:center;background-color:#fff;border:1px solid #e5e7eb;border-radius:6px;display:flex;justify-content:space-between;padding:.75rem}.dominance-type{color:#1f2937;font-weight:500}.dominance-percentage{color:#3b82f6;font-weight:600}.time-stats{display:flex;flex-direction:column;gap:.5rem}.time-stat{grid-gap:1rem;align-items:center;background-color:#fff;border:1px solid #e5e7eb;border-radius:6px;display:grid;gap:1rem;grid-template-columns:100px 80px 100px 100px;padding:.75rem}.time-period{color:#1f2937;font-weight:600}.time-games,.time-playtime,.time-winrate{color:#6b7280;font-size:.875rem}.leaderboard-view-toggle{display:flex;gap:.5rem;justify-content:center;margin-bottom:1rem}.view-button{background-color:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;font-size:.875rem;padding:.5rem 1rem;transition:all .2s}.view-button:hover{background-color:#e5e7eb}.view-button.active{background-color:#3b82f6;border-color:#3b82f6;color:#fff}.loading-spinner{color:#6b7280;padding:2rem;text-align:center}.spinner{animation:spin 1s ease-in-out infinite;border:3px solid #f3f4f6;border-radius:50%;border-top-color:#3b82f6;display:inline-block;height:2rem;margin-bottom:1rem;width:2rem}.error-message{background-color:#fee2e2;border-radius:6px;color:#dc2626;margin:1rem 0;padding:1rem;text-align:center}.error-message p{margin:0 0 .5rem}.retry-button{background-color:#dc2626;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.875rem;padding:.5rem 1rem;transition:all .2s}.retry-button:hover{background-color:#b91c1c}.global-indicator{background-color:#dbeafe;color:#1e40af}.global-indicator,.local-indicator{border-radius:4px;font-size:.75rem;font-weight:500;margin-left:.5rem;padding:.25rem .5rem}.local-indicator{background-color:#fef3c7;color:#92400e}.player-rank-badge{background-color:#fbbf24;border-radius:9999px;color:#78350f;display:inline-block;font-size:.75rem;font-weight:600;margin-left:.5rem;padding:.25rem .5rem}.score-upload-indicator{align-items:center;animation:slideIn .3s ease-out;background-color:#3b82f6;border-radius:8px;bottom:2rem;box-shadow:0 4px 12px #00000026;color:#fff;display:flex;gap:.75rem;padding:1rem 1.5rem;position:fixed;right:2rem;z-index:1000}@keyframes slideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.upload-spinner{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:20px;width:20px}.score-upload-status{align-items:center;animation:slideIn .3s ease-out;border-radius:8px;bottom:2rem;box-shadow:0 4px 12px #00000026;display:flex;gap:.75rem;padding:1rem 1.5rem;position:fixed;right:2rem;z-index:1000}.score-upload-status.success{background-color:#10b981;color:#fff}.score-upload-status.error{background-color:#ef4444;color:#fff}.leaderboard-positions{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-top:2rem;padding:1rem}.leaderboard-positions h4{color:#1f2937;font-size:1rem;font-weight:600;margin:0 0 1rem}.rankings-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.ranking-item{align-items:center;background-color:#fff;border:1px solid #e5e7eb;border-radius:6px;display:flex;justify-content:space-between;padding:.75rem}.ranking-type{color:#6b7280;font-size:.875rem;font-weight:500}.ranking-position{color:#3b82f6;font-size:1.25rem;font-weight:700}.ranking-value{color:#6b7280;font-size:.875rem}.no-stats{color:#6b7280;padding:3rem;text-align:center}.no-stats p{margin:.5rem 0}.records-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:1rem}.record-card{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:1rem;text-align:center}.record-card h4{color:#6b7280;font-size:.875rem;font-weight:500;margin:0 0 .5rem}.record-value{color:#1f2937;font-size:1.5rem;font-weight:700}.record-player{color:#6b7280;font-size:.875rem;margin-top:.25rem}.stat-card.full-width{grid-column:1/-1}.stat-card.full-width p{color:#6b7280;font-size:.875rem;margin:.5rem 0 0}.leaderboard-type-buttons{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:1rem}.type-button{background-color:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:all .2s;white-space:nowrap}.type-button:hover{background-color:#e5e7eb;border-color:#9ca3af}.type-button.active{background-color:#3b82f6;border-color:#3b82f6;color:#fff}.type-button.active:hover{background-color:#2563eb;border-color:#2563eb}.difficulty-buttons{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:1.5rem}.difficulty-button{background-color:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:all .2s;white-space:nowrap}.difficulty-button:hover{background-color:#e5e7eb;border-color:#9ca3af}.difficulty-button.active{background-color:#3b82f6;border-color:#3b82f6;color:#fff}.difficulty-button.active:hover{background-color:#2563eb;border-color:#2563eb}@media (max-width:768px){.leaderboard-modal{margin:.5rem;max-height:95vh}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.difficulty-row,.game-item,.player-row,.record-row{gap:.5rem;grid-template-columns:1fr}.game-header,.leaderboard-footer{flex-direction:column}.game-header{align-items:stretch;gap:.5rem}.tab-button{font-size:.8125rem;height:44px;min-height:44px;padding:.5rem .75rem}.tab-button.active{height:44px}.leaderboard-controls{align-items:center;flex-direction:column}.rankings-grid,.record-section{grid-template-columns:1fr}.difficulty-buttons,.leaderboard-type-buttons{justify-content:center}.difficulty-button,.type-button{font-size:.8rem;padding:.4rem .8rem}}@media (max-width:640px){.score-upload-indicator,.score-upload-status{bottom:1rem;font-size:.875rem;left:1rem;padding:.75rem 1rem;right:1rem}.leaderboard-view-toggle{flex-direction:column}.view-button{width:100%}}@media (max-width:480px){.leaderboard-tabs{flex-wrap:nowrap;overflow-x:auto}.tab-button{flex-shrink:0;font-size:.75rem;height:40px;min-height:40px;min-width:90px;padding:.5rem}.tab-button.active{height:40px}.difficulty-buttons,.leaderboard-type-buttons{gap:.25rem}.difficulty-button,.type-button{font-size:.75rem;padding:.35rem .6rem}}.howtoplay-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.howtoplay-modal{background-color:#fff;border-radius:8px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;display:flex;flex-direction:column;max-height:90vh;max-width:800px;overflow:hidden;width:100%}.howtoplay-header{align-items:center;background-color:#f9fafb;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1.5rem}.howtoplay-header h2{color:#1f2937;font-size:1.5rem;font-weight:600;margin:0}.close-button{align-items:center;background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;font-size:1.5rem;height:2rem;justify-content:center;padding:.25rem;width:2rem}.close-button:hover{background-color:#f3f4f6;color:#374151}.howtoplay-content{flex:1 1;line-height:1.6;overflow-y:auto;padding:1.5rem}.howtoplay-content h3{border-bottom:2px solid #3b82f6;color:#1f2937;font-size:1.25rem;font-weight:600;margin:2rem 0 1rem;padding-bottom:.5rem}.howtoplay-content h3:first-child{margin-top:0}.howtoplay-content h4{color:#374151;font-size:1.1rem;font-weight:600;margin:1.5rem 0 .75rem}.howtoplay-content p{color:#4b5563;margin:.75rem 0}.howtoplay-content ol,.howtoplay-content ul{color:#4b5563;margin:.75rem 0;padding-left:1.5rem}.howtoplay-content li{margin:.5rem 0}.howtoplay-content ol ol,.howtoplay-content ul ul{margin:.25rem 0}.howtoplay-content strong{color:#1f2937;font-weight:600}.game-overview{background-color:#eff6ff;border-left:4px solid #3b82f6;border-radius:8px;margin-bottom:1rem;padding:1rem}.game-overview h3{border-bottom:none;color:#1e40af;margin-top:0}.setup-section{background-color:#f0fdf4;border-left:4px solid #059669;border-radius:8px;padding:1rem}.setup-section h3{border-bottom:none;color:#047857;margin-top:0}.rules-section{background-color:#fef3c7;border-left:4px solid #f59e0b;border-radius:8px;padding:1rem}.rules-section h3{border-bottom:none;color:#d97706;margin-top:0}.rule-subsection{background-color:#fff9;border-radius:6px;margin:1rem 0;padding:.75rem}.strategy-tip{background-color:#fef2f2;border-left:3px solid #ef4444}.strategy-tip h4{color:#dc2626}.gameplay-section{background-color:#f3f4f6;border-left:4px solid #6b7280;border-radius:8px;padding:1rem}.gameplay-section h3{border-bottom:none;color:#374151;margin-top:0}.winning-section{background-color:#fdf4ff;border-left:4px solid #a855f7;border-radius:8px;padding:1rem}.winning-section h3{border-bottom:none;color:#7c3aed;margin-top:0}.strategy-section{background-color:#ecfdf5;border-left:4px solid #10b981;border-radius:8px;padding:1rem}.strategy-section h3{border-bottom:none;color:#059669;margin-top:0}.interface-section{background-color:#f0f9ff;border-left:4px solid #0ea5e9;border-radius:8px;padding:1rem}.interface-section h3{border-bottom:none;color:#0284c7;margin-top:0}.quickstart-section{background-color:#f0fdf4;border-left:4px solid #22c55e;border-radius:8px;padding:1rem}.quickstart-section h3{border-bottom:none;color:#16a34a;margin-top:0}.final-tip{background-color:#22c55e1a;border-radius:6px;font-style:italic;margin-top:1rem;padding:.75rem}.howtoplay-footer{background-color:#f9fafb;border-top:1px solid #e5e7eb;display:flex;justify-content:center;padding:1rem 1.5rem}.close-footer-button{border-radius:6px}@media (max-width:768px){.howtoplay-modal{margin:.5rem;max-height:95vh}.howtoplay-content{padding:1rem}.howtoplay-content h3{font-size:1.1rem}.howtoplay-content h4{font-size:1rem}.game-overview,.gameplay-section,.interface-section,.quickstart-section,.rule-subsection,.rules-section,.setup-section,.strategy-section,.winning-section{padding:.75rem}}@media (max-width:480px){.howtoplay-overlay{padding:.5rem}.howtoplay-header{padding:1rem}.howtoplay-content,.howtoplay-footer{padding:.75rem}.close-footer-button{font-size:.9rem;padding:.5rem 1.5rem}}.legal-overlay{align-items:center;background-color:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:2000}.legal-modal{background-color:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;display:flex;flex-direction:column;max-height:90vh;max-width:1200px;overflow:hidden;width:100%}.legal-header{align-items:flex-start;background-color:#f9fafb;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1.5rem 2rem}.legal-header h2{color:#1f2937;font-size:1.75rem;font-weight:700;line-height:1.2;margin:0}.legal-meta{margin-top:.5rem}.legal-meta span{color:#6b7280;font-size:.875rem;font-style:italic}.legal-content-wrapper{display:flex;flex:1 1;overflow:hidden}.legal-sidebar{background-color:#f8fafc;border-right:1px solid #e5e7eb;flex-shrink:0;overflow-y:auto;width:300px}.toc-header{background-color:#f1f5f9;border-bottom:1px solid #e5e7eb;padding:1.5rem 1rem 1rem}.toc-header h3{color:#1e293b;font-size:1rem;font-weight:600;margin:0}.table-of-contents{padding:.5rem 0}.toc-item{align-items:flex-start;background:none;border:none;border-left:3px solid #0000;cursor:pointer;display:flex;gap:.5rem;padding:.75rem 1rem;text-align:left;transition:all .2s;width:100%}.toc-item:hover{background-color:#e2e8f0;border-left-color:#3b82f6}.toc-item.active{background-color:#dbeafe;border-left-color:#2563eb;color:#1d4ed8}.toc-number{color:#64748b;font-size:.875rem;font-weight:600;min-width:1.5rem}.toc-item.active .toc-number{color:#1d4ed8}.toc-title{color:#374151;font-size:.875rem;font-weight:500;line-height:1.4}.toc-item.active .toc-title{color:#1d4ed8;font-weight:600}.legal-content{flex:1 1;line-height:1.6;overflow-y:auto;padding:2rem}.legal-section{margin-bottom:3rem;scroll-margin-top:2rem}.legal-section:last-child{margin-bottom:1rem}.legal-section h2{border-bottom:2px solid #e5e7eb;color:#1f2937;font-size:1.5rem;font-weight:700;margin:0 0 1.5rem;padding-bottom:.75rem}.legal-section h3{color:#374151;font-size:1.25rem;font-weight:600;margin:2rem 0 1rem}.legal-section h3:first-of-type{margin-top:0}.legal-section p{color:#4b5563;margin:1rem 0}.legal-section ol,.legal-section ul{color:#4b5563;margin:1rem 0;padding-left:1.5rem}.legal-section li{line-height:1.6;margin:.5rem 0}.legal-section strong{color:#1f2937;font-weight:600}.legal-section a{border-bottom:1px solid #0000;color:#2563eb;text-decoration:none;transition:all .2s}.legal-section a:hover{border-bottom-color:#1d4ed8;color:#1d4ed8}.community-table{border:1px solid #e5e7eb;border-radius:8px;margin:1.5rem 0;overflow:hidden}.table-row{border-bottom:1px solid #e5e7eb;display:grid;grid-template-columns:1fr 2fr}.table-row:last-child{border-bottom:none}.table-header{background-color:#f3f4f6;font-weight:600}.table-cell{padding:1rem;vertical-align:top}.table-row:not(.table-header):nth-child(2n){background-color:#f9fafb}.table-row:not(.table-header) .table-cell:first-child{border-right:1px solid #e5e7eb}.contact-info{background-color:#f8fafc;border:1px solid #e2e8f0;border-left:4px solid #3b82f6;border-radius:8px;margin:1.5rem 0;padding:1.5rem}.contact-info p{color:#374151;line-height:1.6;margin:0}.legal-footer{background-color:#f9fafb;border-top:1px solid #e5e7eb;display:flex;justify-content:center;padding:1.5rem 2rem}.close-footer-button{background-color:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;min-width:120px;padding:.75rem 2rem;transition:all .2s}.close-footer-button:hover{background-color:#2563eb;box-shadow:0 4px 12px #3b82f64d;transform:translateY(-1px)}@media (max-width:1024px){.legal-modal{max-width:95vw}.legal-sidebar{width:250px}.legal-content{padding:1.5rem}}@media (max-width:768px){.legal-overlay{padding:.5rem}.legal-modal{max-height:95vh}.legal-content-wrapper{flex-direction:column}.legal-sidebar{border-bottom:1px solid #e5e7eb;border-right:none;max-height:200px;width:100%}.table-of-contents{display:flex;flex-wrap:wrap;gap:.25rem;padding:.5rem}.toc-item{flex:0 0 auto;font-size:.8rem;min-width:auto;padding:.5rem .75rem;width:auto}.toc-item,.toc-item.active,.toc-item:hover{border-left:none;border-radius:6px}.toc-number{font-size:.75rem;min-width:1.25rem}.toc-title{font-size:.75rem;white-space:nowrap}.legal-content{padding:1rem}.legal-header{align-items:flex-start;flex-direction:column;padding:1rem}.community-table{font-size:.875rem}.table-cell{padding:.75rem}.contact-info,.legal-footer{padding:1rem}.close-footer-button{font-size:.875rem;padding:.625rem 1.5rem}}@media (max-width:480px){.legal-overlay{padding:.25rem}.legal-modal{border-radius:8px}.legal-header{padding:.75rem}.legal-header h2{font-size:1.5rem}.legal-meta span{font-size:.8rem}.toc-header{padding:1rem .75rem .75rem}.toc-header h3{font-size:.875rem}.table-of-contents{padding:.25rem}.toc-item{font-size:.75rem;padding:.4rem .6rem}.toc-number{min-width:1rem}.toc-number,.toc-title{font-size:.7rem}.legal-content{padding:.75rem}.legal-section{margin-bottom:2rem}.legal-section h2{font-size:1.25rem;margin-bottom:1rem;padding-bottom:.5rem}.legal-section h3{font-size:1.1rem;margin:1.5rem 0 .75rem}.legal-section ol,.legal-section p,.legal-section ul{font-size:.875rem;margin:.75rem 0}.legal-section ol,.legal-section ul{padding-left:1.25rem}.community-table{font-size:.8rem}.table-row{gap:0;grid-template-columns:1fr}.table-row:not(.table-header) .table-cell:first-child{background-color:#f8fafc;border-bottom:1px solid #e5e7eb;border-right:none;font-weight:600}.table-cell{padding:.5rem}.contact-info{font-size:.875rem}.contact-info,.legal-footer{padding:.75rem}.close-footer-button{font-size:.8rem;min-width:100px;padding:.5rem 1rem}}.game-footer{background-color:#f9fafb;border-top:1px solid #e5e7eb;margin-top:2rem;padding:1.5rem 1rem;width:100%}.footer-content{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin:0 auto;max-width:640px}.footer-left{display:flex;flex-direction:column;gap:.25rem}.footer-copyright{color:#6b7280;font-size:.875rem;font-weight:500}.footer-trademark{color:#9ca3af;font-size:.75rem;font-style:italic}.footer-right{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.footer-link{background:none;border:none;border-bottom:1px solid #0000;color:#3b82f6;cursor:pointer;font-size:.875rem;padding:.25rem 0;text-decoration:none;transition:all .2s}.footer-link:hover{border-bottom-color:#1d4ed8;color:#1d4ed8}.footer-divider{color:#d1d5db;font-size:.875rem;-webkit-user-select:none;user-select:none}.footer-version{background-color:#f3f4f6;border:1px solid #e5e7eb;border-radius:4px;color:#9ca3af;font-size:.75rem;font-weight:500;padding:.25rem .5rem}@media (max-width:640px){.footer-content{flex-direction:column;gap:1rem;text-align:center}.footer-left{align-items:center}.footer-right{flex-wrap:wrap;gap:.5rem;justify-content:center}.footer-divider,.footer-link,.footer-version{font-size:.8rem}}@media (max-width:480px){.game-footer{padding:1rem .5rem}.footer-right{gap:.5rem}.footer-copyright{font-size:.8rem}.footer-trademark{font-size:.7rem}}:root{--piece-white-bg:#e5e7eb;--piece-white-border:#9ca3af;--piece-red-bg:#ef4444;--piece-red-border:#dc2626;--piece-yellow-bg:#fbbf24;--piece-yellow-border:#f59e0b;--board-bg:#b45309;--board-cell-bg:#fef3c7;--board-cell-border:#d97706;--score-red:#ef4444;--score-yellow:#fbbf24;--score-empty-bg:#0000;--score-empty-border:#9ca3af;--turn-red-bg:#ef44441a;--turn-red-color:#ef4444;--turn-yellow-bg:#fbbf241a;--turn-yellow-color:#fbbf24}.game-container{align-items:center;background-color:#f9fafb;border-radius:8px;box-shadow:0 2px 10px #0000000d;display:flex;flex-direction:column;margin:0 auto;max-width:640px;padding:1rem}.theme-selector{align-items:center;display:flex;gap:.5rem;min-width:140px}.theme-selector select{border:1px solid #ccc;border-radius:.25rem;min-width:100px;padding:.25rem .5rem}.controls{flex-wrap:wrap;gap:1rem;justify-content:center;margin-bottom:2rem;margin-top:1rem;width:100%}.controls,.difficulty-selector{align-items:center;display:flex}.difficulty-selector{gap:.5rem;min-width:120px}.difficulty-selector select{border:1px solid #ccc;border-radius:.25rem;min-width:80px;padding:.25rem .5rem}.debug-button,.howtoplay-button,.leaderboard-button,.reset-button{align-items:center;border:none;border-radius:.25rem;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;justify-content:center;min-height:36px;padding:.5rem .75rem;white-space:nowrap}.debug-button{background-color:#e5e5e5;border:1px solid #d1d5db}.debug-button:hover{background-color:#d5d5d5}.howtoplay-button,.leaderboard-button,.reset-button{background-color:#3b82f6;border:none;color:#fff}.howtoplay-button:hover,.leaderboard-button:hover,.reset-button:hover{background-color:#2563eb}.debug-panel{background-color:#f3f4f6;border-radius:.5rem;font-size:.875rem;margin-bottom:2rem;max-width:36rem;padding:1rem;width:100%}.debug-title,.debug-value{font-weight:600}.debug-strategy{margin-top:.5rem}.debug-priorities{list-style-type:disc;margin-left:1.25rem}.player-indicator{align-items:center;border:2px solid #0000;border-radius:12px;box-shadow:0 2px 4px #0000001a;display:flex;font-size:.875rem;font-weight:600;justify-content:center;margin:.5rem auto;min-width:200px;padding:.75rem 1.5rem;text-align:center;transition:all .3s ease-in-out}.player-indicator.computer{background-color:#fbbf24;background-color:var(--piece-yellow-bg);border-color:#f59e0b;border-color:var(--piece-yellow-border);color:#fff;text-shadow:0 1px 2px #00000080}.player-indicator.player{background-color:#ef4444;background-color:var(--piece-red-bg);border-color:#dc2626;border-color:var(--piece-red-border);color:#fff;text-shadow:0 1px 2px #00000080}.player-indicator.active{animation:pulse 2s infinite;box-shadow:0 4px 12px #0003;transform:scale(1.05)}@keyframes pulse{0%,to{box-shadow:0 4px 12px #0003}50%{box-shadow:0 6px 20px #0000004d}}.player-indicator-text{align-items:center;display:flex;gap:.5rem}.thinking-dots{gap:2px}.thinking-dot{height:4px;width:4px}.player-info{align-items:center;display:flex;gap:.5rem;min-width:140px}.change-name-button{background-color:#f3f4f6;border:1px solid #d1d5db;border-radius:.25rem;cursor:pointer;font-size:.75rem;padding:.25rem .5rem;white-space:nowrap}.change-name-button:hover{background-color:#e5e7eb}.player-pieces{flex-direction:column;gap:.3rem;padding:.3rem 0;width:100%}.piece-row,.player-pieces{align-items:center;display:flex}.piece-row{gap:.75rem;justify-content:center;margin:.1rem 0;min-height:3.2rem}.piece{border-radius:50%;box-sizing:border-box;flex-grow:0;flex-shrink:0;height:3rem;width:3rem}.piece.white{background-color:#e5e7eb;background-color:var(--piece-white-bg);border:1px solid #9ca3af;border:1px solid var(--piece-white-border)}.piece.yellow{background-color:#fbbf24;background-color:var(--piece-yellow-bg);border:1px solid #f59e0b;border:1px solid var(--piece-yellow-border)}.piece.red{background-color:#ef4444;background-color:var(--piece-red-bg);border:1px solid #dc2626;border:1px solid var(--piece-red-border)}.piece.used{opacity:.3}.piece.selectable{cursor:pointer}.piece.selectable:hover{box-shadow:0 2px 8px #00000026;transform:scale(1.05)}.board-container{display:flex}.score-tracker{display:flex;flex-direction:column;height:18rem;margin:0 1.5rem}.score-tracker.left{justify-content:flex-start}.score-tracker.right{justify-content:flex-end}.score-indicator{background-color:initial;background-color:var(--score-empty-bg);border:2px solid #9ca3af;border:2px solid var(--score-empty-border);border-radius:50%;height:2rem;margin:.25rem;transition:background-color .3s,border-color .3s;width:2rem}.score-indicator.yellow{background-color:#fbbf24;background-color:var(--score-yellow);border-color:#fbbf24;border-color:var(--score-yellow)}.score-indicator.red{background-color:#ef4444;background-color:var(--score-red);border-color:#ef4444;border-color:var(--score-red)}.game-board{grid-gap:.25rem;background-color:#b45309;background-color:var(--board-bg);border-radius:8px;box-shadow:0 4px 6px #0000001a;display:grid;gap:.25rem;grid-template-columns:repeat(4,1fr);padding:.5rem}.board-cell{align-items:center;background-color:#fef3c7;background-color:var(--board-cell-bg);border:1px solid #d97706;border:1px solid var(--board-cell-border);border-radius:4px;cursor:pointer;display:flex;height:4rem;justify-content:center;transition:background-color .2s,transform .1s;width:4rem}.board-cell:hover{background-color:color-mix(in srgb,#fef3c7 90%,#000 10%);background-color:color-mix(in srgb,var(--board-cell-bg) 90%,#000 10%);transform:scale(1.02)}.cell-piece{border-radius:50%;box-sizing:border-box;height:3rem;transition:transform .2s;width:3rem}.cell-piece.white{background-color:#e5e7eb;background-color:var(--piece-white-bg);border:1px solid #9ca3af;border:1px solid var(--piece-white-border)}.cell-piece.yellow{background-color:#fbbf24;background-color:var(--piece-yellow-bg);border:1px solid #f59e0b;border:1px solid var(--piece-yellow-border)}.cell-piece.red{background-color:#ef4444;background-color:var(--piece-red-bg);border:1px solid #dc2626;border:1px solid var(--piece-red-border)}.cell-piece:hover{transform:scale(1.05)}.turn-indicator{border-radius:4px;font-weight:600;margin-top:1.5rem;padding:.5rem 1rem;text-align:center;transition:background-color .3s,color .3s}.turn-player{background-color:#ef44441a;background-color:var(--turn-red-bg);color:#ef4444;color:var(--turn-red-color)}.turn-computer{background-color:#fbbf241a;background-color:var(--turn-yellow-bg);color:#fbbf24;color:var(--turn-yellow-color)}.turn-over{background-color:#3b82f61a;color:#3b82f6;font-size:1.25rem}.computer-pieces{margin-bottom:1rem;margin-top:.5rem}.player-pieces-bottom{margin-bottom:.5rem;margin-top:1rem}.computer-section,.player-section{align-items:center;display:flex;flex-direction:column;width:100%}.piece-row-container{display:flex;justify-content:center;width:100%}.ai-toggle{white-space:nowrap}.ai-toggle,.ai-toggle label{align-items:center;display:flex;gap:.5rem}.ai-toggle label{cursor:pointer;font-size:.875rem;-webkit-user-select:none;user-select:none}.ai-toggle input[type=checkbox]{margin:0}.ai-reasoning{background-color:#f0f9ff;border-left:3px solid #3b82f6;border-radius:.25rem;margin-top:1rem;padding:.75rem}.openai-status{border-top:1px solid #e5e7eb;margin-top:1rem;padding-top:.75rem}.debug-log{background-color:#f3f4f6;font-family:monospace;font-size:.875rem;line-height:1.5}.debug-log-entry{border-bottom:1px dashed #e5e7eb;margin-bottom:.5rem;padding-bottom:.5rem}.debug-log-api-request{background-color:#eff6ff;color:#3b82f6}.debug-log-api-request,.debug-log-api-response{border-radius:.25rem;font-size:.75rem;margin-bottom:.5rem;padding:.5rem;white-space:pre-wrap}.debug-log-api-response{background-color:#ecfdf5;color:#059669}.debug-log-progress{color:#9333ea;font-style:italic}.debug-log-success{color:#047857}.debug-log-error{background-color:#fee2e2;border-radius:.25rem;color:#b91c1c;font-weight:500;margin-top:.75rem;padding:.75rem}.debug-log-fallback{color:#d97706}.api-key-section{border-top:1px solid #e5e7eb;margin-top:1.5rem;padding:1rem;width:100%}.api-key-input{border:1px solid #d1d5db;border-radius:.25rem;display:block;font-family:monospace;margin-top:.5rem;padding:.5rem;width:100%}.api-key-hint{color:#6b7280;font-size:.75rem;font-style:italic;line-height:1.4;margin-top:.5rem}.name-input-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.name-input-modal{background-color:#fff;border-radius:8px;box-shadow:0 4px 6px -1px #0000001a;max-width:400px;padding:2rem;text-align:center;width:90%}.name-input-modal h3{color:#1f2937;margin:0 0 .5rem}.name-input-modal p{color:#6b7280;font-size:.875rem;margin:0 0 1.5rem}.name-input-modal input{border:1px solid #d1d5db;border-radius:.5rem;font-size:1rem;margin-bottom:1rem;padding:.75rem;width:100%}.name-input-buttons{display:flex;gap:.5rem;justify-content:center}.name-submit-button{background-color:#3b82f6;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.875rem;font-weight:600;padding:.75rem 1.5rem}.name-submit-button:hover{background-color:#2563eb}.name-skip-button{background-color:#f3f4f6;border:1px solid #d1d5db;border-radius:.5rem;color:#374151;cursor:pointer;font-size:.875rem;padding:.75rem 1.5rem}.name-skip-button:hover{background-color:#e5e7eb}.board-cell,.cell-piece,.game-board,.game-container,.piece,.score-indicator,.turn-indicator{transition:all .3s ease-in-out}@media (max-width:768px){.game-container{max-width:100%;padding:.5rem}.controls{align-items:stretch;flex-direction:column;gap:.75rem}.controls>*{font-size:.875rem;justify-content:center}.difficulty-selector,.player-info,.theme-selector{justify-content:center;min-width:auto}.debug-button,.howtoplay-button,.leaderboard-button,.reset-button{margin:0 auto;max-width:200px;padding:.75rem 1rem;width:100%}.ai-toggle{justify-content:center}.board-container{align-items:stretch;flex-direction:row;gap:.5rem}.score-tracker{flex-direction:column;gap:.25rem;height:auto;margin:0 .5rem;width:auto}.score-tracker.left{justify-content:flex-start}.score-tracker.right{justify-content:flex-end}.game-board{align-self:center;order:2}.score-tracker.left{order:1}.score-tracker.right{order:3}.piece-row{gap:.5rem}.piece{height:2.5rem;width:2.5rem}.board-cell{height:3.5rem;width:3.5rem}.cell-piece{height:2.5rem;width:2.5rem}.debug-panel{font-size:.75rem;padding:.75rem}.name-input-modal{margin:1rem;padding:1.5rem}.player-indicator{font-size:.8rem;min-width:150px;padding:.5rem 1rem}}@media (max-width:480px){.controls{gap:.5rem}.controls>*{font-size:.8rem}.debug-button,.howtoplay-button,.leaderboard-button,.reset-button{font-size:.8rem;padding:.6rem .8rem}.piece{height:2rem;width:2rem}.board-cell{height:3rem;width:3rem}.cell-piece{height:2rem;width:2rem}.score-indicator{height:1.5rem;width:1.5rem}.piece-row{gap:.25rem}.turn-indicator{font-size:.875rem;padding:.5rem}.debug-log-container{margin-top:1rem;padding:.5rem}.debug-log{font-size:.75rem;max-height:150px}.difficulty-selector select,.theme-selector select{font-size:.8rem;padding:.25rem}.player-indicator{font-size:.75rem;margin:.3rem auto;min-width:120px;padding:.4rem .8rem}}.ai-mode-selector{align-items:center;display:flex;gap:.5rem;min-width:140px}.ai-mode-selector label{color:#374151;font-size:.875rem;font-weight:500}.ai-mode-selector select{background-color:#fff;border:1px solid #d1d5db;border-radius:.25rem;color:#374151;font-size:.875rem;min-width:100px;padding:.25rem .5rem}.ai-mode-selector select:disabled{background-color:#f3f4f6;color:#9ca3af;cursor:not-allowed}.backend-status{align-items:center;display:flex;gap:.5rem;min-width:140px}.status-indicator{border-radius:.25rem;font-size:.875rem;font-weight:500;padding:.25rem .5rem}.status-indicator.connected{background-color:#dcfce7;border:1px solid #bbf7d0;color:#166534}.status-indicator.disconnected{background-color:#fee2e2;border:1px solid #fecaca;color:#991b1b}.retry-connection-button{background-color:#3b82f6;border:none;border-radius:.25rem;color:#fff;cursor:pointer;font-size:.75rem;padding:.25rem .5rem;transition:background-color .2s}.retry-connection-button:hover{background-color:#2563eb}.retry-connection-button:disabled{background-color:#9ca3af;cursor:not-allowed}.ai-progress{background-color:#f0f9ff;border-left:3px solid #3b82f6;border-radius:.25rem;margin-top:.5rem;padding:.5rem}.ai-progress-text{color:#1e40af;font-size:.75rem;font-style:italic;margin-top:.25rem}.player-indicator.computer .player-indicator-text,.player-indicator.player .player-indicator-text{align-items:center;display:flex;flex-direction:column}.debug-backend{background-color:#f8fafc;border-left:3px solid #6366f1;border-radius:.25rem;margin-top:1rem;padding:.75rem}.debug-backend .debug-title{color:#4338ca;font-weight:600;margin-bottom:.5rem}.debug-log-entry.debug-log-info{background-color:#eff6ff;border-radius:.25rem;color:#2563eb;margin-bottom:.25rem;padding:.25rem .5rem}.debug-log-entry.debug-log-success{background-color:#ecfdf5;border-radius:.25rem;color:#059669;margin-bottom:.25rem;padding:.25rem .5rem}.debug-log-entry.debug-log-fallback{background-color:#fffbeb;border-radius:.25rem;color:#d97706;margin-bottom:.25rem;padding:.25rem .5rem}.debug-log-entry.debug-log-error{background-color:#fef2f2;border-radius:.25rem;color:#dc2626;font-weight:500;margin-bottom:.25rem;padding:.25rem .5rem}.thinking-dots{display:inline-flex;gap:3px;margin-left:.5rem}.thinking-dot{animation:thinking-dot 1.4s ease-in-out infinite;background-color:currentColor;border-radius:50%;height:5px;width:5px}.thinking-dot:first-child{animation-delay:-.32s}.thinking-dot:nth-child(2){animation-delay:-.16s}.thinking-dot:nth-child(3){animation-delay:0}@keyframes thinking-dot{0%,80%,to{opacity:.5;transform:scale(.6)}40%{opacity:1;transform:scale(1)}}.turn-indicator.turn-computer{background-color:#fbbf241a;background-color:var(--turn-yellow-bg);color:#fbbf24;color:var(--turn-yellow-color);position:relative}.turn-indicator.turn-computer:after{animation:loading-bar 2s ease-in-out infinite;background-color:#fbbf24;background-color:var(--turn-yellow-color);bottom:0;content:"";height:2px;left:0;position:absolute}@keyframes loading-bar{0%{width:0}50%{width:100%}to{width:0}}.ai-mode-badge{background-color:#e5e7eb;border-radius:.25rem;color:#374151;display:inline-block;font-size:.75rem;font-weight:500;margin-left:.5rem;padding:.125rem .375rem}.ai-mode-badge.local{background-color:#dbeafe;color:#1e40af}.ai-mode-badge.backend{background-color:#dcfce7;color:#166534}.ai-mode-badge.openai{background-color:#fef3c7;color:#92400e}.ai-mode-badge.fallback{background-color:#fee2e2;color:#991b1b}.status-indicator.connected:before{animation:pulse-green 2s infinite;color:#22c55e;content:"●";margin-right:.25rem}.status-indicator.disconnected:before{animation:pulse-red 2s infinite;color:#ef4444;content:"●";margin-right:.25rem}@keyframes pulse-green{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse-red{0%,to{opacity:1}50%{opacity:.3}}.debug-log-container{background-color:#f8fafc;border:1px solid #e5e7eb;border-radius:.5rem;margin-top:2rem;max-width:100%;overflow:hidden;padding:1rem}.debug-log-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:.75rem;padding-bottom:.5rem}.debug-log-header h3{color:#374151;font-size:1rem;font-weight:600;margin:0}.debug-log-clear{background-color:#f3f4f6;border:1px solid #d1d5db;border-radius:.25rem;cursor:pointer;font-size:.75rem;padding:.25rem .5rem;transition:background-color .2s}.debug-log-clear:hover{background-color:#e5e7eb}.debug-log{background-color:#f1f5f9;border:1px solid #e2e8f0;border-radius:.25rem;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.8125rem;line-height:1.4;max-height:200px;overflow-y:auto;padding:.5rem}.debug-log-empty{color:#9ca3af;font-style:italic;padding:1rem 0;text-align:center}.debug-log-entries{display:flex;flex-direction:column;gap:.25rem}.debug-log-time{color:#6b7280;font-weight:500;margin-right:.5rem}.debug-log-message{color:#1f2937}@media (max-width:768px){.ai-mode-selector{align-items:stretch;flex-direction:column;gap:.25rem;min-width:auto}.ai-mode-selector select{min-width:auto;width:100%}.backend-status{align-items:stretch;flex-direction:column;gap:.25rem;min-width:auto}.status-indicator{text-align:center}.player-indicator-text{font-size:.8rem}.ai-progress-text{font-size:.7rem}.debug-backend{padding:.5rem}.debug-log{font-size:.75rem;max-height:150px}}@media (max-width:480px){.controls{gap:.5rem}.ai-mode-selector label,.backend-status .status-indicator,.controls>*{font-size:.8rem}.player-indicator{font-size:.75rem;min-width:100px;padding:.4rem .6rem}.thinking-dots{gap:2px}.thinking-dot{height:3px;width:3px}.ai-mode-badge{font-size:.7rem;padding:.125rem .25rem}.debug-log-container{margin-top:1rem;padding:.5rem}.debug-log{font-size:.7rem;max-height:120px}}.loading-spinner{animation:spin 1s ease-in-out infinite;border:2px solid #f3f4f6;border-radius:50%;border-top-color:#3b82f6;display:inline-block;height:16px;margin-right:.5rem;width:16px}@keyframes spin{to{transform:rotate(1turn)}}.connection-success{color:#059669;font-weight:600}.connection-error{color:#dc2626;font-weight:600}.game-board:before{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:.25rem;color:#6b7280;content:attr(data-ai-mode);font-size:.75rem;left:50%;padding:.25rem .5rem;position:absolute;top:-1.5rem;transform:translateX(-50%)}.ai-mode-selector select:focus,.backend-status button:focus,.debug-log-clear:focus{outline:2px solid #3b82f6;outline-offset:2px}@media (prefers-contrast:high){.status-indicator.connected{background-color:#fff;border:2px solid #22c55e;color:#000}.status-indicator.disconnected{background-color:#fff;border:2px solid #ef4444;color:#000}.debug-log-entry{border:1px solid}}@media (prefers-reduced-motion:reduce){.loading-spinner,.status-indicator:before,.thinking-dot{animation:none}.thinking-dots{display:none}.thinking:after{content:"...";margin-left:.5rem}}.player-indicator.computer.thinking .player-indicator-text{align-items:center;flex-direction:row}.player-indicator.computer.thinking .thinking-dots{margin-left:.5em}@keyframes piecePlace{0%{opacity:0;transform:scale(0) rotate(0deg)}50%{opacity:.8;transform:scale(1.2) rotate(180deg)}to{opacity:1;transform:scale(1) rotate(1turn)}}@keyframes pieceBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pieceGlow{0%{box-shadow:0 0 0 0 #3b82f680}to{box-shadow:0 0 0 10px #3b82f600}}@keyframes scoreFill{0%{opacity:0;transform:scale(0)}50%{transform:scale(1.2)}to{opacity:1;transform:scale(1)}}@keyframes scorePulse{0%{box-shadow:0 0 0 0 #ef4444;box-shadow:0 0 0 0 var(--score-red)}70%{box-shadow:0 0 0 20px #ef444400}to{box-shadow:0 0 0 0 #ef444400}}@keyframes scoreRipple{0%{opacity:1;transform:scale(.8)}to{opacity:0;transform:scale(2)}}@keyframes winCelebration{0%,to{transform:rotate(0deg) scale(1)}25%{transform:rotate(-5deg) scale(1.1)}75%{transform:rotate(5deg) scale(1.1)}}@keyframes loseShake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-5px)}20%,40%,60%,80%{transform:translateX(5px)}}@keyframes invalidMove{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}@keyframes pieceSelect{0%{transform:scale(1) rotate(0deg)}to{transform:scale(1.1) rotate(5deg)}}.piece.placing{animation:piecePlace .5s ease-out}.piece.selected{animation:pieceSelect .3s ease-in-out forwards;box-shadow:0 0 0 3px #3b82f6}.cell-piece.new-piece{animation:piecePlace .5s ease-out,pieceBounce .5s ease-out .5s}.score-indicator.scoring{animation:scoreFlash .6s ease-out,scorePulse 1s ease-out;animation:scoreFill .6s ease-out forwards;position:relative}.board-cell.invalid-move{animation:invalidMove .3s ease-out}.game-board.win-animation{animation:winCelebration 1s ease-in-out}.game-board.lose-animation{animation:loseShake .5s ease-out}.piece{transition:opacity .2s,transform .2s,box-shadow .2s}.cell-piece{transition:transform .2s,opacity .2s}.score-indicator{transition:background-color .3s,border-color .3s,transform .2s}.player-indicator.thinking{animation:thinking 1.5s ease-in-out infinite}@keyframes thinking{0%,to{opacity:.8;transform:scale(1.05)}50%{opacity:1;transform:scale(1.08)}}.sound-toggle{align-items:center;background-color:#3b82f6;border:none;border-radius:50%;bottom:2rem;box-shadow:0 4px 12px #00000026;color:#fff;cursor:pointer;display:flex;height:48px;justify-content:center;left:2rem;position:fixed;transition:all .2s;width:48px;z-index:100}.sound-toggle:hover{background-color:#2563eb;transform:scale(1.1)}.sound-toggle.muted{background-color:#6b7280}.sound-toggle svg{height:24px;width:24px}.volume-control{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;bottom:5rem;box-shadow:0 4px 12px #00000026;display:none;left:2rem;padding:1rem;position:fixed;z-index:100}.volume-control.visible{display:block}.volume-slider{margin-top:.5rem;width:120px}@media (max-width:768px){.sound-toggle{bottom:1rem;height:40px;left:1rem;width:40px}.volume-control{bottom:4rem;left:1rem}}
/*# sourceMappingURL=main.88d818e3.css.map*/