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}:root{--cell-size:80px;--board-size:calc(var(--cell-size)*8);--primary-color:#2c3e50;--secondary-color:#34495e;--accent-color:#3498db;--last-move-color:#2ecc71;--vh:1vh;--dvh:1dvh}@supports (height:100dvh){:root{--vh:1dvh}}:root,[data-theme=classic]{--white-ion:#ecf0f1;--black-ion:#2c3e50;--node-color:#e74c3c;--board-color:#d1e6f9;--board-hover:#a8c3e8}[data-theme=dark]{--white-ion:#ecf0f1;--black-ion:#2c3e50;--node-color:#e74c3c;--board-color:#34495e;--board-hover:#3d566e}[data-theme=high-contrast]{--white-ion:#fff;--black-ion:#000;--node-color:red;--board-color:#fff;--board-hover:#666}[data-theme=nature]{--white-ion:#e8f3e6;--black-ion:#2d5a27;--node-color:#d35400;--board-color:#c8e6c9;--board-hover:#81c784}[data-theme=felt]{--white-ion:#f8f9fa;--black-ion:#721c24;--node-color:#ffc107;--board-color:#1a6b3a;--board-hover:#22a05c}*{box-sizing:border-box;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:0;padding:0}body{-webkit-touch-callout:none;background:#ecf0f1;flex-direction:column;height:100vh;overflow:hidden;padding:20px;touch-action:manipulation;-webkit-user-select:none;user-select:none}body,header{align-items:center;display:flex}header{justify-content:space-between;max-width:1036px;padding:0 20px;text-align:left;width:100%}h1,header{margin-bottom:5px}h1{color:#2c3e50;color:var(--primary-color);font-family:Russo One,Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:2.25rem;font-weight:700;margin-left:325px;text-align:center;text-transform:uppercase}.game-container{align-items:stretch;display:flex;gap:20px;justify-content:center;margin:0 auto;max-width:1036px}.game-board-area,.game-controls-area{-webkit-touch-callout:none;display:flex;flex-direction:column;touch-action:manipulation}.game-controls-area{background:#fff;border:2px solid #2c3e50;border:2px solid var(--primary-color);border-radius:5px;height:auto;justify-content:flex-start;max-width:256px;min-width:256px;padding-top:10px;position:relative;width:256px}.player-info,.player-info.bottom{align-items:center;background:#34495e;background:var(--secondary-color);border-radius:5px 5px 0 0;color:#fff;display:flex;height:40px;justify-content:space-between;max-height:40px;min-height:40px;padding:0 10px}.player-info.bottom{border-radius:0 0 5px 5px}.player{align-items:center;border-radius:5px;display:flex;gap:10px;padding:0 10px}.player.active{background:#3498db;background:var(--accent-color)}.player-color{border-radius:50%;box-shadow:0 2px 8px #0003;height:24px;position:relative;transition:all .3s ease;width:24px}.player-color.white{background:#ecf0f1;background:var(--white-ion);border:2px solid #bdc3c7;box-shadow:0 2px 8px #0003,inset 0 2px 3px #fffc}.player-color.black{background:#2c3e50;background:var(--black-ion);border:2px solid #2c3e50;box-shadow:0 2px 8px #0000004d,inset 0 2px 3px #fff3}.player.active .player-color{box-shadow:0 3px 12px #0000004d;transform:scale(1.1)}.player.active .player-color.white{box-shadow:0 3px 12px #0000004d,inset 0 2px 5px #ffffffe6,0 0 15px #ffffff80}.player.active .player-color.black{box-shadow:0 3px 12px #0006,inset 0 2px 5px #ffffff4d,0 0 15px #00000080}.player-timer{font-family:monospace;font-size:1.2rem;transition:opacity .3s ease}.player-timer.hidden{opacity:0;visibility:hidden}.board{-webkit-touch-callout:none;border:2px solid #2c3e50;border:2px solid var(--primary-color);display:grid;grid-template-columns:repeat(8,80px);grid-template-columns:repeat(8,var(--cell-size));grid-template-rows:repeat(8,80px);grid-template-rows:repeat(8,var(--cell-size));position:relative;touch-action:manipulation}.column-labels,.row-labels{color:#2c3e50;color:var(--primary-color);display:flex}.column-labels{padding:5px 0;width:640px;width:var(--board-size)}.column-labels,.row-labels{justify-content:space-around}.row-labels{align-items:center;flex-direction:column;height:640px;height:var(--board-size);padding:0 5px}.board-with-labels{display:flex;margin:0}.cell{align-items:center;border:1px solid #bdc3c7;cursor:pointer;display:flex;height:80px;height:var(--cell-size);justify-content:center;position:relative;transition:all .3s ease;width:80px;width:var(--cell-size)}.cell,.cell:nth-child(odd){background-color:#d1e6f9;background-color:var(--board-color)}@media (hover:hover){.cell:hover{background-color:#a8c3e8!important;background-color:var(--board-hover)!important}}.nexus-cell{animation:nexus-pulse 1.5s ease-in-out infinite;background-color:#d4af3726;border:3px solid #0000}@keyframes nexus-pulse{0%{border-color:#d4af37cc}50%{border-color:#ffff96}to{border-color:#d4af37cc}}.dot,.node{position:relative;z-index:2}.cell.last-move,.current-state .cell.last-move{background-color:#2ecc7133;box-shadow:inset 0 0 10px 2px #2ecc7199}.review-mode .cell.last-move{background-color:#d1e6f9;box-shadow:none}.dot{border-radius:50%;height:70%;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:opacity .3s ease,box-shadow .3s ease;width:70%}.dot.white{background:#ecf0f1;background:var(--white-ion);border:2px solid #95a5a6;box-shadow:0 2px 5px #0000001a}.dot.black{background:#2c3e50;background:var(--black-ion);border:2px solid #1a252f;box-shadow:0 2px 5px #0003}.dot.shrink{opacity:0;transform:translate(-50%,-50%) scale(.1);transition:all 1s ease}.dot.fade-out{animation:fadeOutDot .2s ease forwards}@keyframes fadeOutDot{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.2)}}.review-mode .dot.shrink{transition:all .2s ease}.node{background:#e74c3c;background:var(--node-color);border-radius:50%;position:absolute;z-index:2}.node.standard{height:18.75%;width:18.75%}.node.double,.node.standard{left:50%;top:50%;transform:translate(-50%,-50%)}.node.double{background-color:initial;height:15%;position:relative;width:30%}.node.double:after,.node.double:before{background-color:#e74c3c;background-color:var(--node-color);border-radius:50%;content:"";height:8px;position:absolute;top:50%;transform:translateY(-50%);width:8px}.node.double:before{left:2px}.node.double:after{right:2px}.node.triple{background-color:initial;border:none;height:21px;left:50%;overflow:visible;position:absolute;top:50%;transform:translate(-50%,calc(-50% - 2px));width:24px}.node.triple:after{content:"";height:100%;left:0;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 21'%3E%3Cpath d='M0 21 12 0l12 21z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 21'%3E%3Cpath d='M0 21 12 0l12 21z'/%3E%3C/svg%3E");-webkit-mask-size:100% 100%;mask-size:100% 100%;position:absolute;top:0;width:100%}.node.quadruple,.node.triple:after{background-color:#e74c3c;background-color:var(--node-color)}.node.quadruple{border-radius:0;height:25%;left:50%;top:50%;transform:translate(-50%,-50%) rotate(45deg);width:25%}.controls{background:#fff;border:2px solid #2c3e50;border:2px solid var(--primary-color);border-radius:5px;box-shadow:0 2px 5px #0000001a;height:640px;height:var(--board-size);margin:0;max-height:640px;max-height:var(--board-size);min-height:640px;min-height:var(--board-size);padding:15px 15px 30px}.controls h2{color:#2c3e50;color:var(--primary-color);font-size:1.3rem;margin-bottom:8px}.btn{-webkit-touch-callout:none;background:#2c3e50;background:var(--primary-color);border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:1rem;margin:5px;padding:6px 12px;touch-action:manipulation;transition:background .2s}.btn:hover{background:#3498db;background:var(--accent-color)}.btn-group{display:flex;flex-wrap:wrap;gap:5px}#ingame-controls,#pregame-controls{box-sizing:border-box;height:136px;padding:8px;width:100%}.timer-settings{margin:13px 0}.timer-row{display:flex;gap:10px;justify-content:space-between}.option-cell{display:flex;flex:1 1;flex-direction:column}.option-cell label{color:#2c3e50;color:var(--primary-color);font-size:.9rem;margin-bottom:5px}#game-log-container{bottom:50px;left:0;position:absolute;right:0;top:160px;width:100%}.game-log{background:#fff;border:1px solid #ddd;font-family:monospace;height:400px;margin-left:auto;margin-right:auto;max-height:400px;min-height:400px;overflow-y:auto;padding:10px;scrollbar-width:thin;transition:height .3s ease;width:236px}.game-log.with-review-controls{padding-bottom:85px}#review-section{background:#fffffff7;border-top:1px solid #ccc;bottom:-25px;box-shadow:0 -3px 10px #0000001a;box-sizing:border-box;left:0;margin-left:auto;margin-right:auto;margin-top:60px;padding:4px;position:absolute;right:0;text-align:center;transition:transform .2s ease;width:236px;z-index:20}.game-log::-webkit-scrollbar{width:8px}.game-log::-webkit-scrollbar-thumb{background-color:#bbb;border-radius:4px}.log-entry{display:flex;margin-bottom:5px}.log-entry.highlighted{background-color:#f5f5f5;font-weight:700}.move-number{font-weight:700;min-width:40px;padding-right:8px;text-align:right}.black-move,.white-move{display:flex;padding-left:5px;width:40%}.black-move.highlighted,.white-move.highlighted{background-color:#f5f5f5;font-weight:700}.node-indicator{color:#e74c3c;color:var(--node-color);font-weight:700;margin-left:3px}.review-controls{-webkit-touch-callout:none;box-sizing:border-box;gap:4px;max-width:236px;padding:4px 2px;touch-action:manipulation;-webkit-user-select:none;user-select:none;width:100%}.review-controls,.review-controls .btn{align-items:center;display:flex;justify-content:center;margin:0}.review-controls .btn{background:#f8f9fa;border:1px solid #ccc;border-radius:3px;color:#000;flex-shrink:0;font-size:13px;height:28px;line-height:1;max-width:30px;min-width:26px;padding:2px 3px;transition:all .2s ease}.review-controls .btn:hover:not(:disabled){background:#e9ecef;border-color:#adb5bd}.review-controls .btn:active:not(:disabled){background:#dee2e6;transform:translateY(1px)}.review-controls .btn:disabled{background:#f8f9fa;border-color:#dee2e6;color:#6c757d;cursor:not-allowed;opacity:.6}.review-controls #first-move-btn,.review-controls #last-move-btn,.review-controls #next-move-btn,.review-controls #prev-move-btn{font-size:15px;font-weight:700;max-width:30px;min-width:30px}.arrow-icon{display:inline-block;font-size:inherit;line-height:1}.move-counter{color:#495057;flex-shrink:1;font-size:.75rem;font-weight:700;margin:0 2px;min-width:50px;padding:0 1px;text-align:center;white-space:nowrap}.review-controls #next-move-btn:hover:not(:disabled),.review-controls #prev-move-btn:hover:not(:disabled){background:#007bff;border-color:#007bff;color:#fff}.review-controls #next-move-btn:active:not(:disabled),.review-controls #prev-move-btn:active:not(:disabled){background:#0056b3;border-color:#0056b3;transform:translateY(1px)}.review-controls #first-move-btn:hover:not(:disabled),.review-controls #last-move-btn:hover:not(:disabled){background:#28a745;border-color:#28a745;color:#fff}.review-controls #next-move-btn:active,.review-controls #prev-move-btn:active{-webkit-user-select:none;user-select:none}.review-controls .btn:disabled .arrow-icon{opacity:.5}#review-section h3{font-size:1.2rem;margin-bottom:3px;margin-top:5px}.notification{background:#fff;border-radius:5px;box-shadow:0 5px 15px #0000004d;display:none;left:50%;max-width:640px;max-width:var(--board-size);padding:20px;pointer-events:auto;position:fixed;text-align:center;top:50%;transform:translate(-50%,-50%);width:640px;width:var(--board-size);z-index:10001}.notification h3{color:#2c3e50;color:var(--primary-color);margin-bottom:10px}.notification p{margin-bottom:15px}.notification-buttons{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:15px}.notification-buttons .btn{cursor:pointer;pointer-events:auto;position:relative;z-index:10001}.overlay{background:#0000;display:block;height:100vh;left:0;pointer-events:none;position:fixed;top:0;width:100vw;z-index:10000}.toast{background:#000000b3;border-radius:5px;bottom:20px;color:#fff;display:none;left:50%;padding:10px 20px;position:fixed;transform:translateX(-50%);z-index:5000}@media (max-width:600px){.toast{bottom:80px;max-width:400px;padding:12px 24px;text-align:center;width:90%}.notification,.tutorial-popup{margin:0 auto!important;max-width:96vw!important;width:96vw!important}#update-banner div{flex-direction:column!important;text-align:center!important}#update-banner span{margin-bottom:10px!important}}.rules-popup{background:#fff;border-radius:5px;box-shadow:0 5px 15px #0000004d;left:50%;max-height:80vh;max-width:500px;overflow-y:auto;padding:30px;position:fixed;text-align:left;top:50%;transform:translate(-50%,-50%);width:96vw;z-index:10001}.rules-popup h2{margin-bottom:20px;text-align:center}.rules-popup h3{color:#2c3e50;color:var(--primary-color);margin:15px 0 10px;text-align:left}.rules-popup p{text-align:left}.rules-popup ul{margin-left:20px;padding-left:20px;text-align:left}.rules-popup li{margin-bottom:10px;text-align:left}#rules-close-btn{display:block;float:none;margin-left:auto;margin-right:auto;margin-top:20px}.game-mode-selector{margin-bottom:15px}.toggle-container{justify-content:space-between}.toggle-label{color:#2c3e50;color:var(--primary-color);font-size:.9rem;font-weight:500;opacity:.7}.toggle-label.active{color:#3498db;color:var(--accent-color);font-weight:700;opacity:1}.toggle{margin:0 10px}.slider{background-color:#ccc;border:2px solid #999;bottom:0;cursor:pointer;left:0;right:0;top:0}.slider,.slider:before{position:absolute;transition:.4s}.slider:before{background-color:#fff;bottom:2px;box-shadow:0 2px 4px #0003;content:"";height:16px;left:4px;width:16px}input:checked+.slider{background-color:#3498db;background-color:var(--accent-color);border-color:#3498db;border-color:var(--accent-color)}input:focus+.slider{box-shadow:0 0 1px #3498db;box-shadow:0 0 1px var(--accent-color)}input:checked+.slider:before{transform:translateX(26px)}.slider.round{border-radius:24px}.slider.round:before{border-radius:50%}.toggle.small .slider{border-width:1.5px}.toggle.small .slider:before{bottom:1.5px;left:2px}#timer-toggle+.slider{background-color:#f44}#timer-toggle:checked+.slider{background-color:#4f4}#timer-toggle+.slider:before{background-color:#fff}#sound-toggle+.slider{background-color:#e74c3c;border-color:#c0392b}#sound-toggle:checked+.slider{background-color:#2ecc71;border-color:#27ae60}#sound-toggle+.slider:before{box-shadow:0 2px 4px #0000004d}.vector-highlight{background-color:#27ae604d;box-shadow:inset 0 0 10px 5px #27ae60b3;transition:box-shadow 1s ease,background-color 1s ease}.vector-highlight.fade-out{background-color:#d1e6f9;box-shadow:inset 0 0 0 0 #27ae6000}.dot.new-dot{animation:bounce-in .2s cubic-bezier(.68,-.55,.265,1.55);animation-fill-mode:both}@keyframes bounce-in{0%{transform:translate(-50%,-50%) scale(0)}80%{transform:translate(-50%,-50%) scale(1.02)}90%{transform:translate(-50%,-50%) scale(.98)}to{transform:translate(-50%,-50%) scale(1)}}@media (max-width:1200px){:root{--cell-size:70px}}@media (max-width:900px){.game-container{align-items:center;flex-direction:column}.game-controls-area{max-width:640px;width:100%}:root{--cell-size:60px}}@media (max-width:600px){body,html{height:100vh!important;height:calc(var(--vh, 1vh)*100)!important;overflow:hidden!important;position:relative;width:100vw!important}body{background:#ecf0f1;min-height:100vh!important;min-height:calc(var(--vh, 1vh)*100)!important}header{left:0;max-width:100vw!important;padding:.5em 0 .2em!important;position:relative;right:0;text-align:center!important;width:100vw!important}:root{--cell-size:12vw!important}.game-board-area{margin:0 auto!important;max-width:96vw!important;width:96vw!important}.board,.board-with-labels{margin:0 auto!important;max-width:100%!important;width:100%!important}.board{aspect-ratio:1/1!important;height:96vw!important;max-height:96vw!important}header h1{font-size:2em;margin:0 auto;margin-left:0!important;overflow-wrap:break-word;text-align:center;white-space:normal;width:100vw;word-break:break-word}.game-controls-area{display:none!important}#pregame-modal.notification{align-items:center;background:#fff;border-radius:10px;box-shadow:0 5px 15px #0000004d;display:flex;flex-direction:column;justify-content:center;left:50%;max-width:400px;padding:24px 12px 18px;position:fixed;top:50%;transform:translate(-50%,-50%);width:95vw;z-index:2000}#pregame-modal h2{font-size:1.5em;margin-bottom:18px;text-align:center}#pregame-controls-mobile>*{margin-bottom:12px;width:100%}#pregame-start-btn{font-size:1.2em;margin-top:10px;padding:10px 0;width:100%}#mobile-action-bar{background:#f8f8f8;border-bottom:1px solid #ccc;border-top:1px solid #ccc;bottom:60px;box-shadow:0 -2px 8px #00000012;display:flex!important;justify-content:space-around;left:0;padding:8px 0 6px;position:fixed;width:100vw;z-index:3000}#mobile-action-bar .btn{background:#e74c3c;border:none;border-radius:6px;color:#fff;flex:1 1 30%;font-size:1.1em;margin:0 6px;padding:.7em 0}#mobile-utility-bar{background:#fff;border-top:2px solid #3498db;bottom:0;box-shadow:0 -2px 8px #00000017;display:flex!important;justify-content:space-around;left:0;padding:8px 0 6px;position:fixed;width:100vw;z-index:3001}#mobile-utility-bar .btn{background:#3498db;border:none;border-radius:6px;color:#fff;flex:1 1 30%;font-size:1.1em;margin:0 6px;padding:.7em 0}body{padding-bottom:120px!important}#mobile-review-bar{align-items:center;background:#fff;border-bottom:1px solid #ccc;border-top:2px solid #3498db;box-shadow:0 2px 8px #0000000a;display:flex!important;flex-direction:row;justify-content:center;padding:10px 0 4px;position:relative;width:100vw;z-index:2500}#mobile-review-bar .review-controls{align-items:center!important;display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:8px!important;justify-content:center!important;width:100%}#mobile-review-bar .btn{border-radius:5px;font-size:1em;line-height:1;margin:0 1px;min-width:32px;padding:.25em .4em}#mobile-review-bar .btn[title="Exit Review"]{font-size:1.3em;min-width:32px;padding:.25em .4em}#mobile-review-bar .btn[title*=First],#mobile-review-bar .btn[title*=Last],#mobile-review-bar .btn[title*=Move]{font-size:1.3em}#mobile-review-bar .move-counter{color:#2c3e50;flex-shrink:0;font-size:.9em;font-weight:700;margin:0 8px;text-align:center;white-space:nowrap}body.review-mode-mobile #game-log{display:none!important}#mobile-tutorial-close-x{background:none;border:none;color:#333;cursor:pointer;display:block!important;font-size:2em;position:absolute;right:12px;top:8px;z-index:1002}#rules-popup,#tutorial-popup{box-sizing:border-box;left:50%!important;max-width:96vw!important;min-width:0!important;min-width:auto!important;top:50%!important;transform:translate(-50%,-50%)!important;width:96vw!important}#rules-popup{align-items:stretch;background:#fff;border-radius:10px;display:flex;flex-direction:column;height:600px!important;justify-content:flex-start;max-height:98vh!important;min-height:0!important;min-height:auto!important;overflow-y:auto!important;padding:30px 18px 18px!important;position:fixed!important;z-index:10001!important}.tutorial-navigation{background:#fff;border-radius:0 0 10px 10px;border-top:1px solid #eee;bottom:0;display:flex;flex-wrap:wrap;gap:6px!important;justify-content:center;left:0;padding:15px;position:absolute;right:0}.tutorial-navigation .btn{font-size:1em;margin:0 2px;min-width:80px;padding:.6em .8em}.toast{bottom:80px}}@media (min-width:601px){#mobile-action-bar,#mobile-tutorial-close-x,#mobile-utility-bar{display:none!important}}.main-buttons{display:flex;justify-content:space-between;margin:0 0 13px;padding:0 5px}.action-btn{flex:1 1;margin:0 5px;padding:8px 0;text-align:center}.action-btn:first-child{margin-left:0}.action-btn:last-child{margin-right:0}.option-row{justify-content:space-between;margin-bottom:18px}.option-row label{color:#2c3e50;color:var(--primary-color);font-size:.9rem}.control-select{border:1px solid #ddd;border-radius:3px;flex:0.8 1;font-size:.9rem;min-width:100px;padding:5px;width:auto}.game-status{background-color:#f5f5f5;border-radius:5px;margin-top:8px;padding:8px}.status-row{display:flex;justify-content:space-between;margin-bottom:8px}.status-row:last-child{margin-bottom:0}#current-turn-indicator{border-radius:3px;font-weight:700;padding:2px 8px}.review-mode .dot{transition:none}.review-mode .dot.new-dot{animation:none}.review-mode .dot.shrink{opacity:1;transform:none;transition:none}.review-mode .vector-highlight{background-color:#d1e6f9;box-shadow:none;transition:none}.utility-buttons-container{align-items:center;display:flex;height:40px;justify-content:center;margin-bottom:0;margin-top:5px;max-height:40px;min-height:40px;width:100%}.utility-buttons{display:flex;justify-content:space-between;transform:none;width:610px;width:calc(var(--board-size) - 30px)}.utility-buttons .btn{background:#34495e;background:var(--secondary-color);border:none;border-radius:5px;color:#fff;cursor:pointer;flex:0 1 auto;font-size:.85rem;margin:0 5px;min-width:78px;padding:8px 10px;text-align:center;transition:background .2s}.utility-buttons .btn:hover{background:#3498db;background:var(--accent-color)}.tutorial-popup{background:#fff;border-radius:10px;box-shadow:0 5px 15px #0000004d;display:flex;flex-direction:column;height:600px;left:50%;position:fixed;top:50%;transform:translate(-50%,-50%);width:640px;width:var(--board-size);z-index:17000}#tutorial-content{align-items:center;display:flex;flex:1 1;flex-direction:column;overflow-y:auto;padding:20px 20px 80px}#tutorial-title{color:#2c3e50;color:var(--primary-color);font-size:1.5rem;margin-bottom:15px}#tutorial-message{line-height:1.5;margin-bottom:20px;text-align:center}#tutorial-demo{align-items:center;display:flex;flex-direction:column;height:300px;justify-content:center;margin:20px 0}.tutorial-demo-board{grid-gap:1px;background:#bdc3c7;border:2px solid #2c3e50;border-radius:5px;display:grid;gap:1px;margin:0 auto;padding:5px}.tutorial-demo-cell{background:#d1e6f9;border-radius:2px;height:100%;position:relative;transition:background-color .2s;width:100%}@media (hover:hover){.tutorial-demo-cell:hover{background-color:#b3d4fc}}.tutorial-demo-dot{border-radius:50%;height:70%;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:all .3s ease;width:70%}.tutorial-demo-dot.white{background:#ecf0f1;border:2px solid #2c3e50;box-shadow:0 2px 5px #0000001a}.tutorial-demo-dot.black{background:#2c3e50;border:2px solid #1a252f;box-shadow:0 2px 5px #0003}.tutorial-demo-dot.shrink{opacity:0;transform:scale(0);transition:all .5s ease}.tutorial-demo-dot.node:after{background-color:#e74c3c;border-radius:50%;content:"";height:8px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:8px;z-index:2}.tutorial-navigation{background:#fff;border-radius:0 0 10px 10px;border-top:1px solid #eee;bottom:0;display:flex;gap:10px;justify-content:center;left:0;padding:20px;position:absolute;right:0}.tutorial-overlay{background:#00000080;bottom:0;left:0;position:fixed;right:0;top:0;z-index:16999}.game-board{grid-gap:1px;background:#bdc3c7;border:2px solid #2c3e50;border-radius:5px;display:grid;gap:1px;grid-template-columns:repeat(8,60px);grid-template-rows:repeat(8,60px);padding:5px}.game-cell{background:#d1e6f9;border-radius:2px;position:relative;transition:background-color .2s}@media (hover:hover){.game-cell:hover{background-color:#a8c3e8!important;background-color:var(--board-hover)!important}}.game-dot{border-radius:50%;height:70%;left:15%;position:absolute;top:15%;transition:all .3s ease;width:70%}.game-dot.white{background:#ecf0f1;border:2px solid #2c3e50;box-shadow:0 2px 5px #0000001a}.game-dot.black{background:#2c3e50;border:2px solid #1a252f;box-shadow:0 2px 5px #0003}.button{background:#3498db;border:none;border-radius:5px;color:#fff;cursor:pointer;padding:10px 20px;transition:background .2s}.button:hover{background:#2980b9}.button:disabled{background:#bdc3c7;cursor:not-allowed}#settings-btn{display:block}.black-move.highlighted-move span,.white-move.highlighted-move span{background-color:#3498db33;border-radius:2px;display:inline-block;padding:1px 2px}.black-move span,.white-move span{display:inline-block}.game-controls-area h2{display:inline-block;margin-right:10px}.review-button-container{margin-top:0;position:relative}.review-button-container h2{margin-top:0}.review-button{background-color:#3498db;background-color:var(--accent-color);border:none;border-radius:4px;color:#fff;cursor:pointer;display:none;font-size:.8rem;margin-left:23px;padding:3px 8px;position:relative;top:-3px}.review-button:hover{background-color:#2980b9}.settings-dialog{max-width:500px;width:90%}.settings-section{margin-bottom:20px}.settings-section h3{color:var(--text-color);margin-bottom:10px}.option-row{align-items:center;display:flex;margin-bottom:10px}.option-row label{flex:1 1;margin-right:10px}.toggle-container{align-items:center;display:flex;gap:8px}.toggle-label{color:var(--text-color-muted);font-size:.9em}.toggle-label.active{color:var(--text-color)}.toggle{display:inline-block;height:24px;position:relative;width:50px}.toggle.small{height:20px;width:40px}.toggle input{height:0;opacity:0;width:0}.toggle .slider{background-color:#ccc;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.4s}.toggle .slider:before{background-color:#fff;bottom:4px;content:"";height:16px;left:4px;position:absolute;transition:.4s;width:16px}.toggle.small .slider:before{bottom:3px;height:14px;left:3px;width:14px}.toggle input:checked+.slider{background-color:var(--highlight-color)}.toggle input:focus+.slider{box-shadow:0 0 1px var(--highlight-color)}.toggle input:checked+.slider:before{transform:translateX(26px)}.toggle.small input:checked+.slider:before{transform:translateX(20px)}.toggle .slider.round{border-radius:34px}.toggle .slider.round:before{border-radius:50%}.color-option{align-items:center;display:flex;justify-content:space-between;margin:10px 0;padding:5px 0}.color-option label{flex:1 1;margin-right:15px}.color-option input[type=color]{border:none;border-radius:4px;cursor:pointer;height:30px;padding:0;width:50px}.core-avatar{display:none;height:80px;margin:0 auto;position:relative;width:80px}.core-orb{animation:orbPulse 3.5s ease-in-out infinite;background:radial-gradient(circle at 30% 30%,#3246644d 0,#1e325080 50%,#142846b3 100%);border-radius:50%;box-shadow:0 0 20px #1e325066,inset 0 0 30px #6478964d}.core-dots,.core-orb{height:100%;position:absolute;width:100%}.core-dots{align-items:center;display:flex;gap:6px;justify-content:center;left:50%;margin-top:4px;top:50%;transform:translate(-50%,-50%)}.core-dot{background:#1a4b8c;border-radius:50%;box-shadow:0 0 10px #1a4b8c80;height:12px;position:relative;width:12px}@keyframes waveFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.core-dot:first-child{animation:waveFloat 4s ease-in-out infinite;left:auto;top:auto}.core-dot:nth-child(2){animation:waveFloat 4s ease-in-out .5s infinite;right:auto;top:auto}.core-dot:nth-child(3){animation:waveFloat 4s ease-in-out 1s infinite;bottom:auto;left:auto}.core-avatar.waiting .core-dot:first-child{animation-delay:0s}.core-avatar.waiting .core-dot:nth-child(2){animation-delay:.5s}.core-avatar.waiting .core-dot:nth-child(3){animation-delay:1s}.core-avatar.waiting .core-dot{left:auto;top:auto}.core-avatar.waiting .core-dot:first-child,.core-avatar.waiting .core-dot:nth-child(2),.core-avatar.waiting .core-dot:nth-child(3){left:auto}.core-avatar.waiting .core-dot{animation:waveFloat 4s ease-in-out infinite}@keyframes orbPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(.95)}}.core-avatar.behind .core-orb{animation:orbPulseFast 2s ease-in-out infinite}.core-avatar.ahead .core-orb{animation:orbPulseSlow 5s ease-in-out infinite}@keyframes orbPulseFast{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.92)}}@keyframes orbPulseSlow{0%,to{opacity:1;transform:scale(1)}50%{opacity:.9;transform:scale(.97)}}.core-avatar.thinking .core-orb{background:radial-gradient(circle at 30% 30%,#283c5a66 0,#14284699 50%,#0a1e3ccc 100%);box-shadow:0 0 25px #14284680,inset 0 0 35px #50648266}.core-avatar.reacting .core-orb{background:radial-gradient(circle at 30% 30%,#3c506e80 0,#283c5ab3 50%,#142846e6 100%);box-shadow:0 0 30px #283c5a99,inset 0 0 40px #64789680}.core-avatar.reacting .core-dot:first-child{animation:waveFloat 4s ease-in-out infinite;bottom:auto;left:auto;right:auto;top:auto}.core-avatar.reacting .core-dot:nth-child(2){animation:waveFloat 4s ease-in-out .5s infinite;bottom:auto;left:auto;right:auto;top:auto}.core-avatar.reacting .core-dot:nth-child(3){animation:waveFloat 4s ease-in-out 1s infinite;bottom:auto;left:auto;right:auto;top:auto}.core-avatar.waiting .core-dot{top:34px;transition:all .3s ease}.core-avatar.waiting .core-dot:first-child{left:20px}.core-avatar.waiting .core-dot:nth-child(2){left:34px}.core-avatar.waiting .core-dot:nth-child(3){left:48px}@keyframes blinkDots{0%,to{opacity:1}50%{opacity:0}}.core-avatar.waiting .core-dot{animation:blinkDots .5s ease-in-out}.core-level{background:#ffffffe6;border-radius:4px;bottom:-35px;box-shadow:0 2px 4px #0000001a;color:#2c3e50;color:var(--primary-color);font-size:14px;font-weight:700;left:50%;padding:2px 8px;position:absolute;text-align:center;transform:translateX(-50%);white-space:nowrap}[data-theme=dark] .dot.black{border:2px solid #666;box-shadow:0 2px 5px #0003}[data-theme=dark] .player-color.black{border:2px solid #666;box-shadow:0 2px 8px #0000004d,inset 0 2px 3px #fff3}[data-theme=dark] .player.active .player-color.black{box-shadow:0 3px 12px #0006,inset 0 2px 5px #ffffff4d,0 0 15px #6666664d}.cell-row-label{left:6px;top:4px}.cell-col-label,.cell-row-label{color:#888;font-family:monospace;font-size:.85rem;opacity:.85;pointer-events:none;position:absolute;z-index:3}.cell-col-label{bottom:4px;right:6px}.top-button-row{align-items:center;display:flex;gap:10px;height:40px;justify-content:flex-end;margin-bottom:5px;max-height:40px;min-height:40px}.top-button-row .btn,.utility-buttons-container .btn{height:40px;line-height:40px;max-height:40px;min-height:40px;padding-bottom:0;padding-top:0}body,html{-webkit-touch-callout:none;box-sizing:border-box;height:100%;margin:0;overflow:hidden;padding:0;position:fixed;touch-action:none;-webkit-user-select:none;user-select:none;width:100%}.review-controls .btn{cursor:pointer}@media (max-width:600px){body,html{height:100vh!important;overflow:hidden!important;position:relative;width:100vw!important}body{background:#ecf0f1}header{left:0;max-width:100vw!important;padding:.5em 0 .2em!important;position:relative;right:0;text-align:center!important;width:100vw!important}header>div[style*="position: absolute"][style*="top: 20px"]{top:26px!important}:root{--cell-size:12vw!important}.game-board-area{margin:0 auto!important;max-width:96vw!important;width:96vw!important}.board,.board-with-labels{margin:0 auto!important;max-width:100%!important;width:100%!important}.board{aspect-ratio:1/1!important;height:96vw!important;max-height:96vw!important}header h1{font-size:2em;margin:0 auto;margin-left:0!important;overflow-wrap:break-word;text-align:center;white-space:normal;width:100vw;word-break:break-word}.game-controls-area{display:none!important}#pregame-modal.notification{align-items:center;background:#fff;border-radius:10px;box-shadow:0 5px 15px #0000004d;display:flex;flex-direction:column;justify-content:center;left:50%;max-width:400px;padding:24px 12px 18px;position:fixed;top:50%;transform:translate(-50%,-50%);width:95vw;z-index:2000}#pregame-modal h2{font-size:1.5em;margin-bottom:18px;text-align:center}#pregame-controls-mobile>*{margin-bottom:12px;width:100%}#pregame-start-btn{font-size:1.2em;margin-top:10px;padding:10px 0;width:100%}#mobile-action-bar{background:#f8f8f8;border-bottom:1px solid #ccc;border-top:1px solid #ccc;bottom:60px;box-shadow:0 -2px 8px #00000012;display:flex!important;justify-content:space-around;left:0;padding:8px 0 6px;position:fixed;width:100vw;z-index:3000}#mobile-action-bar .btn{background:#e74c3c;border:none;border-radius:6px;color:#fff;flex:1 1 30%;font-size:1.1em;margin:0 6px;padding:.7em 0}#mobile-utility-bar{background:#fff;border-top:2px solid #3498db;bottom:0;box-shadow:0 -2px 8px #00000017;display:flex!important;justify-content:space-around;left:0;padding:8px 0 6px;position:fixed;width:100vw;z-index:3001}#mobile-utility-bar .btn{background:#3498db;border:none;border-radius:6px;color:#fff;flex:1 1 30%;font-size:1.1em;margin:0 6px;padding:.7em 0}body{padding-bottom:120px!important}#mobile-review-bar{align-items:center;background:#fff;border-bottom:1px solid #ccc;border-top:2px solid #3498db;box-shadow:0 2px 8px #0000000a;display:flex!important;flex-direction:row;justify-content:center;padding:10px 0 4px;position:relative;width:100vw;z-index:2500}#mobile-review-bar .review-controls{align-items:center!important;display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:8px!important;justify-content:center!important;width:100%}#mobile-review-bar .btn{border-radius:5px;font-size:1em;line-height:1;margin:0 1px;min-width:32px;padding:.25em .4em}#mobile-review-bar .btn[title="Exit Review"]{font-size:1.3em;min-width:32px;padding:.25em .4em}#mobile-review-bar .btn[title*=First],#mobile-review-bar .btn[title*=Last],#mobile-review-bar .btn[title*=Move]{font-size:1.3em}#mobile-review-bar .move-counter{color:#2c3e50;flex-shrink:0;font-size:.9em;font-weight:700;margin:0 8px;text-align:center;white-space:nowrap}body.review-mode-mobile #game-log{display:none!important}#mobile-tutorial-close-x{background:none;border:none;color:#333;cursor:pointer;display:block!important;font-size:2em;position:absolute;right:12px;top:8px;z-index:1002}#tutorial-popup{box-sizing:border-box;left:50%!important;max-width:93vw!important;min-width:0!important;min-width:auto!important;top:50%!important;transform:translate(-50%,-50%)!important;width:475px!important}#tutorial-popup #tutorial-content{overflow-y:auto;padding:20px 20px 80px}#rules-popup{align-items:stretch;background:#fff;border-radius:10px;box-sizing:border-box;display:flex;flex-direction:column;height:600px!important;justify-content:flex-start;left:50%!important;max-height:98vh!important;max-width:98vw!important;min-height:0!important;min-height:auto!important;min-width:0!important;min-width:auto!important;overflow-y:auto!important;padding:30px 18px 18px!important;position:fixed!important;top:50%!important;transform:translate(-50%,-50%)!important;width:500px!important;z-index:10001!important}.tutorial-navigation{background:#fff;border-radius:0 0 10px 10px;border-top:1px solid #eee;bottom:0;display:flex;flex-wrap:wrap;gap:6px!important;justify-content:center;left:0;padding:15px;position:absolute;right:0}.tutorial-navigation .btn{font-size:1em;margin:0 2px;min-width:80px;padding:.6em .8em}.toast{bottom:80px}}@media (min-width:601px){#mobile-action-bar,#mobile-tutorial-close-x,#mobile-utility-bar,#pregame-modal{display:none!important}}#pregame-controls{height:136px;max-height:136px;min-height:136px;transition:visibility .2s,opacity .2s}.pregame-controls-hidden{opacity:0;pointer-events:none;visibility:hidden}.mobile-controls-button,.mobile-only{display:none}@media (max-width:600px){.mobile-only{display:block!important}.game-controls-area,.mobile-controls-button,.player-buttons,.utility-buttons-container{display:none!important}#mobile-action-bar,#mobile-utility-bar{display:flex!important}.mobile-controls-modal{left:50%!important;max-height:90vh!important;overflow-y:auto!important;position:fixed!important;top:50%!important;transform:translate(-50%,-50%)!important;z-index:15000!important}.mobile-controls-modal .option-row{align-items:flex-start;display:flex;flex-direction:column;gap:8px}.mobile-controls-modal .timer-row{display:flex;gap:15px}.mobile-controls-modal .control-select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=US-ASCII,<svg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 4 5%27><path fill=%27%23666%27 d=%27M2 0L0 2h4zm0 5L0 3h4z%27/></svg>");background-position:right 12px center;background-repeat:no-repeat;background-size:12px;padding-right:40px!important}}@keyframes slideIn{0%{opacity:0;transform:translateX(-50%) translateY(-20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@media (max-width:480px){:root{--cell-size:11.5vw!important}.game-board-area{max-width:92vw!important;width:92vw!important}body{padding-bottom:calc(130px + env(safe-area-inset-bottom))!important}#mobile-action-bar{bottom:65px!important;padding:6px 0 4px!important}#mobile-action-bar .btn,#mobile-utility-bar .btn{font-size:1em!important;padding:.6em 0!important}header h1{font-size:1.8em!important}}@media (max-height:600px) and (max-width:600px),(max-width:400px){:root{--cell-size:11.25vw!important}.game-board-area{max-width:90vw!important;width:90vw!important}body{padding-bottom:calc(140px + env(safe-area-inset-bottom))!important}header{padding:.3em 0 .1em!important}header h1{font-size:1.6em!important;margin-bottom:2px!important}.player-info,.player-info.bottom{font-size:.9em;height:35px!important;max-height:35px!important;min-height:35px!important}.player-color{height:20px!important;width:20px!important}#mobile-action-bar{bottom:70px!important;padding:5px 0 3px!important}#mobile-action-bar .btn{font-size:.95em!important;margin:0 6px!important;padding:.5em 0!important}#mobile-utility-bar{padding:5px 0 3px!important}#mobile-utility-bar .btn{font-size:.95em!important;margin:0 6px!important;padding:.5em 0!important}}@media (max-height:500px) and (max-width:600px){body{padding-bottom:calc(110px + env(safe-area-inset-bottom))!important}header{padding:.2em 0 .1em!important}header h1{font-size:1.4em!important;margin-bottom:1px!important}.player-info,.player-info.bottom{font-size:.8em;height:30px!important;max-height:30px!important;min-height:30px!important;padding:0 8px!important}.player-color{height:18px!important;width:18px!important}#mobile-action-bar{bottom:55px!important;padding:4px 0 2px!important}#mobile-action-bar .btn{font-size:.9em!important;padding:.4em 0!important}#mobile-utility-bar{padding:4px 0 2px!important}#mobile-utility-bar .btn{font-size:.9em!important;padding:.4em 0!important}:root{--cell-size:11vw!important}.game-board-area{max-width:88vw!important;width:88vw!important}}@media (max-width:600px){.player-info,.player-info.bottom{border-radius:0!important;margin:0!important;width:641px!important;width:calc(var(--board-size) + 1px)!important}.player-info.bottom{margin-top:-18px!important}.game-board-area{border:2px solid #34495e!important;border:2px solid var(--secondary-color)!important;border-radius:0!important;gap:0!important;width:calc(96vw + 4px)!important}.board,.board-with-labels{border:none!important}.board-with-labels{border-radius:0!important;width:640px!important;width:var(--board-size)!important}.game-board-area{max-width:calc(96vw + 4px)!important;width:calc(96vw + 4px)!important}}@media (max-width:480px){.game-board-area{max-width:calc(92vw + 4px)!important;width:calc(92vw + 4px)!important}}@media (max-height:600px) and (max-width:600px),(max-width:400px){.game-board-area{max-width:calc(90vw + 4px)!important;width:calc(90vw + 4px)!important}}@media (max-height:500px) and (max-width:600px){.game-board-area{max-width:calc(88vw + 4px)!important;width:calc(88vw + 4px)!important}}@media (max-width:600px){#mobile-button-container{display:flex;flex-direction:column;margin-top:10px!important;position:relative!important;width:100vw}#mobile-action-bar{border-bottom:none!important;margin-bottom:0!important}#mobile-action-bar,#mobile-utility-bar{bottom:auto!important;margin-top:0!important;position:relative!important}#mobile-utility-bar{border-top:none!important}body{padding-bottom:20px!important}}@media (max-width:600px) and (orientation:landscape){body:before{align-items:center;background:#2c3e50;background:var(--primary-color);box-sizing:border-box;color:#fff;content:"To play MigoYugo, please rotate to portrait mode";display:flex;font-size:1.5rem;height:100vh;justify-content:center;left:0;padding:20px;position:fixed;text-align:center;top:0;width:100vw;z-index:9999}.game-container,header{display:none!important}}@media (max-width:600px){.cell:hover,.game-cell:hover,.tutorial-demo-cell:hover{background-color:#d1e6f9!important;background-color:var(--board-color)!important}#mobile-review-bar{flex-direction:column!important;padding:8px 0 6px!important}#mobile-review-bar .review-buttons{align-items:center!important;display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:8px!important;justify-content:center!important;margin-bottom:4px}#mobile-review-bar .move-counter{flex-shrink:1!important;margin:0!important}}
/*# sourceMappingURL=main.fd358167.css.map*/