.notification{animation:fadeIn .3s ease-in-out;background-color:#000c;border-radius:5px;box-shadow:0 2px 5px #0003;color:#fff;font-family:Arial,sans-serif;font-size:14px;max-width:300px;padding:10px;position:absolute;right:10px;top:10px;transition:opacity .3s ease-out;z-index:1000}.notification.success{background-color:#008000cc}.notification.error{background-color:#f00c}.notification.warning{background-color:#ffa500cc}.notification button{background:none;border:none;color:#fff;cursor:pointer;font-weight:700;margin-left:10px;padding:0 5px;transition:opacity .3s ease}.notification button:hover{opacity:.8}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.notification{left:5px;max-width:none;right:5px;top:5px}}.GreetingMenu_greetingMenu__cwFyE{align-items:center;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);color:#fff;display:flex;font-family:Roboto,Arial,sans-serif;height:100vh;justify-content:center;overflow:hidden}.GreetingMenu_menuContainer__uhPd2{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background-color:#000000b3;border-radius:10px;box-shadow:0 0 30px #00000080,0 0 15px #ffd7004d;max-width:500px;padding:2rem;width:80%}.GreetingMenu_title__q1NRf{background:linear-gradient(90deg,gold,#f8b500);-webkit-background-clip:text;background-clip:text;color:#0000;font-size:3rem;letter-spacing:3px;margin-bottom:2rem;text-align:center;text-shadow:0 2px 10px #ffd7004d;text-transform:uppercase}.GreetingMenu_menuSection__46fgA{margin-bottom:2rem}.GreetingMenu_menuSection__46fgA h2{border-bottom:1px solid #ffd7004d;color:gold;font-size:1.5rem;margin-bottom:1rem;padding-bottom:.5rem}.GreetingMenu_settingRow__Y49CQ{align-items:center;display:flex;gap:.5rem;margin-bottom:1rem}.GreetingMenu_settingRow__Y49CQ label,.GreetingMenu_themeSelect__mCbBl label{font-weight:500;min-width:100px}.GreetingMenu_menuButton__7rtu2{background-color:#464646cc;border:none;border-radius:5px;box-shadow:0 2px 4px #0003;color:#fff;cursor:pointer;display:block;font-size:1rem;font-weight:500;margin-bottom:.5rem;outline:none;padding:.8rem;transition:all .3s ease;width:100%}.GreetingMenu_menuButton__7rtu2:hover{background-color:#5a5a5ae6;box-shadow:0 4px 8px #0000004d;transform:translateY(-2px)}.GreetingMenu_secondaryButton__RlENj{background-color:#282828cc}.GreetingMenu_secondaryButton__RlENj:hover{background-color:#3c3c3ce6}.GreetingMenu_joinRoom__g37jB{display:flex;gap:.5rem;margin-top:10px}.GreetingMenu_input__ykukS{background-color:#ffffff1a;border:1px solid #fff3;border-radius:5px;color:#fff;flex-grow:1;font-size:1rem;margin-bottom:.5rem;padding:.8rem;transition:all .3s ease}.GreetingMenu_input__ykukS:focus{background-color:#fff3;border-color:#ffd70080;box-shadow:0 0 5px #ffd7004d;outline:none}.GreetingMenu_themeSelect__mCbBl{align-items:center;display:flex;gap:.5rem;margin-bottom:.5rem}.GreetingMenu_select__yG4VF{background-color:#323232cc;border:none;border-radius:5px;box-shadow:0 2px 4px #0000001a;color:#fff;cursor:pointer;flex-grow:1;font-size:1rem;padding:.8rem;transition:background-color .3s ease}.GreetingMenu_select__yG4VF:focus,.GreetingMenu_select__yG4VF:hover{background-color:#464646e6;box-shadow:0 2px 8px #0003;outline:none}.GreetingMenu_serverConfig__KPNgE{background-color:#0000004d;border-radius:5px;margin-bottom:1rem;padding:1rem}.GreetingMenu_endpointConfig__Earnu{margin-top:.8rem}.GreetingMenu_joinRoomForm__2LNmY{animation:GreetingMenu_fadeIn__ZH5j7 .3s ease-in-out}.GreetingMenu_endpointConfig__Earnu,.GreetingMenu_joinRoomForm__2LNmY{display:flex;flex-direction:column;gap:10px;margin-top:10px;width:100%}.GreetingMenu_configButton__KVFeq{background-color:#ffffff1a;font-size:.8em;margin-top:10px}.GreetingMenu_onlineSection__\+QVYH{border-top:1px solid #ffffff1a;margin-top:1rem;padding-top:1rem}@keyframes GreetingMenu_fadeIn__ZH5j7{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (max-width:600px){.GreetingMenu_menuContainer__uhPd2{padding:1.5rem;width:90%}.GreetingMenu_title__q1NRf{font-size:2.5rem}.GreetingMenu_settingRow__Y49CQ,.GreetingMenu_themeSelect__mCbBl{align-items:flex-start;flex-direction:column}.GreetingMenu_settingRow__Y49CQ label,.GreetingMenu_themeSelect__mCbBl label{margin-bottom:.5rem}}.online-game-room{box-sizing:border-box;height:100%;overflow-y:auto;padding:15px}.game-container,.online-game-room{display:flex;flex-direction:column}.game-container{flex-grow:1;margin:0 auto;min-height:0;width:100%}.join-room{color:#fff;margin:20px auto}.name-input{background-color:#ffffff1a;box-sizing:border-box;padding:10px}.join-button,.name-input{border:none;border-radius:4px;color:#fff;margin-bottom:15px;width:100%}.join-button{background-color:#3498db;cursor:pointer;padding:10px 15px;transition:background-color .3s ease}.join-button:disabled{background-color:#555;cursor:not-allowed}.join-button:not(:disabled):hover{background-color:#2980b9}.endpoint-info{font-size:14px;margin:5px 0 10px}.server-config button{background-color:#555;border:none;border-radius:4px;color:#fff;cursor:pointer;margin-bottom:10px;padding:8px 12px;transition:background-color .3s ease}.server-config button:hover{background-color:#666}.endpoint-config{margin-top:10px}.endpoint-input{background-color:#ffffff1a;box-sizing:border-box;margin-bottom:10px;padding:10px;width:100%}.endpoint-input,.endpoint-save-button{border:none;border-radius:4px;color:#fff}.endpoint-save-button{background-color:#3498db;cursor:pointer;padding:8px 12px;transition:background-color .3s ease}.endpoint-save-button:hover{background-color:#2980b9}.share-link{color:#3498db;display:inline-block;margin-bottom:10px;text-decoration:none;word-break:break-all}.share-link:hover{text-decoration:underline}.copy-link-button{background-color:#3498db;border:none;border-radius:4px;color:#fff;cursor:pointer;margin-bottom:15px;padding:8px 12px;transition:background-color .3s ease}.copy-link-button:hover{background-color:#2980b9}.qr-code-container{display:flex;justify-content:center;margin:20px 0}.copy-feedback{background-color:#3498dbcc;border-radius:4px;bottom:20px;color:#fff;opacity:0;padding:10px;position:fixed;right:20px;transition:opacity .3s ease-in-out;z-index:1100}.copy-feedback.visible{opacity:1}.room-info{background-color:#0000004d;border-radius:8px;display:flex;flex-direction:column;margin:0 0 15px;max-height:1000px;padding:10px;transition:max-height .5s ease-out}.room-info.collapsed{max-height:50px}.room-info-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;margin-bottom:10px;width:100%}.room-info.collapsed .room-info-header{margin-bottom:0}.room-info-header h3{color:#3498db;flex-grow:1;margin:0;text-align:center}.room-info-toggle{background:#555;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:5px 10px;transition:background-color .3s ease}.room-info-toggle:hover{background:#666}.room-info-content{align-items:flex-start;background-color:#0000004d;border-radius:8px;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;padding:10px}.room-qr-code-container{align-items:center;background-color:#0006;border-radius:5px;box-shadow:0 4px 8px #0003;display:flex;flex-direction:column;margin:10px 0;padding:10px}.room-qr-code-container h3{color:#3498db;margin:0 0 10px}.room-qr-code{background-color:#ffffff1a;border-radius:5px;margin:5px 0;padding:10px}.member-info,.player-info{align-self:baseline;background-color:#0006;border-radius:5px;box-shadow:0 4px 8px #0003;color:#fff;margin-bottom:20px;padding:10px 15px}.player-info{margin-right:20px}.member-info{min-width:200px}.member-info h3,.player-info h3{color:#3498db;margin:0 0 10px}.player-info-item{font-size:14px;font-weight:700;margin:8px 0}.change-name-container{margin-top:10px}.change-name-button{background-color:#3498db;border:none;border-radius:3px;color:#fff;cursor:pointer;font-size:12px;padding:8px 12px;transition:background-color .3s ease;width:100%}.change-name-button:hover{background-color:#2980b9}.member-info ul{list-style:none;margin:0;padding:0}.room-member-item{background-color:initial;border-radius:3px;margin:5px 0;padding:5px;transition:background-color .3s ease}.room-member-item.you{background-color:#3498db4d}.join-color-button{border:none;border-radius:4px;cursor:pointer;font-weight:700;padding:10px 15px;transition:background-color .3s ease,color .3s ease}.join-color-button.white{background-color:#f0f0f0;color:#000}.join-color-button.white:hover:not(:disabled){background-color:#ddd}.join-color-button.white:disabled{background-color:#555;color:#aaa;cursor:not-allowed}.join-color-button.black{background-color:#333;color:#fff}.join-color-button.black:hover:not(:disabled){background-color:#444}.join-color-button.black:disabled{background-color:#555;color:#aaa;cursor:not-allowed}.game-status{border-radius:5px;font-size:18px;font-weight:700;margin:8px 0 15px;padding:10px;text-align:center;transition:background-color .5s ease}.game-status.your-turn{background-color:#2ecc714d;color:#e8f5e9}.game-status.opponent-turn{background-color:#e74c3c4d;color:#ffebee}.chess-canvas-container{display:flex;flex-direction:column;flex-grow:1;min-height:0;position:relative;width:100%}.chess-canvas{border-radius:10px;box-shadow:0 10px 30px #00000080;display:block;flex-grow:1;height:100%;touch-action:none;width:100%}.capture-info-container{background-color:#0000004d;border-radius:5px;box-sizing:border-box;display:flex;justify-content:space-around;margin-top:15px;padding:10px;width:100%}.capture-label{border-radius:4px;color:#fff;padding:5px 15px}.capture-label.white-captures{background-color:#ffffff1a}.capture-label.black-captures{background-color:#0000004d}.waiting-message{background-color:#3498db33;border-radius:5px;font-size:18px;margin-top:20px}.context-lost-overlay,.waiting-message{color:#fff;padding:20px;text-align:center}.context-lost-overlay{background-color:#000c;border-radius:10px;left:50%;position:fixed;top:50%;transform:translate(-50%,-50%);z-index:1000}.context-lost-text{color:#e74c3c;font-weight:700;margin-bottom:15px}.context-lost-button{background-color:#3498db;border:none;border-radius:5px;color:#fff;cursor:pointer;padding:10px 15px;transition:background-color .3s ease}.context-lost-button:hover{background-color:#2980b9}.edit-name-modal{color:#fff;min-width:300px;padding:20px}.edit-name-modal h3{color:#3498db;margin-bottom:20px;margin-top:0}.edit-name-input-container{margin-bottom:20px}.edit-name-label{color:#fff;display:block;margin-bottom:8px}.edit-name-input{background-color:#ffffff1a;border:1px solid #555;border-radius:4px;box-sizing:border-box;color:#fff;padding:10px;width:100%}.edit-name-buttons{display:flex;justify-content:space-between}.edit-name-cancel-button,.edit-name-save-button{border:none;border-radius:4px;color:#fff;cursor:pointer;padding:10px 15px;transition:background-color .3s ease}.edit-name-cancel-button{background-color:#555}.edit-name-cancel-button:hover{background-color:#666}.edit-name-save-button{background-color:#3498db}.edit-name-save-button:hover:not(:disabled){background-color:#2980b9}.edit-name-save-button:disabled{background-color:#555;cursor:not-allowed}body{font-feature-settings:"kern" 1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;background:linear-gradient(135deg,#ab9cff,#02ffe8) fixed;color:#fff;font-family:CustomFont,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;overflow:hidden;overscroll-behavior:none;position:fixed;touch-action:manipulation;-webkit-user-select:none;user-select:none;width:100%}.chess-canvas-container,body{height:100%}.game-container{height:80vh}#root{align-items:center;box-sizing:border-box;display:flex;height:100vh;justify-content:center;left:0;overflow:hidden;padding:0;position:fixed;top:0;width:100%}@supports (width:100dvw){#root{width:100dvw}}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.chess-container{align-items:center;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border-radius:15px;box-shadow:0 10px 30px #0000004d,inset 0 0 100px #0000001a;display:flex;flex-direction:column;height:100%;justify-content:center;padding:10px;touch-action:none;width:100%}.turn-indicator{animation:glow 2s ease-in-out infinite alternate;font-size:1.5em;font-weight:700;left:50%;letter-spacing:2px;margin-bottom:10px;position:absolute;text-align:center;text-shadow:2px 2px 4px #000000b3;text-transform:uppercase;top:10px;transform:translateX(-50%);z-index:10}@keyframes glow{0%{text-shadow:2px 2px 4px #000000b3}to{text-shadow:0 0 15px #ffffffe6,0 0 25px #fff9,0 0 35px #3498db66}}.modal-overlay{align-items:center;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);background-color:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{animation:modalFadeIn .3s ease-out;background:#1b2631f2;border:1px solid #3498db4d;border-radius:10px;box-shadow:0 8px 25px #00000080;max-height:90%;max-width:90%;overflow-y:auto;padding:20px;position:relative}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-close{background:none;border:none;color:#fff;cursor:pointer;font-size:24px;position:absolute;right:10px;top:10px;transition:color .3s ease}.modal-close:hover{color:#e74c3c}.menu-icon{background:none;border:none;cursor:pointer;position:fixed;right:20px;top:20px;z-index:100}.menu-icon,.menu-icon svg{transition:transform .3s ease}.menu-icon svg{stroke:#fff;height:30px;width:30px}.menu-icon:hover svg{transform:scale(1.1)}.menu-icon:hover{transform:translateY(-2px)}.utility-menu{color:#fff;display:contents}.utility-menu button{background-color:#3498db;border:none;border-radius:5px;color:#fff;cursor:pointer;font-weight:700;letter-spacing:.5px;margin:5px;padding:10px 15px;transition:background-color .3s ease}.utility-menu button:hover{background-color:#2980b9;box-shadow:0 2px 5px #0003;transform:translateY(-2px)}.utility-menu textarea{background-color:#ffffff1a;border:1px solid #ffffff4d;border-radius:5px;color:#fff;font-family:monospace;height:100px;margin-top:10px;padding:10px;resize:vertical;width:90%}.utility-menu .move-log{background-color:#0003;border:1px solid #ffffff1a;border-radius:5px;margin-top:20px;max-height:200px;overflow-y:auto;padding:10px}.tooltip-container{display:inline-block;position:relative}.tooltip{background-color:#000;border-radius:6px;color:#fff;opacity:.65;padding:5px 0;position:absolute;text-align:center;transition:opacity .3s;width:120px;z-index:1}.capture-label{font-weight:700;padding-left:20px;padding-right:20px}.join-room{background-color:#0009;border:1px solid #3498db4d;border-radius:10px;box-shadow:0 10px 30px #0000004d;margin:0 auto;max-width:600px;padding:25px}.join-room h3{color:#3498db;margin-bottom:20px;margin-top:0;text-align:center}.server-config{margin:20px 0}.server-config,.share-info{background-color:#0000004d;border-radius:5px;padding:15px}.share-info{margin-top:20px;text-align:center}.share-info hr{border:none;border-top:1px solid #ffffff1a;margin:15px 0}.endpoint-info{color:#aaa;font-size:12px;margin:5px 0}.online-game-room{margin:0 auto;width:100%}.setting-label{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;width:100%}.setting-label span{color:#fff;display:block;font-size:14px}.setting-label .value-display{color:#3498db;font-weight:700;margin-left:8px}.label-wrapper{align-items:center;display:flex;gap:8px;margin-bottom:4px}.setting-label input[type=range]{margin:8px 0;width:100%}.setting-label input[type=color]{border:none;border-radius:4px;height:30px;padding:0;width:50px}.setting-label input[type=checkbox]{margin-right:8px}.setting-label select{background:#ffffff1a;border:1px solid #ffffff4d;border-radius:4px;color:#fff;padding:8px}