@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&display=swap";:root{font-family:JetBrains Mono,Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;--bg-color-light: #ffffff;--text-color-light: #000000;--border-color-light: #000000;--secondary-text-light: #666666;--accent-bg-light: #f9f9f9;--accent-border-light: #cccccc;--bg-color-dark: #1a1a1a;--text-color-dark: #ffffff;--border-color-dark: #ffffff;--secondary-text-dark: #cccccc;--accent-bg-dark: #2a2a2a;--accent-border-dark: #555555;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}:root{--bg-color: var(--bg-color-dark);--text-color: var(--text-color-dark);--border-color: var(--border-color-dark);--secondary-text: var(--secondary-text-dark);--accent-bg: var(--accent-bg-dark);--accent-border: var(--accent-border-dark)}[data-theme=dark]{--bg-color: var(--bg-color-dark);--text-color: var(--text-color-dark);--border-color: var(--border-color-dark);--secondary-text: var(--secondary-text-dark);--accent-bg: var(--accent-bg-dark);--accent-border: var(--accent-border-dark)}html{overflow:hidden}html::-webkit-scrollbar,body::-webkit-scrollbar,*::-webkit-scrollbar{display:none}html,body{-ms-overflow-style:none;scrollbar-width:none}body{margin:0;min-width:320px;min-height:100vh;height:100vh;background:var(--bg-color);color:var(--text-color);overflow:hidden}h1{font-size:3.2em;line-height:1.1}a{font-weight:500;color:var(--text-color);text-decoration:inherit}a:hover{color:var(--secondary-text)}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.btn{background:transparent;border:2px solid var(--border-color);color:var(--text-color);font-family:JetBrains Mono,Courier New,monospace;font-size:1.1rem;font-weight:500;padding:15px 30px;text-decoration:none;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.1em;position:relative;min-width:120px;display:inline-block;text-align:center;box-sizing:border-box}.btn:hover{background:var(--text-color);color:var(--bg-color);border-color:var(--text-color)}.btn:active{transform:translate(2px,2px)}.btn-primary{border-width:3px}.btn-secondary{border-width:2px}.btn-icon{padding:10px;min-width:auto;border-radius:4px;font-size:1rem}.btn-small{padding:8px 16px;font-size:.9rem;min-width:80px}.btn-border-solid{border-style:solid}.btn-border-dashed{border-style:dashed}.btn-border-dotted{border-style:dotted}.btn-border-double{border-style:double;border-width:4px}.btn-border-groove{border-style:groove;border-width:3px}.btn-border-ridge{border-style:ridge;border-width:3px}.btn-border-inset{border-style:inset;border-width:3px}.btn-border-outset{border-style:outset;border-width:3px}.btn-primary.btn-border-double{border-width:5px}.btn-primary.btn-border-groove,.btn-primary.btn-border-ridge,.btn-primary.btn-border-inset,.btn-primary.btn-border-outset{border-width:4px}.modal-overlay{position:fixed;inset:0;background:#0000;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px);transition:background-color .2s ease,backdrop-filter .2s ease}.modal-overlay-open{background:#000000b3;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content{background:var(--bg-color);border:2px solid var(--border-color);max-width:900px;width:100%;font-family:JetBrains Mono,Courier New,monospace;position:relative;box-shadow:0 10px 30px #0000004d;transform:scale(.9);opacity:0;transition:transform .2s ease,opacity .2s ease}.modal-content-open{transform:scale(1);opacity:1}.modal-content:before{content:"";position:absolute;inset:-2px;border:1px solid var(--accent-border);pointer-events:none}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 25px;border-bottom:1px solid var(--border-color)}.modal-title{font-size:1.5rem;font-weight:700;margin:0;color:var(--text-color);text-transform:uppercase;letter-spacing:.1em}.modal-close{font-size:1.2rem;padding:5px 8px;min-width:auto;line-height:1}.modal-body{padding:25px;color:var(--text-color);line-height:1.6}.modal-body p{margin:0 0 15px}.modal-body p:last-child{margin-bottom:0}@media (max-width: 768px){.modal-overlay{padding:10px}.modal-header,.modal-body{padding:15px 20px}.modal-title{font-size:1.2rem}}@media (max-width: 480px){.modal-header{flex-direction:column;gap:10px;text-align:center}.modal-close{position:absolute;top:15px;right:15px}}@media (prefers-reduced-motion: reduce){.modal-overlay,.modal-content{transition:none}}.music-player{position:fixed;bottom:20px;left:20px;width:320px;height:80px;border:2px solid var(--border-color);background:var(--bg-color);overflow:hidden;transition:all .3s ease;z-index:1000;font-family:JetBrains Mono,Courier New,monospace}.music-player:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0003}.music-player-background{position:absolute;inset:-2px;border:1px solid var(--accent-border);pointer-events:none;z-index:-1}.music-player-content{position:relative;display:flex;align-items:center;height:100%;padding:12px;color:var(--text-color)}.album-art{position:relative;width:56px;height:56px;border-radius:8px;overflow:hidden;flex-shrink:0;margin-right:12px}.album-art img{width:100%;height:100%;object-fit:cover}.loading-spinner{position:absolute;top:50%;left:50%;width:24px;height:24px;margin:-12px 0 0 -12px;border:2px solid rgba(255,255,255,.3);border-top:2px solid white;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.track-info{flex:1;min-width:0;margin-right:12px}.track-album{font-size:10px;font-weight:400;color:var(--secondary-text);margin-bottom:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;letter-spacing:.5px}.track-title{font-size:14px;font-weight:600;color:var(--text-color);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.time-display{font-size:12px;font-weight:500;color:var(--secondary-text);margin-left:auto;flex-shrink:0;min-width:40px;text-align:right}.progress-bar-container{position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--accent-border)}.progress-bar{width:100%;height:100%;position:absolute;top:0;left:0;cursor:pointer;opacity:0;z-index:2;-webkit-appearance:none;appearance:none;background:transparent;border:none}.progress-bar::-webkit-progress-bar{background:transparent}.progress-bar::-webkit-progress-value{background:transparent}.progress-bar::-moz-progress-bar{background:transparent}.progress-fill{height:100%;background:var(--text-color);transition:width .1s ease}.control-buttons{position:absolute;inset:0;background:var(--accent-bg);border:1px solid var(--accent-border);display:flex;align-items:center;justify-content:center;gap:16px;opacity:0;visibility:hidden;transition:all .3s ease;padding:0 20px}.control-buttons.visible{opacity:1;visibility:visible}.control-btn{background:transparent;border:1px solid var(--border-color);color:var(--text-color);cursor:pointer;padding:8px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;width:40px;height:40px;font-family:JetBrains Mono,monospace}.control-btn:hover{background:var(--text-color);color:var(--bg-color);transform:scale(1.05)}.control-btn svg{width:20px;height:20px}.play-pause-btn{background:var(--accent-bg);border:2px solid var(--border-color);width:48px;height:48px}.play-pause-btn svg{width:24px;height:24px}.play-pause-btn:hover{background:var(--text-color);color:var(--bg-color)}.volume-control{position:relative}.volume-control-panel{display:flex;align-items:center;gap:16px;width:100%;justify-content:center}.volume-slider-inline{display:flex;align-items:center;gap:12px;flex:1}.volume-label{font-size:12px;color:var(--text-color);font-family:JetBrains Mono,monospace;white-space:nowrap}.volume-value{font-size:12px;color:var(--secondary-text);font-family:JetBrains Mono,monospace;min-width:35px;text-align:right}.volume-slider{flex:1;min-width:120px;height:4px;background:var(--accent-border);outline:none;cursor:pointer;-webkit-appearance:none;appearance:none}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;background:var(--text-color);border:1px solid var(--border-color);cursor:pointer}.volume-slider::-moz-range-thumb{width:16px;height:16px;background:var(--text-color);border:1px solid var(--border-color);cursor:pointer}.error-message{position:absolute;bottom:-30px;left:0;right:0;background:var(--accent-bg);border:1px solid var(--border-color);color:var(--text-color);padding:8px 12px;font-size:12px;text-align:center;font-family:JetBrains Mono,monospace}@media (max-width: 768px){.music-player{bottom:10px;left:10px;right:10px;width:auto;max-width:350px}.time-display{display:none}.track-info{margin-right:8px}}@media (max-width: 480px){.music-player{height:70px}.music-player-content{padding:10px}.album-art{width:50px;height:50px;margin-right:10px}.track-title{font-size:13px}.track-artist{font-size:11px}.control-btn{width:36px;height:36px}.play-pause-btn{width:42px;height:42px}}.feedback-modal{width:100%;max-width:500px;margin:0 auto;display:flex;flex-direction:column;align-items:center}.feedback-success{text-align:center;padding:40px 20px}.feedback-success p{margin:10px 0;color:var(--text-color);font-size:1.1rem}.feedback-form{display:flex;flex-direction:column;gap:15px;width:100%}.feedback-info{background:var(--accent-bg);padding:15px;border-radius:4px;border:1px solid var(--accent-border)}.feedback-info p{margin:5px 0;color:var(--text-color);font-size:.9rem}.feedback-textarea{width:100%;min-height:120px;padding:12px;border:1px solid var(--accent-border);border-radius:4px;background:var(--bg-color);color:var(--text-color);font-family:inherit;font-size:.95rem;resize:vertical;box-sizing:border-box}.feedback-textarea:focus{outline:none;border-color:var(--border-color);box-shadow:0 0 0 2px #5865f233}.feedback-textarea::placeholder{color:var(--secondary-text)}.feedback-char-count{align-self:flex-end;font-size:.8rem;color:var(--secondary-text);margin-top:-5px}.feedback-buttons{display:flex;gap:10px;justify-content:flex-end;margin-top:10px}.feedback-buttons .btn{min-width:100px}@media (max-width: 600px){.feedback-modal{max-width:90vw;padding:15px}.feedback-buttons{flex-direction:column}.feedback-buttons .btn{min-width:auto}}.chess-board{--grid-size: 8;-webkit-user-select:none;user-select:none;border:3px solid var(--border-color);width:calc(100vh - 200px);height:calc(100vh - 200px);aspect-ratio:1;position:relative}.chess-squares{display:grid;grid-template-columns:repeat(var(--grid-size),1fr);grid-template-rows:repeat(var(--grid-size),1fr)}.chess-squares.flipped{transform:rotate(180deg)}.chess-board:before{content:"";position:absolute;inset:-3px;border:1px solid var(--accent-border);pointer-events:none}.chess-square{aspect-ratio:1;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:background-color .2s ease}.chess-square.light{background:var(--accent-bg)}.chess-square.dark{background:var(--bg-color);border:1px solid var(--accent-border)}.chess-square:hover{background:var(--accent-border)}.chess-piece.flipped{transform:rotate(180deg)}.promotion-modal-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000}.promotion-modal{background:var(--bg-color, #1a1a1a);border:2px solid var(--border-color, #333);border-radius:8px;padding:24px;max-width:500px;width:90%;box-shadow:0 8px 32px #00000080}.promotion-modal-header{text-align:center;margin-bottom:24px}.promotion-modal-header h3{color:var(--text-color, #fff);margin:0 0 8px;font-size:1.5rem;font-weight:600}.promotion-modal-header p{color:var(--secondary-text, #ccc);margin:0;font-size:.9rem}.promotion-pieces{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:24px}.promotion-piece{background:var(--accent-bg, rgba(255, 255, 255, .05));border:2px solid var(--border-color, #333);border-radius:8px;padding:16px;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;align-items:center;gap:8px;min-height:120px}.promotion-piece:hover{background:var(--accent-bg, rgba(255, 255, 255, .1));border-color:var(--accent-color, #4ade80);transform:translateY(-2px)}.promotion-piece.selected{background:var(--accent-color, #4ade80);border-color:var(--accent-color, #4ade80);color:#000}.promotion-piece-image{width:48px;height:48px;object-fit:contain}.promotion-piece-name{font-weight:600;font-size:.9rem;color:var(--text-color, #fff)}.promotion-piece.selected .promotion-piece-name{color:#000}.promotion-piece-symbol{font-size:1.2rem;color:var(--secondary-text, #ccc)}.promotion-piece.selected .promotion-piece-symbol{color:#000}.promotion-modal-actions{display:flex;justify-content:center;gap:12px}.promotion-cancel{background:var(--warning-bg, rgba(255, 165, 0, .1));border:1px solid var(--warning-color, #ffa500);color:var(--warning-color, #ffa500);padding:8px 16px;border-radius:4px;cursor:pointer;font-size:.9rem;transition:all .2s ease}.promotion-cancel:hover{background:var(--warning-color, #ffa500);color:#000}@media (max-width: 480px){.promotion-modal{padding:16px;width:95%}.promotion-pieces{grid-template-columns:1fr;gap:12px}.promotion-piece{min-height:100px;padding:12px}.promotion-piece-image{width:40px;height:40px}}.chess-board-3p{--grid-size: 14;-webkit-user-select:none;user-select:none;border:3px solid var(--border-color);width:calc(100vh - 200px);height:calc(100vh - 200px);aspect-ratio:1;position:relative}.chess-squares-3p{display:grid;grid-template-columns:repeat(var(--grid-size),1fr);grid-template-rows:repeat(var(--grid-size),1fr)}.chess-board-3p:before{content:"";position:absolute;inset:-3px;border:1px solid var(--accent-border);pointer-events:none}.chess-square-3p{aspect-ratio:1;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:background-color .2s ease}.chess-square-3p.light{background:var(--accent-bg)}.chess-square-3p.dark{background:var(--bg-color);border:1px solid var(--accent-border)}.chess-square-3p:hover{background:var(--accent-border)}.chess-board-4p{--grid-size: 14;-webkit-user-select:none;user-select:none;border:3px solid var(--border-color);width:calc(100vh - 200px);height:calc(100vh - 200px);aspect-ratio:1;position:relative}.chess-squares-4p{display:grid;grid-template-columns:repeat(var(--grid-size),1fr);grid-template-rows:repeat(var(--grid-size),1fr)}.chess-board-4p:before{content:"";position:absolute;inset:-3px;border:1px solid var(--accent-border);pointer-events:none}.chess-square-4p{aspect-ratio:1;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:background-color .2s ease}.chess-square-4p.light{background:var(--accent-bg)}.chess-square-4p.dark{background:var(--bg-color);border:1px solid var(--accent-border)}.chess-square-4p:hover{background:var(--accent-border)}.chess-square-invalid{background-color:transparent}.chess-piece{aspect-ratio:1;position:absolute;cursor:pointer}.chess-piece.disabled{opacity:.6;cursor:not-allowed}.chess-piece.selected{filter:brightness(1.3) drop-shadow(0 0 10px rgba(255,255,0,.8))}.move{background-color:#282;opacity:.3;aspect-ratio:1;position:absolute}.cooldown-overlay{pointer-events:none}:root{--bg-color-light: #ffffff;--text-color-light: #000000;--border-color-light: #000000;--secondary-text-light: #666666;--accent-bg-light: #f9f9f9;--accent-border-light: #cccccc;--bg-color-dark: #1a1a1a;--text-color-dark: #ffffff;--border-color-dark: #ffffff;--secondary-text-dark: #cccccc;--accent-bg-dark: #2a2a2a;--accent-border-dark: #555555}[data-theme=dark],:root{--bg-color: var(--bg-color-dark);--text-color: var(--text-color-dark);--border-color: var(--border-color-dark);--secondary-text: var(--secondary-text-dark);--accent-bg: var(--accent-bg-dark);--accent-border: var(--accent-border-dark)}[data-theme=light]{--bg-color: var(--bg-color-light);--text-color: var(--text-color-light);--border-color: var(--border-color-light);--secondary-text: var(--secondary-text-light);--accent-bg: var(--accent-bg-light);--accent-border: var(--accent-border-light)}.landing-page{min-height:100vh;height:100vh;background:var(--bg-color);color:var(--text-color);font-family:JetBrains Mono,Courier New,monospace;display:flex;align-items:center;justify-content:center;padding:20px;position:relative;transition:background-color .3s ease,color .3s ease;overflow:hidden}.landing-page::-webkit-scrollbar{display:none}.landing-page{-ms-overflow-style:none;scrollbar-width:none}.container{width:100%;max-width:600px;border:2px solid var(--border-color);padding:40px;background:var(--bg-color);position:relative}.container:before{content:"";position:absolute;inset:-2px;border:1px solid var(--accent-border);pointer-events:none}.header{text-align:center;margin-bottom:60px;border-bottom:1px solid var(--border-color);padding-bottom:30px}.title{font-size:3rem;font-weight:700;margin-bottom:15px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-color)}.tagline{font-size:1rem;font-weight:400;color:var(--secondary-text);margin:0;letter-spacing:.05em}.main{text-align:center;margin-bottom:40px}.button-group{display:flex;gap:20px;justify-content:center;flex-wrap:wrap}.footer{border-top:1px solid var(--border-color);padding-top:20px}@media (max-width: 768px){.landing-page{height:auto;min-height:100vh}.container{padding:20px;margin:10px}.title{font-size:2rem}.tagline{font-size:.9rem}.button-group{flex-direction:column;align-items:center}}@media (max-width: 480px){.title{font-size:1.5rem}.container{padding:15px}}.info-modal .modal-content{max-width:800px;width:90%}.info-modal-content{display:flex;gap:30px;min-height:400px}.info-navigation{display:flex;flex-direction:column;gap:10px;min-width:150px;border-right:1px solid var(--border-color);padding-right:20px}.info-nav-btn{justify-content:flex-start;text-align:left;width:100%;white-space:nowrap}.info-content{flex:1;padding-left:20px}.info-section-title{font-size:1.5rem;font-weight:700;margin-bottom:20px;color:var(--text-color);border-bottom:1px solid var(--accent-border);padding-bottom:10px}.info-content p{font-size:.9rem;line-height:1.6;margin-bottom:15px;color:var(--text-color)}.info-content p:last-child{margin-bottom:0}@media (max-width: 768px){.info-modal-content{flex-direction:column;gap:20px}.info-navigation{border-right:none;border-bottom:1px solid var(--border-color);padding-right:0;padding-bottom:15px;flex-direction:row;flex-wrap:wrap;min-width:auto}.info-nav-btn{flex:1;min-width:120px}.info-content{padding-left:0;padding-top:15px}}.landing-page .wip-modal .modal-content{max-width:200px!important;width:80%!important}.wip-modal-content{text-align:center}.wip-modal-content p{margin-bottom:15px;font-size:1rem;color:var(--text-color)}.wip-modal-content p:last-child{margin-bottom:0}.lobby-page{min-height:100vh;height:100vh;background:var(--bg-color);color:var(--text-color);font-family:JetBrains Mono,Courier New,monospace;padding:20px;position:relative;transition:background-color .3s ease,color .3s ease;overflow:hidden}.lobby-container{max-width:1000px;margin:0 auto;height:100%;display:flex;flex-direction:column;gap:20px}.lobby-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border:2px solid var(--border-color);background:var(--bg-color);position:relative}.lobby-header:before{content:"";position:absolute;inset:-2px;border:1px solid var(--accent-border);pointer-events:none}.player-name-section{display:flex;align-items:center;gap:15px}.name-label{font-weight:600;text-transform:uppercase;letter-spacing:.1em}.name-input{background:transparent;border:2px solid var(--border-color);color:var(--text-color);font-family:JetBrains Mono,Courier New,monospace;font-size:1rem;padding:8px 12px;min-width:200px;text-transform:uppercase;letter-spacing:.05em}.name-input:focus{outline:none;background:var(--accent-bg)}.back-button{flex-shrink:0}.lobby-main{display:grid;grid-template-columns:1fr 1fr;gap:20px;height:50vh}.section-title{font-size:1.2rem;font-weight:700;margin-bottom:20px;text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--border-color);padding-bottom:10px}.game-actions{border:2px solid var(--border-color);padding:25px;background:var(--bg-color);position:relative}.game-actions:before{content:"";position:absolute;inset:-2px;border:1px solid var(--accent-border);pointer-events:none}.action-buttons{display:flex;flex-direction:column;gap:15px}.action-btn{width:100%;justify-self:stretch}.game-settings{border:2px solid var(--border-color);padding:25px;background:var(--bg-color);position:relative}.game-settings:before{content:"";position:absolute;inset:-2px;border:1px solid var(--accent-border);pointer-events:none}.settings-content{display:flex;flex-direction:column;gap:20px}.setting-item{display:flex;align-items:center;gap:10px}.setting-label{font-weight:500;letter-spacing:.05em;display:flex;align-items:center;gap:8px;cursor:pointer}.setting-checkbox{appearance:none;-webkit-appearance:none;-moz-appearance:none;width:auto;height:auto;border:none;background:transparent;cursor:pointer;font-family:JetBrains Mono,Courier New,monospace;font-size:1rem;color:var(--text-color);position:relative}.setting-checkbox:before{content:"[ ]";color:var(--text-color);font-weight:500;letter-spacing:.1em;position:relative}.setting-checkbox:after{content:"x";position:absolute;left:.7em;top:0;opacity:0;color:var(--text-color);font-weight:500;transition:opacity .2s ease}.setting-checkbox:checked:after{opacity:1}.setting-select{background:transparent;border:2px solid var(--border-color);color:var(--text-color);font-family:JetBrains Mono,Courier New,monospace;font-size:.9rem;padding:6px 10px;cursor:pointer;text-transform:uppercase}.setting-select:focus{outline:none;background:var(--accent-bg)}.lobby-section{border:2px solid var(--border-color);padding:25px;background:var(--bg-color);position:relative;max-height:300px}.lobby-section:before{content:"";position:absolute;inset:-2px;border:1px solid var(--accent-border);pointer-events:none}.lobby-content{height:100%}.lobby-players{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px}.lobby-player{border:1px solid var(--accent-border);padding:15px;background:var(--accent-bg);display:flex;justify-content:space-between;align-items:center}.lobby-player.empty{opacity:.5;border-style:dashed}.lobby-player.disconnected{opacity:.7;border-color:var(--warning-color, #ffa500);background:var(--warning-bg, rgba(255, 165, 0, .1))}.lobby-player.disconnected .player-name{font-style:italic}.lobby-player.disconnected .player-status{color:var(--warning-color, #ffa500);font-size:.9em}.player-name{font-weight:500;display:flex;align-items:center;gap:8px}.host-tag{font-size:.75em;color:var(--accent-color, #4ade80);font-weight:600;background:var(--accent-bg, rgba(74, 222, 128, .1));padding:2px 6px;border-radius:3px;border:1px solid var(--accent-color, #4ade80)}.action-btn.disabled{opacity:.6;cursor:not-allowed;background:var(--disabled-bg, #666);color:var(--disabled-text, #999);border-color:var(--disabled-border, #666)}.setting-display{color:var(--text-color);font-weight:500;padding:8px 12px;background:var(--accent-bg, rgba(255, 255, 255, .05));border:1px solid var(--border-color);border-radius:3px}.checkbox-display{display:flex;align-items:center;gap:8px}.checkbox-readonly{font-size:1.1em;color:var(--text-color)}.host-badge,.bot-badge,.invited-badge{color:var(--secondary-text);font-size:.8rem;font-weight:700}.invitation-message{padding:15px;margin-bottom:20px;border:1px solid var(--accent-border);background:var(--accent-bg);text-align:center;font-size:.9rem}.invitation-message p{margin:0;color:var(--text-color)}.invitation-message strong{color:var(--text-color);font-weight:700}.player-status{font-size:.9rem;color:var(--secondary-text);text-transform:uppercase;letter-spacing:.05em}@media (max-width: 768px){.lobby-page{padding:10px;height:auto;min-height:100vh;overflow-y:auto}.lobby-main{grid-template-columns:1fr}.lobby-header{flex-direction:column;gap:15px;text-align:center}.player-name-section{flex-direction:column;gap:10px}.name-input{min-width:150px}.lobby-players{grid-template-columns:1fr}}@media (max-width: 480px){.lobby-container{gap:15px}.game-actions,.game-settings,.lobby-section{padding:15px}.section-title{font-size:1rem}}.game-page{min-height:100vh;height:100vh;background:var(--bg-color);color:var(--text-color);font-family:JetBrains Mono,Courier New,monospace;padding:10px;position:relative;transition:background-color .3s ease,color .3s ease;overflow:hidden}.game-container{width:100%;margin:60px auto 20px;height:calc(100vh - 180px);display:grid;grid-template-columns:280px 1fr 280px;gap:8px;padding:8px;border:2px solid var(--border-color);background:var(--bg-color);position:relative}.game-container:before{content:"";position:absolute;inset:-2px;border:1px solid var(--accent-border);pointer-events:none}.players-chat-section{display:flex;flex-direction:column;gap:8px;height:100%;min-height:0;max-height:100%;overflow:hidden}.players-section{border:2px solid var(--border-color);padding:8px;background:var(--bg-color);position:relative;flex-shrink:0;max-height:380px}.players-section:before{content:"";position:absolute;inset:-2px;border:1px solid var(--accent-border);pointer-events:none}.players-title{font-size:1rem;font-weight:600;margin-bottom:12px;color:var(--text-color);border-bottom:1px solid var(--border-color);padding-bottom:8px}.players-list{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto}.game-player{display:flex;justify-content:space-between;align-items:center;padding:8px;background:var(--accent-bg, rgba(255, 255, 255, .05));border:1px solid var(--border-color);border-radius:3px}.game-player.offline{opacity:.6;background:var(--warning-bg, rgba(255, 165, 0, .1))}.game-player .player-name{font-weight:500;display:flex;align-items:center;gap:6px}.you-tag{font-size:.8em;color:var(--accent-color, #4ade80);font-weight:600}.player-color-circle{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:8px;vertical-align:middle}.game-player .player-status{font-size:.85em;color:var(--secondary-text, #999)}.game-player.offline .player-status{color:var(--warning-color, #ffa500)}.player-info{margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid var(--accent-border)}.player-info:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.player-name{font-weight:700;font-size:1.1rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:5px}.player-score{font-size:.9rem;color:var(--secondary-text);text-transform:uppercase;letter-spacing:.05em}.chat-section{border:2px solid var(--border-color);background:var(--bg-color);position:relative;flex:1;display:flex;flex-direction:column;min-height:0;max-height:950px;overflow:hidden;z-index:200}.chat-section:before{content:"";position:absolute;inset:-2px;border:1px solid var(--accent-border);pointer-events:none;z-index:1}.chat-messages{flex:1;padding:10px;overflow-y:auto;min-height:0;max-height:calc(100% - 50px);border-bottom:1px solid var(--accent-border);display:flex;flex-direction:column}.chat-message{margin-bottom:10px;font-size:.9rem;line-height:1.4}.chat-player{font-weight:600;color:var(--text-color);margin-right:8px}.chat-text{color:var(--secondary-text)}.chat-input-form{padding:10px;position:relative;z-index:2}.chat-input{width:100%;background:transparent;border:1px solid var(--accent-border);color:var(--text-color);font-family:JetBrains Mono,Courier New,monospace;font-size:.9rem;padding:8px 10px;text-transform:none}.chat-input:focus{outline:none;background:var(--accent-bg)}.chat-input::placeholder{color:var(--secondary-text);opacity:.7}.chess-section{display:flex;align-items:center;justify-content:center;padding:10px;min-height:0;transition:box-shadow .3s ease}.placeholder-board{display:flex;flex-direction:column;align-items:center;justify-content:center;border:3px solid var(--border-color);background:var(--bg-color);position:relative;width:calc(100vh - 200px);height:calc(100vh - 200px);aspect-ratio:1;text-align:center;padding:40px}.placeholder-board:before{content:"";position:absolute;inset:-3px;border:1px solid var(--accent-border);pointer-events:none}.placeholder-board h2{font-size:2rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-bottom:20px;color:var(--text-color)}.placeholder-board p{font-size:1.2rem;color:var(--secondary-text);margin-bottom:10px;letter-spacing:.05em}.controls-section{display:flex;flex-direction:column;gap:6px;height:100%;max-height:100%;border:2px solid var(--border-color);padding:8px;background:var(--bg-color);position:relative;overflow:hidden}.material-count-section{background:var(--card-bg);border:1px solid var(--border-color);border-radius:4px;padding:8px;margin-bottom:8px}.material-title{font-size:12px;font-weight:700;margin:0 0 6px;color:var(--text-color);text-align:center}.material-counts{display:flex;flex-direction:column;gap:4px}.material-team{display:flex;flex-direction:column;gap:2px}.team-name{font-size:11px;font-weight:700;text-align:center}.team-score{font-size:12px;font-weight:700;text-align:center;margin-bottom:4px;color:#fff!important}.piece-breakdown{display:flex;flex-wrap:wrap;gap:2px;justify-content:center;font-size:10px}.piece-count{background:var(--bg-color);border:1px solid var(--border-color);border-radius:2px;padding:2px 4px;white-space:nowrap;font-size:9px;font-weight:700;color:#fff}.controls-section:before{content:"";position:absolute;inset:-2px;border:1px solid var(--accent-border);pointer-events:none}.timer-section{padding:6px 0 10px;text-align:center;border-bottom:1px solid var(--accent-border);margin-bottom:8px}.timer-display{font-size:3rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-color)}.game-controls{display:flex;flex-direction:column;gap:8px;flex:1;justify-content:flex-start;max-height:calc(100% - 60px);overflow:hidden}.control-btn{width:100%}.pause-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.pause-modal-content{background:var(--bg-color);border:2px solid var(--border-color);padding:30px;text-align:center;position:relative}.countdown-modal{display:flex;flex-direction:column;align-items:center;gap:20px}.countdown-title{font-size:1.5rem;margin:0;color:var(--text-color)}.countdown-number{font-size:4rem;font-weight:700;color:var(--accent-color, #4ade80);animation:countdownPulse 1s ease-in-out infinite}@keyframes countdownPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.7}}.pause-modal-content:before{content:"";position:absolute;inset:-2px;border:1px solid var(--accent-border);pointer-events:none}.pause-title{font-size:1.5rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-bottom:30px;color:var(--text-color)}.pause-buttons{display:flex;gap:20px;justify-content:center}.game-over-info{margin:15px 0;color:var(--secondary-text);font-style:italic}.pause-btn{min-width:120px}@media (max-width: 768px){.pause-modal-content{padding:20px;margin:20px}.pause-buttons{flex-direction:column;gap:15px}}.invitation-page{min-height:100vh;height:100vh;background:var(--bg-color);color:var(--text-color);font-family:JetBrains Mono,Courier New,monospace;display:flex;align-items:center;justify-content:center;padding:20px;position:relative;transition:background-color .3s ease,color .3s ease;overflow:hidden}.invitation-page::-webkit-scrollbar{display:none}.invitation-page{-ms-overflow-style:none;scrollbar-width:none}.invitation-container{width:100%;max-width:600px;border:2px solid var(--border-color);padding:40px;background:var(--bg-color);position:relative}.invitation-container:before{content:"";position:absolute;inset:-2px;border:1px solid var(--accent-border);pointer-events:none}.invitation-header{text-align:center;margin-bottom:40px;border-bottom:1px solid var(--border-color);padding-bottom:30px}.invitation-title{font-size:2.5rem;font-weight:700;margin-bottom:20px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-color)}.invitation-details{margin-top:20px}.inviter-info{font-size:1.1rem;margin-bottom:15px;color:var(--text-color)}.inviter-name{font-weight:700;color:var(--text-color);text-decoration:underline}.invite-code-display{display:flex;align-items:center;justify-content:center;gap:10px;padding:10px;border:1px solid var(--accent-border);background:var(--accent-bg)}.code-label{font-size:.9rem;color:var(--secondary-text)}.code-value{font-size:1rem;font-weight:700;color:var(--text-color);letter-spacing:.1em}.invitation-main{margin-bottom:40px}.name-section{margin-bottom:30px}.section-title{font-size:1.3rem;font-weight:600;margin-bottom:20px;text-align:center;color:var(--text-color)}.name-input-group{display:flex;flex-direction:column;gap:10px;align-items:center}.name-label{font-size:1rem;font-weight:500;color:var(--text-color)}.name-input{width:100%;max-width:300px;padding:12px 15px;font-family:JetBrains Mono,Courier New,monospace;font-size:1rem;background:var(--bg-color);color:var(--text-color);border:2px solid var(--border-color);transition:border-color .3s ease,box-shadow .3s ease;text-align:center}.name-input:focus{outline:none;border-color:var(--text-color);box-shadow:0 0 0 1px var(--accent-border)}.name-input::placeholder{color:var(--secondary-text);opacity:.7}.action-buttons{display:flex;gap:20px;justify-content:center;flex-wrap:wrap}.join-button,.decline-button{min-width:150px}.invitation-footer{border-top:1px solid var(--border-color);padding-top:20px}.wireframe-box{border:1px solid var(--accent-border);padding:10px;background:var(--accent-bg);font-size:.9rem;text-align:center;color:var(--secondary-text)}.btn{align-self:center;max-width:250px}@media (max-width: 768px){.invitation-page{height:auto;min-height:100vh}.invitation-container{padding:20px;margin:10px}.invitation-title{font-size:2rem}.action-buttons{flex-direction:column;align-items:center}.join-button,.decline-button{width:100%;max-width:200px}}@media (max-width: 480px){.invitation-title{font-size:1.5rem}.invitation-container{padding:15px}.name-input{max-width:100%}}.admin-page{min-height:100vh;background:var(--bg-color);color:var(--text-color);font-family:JetBrains Mono,Courier New,monospace;padding:20px;transition:background-color .3s ease,color .3s ease}.admin-container{max-width:1400px;margin:0 auto}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding:20px;border:2px solid var(--border-color);background:var(--bg-color);position:relative}.admin-header:before{content:"";position:absolute;inset:-2px;border:1px solid var(--accent-border);pointer-events:none}.admin-title{font-size:1.5rem;font-weight:600;color:var(--text-color);margin:0}.admin-controls{display:flex;gap:12px;align-items:center}.refresh-btn,.back-btn{padding:8px 16px}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:30px;padding:20px;border:2px solid var(--border-color);background:var(--accent-bg, rgba(255, 255, 255, .02));position:relative}.admin-stats:before{content:"";position:absolute;inset:-2px;border:1px solid var(--accent-border);pointer-events:none}.stat-item{display:flex;flex-direction:column;gap:4px}.stat-label{font-size:.9rem;color:var(--secondary-text, #999)}.stat-value{font-size:1.2rem;font-weight:600;color:var(--accent-color, #4ade80)}.error-message{padding:12px 16px;background:var(--error-bg, rgba(220, 38, 38, .1));border:1px solid var(--error-color, #dc2626);color:var(--error-color, #dc2626);margin-bottom:20px;border-radius:4px;font-size:.9rem}.lobbies-section{margin-top:20px}.no-lobbies{text-align:center;padding:40px;color:var(--secondary-text, #999);font-style:italic;border:2px dashed var(--border-color);background:var(--accent-bg, rgba(255, 255, 255, .02))}.lobbies-list{display:flex;flex-direction:column;gap:20px}.lobby-card{border:2px solid var(--border-color);background:var(--bg-color);padding:20px;position:relative}.lobby-card:before{content:"";position:absolute;inset:-2px;border:1px solid var(--accent-border);pointer-events:none}.lobby-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--border-color)}.lobby-title{display:flex;align-items:center;gap:12px}.lobby-title h3{margin:0;font-size:1.2rem;font-weight:600}.phase-badge{padding:4px 8px;border-radius:3px;font-size:.8rem;font-weight:600;text-transform:uppercase}.phase-lobby{background:var(--info-bg, rgba(59, 130, 246, .1));color:var(--info-color, #3b82f6);border:1px solid var(--info-color, #3b82f6)}.phase-game{background:var(--success-bg, rgba(34, 197, 94, .1));color:var(--success-color, #22c55e);border:1px solid var(--success-color, #22c55e)}.phase-ended{background:var(--secondary-bg, rgba(107, 114, 128, .1));color:var(--secondary-text, #6b7280);border:1px solid var(--secondary-text, #6b7280)}.delete-btn{padding:6px 12px;background:var(--error-bg, rgba(220, 38, 38, .1));color:var(--error-color, #dc2626);border-color:var(--error-color, #dc2626)}.delete-btn:hover:not(:disabled){background:var(--error-color, #dc2626);color:#fff}.delete-btn:disabled{opacity:.5;cursor:not-allowed}.lobby-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-bottom:20px}.info-section h4{margin:0 0 12px;font-size:1rem;font-weight:600;color:var(--text-color);border-bottom:1px solid var(--border-color);padding-bottom:6px}.settings-grid,.timing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;font-size:.9rem}.settings-grid>div,.timing-grid>div{padding:6px 8px;background:var(--accent-bg, rgba(255, 255, 255, .05));border:1px solid var(--border-color);border-radius:3px}.players-section h4{margin:0 0 16px;font-size:1.1rem;font-weight:600;color:var(--text-color);border-bottom:1px solid var(--border-color);padding-bottom:8px}.players-group{margin-bottom:16px}.players-group-title{margin:0 0 8px;font-size:.95rem;font-weight:600;padding:4px 8px;border-radius:3px}.players-group-title.connected{background:var(--success-bg, rgba(34, 197, 94, .1));color:var(--success-color, #22c55e)}.players-group-title.disconnected{background:var(--warning-bg, rgba(245, 158, 11, .1));color:var(--warning-color, #f59e0b)}.players-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.player-card{padding:12px;border:1px solid var(--border-color);border-radius:4px;background:var(--accent-bg, rgba(255, 255, 255, .02))}.player-card.connected{border-left:3px solid var(--success-color, #22c55e)}.player-card.disconnected{border-left:3px solid var(--warning-color, #f59e0b);opacity:.7}.player-info{display:flex;align-items:center;gap:8px;margin-bottom:6px}.player-name{font-weight:600;color:var(--text-color)}.host-badge{font-size:.7rem;padding:2px 5px;background:var(--accent-color, #4ade80);color:var(--bg-color);border-radius:2px;font-weight:600}.color-badge{font-size:.7rem;padding:2px 6px;border-radius:3px;font-weight:600;text-transform:uppercase;border:1px solid rgba(0,0,0,.2);color:#fff;text-shadow:0 0 2px rgba(0,0,0,.5);min-width:50px;text-align:center}.player-details{display:flex;flex-direction:column;gap:2px}.player-details small{font-size:.8rem;color:var(--secondary-text, #999)}@media (max-width: 768px){.admin-header{flex-direction:column;gap:16px;text-align:center}.admin-controls{width:100%;justify-content:center}.admin-stats{grid-template-columns:1fr}.lobby-header{flex-direction:column;gap:12px;align-items:flex-start}.lobby-info,.settings-grid,.timing-grid,.players-grid{grid-template-columns:1fr}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:JetBrains Mono,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;overflow:hidden;background:var(--bg-color);color:var(--text-color);transition:background-color .3s ease,color .3s ease}.App{min-height:100vh;height:100vh;background:var(--bg-color);color:var(--text-color);overflow:hidden}.App::-webkit-scrollbar{display:none}.App{-ms-overflow-style:none;scrollbar-width:none}.js-focus-visible :focus:not(.focus-visible){outline:none}*,*:before,*:after{transition:background-color .3s ease,color .3s ease,border-color .3s ease}#root{width:90%;height:100vh;margin:0;padding-left:10%}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}
