.app{width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:0}.app-landing{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:70vh;gap:2rem;padding:2rem}.open-menu-button{padding:1.25rem 3rem;font-size:1.5rem;background:linear-gradient(135deg,#4a7c59 0%,#3d5a80 100%);color:#e0e0e0;border:none;border-radius:12px;cursor:pointer;font-weight:600;transition:all .3s ease;box-shadow:0 4px 15px #0000004d}.open-menu-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0006}.open-menu-button:active{transform:translateY(0)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.modal-content{background-color:#1a1a1a;border-radius:12px;padding:2rem;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;position:relative;animation:slideUp .3s ease;box-shadow:0 10px 40px #00000080}.modal-content h1{margin:0 0 1.5rem;color:#e0e0e0;font-size:2rem;text-align:center}.modal-content h2{margin:1.5rem 0 1rem;color:#b0b0b0;font-size:1.25rem}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:2rem;color:#888;cursor:pointer;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.modal-close:hover{background-color:#333;color:#e0e0e0}.game-rules{background-color:#2a2a2a;border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.rules-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.rule-item{display:flex;align-items:start;gap:.75rem}.rule-item .rule-icon{font-size:1.5rem;flex-shrink:0}.rule-item p{margin:0;color:#d0d0d0;font-size:.9rem;line-height:1.4}.rule-item p strong{color:#e0e0e0}.game-modes{display:flex;flex-direction:column;gap:1rem}.mode-button{display:flex;align-items:center;gap:1.5rem;padding:1.5rem;background-color:#2a2a2a;border:2px solid #3a3a3a;border-radius:8px;cursor:pointer;transition:all .2s ease;text-align:left}.mode-button:hover:not(.disabled){background-color:#333;border-color:#4a4a4a;transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.mode-button:active:not(.disabled){transform:translateY(0)}.mode-button.disabled{opacity:.5;cursor:not-allowed}.mode-button.disabled .mode-info{position:relative}.mode-button .mode-icon{font-size:2.5rem;flex-shrink:0}.mode-button .mode-info{flex:1}.mode-button .mode-info h3{margin:0 0 .5rem;color:#e0e0e0;font-size:1.1rem}.mode-button .mode-info p{margin:0;color:#b0b0b0;font-size:.9rem;line-height:1.4}.mode-button .mode-info .coming-soon{display:inline-block;margin-top:.5rem;padding:.25rem .75rem;background-color:#4a4a4a;color:#e0e0e0;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.difficulty-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin:1.5rem 0}.difficulty-option{display:flex;flex-direction:column;align-items:center;text-align:center;padding:1.5rem 1rem;background-color:#2a2a2a;border:2px solid #3a3a3a;border-radius:8px;cursor:pointer;transition:all .2s ease}.difficulty-option:hover{background-color:#333;border-color:#4a4a4a;transform:translateY(-2px)}.difficulty-option.selected{background-color:#3a5a4a;border-color:#5a8a6a;box-shadow:0 0 0 2px #5a8a6a4d}.difficulty-option .difficulty-icon{font-size:2rem;margin-bottom:.5rem}.difficulty-option h3{margin:0 0 .5rem;color:#e0e0e0;font-size:1rem}.difficulty-option p{margin:0;color:#b0b0b0;font-size:.85rem;line-height:1.3}.difficulty-actions{display:flex;gap:1rem;justify-content:center;margin-top:1.5rem}.action-button{padding:.75rem 2rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.action-button.primary{background:linear-gradient(135deg,#4a7c59 0%,#3d5a80 100%);color:#e0e0e0}.action-button.primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.action-button.secondary{background-color:#3a3a3a;color:#e0e0e0;border:1px solid #4a4a4a}.action-button.secondary:hover{background-color:#444}.action-button:active{transform:translateY(0)}@media (max-width: 768px){.modal-content{padding:1.5rem;width:95%}.modal-content h1{font-size:1.5rem}.rules-grid{grid-template-columns:1fr}.mode-button{flex-direction:column;text-align:center;align-items:center;gap:1rem}.mode-button .mode-icon{font-size:2rem}.difficulty-options{grid-template-columns:1fr 1fr}.difficulty-actions{flex-direction:column}.difficulty-actions .action-button{width:100%}}.hexagon-grid-container{display:flex;flex-direction:row;align-items:center;justify-content:center;width:100%;height:100%;margin:0;gap:.5rem;padding:0}.hexagon-grid{flex:1;width:auto;height:auto;min-width:600px;min-height:600px;max-width:min(95vh,100vw - 250px);max-height:95vh}.game-header{width:100%;display:flex;justify-content:center;margin-bottom:1rem}@media (max-width: 768px){.game-header{flex-direction:column;gap:1rem}}.game-side-panel{display:flex;flex-direction:column;width:220px;min-width:220px;max-width:220px;height:100%;background-color:#1a1a1a;border-radius:0;padding:.75rem;overflow-y:auto}.game-side-panel .panel-content{display:flex;flex-direction:column;gap:1rem}.game-side-panel .panel-title{margin:0;color:#e0e0e0;font-size:1.1rem;font-weight:600;padding-bottom:.75rem;border-bottom:1px solid #333}.game-side-panel .panel-section{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;background-color:#2a2a2a;border-radius:6px}.game-side-panel .panel-section.multiplayer-info{text-align:center}.game-side-panel .panel-section.multiplayer-info .waiting-message{margin:0 0 .25rem;color:#e0e0e0;font-size:.95rem;font-weight:600}.game-side-panel .panel-section.multiplayer-info .room-hint{margin:0;color:#b0b0b0;font-size:.85rem}.game-side-panel .panel-section.spectator-info{text-align:center;background-color:#3a2a5a}.game-side-panel .panel-section.spectator-info .spectator-message{margin:0 0 .25rem;color:#d0a0ff;font-size:.95rem;font-weight:600}.game-side-panel .panel-section.spectator-info .room-hint{margin:0;color:#b0b0b0;font-size:.85rem}.game-side-panel .panel-section.connected-info{text-align:center;background-color:#2a4a2a}.game-side-panel .panel-section.connected-info .connected-message{margin:0;color:#a0ffa0;font-size:.95rem;font-weight:600}.game-side-panel .panel-section.game-status .status-value{font-weight:600;color:#4a9eff}.game-side-panel .status-label{color:#b0b0b0;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em}.game-side-panel .status-value{color:#e0e0e0;font-size:1rem}.game-info{flex:1;background-color:#2a2a2a;border-radius:8px;padding:1.5rem}.game-info h2{margin:0 0 1rem;color:#e0e0e0;font-size:1.5rem}.game-info h3{margin:.75rem 0 .5rem;color:#b0b0b0;font-size:1rem}.game-info p{margin:.5rem 0;color:#d0d0d0;line-height:1.4}.game-info ul{margin:.5rem 0;padding-left:1.5rem;color:#d0d0d0;line-height:1.6}.game-info ul li{margin:.25rem 0}.game-rules{font-size:.9rem}.difficulty-selector{background-color:#2a2a2a;border-radius:8px;padding:1.5rem}.difficulty-selector label{display:block;color:#b0b0b0;font-size:.9rem;font-weight:600;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.difficulty-selector select{width:100%;padding:.75rem;background-color:#3a3a3a;color:#e0e0e0;border:1px solid #4a4a4a;border-radius:6px;font-size:1rem;cursor:pointer;transition:all .2s ease}.difficulty-selector select:hover:not(:disabled){background-color:#444;border-color:#5a5a5a}.difficulty-selector select:focus{outline:none;border-color:#6a6a6a}.difficulty-selector select:disabled{opacity:.5;cursor:not-allowed}.difficulty-selector select option{background-color:#3a3a3a;color:#e0e0e0}.hexagon-grid{width:100%;height:auto;max-height:90vh}.hex-cells .hex-cell{stroke:#2a2a2a;stroke-width:1px;transition:fill .2s ease,filter .2s ease}.hex-cells .hex-cell:hover{filter:brightness(1.2);cursor:pointer}.hex-cells .hex-cell--dark{fill:#2a2a2a}.hex-cells .hex-cell--medium{fill:#5a5a5a}.hex-cells .hex-cell--light{fill:#8a8a8a}.hex-cells .hex-cell--selected{fill:#4a7c59!important;filter:brightness(1.1)}.hex-cells .hex-cell--valid-move{fill:#3d5a80!important}.hex-cells .hex-cell--valid-move:hover{fill:#5a7fa8!important}.hex-cells .hex-cell--winning{fill:#c9a227!important;animation:winning-pulse 1s ease-in-out infinite}.hex-cells .hex-cell--last-from{fill:#4a6fa5!important;filter:brightness(.9)}.hex-cells .hex-cell--last-to{fill:#5a8fc5!important;filter:brightness(1.1)}.hex-cells .hex-cell--winning-move-to{fill:#d4af37!important;filter:brightness(1.2);animation:gold-glow 1.5s ease-in-out infinite}@keyframes winning-pulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.3)}}@keyframes gold-glow{0%,to{filter:brightness(1.2) drop-shadow(0 0 8px rgba(212,175,55,.6))}50%{filter:brightness(1.5) drop-shadow(0 0 12px rgba(212,175,55,.9))}}.coordinate-labels .coordinate-label{fill:#b0b0b0;font-size:14px;font-family:monospace;font-weight:600;-webkit-user-select:none;user-select:none}@media (max-width: 768px){.hexagon-grid-container{flex-direction:column;max-width:100%;padding:.5rem}.hexagon-grid{max-width:95vw;max-height:60vh}.game-side-panel{width:100%;min-width:100%;max-width:100%;height:auto}.game-info{padding:1rem}.game-info h2{font-size:1.25rem}.game-info h3{font-size:.9rem}.game-header{gap:.75rem}.coordinate-label{font-size:12px}}.game-over-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.game-over-modal{background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%);border-radius:20px;padding:40px;max-width:500px;width:90%;box-shadow:0 20px 60px #00000080;position:relative;animation:slideUp .4s ease-out;border:2px solid rgba(255,255,255,.1)}@keyframes slideUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-close{position:absolute;top:15px;right:15px;background:none;border:none;color:#ffffff80;font-size:32px;cursor:pointer;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.modal-close:hover{background:rgba(255,255,255,.1);color:#fff;transform:rotate(90deg)}.modal-content{text-align:center}.result-emoji{font-size:80px;margin-bottom:20px;animation:bounce 1s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.result-title{font-size:36px;font-weight:700;color:#fff;margin:0 0 15px;text-shadow:0 2px 10px rgba(0,0,0,.3)}.result-message{font-size:18px;color:#fffc;margin:0 0 40px;line-height:1.5}.modal-actions{display:flex;gap:15px;justify-content:center;flex-wrap:wrap}.btn-primary,.btn-secondary{padding:15px 30px;font-size:16px;font-weight:600;border:none;border-radius:12px;cursor:pointer;transition:all .3s;display:inline-flex;align-items:center;gap:8px;min-width:180px;justify-content:center}.btn-primary{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;box-shadow:0 4px 15px #667eea66}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea99}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:rgba(255,255,255,.1);color:#fff;border:2px solid rgba(255,255,255,.2)}.btn-secondary:hover{background:rgba(255,255,255,.15);border-color:#ffffff4d;transform:translateY(-2px)}.btn-secondary:active{transform:translateY(0)}.game-container{width:100vw;height:100vh;display:flex;flex-direction:column;overflow:hidden}.game-header-bar{background-color:#1a1a1a;padding:.5rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;border-bottom:1px solid #333;flex-wrap:wrap;flex-shrink:0}.back-button{padding:.5rem 1rem;background-color:#2a2a2a;color:#e0e0e0;border:1px solid #3a3a3a;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .2s ease}.back-button:hover{background-color:#333;border-color:#4a4a4a}.room-info{display:flex;align-items:center;gap:.75rem;background-color:#2a2a2a;padding:.5rem 1rem;border-radius:6px}.room-info .room-label{color:#888;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.room-info .room-id{color:#e0e0e0;background-color:#1a1a1a;padding:.25rem .75rem;border-radius:4px;font-family:monospace;font-size:1rem;letter-spacing:1px}.copy-button{padding:.35rem .75rem;background-color:#3a3a3a;color:#e0e0e0;border:1px solid #4a4a4a;border-radius:4px;cursor:pointer;font-size:.85rem;transition:all .2s ease;white-space:nowrap}.copy-button:hover{background-color:#444}.copy-button.copied{background-color:#2a5a3a;border-color:#3a7a4a;color:#a0ffa0}.game-mode-label{color:#b0b0b0;font-size:.9rem;background-color:#2a2a2a;padding:.5rem 1rem;border-radius:6px}.game-board-wrapper{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;min-height:0;height:100%}.connection-status{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:500;padding:.35rem .75rem;background-color:#2a2a2a;border-radius:6px}.connection-status .status-dot{width:8px;height:8px;border-radius:50%;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.player-color{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#b0b0b0;background-color:#2a2a2a;padding:.35rem .75rem;border-radius:6px}.player-color .color-badge{font-weight:600;padding:.15rem .5rem;border-radius:4px;text-transform:capitalize}.player-color .color-badge.white{background-color:#e0e0e0;color:#1a1a1a}.player-color .color-badge.black{background-color:#3a3a3a;color:#e0e0e0;border:1px solid #555}.room-players{font-size:.85rem;color:#888;background-color:#2a2a2a;padding:.35rem .75rem;border-radius:6px}.socket-error{background-color:#5a2a2a;color:#faa;padding:.35rem .75rem;border-radius:6px;font-size:.85rem;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.game-header-bar{padding:.75rem 1rem;flex-direction:column;align-items:stretch}.room-info{flex-direction:column;align-items:stretch;text-align:center;gap:.5rem}.copy-button{width:100%}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,-apple-system,sans-serif;line-height:1.5;min-height:100vh;background-color:#1a1a1a;color:#e0e0e0}
