.chess-panel-overlay{z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.chess-panel-overlay--full{-webkit-backdrop-filter:none;backdrop-filter:none;background:#10171c;display:block}.chess-scene3d{z-index:1;position:absolute;inset:0}.chess-panel--hud{z-index:2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:auto;background:#142028d1;border-radius:12px;gap:6px;width:min(360px,100vw - 24px);max-height:calc(100vh - 24px);padding:10px 14px;transition:background .15s;position:absolute;top:12px;left:auto;right:12px;overflow-y:auto;transform:none}.chess-panel--hud.is-collapsed{background:#14202899;width:min(300px,100vw - 24px)}.chess-panel--hud.is-collapsed .chess-panel__header h2{font-size:14px}.chess-panel__settings-toggle{color:#f5f0e8;cursor:pointer;background:#2d3e47;border:1px solid #fff3;border-radius:6px;padding:4px 10px;font-size:15px;line-height:1;transition:background .15s}.chess-panel__settings-toggle:hover{background:#3a5060}.chess-panel__hint{text-align:center;color:#8aa0ad;margin:0;font-size:11px}.chess-panel--hud .gomoku-grid,.chess-panel--hud .xiangqi-board-wrap,.chess-panel--hud .chess-board-wrap,.chess-panel--hud .dongtay-board-wrap{display:none}.chess-panel{color:#f5f0e8;background:#1e2a30;border-radius:16px;flex-direction:column;gap:12px;min-width:320px;max-width:600px;max-height:95vh;padding:20px;display:flex;overflow-y:auto;box-shadow:0 8px 32px #0009,0 0 0 1px #ffffff14}.chess-panel__header{justify-content:space-between;align-items:center;display:flex}.chess-panel__header h2{color:#f5f0e8;margin:0;font-size:18px;font-weight:700}.chess-panel__header-actions{align-items:center;gap:8px;display:flex}.chess-panel__switch2d{color:#ffe066;cursor:pointer;white-space:nowrap;background:#2d4a2d;border:1px solid #5a8a5a;border-radius:6px;padding:5px 12px;font-size:13px;transition:background .15s}.chess-panel__switch2d:hover{background:#3a6a3a}.chess-panel__close{color:#f5f0e8;cursor:pointer;opacity:.7;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:20px;line-height:1;transition:opacity .15s}.chess-panel__close:hover{opacity:1;background:#ffffff1a}.chess-panel__controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chess-panel__controls select{color:#f5f0e8;cursor:pointer;background:#2d3e47;border:1px solid #fff3;border-radius:6px;padding:5px 8px;font-size:13px}.chess-panel__controls select:disabled{opacity:.5;cursor:default}.chess-panel__controls button{color:#f5f0e8;cursor:pointer;background:#2d3e47;border:1px solid #fff3;border-radius:6px;padding:5px 12px;font-size:13px;transition:background .15s}.chess-panel__controls button:hover:not(:disabled){background:#3a5060}.chess-panel__controls button:disabled{opacity:.5;cursor:default}.chess-panel__clock{text-align:center;color:#a8d8c0;letter-spacing:.02em;margin:0;font-size:15px;font-weight:700}.chess-panel__clock--warning{color:#ff6b5a;animation:1s ease-in-out infinite chess-clock-pulse}.chess-panel__clock-alert{font-weight:700}.chess-panel__banks{flex-wrap:wrap;justify-content:center;gap:8px;margin:0;display:flex}.chess-panel__bank{font-variant-numeric:tabular-nums;color:#d8e4ec;background:#ffffff14;border:1px solid #ffffff29;border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:14px;font-weight:700;display:inline-flex}.chess-panel__bank.is-active{color:#eafff5;background:#42d39238;border-color:#42d392}.chess-panel__bank.is-low{color:#ff8a7a;border-color:#ff6b5a99;animation:1s ease-in-out infinite chess-clock-pulse}@media (prefers-reduced-motion:reduce){.chess-panel__bank.is-low{animation:none}}@keyframes chess-clock-pulse{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.chess-panel__clock--warning{animation:none}}.chess-panel__status{text-align:center;color:#c8d8e0;min-height:20px;font-size:14px}.gomoku-grid{background:#d4a96a;border:3px solid #8b6914;grid-template-columns:repeat(15,1fr);align-self:center;gap:0;display:grid}.gomoku-cell{cursor:pointer;width:32px;height:32px;color:inherit;background:0 0;border:1px solid #8b691459;justify-content:center;align-items:center;padding:0;font-size:22px;line-height:1;transition:background .1s;display:flex}.gomoku-cell:hover:not(:disabled){background:#ffffff26}.gomoku-cell:disabled{cursor:default}.gomoku-stone{pointer-events:none;border-radius:50%;width:24px;height:24px;display:block}.gomoku-stone--black{background:radial-gradient(circle at 32% 30%,#6b6b6b,#0a0a0a 70%);border:1px solid #000;box-shadow:0 1px 2px #00000080}.gomoku-stone--white{background:radial-gradient(circle at 32% 30%,#fff,#cfcfcf 75%);border:1px solid #8a8a8a;box-shadow:0 1px 2px #00000059}.xiangqi-board-wrap{align-self:center;overflow:auto}.xiangqi-board-svg{flex-shrink:0;display:block}.xq-intersection{cursor:pointer;border-radius:4px;justify-content:center;align-items:center;transition:background .1s;display:flex;position:absolute}.xq-intersection:hover{background:#ffffc82e}.xq-intersection--selected .xiangqi-piece{outline-offset:2px;outline:3px solid #42d392;box-shadow:0 0 8px #42d392b3}.xq-intersection--selected .dongtay-piece{outline-offset:2px;outline:3px solid #42d392;box-shadow:0 0 10px #42d392cc}.xq-intersection--selected .dongtay-piece--west{box-shadow:none;filter:drop-shadow(0 0 6px #42d392)drop-shadow(0 0 3px #42d392);outline:none}.xq-legal-dot{pointer-events:none;background:#42d392cc;border-radius:50%;width:14px;height:14px;display:block}.xq-intersection--legal{background:#42d3922e}.xiangqi-piece{cursor:pointer;-webkit-user-select:none;user-select:none;border:2px solid #fff6;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;font-size:15px;font-weight:700;transition:transform .1s;display:flex}.xiangqi-piece:hover{transform:scale(1.08)}.xiangqi-piece--red{color:#fff;background:#c0392b}.xiangqi-piece--black{color:#f0d060;background:#2c3e50}.chess-board-wrap{align-self:center}.chess-grid{border:3px solid #5c3d1a;grid-template-columns:repeat(8,1fr);gap:0;display:grid}.chess-cell{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;width:52px;height:52px;font-size:30px;transition:filter .1s;display:flex;position:relative}.chess-cell--light{background:wheat}.chess-cell--dark{background:#8b4513}.chess-cell--selected{outline-offset:-3px;outline:3px solid #42d392}.chess-piece{-webkit-user-select:none;user-select:none;font-size:42px;line-height:1}.chess-piece--white{color:#fbfbf7;text-shadow:0 0 1px #000,1px 0 1px #000,-1px 0 1px #000,0 1px 1px #000,0 -1px 1px #000,1px 1px 1px #000,-1px -1px 1px #000}.chess-piece--black{color:#141414;text-shadow:0 0 1px #fff,1px 0 1px #fff,-1px 0 1px #fff,0 1px 1px #fff,0 -1px 1px #fff}.chess-cell--legal{background-color:#42d39273!important}.chess-cell--legal:after{content:"";pointer-events:none;background:#42d392b3;border-radius:50%;width:18px;height:18px;position:absolute}@media (width<=480px){.gomoku-cell{width:26px;height:26px;font-size:18px}.chess-cell{width:36px;height:36px;font-size:22px}.chess-piece{font-size:30px}.xiangqi-cell{width:36px;height:32px}.xiangqi-piece{width:30px;height:30px;font-size:12px}.dongtay-cell{width:34px;height:34px}.dongtay-piece{width:28px;height:28px;font-size:11px}.dongtay-piece--west{width:auto;height:auto;font-size:26px}}.dongtay-board-wrap{align-self:center}.dongtay-grid{position:relative}.dongtay-grid--chess{border:3px solid #5c3d1a;border-radius:6px;flex-direction:column;gap:0;display:flex;overflow:hidden;box-shadow:0 6px 20px #00000073,inset 0 0 0 2px #ffffff0f}.dongtay-grid--xiangqi{border-radius:6px;flex-shrink:0;display:block;box-shadow:0 6px 20px #00000073}.dongtay-row{flex-direction:row;display:flex}.dongtay-cell{cursor:pointer;-webkit-user-select:none;user-select:none;box-sizing:border-box;justify-content:center;align-items:center;width:52px;height:44px;transition:filter .1s;display:flex;position:relative;box-shadow:inset 0 0 0 1px #0000001f}.dongtay-cell:hover{filter:brightness(1.12)}.dongtay-cell--chess.dongtay-cell--light{background:linear-gradient(145deg,#f3e2bf,#e8d3a6)}.dongtay-cell--chess.dongtay-cell--dark{background:linear-gradient(145deg,#9c6b36,#7d4f20)}.dongtay-cell--palace{background-color:#ffd65c24;box-shadow:inset 0 0 0 1px #0000001f,inset 0 0 0 2px #ffd65c8c}.dongtay-palace-border-top{border-top:3px solid #ffd23feb!important}.dongtay-palace-border-bottom{border-bottom:3px solid #ffd23feb!important}.dongtay-palace-border-left{border-left:3px solid #ffd23feb!important}.dongtay-palace-border-right{border-right:3px solid #ffd23feb!important}.dongtay-palace-diag-main:after,.dongtay-palace-diag-anti:before{content:"";pointer-events:none;z-index:0;position:absolute;inset:0}.dongtay-palace-diag-main:after{background:linear-gradient(to top right,#0000 calc(50% - 1px),#8c5e0ee6 calc(50% - 1px) calc(50% + 1px),#0000 calc(50% + 1px))}.dongtay-palace-diag-anti:before{background:linear-gradient(to bottom right,#0000 calc(50% - 1px),#8c5e0ee6 calc(50% - 1px) calc(50% + 1px),#0000 calc(50% + 1px))}.dongtay-piece{cursor:pointer;-webkit-user-select:none;user-select:none;z-index:1;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;font-size:15px;font-weight:700;transition:transform .1s,box-shadow .1s;display:flex;position:relative}.dongtay-piece:hover{transform:scale(1.08)}.dongtay-piece--east{color:#ffe066;text-shadow:0 1px 1px #0009;background:radial-gradient(circle at 35% 30%,#2a7a3a,#124a1f 75%);border:2px solid #0d3814;box-shadow:0 2px 4px #00000080,inset 0 1px 2px #ffffff40}.dongtay-piece--west{width:auto;height:auto;box-shadow:none;color:#fbfbf7;text-shadow:0 0 1px #000,1px 0 1px #000,-1px 0 1px #000,0 1px 1px #000,0 -1px 1px #000,1px 1px 1px #000,-1px -1px 1px #000;background:0 0;border:none;border-radius:0;font-size:34px;line-height:1}.dongtay-cell--selected .dongtay-piece{outline-offset:2px;outline:3px solid #42d392;box-shadow:0 0 10px #42d392cc}.dongtay-cell--selected .dongtay-piece--west{box-shadow:none;filter:drop-shadow(0 0 6px #42d392)drop-shadow(0 0 3px #42d392);outline:none}.dongtay-cell--legal{background:#42d39259!important}.dongtay-cell--legal:after{content:"";pointer-events:none;background:#42d392b3;border-radius:50%;width:14px;height:14px;position:absolute}.dongtay-layout-picker{flex-direction:column;align-items:center;gap:12px;padding:20px;display:flex}.dongtay-layout-picker__label{color:#c8d8e0;margin:0;font-size:14px}.dongtay-side-choice{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.dongtay-side-btn{cursor:pointer;border-radius:8px;padding:8px 16px;font-size:13px;transition:background .15s,border-color .15s;color:#f5f0e8!important;background:#2d3e47!important;border:1px solid #fff3!important;min-width:0!important}.dongtay-side-btn:hover{background:#3a5060!important}.dongtay-side-btn.is-selected{box-shadow:0 0 0 1px #42d392;color:#ffe066!important;background:#2d4a2d!important;border-color:#42d392!important}.dongtay-layout-picker button{color:#ffe066;cursor:pointer;background:#2d4a2d;border:1px solid #5a8a5a;border-radius:8px;min-width:180px;padding:10px 24px;font-size:14px;transition:background .15s}.dongtay-layout-picker button:hover{background:#3a6a3a}.dongtay-promo-overlay{z-index:10;background:#000000b3;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.dongtay-promo-btn{color:#2c1a0e;cursor:pointer;background:#e8d4b0;border:2px solid #0000004d;border-radius:8px;padding:8px 14px;font-size:26px;transition:background .15s,transform .1s}.dongtay-promo-btn:hover{background:#f5e8c8;transform:scale(1.1)}.chess-panel__think-toggle{color:#c8d8e0;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:5px;font-size:12px;display:inline-flex}.chess-panel__think-toggle input{cursor:pointer}.chess-panel__thinking{text-align:center;color:#9ec8e0;margin:0;font-size:12.5px}.chess-panel__thinking-move{color:#ffd27a}.chess-panel__thinking-best{color:#42d392;font-weight:700}.ai-think-candidate{position:relative;box-shadow:inset 0 0 0 2px #ffd27ae6!important}.ai-think-best{box-shadow:inset 0 0 0 3px #42d392f2!important}.xq-intersection.ai-think-candidate{background:#ffd27a47;border-radius:4px}.xq-intersection.ai-think-best{background:#42d3924d;border-radius:4px}@keyframes ai-think-pulse{0%,to{opacity:1}50%{opacity:.55}}.ai-think-candidate,.ai-think-best{animation:.9s ease-in-out infinite ai-think-pulse}@media (prefers-reduced-motion:reduce){.ai-think-candidate,.ai-think-best{animation:none}}.chess-celebrate{pointer-events:none;z-index:50;position:absolute;inset:0;overflow:hidden}.chess-confetti{opacity:.95;border-radius:2px;width:9px;height:14px;animation-name:chess-confetti-fall;animation-timing-function:linear;animation-iteration-count:infinite;position:absolute;top:-14px}@keyframes chess-confetti-fall{0%{opacity:1;transform:translateY(-20px)rotate(0)}to{opacity:.9;transform:translateY(105vh)rotate(720deg)}}.chess-celebrate__banner{color:#ffe066;letter-spacing:.02em;background:#141e24d1;border-radius:12px;padding:10px 22px;font-size:22px;font-weight:800;animation:.5s ease-out chess-celebrate-pop;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%);box-shadow:0 6px 24px #00000080}@keyframes chess-celebrate-pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.6)}60%{opacity:1;transform:translate(-50%,-50%)scale(1.12)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@media (prefers-reduced-motion:reduce){.chess-confetti{animation:none;display:none}.chess-celebrate__banner{animation:none}}.chess-grid--relative{position:relative}.chess-check-beams{pointer-events:none}.chess-check-beam-line{filter:drop-shadow(0 0 4px #ff4040e6);animation:.8s ease-in-out infinite chess-beam-flash}.chess-check-beam-ring{filter:drop-shadow(0 0 5px #ff4040e6);transform-origin:50%;animation:1s ease-out infinite chess-beam-ring}@keyframes chess-beam-flash{0%,to{opacity:.5}50%{opacity:1}}@keyframes chess-beam-ring{0%{opacity:.9}70%{opacity:.25}to{opacity:.9}}@media (prefers-reduced-motion:reduce){.chess-check-beam-line,.chess-check-beam-ring{animation:none}}.coin-flip-overlay{z-index:5;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none;background:#080e1280;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.coin-flip{perspective:800px;flex-direction:column;align-items:center;gap:18px;display:flex;position:relative}.coin-flip__coin{width:120px;height:120px;transform-style:preserve-3d;will-change:transform;position:relative}.coin-flip__face{color:#5a4300;backface-visibility:hidden;background:radial-gradient(circle at 35% 30%,#ffe88a,#e9b63c 70%,#b8860b);border-radius:50%;justify-content:center;align-items:center;font-size:26px;font-weight:800;display:flex;position:absolute;inset:0;transform:translateZ(5px);box-shadow:inset 0 0 0 6px #0000002e,0 8px 20px #00000080}.coin-flip__face--back{color:#5a1010;background:radial-gradient(circle at 35% 30%,#ffd0d0,#d98a8a 70%,#a85252);transform:rotateX(180deg)translateZ(5px)}.coin-flip__coin:before{content:"";background:linear-gradient(#c99a1e,#8a6410);border-radius:50%;position:absolute;inset:0;transform:rotateX(90deg);box-shadow:0 0 0 1px #0003}.coin-flip.is-spinning.is-human .coin-flip__coin{animation:1.7s cubic-bezier(.3,0,.4,1) forwards coin-toss-human}.coin-flip.is-spinning.is-bot .coin-flip__coin{animation:1.7s cubic-bezier(.3,0,.4,1) forwards coin-toss-bot}@keyframes coin-toss-human{0%{transform:translateY(0)rotateX(0)scale(1)}25%{transform:translateY(-150px)rotateX(540deg)scale(1.1)}50%{transform:translateY(-210px)rotateX(1080deg)scale(1.15)}75%{transform:translateY(-150px)rotateX(1620deg)scale(1.1)}to{transform:translateY(0)rotateX(2160deg)scale(1)}}@keyframes coin-toss-bot{0%{transform:translateY(0)rotateX(0)scale(1)}25%{transform:translateY(-150px)rotateX(540deg)scale(1.1)}50%{transform:translateY(-210px)rotateX(1080deg)scale(1.15)}75%{transform:translateY(-150px)rotateX(1620deg)scale(1.1)}to{transform:translateY(0)rotateX(2340deg)scale(1)}}.coin-flip.is-landed.is-human .coin-flip__coin{transform:rotateX(0)}.coin-flip.is-landed.is-bot .coin-flip__coin{transform:rotateX(180deg)}.coin-flip:after{content:"";background:radial-gradient(#00000080,#0000 70%);border-radius:50%;width:90px;height:18px;position:absolute;top:calc(50% + 70px);left:50%;transform:translate(-50%)}.coin-flip.is-spinning.is-human:after,.coin-flip.is-spinning.is-bot:after{animation:1.7s cubic-bezier(.3,0,.4,1) forwards coin-shadow}@keyframes coin-shadow{0%,to{opacity:.5;transform:translate(-50%)scale(1)}50%{opacity:.16;transform:translate(-50%)scale(.55)}}.coin-flip__label{color:#f5f0e8;text-shadow:0 2px 6px #0009;margin:0;font-size:18px;font-weight:700}@media (prefers-reduced-motion:reduce){.coin-flip.is-spinning .coin-flip__coin{animation:none}.coin-flip__coin{transition:none!important}}.chess-endgame{z-index:6;pointer-events:auto;justify-content:center;align-items:center;animation:.35s ease-out chess-endgame-in;display:flex;position:absolute;inset:0}.chess-endgame--human-win{background:radial-gradient(circle,#1c3c2859,#080e12b8)}.chess-endgame--bot-win{background:radial-gradient(#140000b8 0%,#000000ed 70%);animation:1s ease-out chess-endgame-in}.chess-endgame--draw{background:radial-gradient(circle,#282c3666,#080e12c7)}@keyframes chess-endgame-in{0%{opacity:0}to{opacity:1}}.chess-confetti-layer{pointer-events:none;position:absolute;inset:0;overflow:hidden}.chess-endgame__card{background:#10181eeb;border-radius:18px;flex-direction:column;align-items:center;gap:10px;padding:28px 40px;animation:.45s cubic-bezier(.2,.9,.3,1.3) chess-endgame-pop;display:flex;position:relative;box-shadow:0 16px 48px #0009,0 0 0 1px #ffffff14}@keyframes chess-endgame-pop{0%{opacity:0;transform:scale(.6)}60%{opacity:1;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}.chess-endgame__icon{font-size:56px;line-height:1}.chess-endgame--human-win .chess-endgame__icon{animation:1s ease-in-out infinite chess-trophy-bounce}.chess-endgame--bot-win .chess-endgame__icon{animation:1.4s ease-in-out infinite chess-skull-shake}@keyframes chess-trophy-bounce{0%,to{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-10px)rotate(4deg)}}@keyframes chess-skull-shake{0%,to{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}.chess-endgame__title{letter-spacing:.01em;margin:0;font-size:30px;font-weight:800}.chess-endgame--human-win .chess-endgame__title{color:#ffe066}.chess-endgame--bot-win .chess-endgame__title{color:#ff7a6a}.chess-endgame--draw .chess-endgame__title{color:#cdd6e0}.chess-endgame__sub{color:#c8d8e0;text-align:center;max-width:320px;margin:0 0 8px;font-size:14px}.chess-endgame__actions{gap:10px;display:flex}.chess-endgame__btn{color:#f5f0e8;cursor:pointer;background:#2d3e47;border:1px solid #fff3;border-radius:8px;padding:9px 20px;font-size:14px;font-weight:600;transition:background .15s}.chess-endgame__btn:hover{background:#3a5060}.chess-endgame__btn--primary{color:#ffe066;background:#2d4a2d;border-color:#5a8a5a}.chess-endgame__btn--primary:hover{background:#3a6a3a}@media (prefers-reduced-motion:reduce){.chess-endgame,.chess-endgame__card,.chess-endgame__icon{animation:none}}.chess-died{text-align:center;flex-direction:column;align-items:center;gap:0;width:100%;display:flex;position:relative}.chess-died__bar{opacity:0;pointer-events:none;background:radial-gradient(#3c0000a6 0%,#1e000040 45%,#0000 72%);width:150%;height:150px;animation:2.6s ease-out forwards died-bar;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.chess-died__text{letter-spacing:.14em;color:#8a0a0a;text-shadow:0 0 24px #7800008c,0 2px 2px #000;opacity:0;margin:0;font-family:Georgia,Times New Roman,Noto Serif,serif;font-size:clamp(44px,9vw,108px);font-weight:700;animation:2.8s cubic-bezier(.2,.6,.2,1) forwards died-text;transform:scale(1.18)}.chess-died__sub{color:#b9a9a9;letter-spacing:.04em;opacity:0;margin:14px 0 0;font-size:14px;animation:.8s ease-out 2.2s forwards died-fade-late}.chess-died__actions{opacity:0;gap:12px;margin-top:26px;animation:.8s ease-out 2.6s forwards died-fade-late;display:flex}.chess-died__btn{color:#d8c6c6;letter-spacing:.05em;cursor:pointer;background:#140808e6;border:1px solid #8a0a0a99;border-radius:4px;padding:10px 26px;font-size:14px;font-weight:600;transition:background .15s,color .15s,border-color .15s}.chess-died__btn:hover{color:#fff;background:#5a0a0ae6;border-color:#8a0a0a}.chess-died__btn--ghost{color:#9aa0a6;background:0 0;border-color:#ffffff2e}.chess-died__btn--ghost:hover{color:#e6e6e6;background:#ffffff14;border-color:#ffffff59}@keyframes died-text{0%{opacity:0;letter-spacing:.26em;transform:scale(1.22)}35%{opacity:1}70%{opacity:1;letter-spacing:.14em;transform:scale(1)}to{opacity:1;letter-spacing:.14em;transform:scale(1)}}@keyframes died-bar{0%{opacity:0;transform:translate(-50%,-50%)scaleX(.2)}40%{opacity:1}to{opacity:.85;transform:translate(-50%,-50%)scaleX(1)}}@keyframes died-fade-late{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.chess-died__text,.chess-died__bar,.chess-died__sub,.chess-died__actions{opacity:1;animation:none;transform:none}}.chess-invite-prompt{z-index:210;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.chess-invite-prompt__card{text-align:center;background:#1e2a30;border-radius:14px;max-width:360px;padding:22px 26px;box-shadow:0 12px 40px #0009}.chess-invite-prompt__text{color:#f5f0e8;margin:0 0 16px;font-size:15px}.chess-invite-prompt__actions{justify-content:center;gap:10px;display:flex}.chess-invite-prompt__btn{color:#f5f0e8;cursor:pointer;background:#2d3e47;border:1px solid #fff3;border-radius:8px;padding:9px 20px;font-size:14px;font-weight:600;transition:background .15s}.chess-invite-prompt__btn:hover{background:#3a5060}.chess-invite-prompt__btn--accept{color:#ffe066;background:#2d4a2d;border-color:#5a8a5a}.chess-invite-prompt__btn--accept:hover{background:#3a6a3a}.battleship-overlay{z-index:200;background:#060e18;position:fixed;inset:0;overflow:hidden}.battleship-hud{z-index:2;color:#e0eef8;pointer-events:auto;background:#060e18d1;border:1px solid #50a0dc33;border-radius:12px;flex-direction:column;gap:10px;min-width:200px;max-width:260px;padding:14px 18px;display:flex;position:absolute;top:12px;right:12px}.battleship-hud__title{color:#a8d8f8;font-size:17px;font-weight:700}.battleship-hud__close{color:#c0d0e0;cursor:pointer;background:0 0;border:1px solid #ffffff2e;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;transition:background .15s,color .15s;display:flex}.battleship-hud__close:hover{color:#ff8080;background:#ff505040;border-color:#ff505080}.battleship-hud__status{color:#a0c8e8;min-height:18px;font-size:13px}.battleship-hud__status.battleship-status--warning{color:#ffd27a}.battleship-hud__status.battleship-status--danger{color:#ff8080;animation:.8s ease-in-out infinite bs-pulse}@keyframes bs-pulse{0%,to{opacity:1}50%{opacity:.5}}.battleship-panel__controls{flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;display:flex}.battleship-panel__controls label{color:#8ab8d8}.battleship-panel__controls select,.battleship-panel__controls button{color:#d0e8f8;cursor:pointer;background:#162636;border:1px solid #50a0dc47;border-radius:6px;padding:5px 10px;font-size:13px;transition:background .15s}.battleship-panel__controls select:hover,.battleship-panel__controls button:hover{background:#1e3650}.battleship-panel__controls button:disabled{opacity:.4;cursor:default}.battleship-rotate-btn{font-weight:600;color:#7fe8a0!important;background:#163028!important;border-color:#50c87859!important}.battleship-rotate-btn:hover{background:#1f4a38!important}.battleship-ship-list{flex-direction:column;gap:6px;min-width:150px;display:flex}.battleship-ship-list__title{color:#6a9ab8;letter-spacing:.08em;text-transform:uppercase;margin-bottom:2px;font-size:12px;font-weight:700}.battleship-ship-item{background:#0a1e3480;border:1px solid #508cc833;border-radius:7px;flex-direction:column;gap:3px;padding:7px 10px;font-size:12px;transition:background .15s,border-color .15s,opacity .15s;display:flex}.battleship-ship-item__name{color:#b8d8f0;font-size:13px;font-weight:700}.battleship-ship-item__cells{flex-direction:row;gap:3px;display:flex}.battleship-ship-item__cell{background:#1a4a6a;border:1px solid #50a0dc59;border-radius:2px;width:14px;height:14px}.battleship-ship-item.is-active{background:#2850308c;border-color:#50c8788c}.battleship-ship-item.is-active .battleship-ship-item__name{color:#7fe8a0}.battleship-ship-item.is-active .battleship-ship-item__cell{background:#2a7a48}.battleship-ship-item.is-placed{opacity:.45}.battleship-ship-item.is-placed .battleship-ship-item__name{color:#607890;text-decoration:line-through}.battleship-ship-item.is-sunk{opacity:.55;border-color:#ff6b3566}.battleship-ship-item.is-sunk .battleship-ship-item__name{color:#ff8860;text-decoration:line-through}.battleship-ship-item.is-sunk .battleship-ship-item__cell{background:#7a2010}.battleship-endgame{z-index:210;justify-content:center;align-items:center;animation:.4s ease-out bs-endgame-in;display:flex;position:fixed;inset:0}.battleship-endgame--win{background:radial-gradient(circle,#143c2866,#040e1cd9)}.battleship-endgame--lose{background:radial-gradient(#1e0505bf 0%,#040a12f0 70%)}@keyframes bs-endgame-in{0%{opacity:0}to{opacity:1}}.battleship-endgame__card{text-align:center;background:linear-gradient(160deg,#0d1f33,#081420);border:1px solid #50a0dc33;border-radius:20px;flex-direction:column;align-items:center;gap:16px;width:90vw;max-width:380px;padding:36px 48px;animation:.45s cubic-bezier(.34,1.56,.64,1) bs-card-pop;display:flex;box-shadow:0 12px 50px #000000bf}@keyframes bs-card-pop{0%{opacity:0;transform:scale(.6)}60%{opacity:1;transform:scale(1.06)}to{transform:scale(1)}}.battleship-endgame__icon{font-size:64px;line-height:1}.battleship-endgame--win .battleship-endgame__icon{animation:1.6s ease-in-out infinite bs-trophy-bounce}.battleship-endgame--lose .battleship-endgame__icon{animation:1.4s ease-in-out infinite bs-skull-shake}@keyframes bs-trophy-bounce{0%,to{transform:translateY(0)rotate(-4deg)}50%{transform:translateY(-10px)rotate(4deg)}}@keyframes bs-skull-shake{0%,to{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}.battleship-endgame__title{color:#e0f0ff;letter-spacing:.02em;margin:0;font-size:28px;font-weight:800}.battleship-endgame--win .battleship-endgame__title{color:#7fe8a0}.battleship-endgame--lose .battleship-endgame__title{color:#ff8080}.battleship-endgame__sub{color:#7890a8;margin:0;font-size:15px}.battleship-endgame__actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:6px;display:flex}.battleship-endgame__btn{cursor:pointer;color:#c0d8f0;background:#162636;border:1px solid #50a0dc4d;border-radius:10px;padding:10px 26px;font-size:15px;font-weight:600;transition:filter .15s,transform .1s}.battleship-endgame__btn:hover{filter:brightness(1.2);transform:translateY(-1px)}.battleship-endgame__btn--primary{color:#90f0b0;background:linear-gradient(135deg,#1a6a38,#0f4424);border-color:#50c87873}.battleship-endgame--lose .battleship-endgame__btn--primary{color:#f0a0a0;background:linear-gradient(135deg,#6a1a1a,#441010);border-color:#c8505073}.battleship-confetti-layer{pointer-events:none;z-index:215;position:fixed;inset:0;overflow:hidden}.battleship-confetti{border-radius:2px;width:8px;height:12px;animation:linear forwards bs-confetti-fall;position:absolute;top:-20px}@keyframes bs-confetti-fall{0%{opacity:1;transform:translateY(-20px)rotate(0)}to{opacity:.8;transform:translateY(105vh)rotate(720deg)}}@media (width<=680px){.battleship-ship-list{min-width:unset;flex-flow:wrap}}:root{--swal2-outline:0 0 0 3px #6496c880;--swal2-container-padding:.625em;--swal2-backdrop:#0006;--swal2-backdrop-transition:background-color .15s;--swal2-width:32em;--swal2-padding:0 0 1.25em;--swal2-border:none;--swal2-border-radius:.3125rem;--swal2-background:white;--swal2-color:#545454;--swal2-show-animation:swal2-show .3s;--swal2-hide-animation:swal2-hide .15s forwards;--swal2-icon-zoom:1;--swal2-title-padding:.8em 1em 0;--swal2-html-container-padding:1em 1.6em .3em;--swal2-input-border:1px solid #d9d9d9;--swal2-input-border-radius:.1875em;--swal2-input-box-shadow:inset 0 1px 1px #0000000f, 0 0 0 3px transparent;--swal2-input-background:transparent;--swal2-input-transition:border-color .2s, box-shadow .2s;--swal2-input-hover-box-shadow:inset 0 1px 1px #0000000f, 0 0 0 3px transparent;--swal2-input-focus-border:1px solid #b4dbed;--swal2-input-focus-box-shadow:inset 0 1px 1px #0000000f, 0 0 0 3px #6496c880;--swal2-progress-step-background:#add8e6;--swal2-validation-message-background:#f0f0f0;--swal2-validation-message-color:#666;--swal2-footer-border-color:#eee;--swal2-footer-background:transparent;--swal2-footer-color:inherit;--swal2-timer-progress-bar-background:#0000004d;--swal2-close-button-position:initial;--swal2-close-button-inset:auto;--swal2-close-button-font-size:2.5em;--swal2-close-button-color:#ccc;--swal2-close-button-transition:color .2s, box-shadow .2s;--swal2-close-button-outline:initial;--swal2-close-button-box-shadow:inset 0 0 0 3px transparent;--swal2-close-button-focus-box-shadow:inset var(--swal2-outline);--swal2-close-button-hover-transform:none;--swal2-actions-justify-content:center;--swal2-actions-width:auto;--swal2-actions-margin:1.25em auto 0;--swal2-actions-padding:0;--swal2-actions-border-radius:0;--swal2-actions-background:transparent;--swal2-action-button-transition:background-color .2s, box-shadow .2s;--swal2-action-button-hover:black 10%;--swal2-action-button-active:black 10%;--swal2-confirm-button-box-shadow:none;--swal2-confirm-button-border-radius:.25em;--swal2-confirm-button-background-color:#7066e0;--swal2-confirm-button-color:#fff;--swal2-deny-button-box-shadow:none;--swal2-deny-button-border-radius:.25em;--swal2-deny-button-background-color:#dc3741;--swal2-deny-button-color:#fff;--swal2-cancel-button-box-shadow:none;--swal2-cancel-button-border-radius:.25em;--swal2-cancel-button-background-color:#6e7881;--swal2-cancel-button-color:#fff;--swal2-toast-show-animation:swal2-toast-show .5s;--swal2-toast-hide-animation:swal2-toast-hide .1s forwards;--swal2-toast-border:none;--swal2-toast-box-shadow:0 0 1px #00000013, 0 1px 2px #00000013, 1px 2px 4px #00000013, 1px 3px 8px #00000013, 2px 4px 16px #00000013}[data-swal2-theme=dark]{--swal2-dark-theme-black:#19191a;--swal2-dark-theme-white:#e1e1e1;--swal2-background:var(--swal2-dark-theme-black);--swal2-color:var(--swal2-dark-theme-white);--swal2-footer-border-color:#555;--swal2-input-background:color-mix(in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10%);--swal2-validation-message-background:color-mix(in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10%);--swal2-validation-message-color:var(--swal2-dark-theme-white);--swal2-timer-progress-bar-background:#ffffffb3}@media (prefers-color-scheme:dark){[data-swal2-theme=auto]{--swal2-dark-theme-black:#19191a;--swal2-dark-theme-white:#e1e1e1;--swal2-background:var(--swal2-dark-theme-black);--swal2-color:var(--swal2-dark-theme-white);--swal2-footer-border-color:#555;--swal2-input-background:color-mix(in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10%);--swal2-validation-message-background:color-mix(in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10%);--swal2-validation-message-color:var(--swal2-dark-theme-white);--swal2-timer-progress-bar-background:#ffffffb3}}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{pointer-events:none;background-color:#0000!important}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:auto}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px var(--swal2-backdrop)}body.swal2-toast-shown .swal2-container{box-sizing:border-box;pointer-events:none;background-color:#0000;width:360px;max-width:100%}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translate(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translate(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}@media print{body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown) .swal2-container{position:static!important}}div:where(.swal2-container){z-index:1060;box-sizing:border-box;height:100%;padding:var(--swal2-container-padding);transition:var(--swal2-backdrop-transition);-webkit-overflow-scrolling:touch;grid-template-rows:minmax(min-content,auto) minmax(min-content,auto) minmax(min-content,auto);grid-template-areas:"top-start top top-end""center-start center center-end""bottom-start bottom-center bottom-end";display:grid;position:fixed;inset:0;overflow-x:hidden}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:var(--swal2-backdrop)}div:where(.swal2-container).swal2-backdrop-hide{background:0 0!important}div:where(.swal2-container).swal2-top-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-bottom-start{grid-template-columns:minmax(0,1fr) auto auto}div:where(.swal2-container).swal2-top,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-bottom{grid-template-columns:auto minmax(0,1fr) auto}div:where(.swal2-container).swal2-top-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-bottom-end{grid-template-columns:auto auto minmax(0,1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;place-self:start center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;place-self:start end}div:where(.swal2-container).swal2-center-start>.swal2-popup,div:where(.swal2-container).swal2-center-left>.swal2-popup{grid-row:2;align-self:center}div:where(.swal2-container).swal2-center>.swal2-popup{grid-area:2/2;place-self:center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-area:2/3;place-self:center end}div:where(.swal2-container).swal2-bottom-start>.swal2-popup,div:where(.swal2-container).swal2-bottom-left>.swal2-popup{grid-area:3/1;align-self:end}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-area:3/2;place-self:end center}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-area:3/3;place-self:end}div:where(.swal2-container).swal2-grow-row>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}div:where(.swal2-container).swal2-no-transition{transition:none!important}div:where(.swal2-container)[popover]{border:0;width:auto}div:where(.swal2-container) div:where(.swal2-popup){box-sizing:border-box;width:var(--swal2-width);max-width:100%;padding:var(--swal2-padding);border:var(--swal2-border);border-radius:var(--swal2-border-radius);background:var(--swal2-background);color:var(--swal2-color);grid-template-columns:minmax(0,100%);font-family:inherit;font-size:1rem;display:none;position:relative}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) div:where(.swal2-popup).swal2-draggable,div:where(.swal2-container) div:where(.swal2-popup).swal2-draggable div:where(.swal2-icon){cursor:grab}div:where(.swal2-container) div:where(.swal2-popup).swal2-dragging,div:where(.swal2-container) div:where(.swal2-popup).swal2-dragging div:where(.swal2-icon){cursor:grabbing}div:where(.swal2-container) h2:where(.swal2-title){max-width:100%;padding:var(--swal2-title-padding);color:inherit;text-align:center;text-transform:none;overflow-wrap:break-word;cursor:initial;margin:0;font-size:1.875em;font-weight:600;position:relative}div:where(.swal2-container) div:where(.swal2-actions){z-index:1;box-sizing:border-box;align-items:center;justify-content:var(--swal2-actions-justify-content);width:var(--swal2-actions-width);margin:var(--swal2-actions-margin);padding:var(--swal2-actions-padding);border-radius:var(--swal2-actions-border-radius);background:var(--swal2-actions-background);flex-wrap:wrap;display:flex}div:where(.swal2-container) div:where(.swal2-loader){border:.25em solid #2778c4;border-color:#2778c4 #0000;border-radius:100%;justify-content:center;align-items:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:1.5s linear infinite swal2-rotate-loading;display:none}div:where(.swal2-container) button:where(.swal2-styled){transition:var(--swal2-action-button-transition);border:none;margin:.3125em;padding:.625em 1.1em;font-weight:500;box-shadow:0 0 0 3px #0000}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm){border-radius:var(--swal2-confirm-button-border-radius);background:initial;background-color:var(--swal2-confirm-button-background-color);box-shadow:var(--swal2-confirm-button-box-shadow);color:var(--swal2-confirm-button-color);font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm):hover{background-color:color-mix(in srgb, var(--swal2-confirm-button-background-color), var(--swal2-action-button-hover))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm):active{background-color:color-mix(in srgb, var(--swal2-confirm-button-background-color), var(--swal2-action-button-active))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny){border-radius:var(--swal2-deny-button-border-radius);background:initial;background-color:var(--swal2-deny-button-background-color);box-shadow:var(--swal2-deny-button-box-shadow);color:var(--swal2-deny-button-color);font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny):hover{background-color:color-mix(in srgb, var(--swal2-deny-button-background-color), var(--swal2-action-button-hover))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny):active{background-color:color-mix(in srgb, var(--swal2-deny-button-background-color), var(--swal2-action-button-active))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel){border-radius:var(--swal2-cancel-button-border-radius);background:initial;background-color:var(--swal2-cancel-button-background-color);box-shadow:var(--swal2-cancel-button-box-shadow);color:var(--swal2-cancel-button-color);font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel):hover{background-color:color-mix(in srgb, var(--swal2-cancel-button-background-color), var(--swal2-action-button-hover))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel):active{background-color:color-mix(in srgb, var(--swal2-cancel-button-background-color), var(--swal2-action-button-active))}div:where(.swal2-container) button:where(.swal2-styled):focus-visible{box-shadow:var(--swal2-action-button-focus-box-shadow);outline:none}div:where(.swal2-container) button:where(.swal2-styled)[disabled]:not(.swal2-loading){opacity:.4}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){border-top:1px solid var(--swal2-footer-border-color);background:var(--swal2-footer-background);color:var(--swal2-footer-color);text-align:center;cursor:initial;margin:1em 0 0;padding:1em 1em 0;font-size:1em}div:where(.swal2-container) .swal2-timer-progress-bar-container{border-bottom-right-radius:var(--swal2-border-radius);border-bottom-left-radius:var(--swal2-border-radius);position:absolute;bottom:0;left:0;right:0;overflow:hidden;grid-column:auto!important}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){background:var(--swal2-timer-progress-bar-background);width:100%;height:.25em}div:where(.swal2-container) img:where(.swal2-image){max-width:100%;cursor:initial;margin:2em auto 1em}div:where(.swal2-container) button:where(.swal2-close){position:var(--swal2-close-button-position);inset:var(--swal2-close-button-inset);z-index:2;width:1.2em;height:1.2em;transition:var(--swal2-close-button-transition);border-radius:var(--swal2-border-radius);outline:var(--swal2-close-button-outline);color:var(--swal2-close-button-color);font-family:monospace;font-size:var(--swal2-close-button-font-size);cursor:pointer;background:0 0;border:none;justify-content:center;justify-self:end;align-items:center;margin-top:0;margin-bottom:-1.2em;margin-right:0;padding:0;overflow:hidden}div:where(.swal2-container) button:where(.swal2-close):hover{transform:var(--swal2-close-button-hover-transform);color:#f27474;background:0 0}div:where(.swal2-container) button:where(.swal2-close):focus-visible{box-shadow:var(--swal2-close-button-focus-box-shadow);outline:none}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-html-container){z-index:1;padding:var(--swal2-html-container-padding);color:inherit;text-align:center;overflow-wrap:break-word;word-break:break-word;cursor:initial;justify-content:center;margin:0;font-size:1.125em;font-weight:400;line-height:normal;overflow:auto}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) label:where(.swal2-checkbox){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea){box-sizing:border-box;width:auto;transition:var(--swal2-input-transition);border:var(--swal2-input-border);border-radius:var(--swal2-input-border-radius);background:var(--swal2-input-background);box-shadow:var(--swal2-input-box-shadow);color:inherit;font-size:1.125em}div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}div:where(.swal2-container) input:where(.swal2-input):hover,div:where(.swal2-container) input:where(.swal2-file):hover,div:where(.swal2-container) textarea:where(.swal2-textarea):hover{box-shadow:var(--swal2-input-hover-box-shadow)}div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:var(--swal2-input-focus-border);box-shadow:var(--swal2-input-focus-box-shadow);outline:none}div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{background:var(--swal2-background);margin:1em 2em 3px}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{width:20%;color:inherit;text-align:center;font-weight:600}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{background:var(--swal2-input-background);width:75%;margin-left:auto;margin-right:auto;font-size:1.125em}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{background:var(--swal2-input-background);min-width:50%;max-width:100%;color:inherit;padding:.375em .625em;font-size:1.125em}div:where(.swal2-container) .swal2-radio,div:where(.swal2-container) .swal2-checkbox{background:var(--swal2-background);color:inherit;justify-content:center;align-items:center}div:where(.swal2-container) .swal2-radio label,div:where(.swal2-container) .swal2-checkbox label{margin:0 .6em;font-size:1.125em}div:where(.swal2-container) .swal2-radio input,div:where(.swal2-container) .swal2-checkbox input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){justify-content:center;margin:1em auto 0;display:flex}div:where(.swal2-container) div:where(.swal2-validation-message){background:var(--swal2-validation-message-background);color:var(--swal2-validation-message-color);justify-content:center;align-items:center;margin:1em 0 0;padding:.625em;font-size:1em;font-weight:300;overflow:hidden}div:where(.swal2-container) div:where(.swal2-validation-message):before{content:"!";color:#fff;text-align:center;background-color:#f27474;border-radius:50%;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;font-weight:600;line-height:1.5em;display:inline-block}div:where(.swal2-container) .swal2-progress-steps{background:0 0;flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;font-weight:600}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{z-index:20;color:#fff;text-align:center;background:#2778c4;border-radius:2em;flex-shrink:0;width:2em;height:2em;line-height:2em}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:var(--swal2-progress-step-background);color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:var(--swal2-progress-step-background)}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{z-index:10;background:#2778c4;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px}div:where(.swal2-icon){box-sizing:content-box;zoom:var(--swal2-icon-zoom);cursor:default;-webkit-user-select:none;user-select:none;border:.25em solid #000;border-radius:50%;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;font-family:inherit;line-height:5em;position:relative}div:where(.swal2-icon) .swal2-icon-content{align-items:center;font-size:3.75em;display:flex}div:where(.swal2-icon).swal2-error{color:#f27474;border-color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{flex-grow:1;position:relative}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{background-color:#f27474;border-radius:.125em;width:2.9375em;height:.3125em;display:block;position:absolute;top:2.3125em}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:.5s swal2-animate-error-icon}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:.5s swal2-animate-error-x-mark}div:where(.swal2-icon).swal2-warning{color:#f8bb86;border-color:#f8bb86}div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:.5s swal2-animate-error-icon}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:.5s swal2-animate-i-mark}div:where(.swal2-icon).swal2-info{color:#3fc3ee;border-color:#3fc3ee}div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:.5s swal2-animate-error-icon}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:.8s swal2-animate-i-mark}div:where(.swal2-icon).swal2-question{color:#87adbd;border-color:#87adbd}div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:.5s swal2-animate-error-icon}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:.8s swal2-animate-question-mark}div:where(.swal2-icon).swal2-success{color:#a5dc86;border-color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{border-radius:50%;width:3.75em;height:7.5em;position:absolute}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]{transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em;top:-.4375em;left:-2.0635em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]{transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0;top:-.6875em;left:1.875em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success .swal2-success-ring{z-index:2;box-sizing:content-box;border:.25em solid #a5dc864d;border-radius:50%;width:100%;height:100%;position:absolute;top:-.25em;left:-.25em}div:where(.swal2-icon).swal2-success .swal2-success-fix{z-index:1;width:.4375em;height:5.625em;position:absolute;top:.5em;left:1.625em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{z-index:2;background-color:#a5dc86;border-radius:.125em;height:.3125em;display:block;position:absolute}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=tip]{width:1.5625em;top:2.875em;left:.8125em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=long]{width:2.9375em;top:2.375em;right:.5em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:.75s swal2-animate-success-line-tip}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:.75s swal2-animate-success-line-long}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:4.25s ease-in swal2-rotate-success-circular-line}[class^=swal2]{-webkit-tap-highlight-color:#0000}.swal2-show{animation:var(--swal2-show-animation)}.swal2-hide{animation:var(--swal2-hide-animation)}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{width:50px;height:50px;position:absolute;top:-9999px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{left:auto;right:0}.swal2-toast{box-sizing:border-box;border:var(--swal2-toast-border);background:var(--swal2-background);box-shadow:var(--swal2-toast-box-shadow);pointer-events:auto;grid-template-columns:min-content auto min-content;padding:1em;overflow-y:hidden;grid-area:1/1/4/4!important}.swal2-toast>*{grid-column:2}.swal2-toast h2:where(.swal2-title){text-align:initial;margin:.5em 1em;padding:0;font-size:1em}.swal2-toast .swal2-loading{justify-content:center}.swal2-toast input:where(.swal2-input){height:2em;margin:.5em;font-size:1em}.swal2-toast .swal2-validation-message{font-size:1em}.swal2-toast div:where(.swal2-footer){margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-toast button:where(.swal2-close){grid-area:1/3/99/3;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-toast div:where(.swal2-html-container){overflow:initial;text-align:initial;margin:.5em 1em;padding:0;font-size:1em}.swal2-toast div:where(.swal2-html-container):empty{padding:0}.swal2-toast .swal2-loader{grid-area:1/1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-toast .swal2-icon{grid-area:1/1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-toast .swal2-icon .swal2-icon-content{align-items:center;font-size:1.8em;font-weight:700;display:flex}.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{width:1.375em;top:.875em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-toast div:where(.swal2-actions){justify-content:flex-start;height:auto;margin:.5em 0 0;padding:0 .5em}.swal2-toast button:where(.swal2-styled){margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-toast .swal2-success [class^=swal2-success-circular-line]{border-radius:50%;width:1.6em;height:3em;position:absolute}.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{transform-origin:2em 2em;border-radius:4em 0 0 4em;top:-.8em;left:-.5em;transform:rotate(-45deg)}.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{transform-origin:0 1.5em;border-radius:0 4em 4em 0;top:-.25em;left:.9375em}.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-toast .swal2-success .swal2-success-fix{width:.4375em;height:2.6875em;top:0;left:.4375em}.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{width:.75em;top:1.125em;left:.1875em}.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{width:1.375em;top:.9375em;right:.1875em}.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:.75s swal2-toast-animate-success-line-tip}.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:.75s swal2-toast-animate-success-line-long}.swal2-toast.swal2-show{animation:var(--swal2-toast-show-animation)}.swal2-toast.swal2-hide{animation:var(--swal2-toast-hide-animation)}@keyframes swal2-show{0%{opacity:0;transform:translateY(-50px)scale(.9)}to{opacity:1;transform:translate(0,0)scale(1)}}@keyframes swal2-hide{0%{opacity:1;transform:translate(0,0)scale(1)}to{opacity:0;transform:translateY(-50px)scale(.9)}}@keyframes swal2-animate-success-line-tip{0%{width:0;top:1.1875em;left:.0625em}54%{width:0;top:1.0625em;left:.125em}70%{width:3.125em;top:2.1875em;left:-.375em}84%{width:1.0625em;top:3em;left:1.3125em}to{width:1.5625em;top:2.8125em;left:.8125em}}@keyframes swal2-animate-success-line-long{0%{width:0;top:3.375em;right:2.875em}65%{width:0;top:3.375em;right:2.875em}84%{width:3.4375em;top:2.1875em;right:0}to{width:2.9375em;top:2.375em;right:.5em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}to{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{opacity:0;margin-top:1.625em;transform:scale(.4)}50%{opacity:0;margin-top:1.625em;transform:scale(.4)}80%{margin-top:-.375em;transform:scale(1.15)}to{opacity:1;margin-top:0;transform:scale(1)}}@keyframes swal2-animate-error-icon{0%{opacity:0;transform:rotateX(100deg)}to{opacity:1;transform:rotateX(0)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}to{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{opacity:0;transform:rotate(45deg)}25%{opacity:.4;transform:rotate(-25deg)}50%{opacity:.8;transform:rotate(15deg)}75%{opacity:1;transform:rotate(-5deg)}to{opacity:1;transform:rotateX(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em)rotate(2deg)}33%{transform:translateY(0)rotate(-2deg)}66%{transform:translateY(.3125em)rotate(2deg)}to{transform:translateY(0)rotate(0)}}@keyframes swal2-toast-hide{to{opacity:0;transform:rotate(1deg)}}@keyframes swal2-toast-animate-success-line-tip{0%{width:0;top:.5625em;left:.0625em}54%{width:0;top:.125em;left:.125em}70%{width:1.625em;top:.625em;left:-.25em}84%{width:.5em;top:1.0625em;left:.75em}to{width:.75em;top:1.125em;left:.1875em}}@keyframes swal2-toast-animate-success-line-long{0%{width:0;top:1.625em;right:1.375em}65%{width:0;top:1.25em;right:.9375em}84%{width:1.125em;top:.9375em;right:0}to{width:1.375em;top:.9375em;right:.1875em}}.game-shell{background:linear-gradient(#edf4fb 0%,#dfeaf4 100%);width:100vw;height:100dvh;position:relative;overflow:hidden}.swal2-popup.office-event-toast{color:#f3f7fa;background:#10171df5;border:1px solid #ffffff1a;border-radius:8px;box-shadow:0 10px 28px #0a11173d}.swal2-popup.office-event-toast .swal2-title{color:inherit;font:500 13px DM Mono,monospace}.game-canvas{background:linear-gradient(#e7eef5 0%,#d5e0ec 100%);width:100%;height:100%;display:block;position:absolute;inset:0}.game-topbar{z-index:16777300;pointer-events:none;justify-content:space-between;align-items:center;gap:16px;display:flex;position:absolute;top:18px;left:18px;right:18px}.game-topbar.is-concert{display:none}.brand-box,.room-menu{pointer-events:auto}.brand-box{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#1a2d3f;background:#ffffff80;border:1px solid #18283b14;border-radius:14px;align-items:center;gap:8px;min-width:0;padding:10px 16px;font-weight:700;display:inline-flex}.brand-mark{background:linear-gradient(135deg,#d9f36b,#8bd0ff);border-radius:6px;justify-content:center;align-items:center;width:22px;height:22px;font-size:14px;display:inline-flex}.brand-mark svg{width:14px;height:14px}.mode-switch{pointer-events:auto;background:#ffffff7a;border:1px solid #18283b14;border-radius:10px;align-items:center;gap:4px;padding:4px;display:flex}.mode-link{color:#405568;text-align:center;text-transform:uppercase;border-radius:6px;min-width:72px;padding:8px 10px;font:10px DM Mono,monospace;text-decoration:none}.mode-link svg{width:14px;height:14px}.mode-link.is-active{color:#f4f8fb;background:#223746}.mode-link.is-disabled{cursor:not-allowed;opacity:.42}.video-room-mode{z-index:1;flex-direction:column;gap:14px;min-height:0;display:flex;position:absolute;inset:82px 18px 18px}.video-room-heading{color:#1a2d3f;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.video-room-eyebrow{color:#678092;letter-spacing:.12em;font:10px DM Mono,monospace}.video-room-heading h1{margin:4px 0 0;font-size:18px;font-weight:650}.chess-lobby{background:linear-gradient(160deg,#172636f5,#101a26f5);border-radius:14px;flex-direction:column;gap:12px;max-height:46vh;padding:14px 16px;display:flex;overflow-y:auto;box-shadow:inset 0 0 0 1px #ffffff0f,0 10px 30px #00000047}.chess-lobby__head{flex-direction:column;gap:2px;display:flex}.chess-lobby__title{color:#ffe88a;letter-spacing:.01em;text-shadow:0 1px 2px #00000080;font-size:17px;font-weight:800}.chess-lobby__sub{color:#cfe0ec;font-size:12.5px}.chess-lobby__grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:12px;display:grid}.chess-card{background:#223440;border-radius:12px;flex-direction:column;transition:transform .15s,box-shadow .15s;display:flex;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff1a}.chess-card:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px #42d39280,0 8px 22px #00000059}.chess-card__banner{background:radial-gradient(circle at 50% 120%,#42d39259,#0000 70%),linear-gradient(135deg,#3f6f88,#2a4a5e);border-bottom:1px solid #ffffff24;justify-content:center;align-items:center;height:64px;display:flex}.chess-card__icon{color:#fff;text-shadow:0 1px 1px #000000e6,0 0 10px #0009;filter:drop-shadow(0 2px 3px #000000b3);font-size:36px;line-height:1}.chess-card__body{flex-direction:column;gap:6px;padding:10px 12px 12px;display:flex}.chess-card__name{color:#f5f0e8;margin:0;font-size:15px;font-weight:700}.chess-card__sub{color:#a9c0d0;margin:0 0 2px;font-size:11.5px}.chess-card__section-label{color:#9fb6c6;text-transform:uppercase;letter-spacing:.06em;margin-top:4px;font-size:10.5px;font-weight:700}.chess-card__chips{flex-wrap:wrap;gap:5px;display:flex}.chess-chip{color:#e4edf3;cursor:pointer;background:#ffffff1a;border:1px solid #ffffff38;border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.chess-chip:hover{background:#ffffff2e}.chess-chip.is-active{color:#0c241a;background:#42d392;border-color:#42d392;font-weight:700;box-shadow:0 0 0 1px #42d39299}.chess-chip__icon{font-size:13px;line-height:1}.chess-card__peers{flex-wrap:wrap;gap:5px;display:flex}.chess-peer-chip{color:#cdd9e2;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:999px;align-items:center;gap:6px;padding:3px 10px 3px 3px;font-size:12px;transition:background .12s,border-color .12s;display:inline-flex}.chess-peer-chip:hover{background:#ffffff1f}.chess-peer-chip.is-active{background:#4a90e238;border-color:#4a90e2;box-shadow:0 0 0 1px #4a90e280}.chess-peer-chip__avatar{color:#fff;background:#4a90e2;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:inline-flex}.chess-card__play{color:#fff;letter-spacing:.01em;cursor:pointer;background:linear-gradient(135deg,#2fae6a,#1f8a51);border:none;border-radius:8px;margin-top:8px;padding:9px 12px;font-size:13px;font-weight:700;transition:filter .12s,transform 80ms}.chess-card__play:hover{filter:brightness(1.1)}.chess-card__play:active{transform:scale(.98)}.chess-card__time-row{align-items:center;gap:6px;display:flex}.chess-card__time-tag{color:#cfe0ec;min-width:58px;font-size:11.5px;font-weight:600}.chess-card__time-select{color:#eaf2f7;cursor:pointer;background:#0f1c24;border:1px solid #ffffff38;border-radius:7px;flex:1;padding:6px 8px;font-size:12.5px}.chess-card__time-select:focus-visible{outline-offset:1px;outline:2px solid #42d392}.video-room-peer{flex-direction:column;gap:6px;display:flex}.video-room-invite{justify-content:center;display:flex}.video-room-invite__btn{color:#ffe066;cursor:pointer;background:#2d4a2d;border:1px solid #5a8a5a;border-radius:6px;padding:5px 12px;font-size:12px;transition:background .15s}.video-room-invite__btn:hover{background:#3a6a3a}.video-room-invite__games{flex-wrap:wrap;justify-content:center;gap:5px;display:flex}.video-room-invite__game,.video-room-invite__cancel{color:#f5f0e8;cursor:pointer;background:#2d3e47;border:1px solid #18283b33;border-radius:6px;padding:4px 10px;font-size:12px}.video-room-invite__game:hover{background:#3a5060}.video-room-invite__cancel{color:#c88}.video-room-count{color:#425c6d;background:#ffffff8c;border:1px solid #18283b1f;border-radius:6px;padding:7px 10px;font:10px DM Mono,monospace}.video-room-grid{flex:1;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));align-content:center;gap:12px;min-height:0;padding-bottom:2px;display:grid;overflow:auto}.video-room-tile{aspect-ratio:16/9;background:#253540;border:1px solid #18283b24;border-radius:8px;justify-self:center;width:100%;min-width:0;max-width:860px;position:relative;overflow:hidden;box-shadow:0 12px 30px #14273424}.video-room-feed{object-fit:contain;background:#18232b;width:100%;height:100%;display:block}.video-room-placeholder{color:#ffffffb3;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:0}.video-room-avatar{aspect-ratio:1;color:#142530;background:linear-gradient(135deg,#d9f36b,#8bd0ff);border-radius:50%;place-items:center;width:54px;font-size:22px;font-weight:700;display:grid}.video-room-placeholder strong{color:#fff;font-size:14px}.video-room-placeholder small{font:10px DM Mono,monospace}.video-room-name{color:#fff;text-overflow:ellipsis;white-space:nowrap;background:#0a1117b8;border-radius:4px;padding:7px 9px;font:10px DM Mono,monospace;position:absolute;bottom:10px;left:10px;right:10px;overflow:hidden}.video-room-tile audio{display:none}.room-menu{justify-content:flex-end;align-items:center;gap:10px;min-width:0;display:flex}.avatar-editor-wrap{pointer-events:auto;position:relative}.avatar-editor-toggle{color:#18283b;cursor:pointer;text-transform:uppercase;background:#ffffffc2;border:1px solid #18283b1f;border-radius:10px;justify-content:center;align-items:center;width:40px;min-height:40px;padding:0;font:11px DM Mono,monospace;display:inline-flex}.avatar-editor-toggle[aria-expanded=true]{color:#f4f8fb;background:#223746}.avatar-editor{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f7fbfdf0;border:1px solid #18283b1f;border-radius:12px;grid-template-columns:repeat(2,minmax(120px,1fr));gap:10px;width:min(330px,100vw - 36px);max-height:min(70vh,430px);padding:14px;display:grid;position:absolute;top:calc(100% + 10px);right:0;overflow-y:auto;box-shadow:0 16px 34px #14273433}.avatar-editor-heading{color:#18283b;grid-column:1/-1;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.avatar-editor-heading strong{font-size:13px}.avatar-editor-heading span{color:#678092;font:9px DM Mono,monospace}.avatar-preview{background:linear-gradient(145deg,#e5eee9,#c9d5cf);border:1px solid #18283b1f;border-radius:8px;grid-column:1/-1;height:190px;position:relative;overflow:hidden}.avatar-preview canvas{touch-action:none;width:100%;height:100%}.avatar-preview span{color:#fff;pointer-events:none;background:#18283bb8;border-radius:4px;padding:3px 6px;font:9px DM Mono,monospace;position:absolute;bottom:7px;right:8px}.avatar-editor label{color:#405568;text-transform:uppercase;gap:5px;font:10px DM Mono,monospace;display:grid}.avatar-editor select{color:#18283b;background:#fffc;border:1px solid #18283b24;border-radius:6px;width:100%;min-height:32px;padding:0 7px;font:11px DM Mono,monospace}.avatar-editor input[type=color]{cursor:pointer;background:#fffc;border:1px solid #18283b24;border-radius:6px;width:100%;height:32px;padding:3px}.room-current-code{color:#263c4d;letter-spacing:.08em;font:11px DM Mono,monospace}.room-menu-toggle{color:#18283b;cursor:pointer;background:#ffffffc2;border:1px solid #18283b1f;border-radius:8px;flex:0 0 40px;place-items:center;width:40px;height:40px;padding:0;display:grid}.room-controls{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff80;border:1px solid #18283b14;border-radius:18px;align-items:center;gap:10px;padding:8px 10px;display:flex}.room-type-control{box-sizing:border-box;color:#405568;text-transform:uppercase;background:#ffffffc2;border:1px solid #18283b1f;border-radius:8px;flex:none;justify-content:center;align-items:center;width:40px;min-width:40px;min-height:40px;padding:0;font:9px DM Mono,monospace;display:inline-flex;position:relative}.room-type-control svg{flex:none;width:13px;height:13px}.room-type-control select{border-radius:inherit;opacity:0;cursor:pointer;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.room-type-control select:disabled{cursor:not-allowed}.room-type-control:focus-within{outline-offset:2px;outline:2px solid #527a2d}.room-type-control:has(select:disabled){cursor:not-allowed;opacity:.58}.room-leader-badge{color:#527a2d;text-transform:uppercase;margin-left:6px;font:9px DM Mono,monospace}.room-menu:not(.is-expanded) .room-controls{display:none}.room-input-wrap{background:#fff9;border:1px solid #18283b14;border-radius:12px;align-items:center;gap:8px;min-width:min(320px,42vw);padding:6px 8px 6px 12px;display:flex}.room-input-wrap input{color:#102032;background:0 0;border:0;outline:none;width:100%;min-width:0;font-family:DM Mono,monospace;font-size:14px}.name-input{color:#102032;background:#fff9;border:1px solid #18283b14;border-radius:10px;outline:none;width:130px;min-width:90px;min-height:36px;padding:0 10px;font-size:13px}.name-input:disabled{opacity:.72}.mini-button,.primary-button,.secondary-button,.chat-toggle,.chat-tab,.chat-form button{cursor:pointer;border:0}.mini-button,.primary-button,.secondary-button{border-radius:10px;justify-content:center;align-items:center;min-width:36px;min-height:36px;padding:0 12px;font-weight:600;display:inline-flex}.mini-button{color:#132332;background:#8bd0ff33;justify-content:center;align-items:center;width:32px;padding:0;display:inline-flex}.primary-button{color:#112130;background:linear-gradient(135deg,#d9f36b,#d5e67d)}.secondary-button{color:#102032;background:#121b2414}.hud{z-index:30;pointer-events:none;flex-direction:column;gap:4px;display:flex;position:absolute;top:104px;left:18px}.hud__title{letter-spacing:.18em;text-transform:uppercase;color:#18283bcc;font-size:13px;font-weight:700}.hud__controls{color:#1f3447b8;letter-spacing:.05em;font-size:12px}.hud__status{color:#1f3447ad;max-width:min(420px,46vw);margin-top:5px;font:10px DM Mono,monospace}.werewolf-panel{left:max(14px, env(safe-area-inset-left,0px));bottom:max(14px, env(safe-area-inset-bottom,0px));z-index:45;color:#edf0e7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#171f1bf0;border:1px solid #d7b77757;border-radius:8px;flex-direction:column;gap:9px;width:318px;max-width:calc(100vw - 28px);max-height:min(48dvh,430px);padding:13px;font-family:DM Sans,sans-serif;display:flex;position:fixed;overflow:auto;box-shadow:0 14px 34px #080c0a4d}.werewolf-panel__header{border-bottom:1px solid #ffffff1f;grid-template-columns:1fr auto;align-items:center;gap:2px 8px;padding-bottom:8px;display:grid}.werewolf-panel__eyebrow{color:#d5b574;grid-column:1/-1;font:9px DM Mono,monospace}.werewolf-panel__header strong{font-size:15px;font-weight:650}.werewolf-panel__timer{color:#f0c977;font-variant-numeric:tabular-nums;font:700 17px DM Mono,monospace}.werewolf-panel__copy,.werewolf-panel__phase-copy p,.werewolf-panel__winner{color:#d2d8cf;margin:0;font-size:12px;line-height:1.45}.werewolf-panel__phase-copy{gap:5px;font-size:11px;display:grid}.werewolf-panel__phase-copy strong{color:#f0c977}.werewolf-panel__phase-copy .werewolf-panel__result{color:#a8d2ad}.werewolf-panel__hint{color:#d4c7a7;font-size:10px;line-height:1.4}.werewolf-panel__actions,.werewolf-panel__form{align-items:center;gap:7px;display:flex}.werewolf-panel button,.werewolf-panel select{color:#f1f1e8;background:#303d34;border:1px solid #dfc2835c;border-radius:4px;min-height:34px;font:11px DM Sans,sans-serif}.werewolf-panel button{cursor:pointer;white-space:nowrap;padding:0 11px}.werewolf-panel button.is-prayer{color:#fff9ea;background:#9b6045;border-color:#d7b775;font-weight:700}.werewolf-panel button.is-muted{background:0 0}.werewolf-panel button:disabled{opacity:.45;cursor:not-allowed}.werewolf-panel select{flex:1;min-width:0;padding:0 8px}.werewolf-panel__form{flex-wrap:wrap}.werewolf-panel__form select{min-width:150px}.werewolf-panel__check{color:#dce0d7;align-items:center;gap:7px;width:100%;font-size:11px;display:flex}.werewolf-panel__check input{accent-color:#d0a76d}.werewolf-panel__players{border-top:1px solid #ffffff1a;gap:4px;margin:0;padding:8px 0 0;list-style:none;display:grid}.werewolf-panel__players li{color:#edf0e7;justify-content:space-between;gap:8px;font-size:11px;display:flex}.werewolf-panel__players small{color:#abb6a8;text-align:right;font-size:10px}.werewolf-panel__players li.is-dead,.werewolf-panel__players li.is-dead small{color:#d3897b}.werewolf-panel__winner{color:#f0c977;font-weight:700}.quiz-panel{left:max(14px, env(safe-area-inset-left,0px));bottom:max(14px, env(safe-area-inset-bottom,0px));z-index:45;color:#edf4ec;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:auto;background:#14221df2;border:1px solid #749b8166;border-radius:8px;flex-direction:column;gap:9px;width:360px;max-width:calc(100vw - 28px);max-height:min(56dvh,500px);padding:13px;font-family:DM Sans,sans-serif;display:flex;position:fixed;overflow:auto;box-shadow:0 14px 34px #080c0a4d}.quiz-panel__header{border-bottom:1px solid #ffffff1f;grid-template-columns:1fr auto;align-items:center;gap:3px 8px;padding-bottom:8px;display:grid}.quiz-panel__eyebrow{color:#a9d5ad;grid-column:1/-1;font:9px DM Mono,monospace}.quiz-panel__header strong{font-size:15px;font-weight:650}.quiz-panel__timer{color:#f0c977;font-variant-numeric:tabular-nums;font:700 20px DM Mono,monospace}.quiz-panel__copy,.quiz-panel__question,.quiz-panel__hint,.quiz-panel__result,.quiz-panel__error,.quiz-panel__winner{margin:0;line-height:1.45}.quiz-panel__copy,.quiz-panel__hint,.quiz-panel__result{color:#c8d5ca;font-size:11px}.quiz-panel__question{color:#fff;font-size:14px;font-weight:650}.quiz-panel__options{gap:5px;display:grid}.quiz-panel__option{background:#ffffff12;border-radius:4px;grid-template-columns:24px 1fr;align-items:start;gap:8px;padding:5px 7px;font-size:11px;display:grid}.quiz-panel__option strong{color:#b9e3bc}.quiz-panel__actions{flex-wrap:wrap;gap:7px;display:flex}.quiz-panel button,.quiz-panel__file{color:#f1f5ed;cursor:pointer;background:#31513b;border:1px solid #a9d5ad61;border-radius:4px;justify-content:center;align-items:center;min-height:34px;padding:0 11px;font:11px DM Sans,sans-serif;display:inline-flex}.quiz-panel button:disabled{opacity:.45;cursor:not-allowed}.quiz-panel button.is-muted{background:0 0}.quiz-panel__file input{clip:rect(0, 0, 0, 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.quiz-panel__error{color:#ffb0a2;font-size:11px}.quiz-panel__winner{color:#f0c977;font-size:13px;font-weight:700}.quiz-panel__players{border-top:1px solid #ffffff1a;gap:4px;margin:0;padding:8px 0 0;list-style:none;display:grid}.quiz-panel__players li{color:#edf4ec;justify-content:space-between;gap:8px;font-size:11px;display:flex}.quiz-panel__players small{color:#abd2ad;font-size:10px}.quiz-panel__players li.is-out,.quiz-panel__players li.is-out small{color:#d3897b}.lucky-panel{left:max(14px, env(safe-area-inset-left,0px));bottom:max(14px, env(safe-area-inset-bottom,0px));z-index:45;color:#f1f2f5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:auto;background:#181d26f5;border:1px solid #e7c36c70;border-radius:9px;flex-direction:column;gap:9px;width:350px;max-width:calc(100vw - 28px);max-height:min(58dvh,520px);padding:13px;font-family:DM Sans,sans-serif;display:flex;position:fixed;overflow:auto;box-shadow:0 16px 38px #080c145c}.lucky-panel__header{border-bottom:1px solid #ffffff1f;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:5px 8px;padding-bottom:8px;display:flex}.lucky-panel__eyebrow{color:#edcc78;width:100%;font:9px DM Mono,monospace}.lucky-panel__header strong{font-size:15px}.lucky-panel__header>span:last-child{color:#c6ceda;font:10px DM Mono,monospace}.lucky-panel__choice{gap:6px;display:grid}.lucky-panel__choice>label{color:#e9e1ce;font-size:11px}.lucky-panel__choice-row{gap:7px;display:flex}.lucky-panel__choice input{color:#fff4d4;letter-spacing:.22em;text-align:center;background:#0509108a;border:1px solid #e7c36c6b;border-radius:5px;flex:1;width:0;min-width:0;padding:5px 10px;font:700 20px DM Mono,monospace}.lucky-panel__choice small,.lucky-panel__hint{color:#c5ccd6;font-size:10px;line-height:1.45}.lucky-panel__hint,.lucky-panel__result,.lucky-panel__winner{margin:0}.lucky-panel__hint.is-center{text-align:center}.lucky-panel button{color:#fff8e4;cursor:pointer;background:linear-gradient(135deg,#8a6630,#6d4c36);border:1px solid #e7c36c7a;border-radius:5px;min-height:34px;padding:0 11px;font:600 11px DM Sans,sans-serif}.lucky-panel button:disabled{opacity:.42;cursor:not-allowed}.lucky-panel__spin{box-shadow:0 0 18px #e7c36c29;background:linear-gradient(120deg,#936d31,#be8f3d,#815638)!important;min-height:40px!important;font-weight:700!important}.lucky-panel__number{color:#ffe7a4;letter-spacing:.16em;text-shadow:0 0 12px #ffd267c2,0 0 36px #ffae3d7a;background:radial-gradient(#c5963f52,#0a0f18f5 72%);border:1px solid #e7c36c85;border-radius:8px;place-items:center;min-height:86px;font:800 clamp(36px,9vw,54px) DM Mono,monospace;display:grid;overflow:hidden}.lucky-panel__number.is-spinning{border-color:#ffe3a1;animation:.3s ease-in-out infinite alternate lucky-spin-pulse;box-shadow:0 0 26px #ffbf415c,inset 0 0 24px #ffc7551a}@keyframes lucky-spin-pulse{0%{filter:brightness(.9);transform:scale(.97)rotate(-1deg)}to{filter:brightness(1.35);transform:scale(1.03)rotate(1deg)}}.lucky-panel__result{color:#d9deea;text-align:center;font-size:12px}.lucky-panel__result strong,.lucky-panel__winner{color:#ffe39a}.lucky-panel__winner{font-size:13px;font-weight:700}.lucky-panel__actions{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.lucky-panel__players{border-top:1px solid #ffffff1a;gap:5px;margin:0;padding:8px 0 0;list-style:none;display:grid}.lucky-panel__players li{color:#e5e8ed;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 8px;font-size:11px;display:flex}.lucky-panel__players li>strong{color:#e9d393;font:700 11px DM Mono,monospace}.lucky-panel__players li>small{color:#f1cf74;text-align:right;width:100%}.lucky-panel__players li.is-winner>span{color:#f3d37e}.team-panel{left:max(14px, env(safe-area-inset-left,0px));bottom:max(14px, env(safe-area-inset-bottom,0px));z-index:45;color:#f0f4ee;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:auto;background:#14221df5;border:1px solid #adcdb470;border-radius:9px;flex-direction:column;gap:9px;width:350px;max-width:calc(100vw - 28px);max-height:min(58dvh,520px);padding:13px;font-family:DM Sans,sans-serif;display:flex;position:fixed;overflow:auto;box-shadow:0 16px 38px #080e0a57}.team-panel__header{border-bottom:1px solid #ffffff1f;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 8px;padding-bottom:8px;display:flex}.team-panel__eyebrow{color:#b9e2be;width:100%;font:9px DM Mono,monospace}.team-panel__header strong{font-size:15px}.team-panel__header>span:last-child{color:#d3deb7;font:11px DM Mono,monospace}.team-panel__setup{gap:8px;display:grid}.team-panel__setup label{color:#dce5dc;justify-content:space-between;align-items:center;gap:8px;font-size:11px;display:flex}.team-panel__setup input{color:#fff;background:#050e0980;border:1px solid #adcdb459;border-radius:4px;width:84px;padding:6px 8px;font:700 14px DM Mono,monospace}.team-panel button{color:#f3f7f0;cursor:pointer;background:#31513b;border:1px solid #adcdb46b;border-radius:5px;min-height:34px;padding:0 11px;font:600 11px DM Sans,sans-serif}.team-panel button:disabled{opacity:.42;cursor:not-allowed}.team-panel__start{background:linear-gradient(120deg,#8a6630,#a97e39)!important;border-color:#e7c36c7a!important;min-height:40px!important;font-weight:700!important}.team-panel__hint,.team-panel__error{color:#cbd7ca;margin:0;font-size:10px;line-height:1.45}.team-panel__error{color:#ffb0a2}.team-panel__players{border-top:1px solid #ffffff1a;gap:5px;margin:0;padding:8px 0 0;list-style:none;display:grid}.team-panel__players li{color:#e8eee7;justify-content:space-between;gap:8px;font-size:11px;display:flex}.team-panel__players li strong{color:#c7d1c4;font-size:10px}.team-panel__players li.is-assigned strong{color:#f0ce78;font-weight:700}.media-controls{pointer-events:auto;flex-wrap:wrap;align-items:center;gap:7px;margin-top:0;display:flex}.media-control{color:#263c4d;cursor:pointer;text-transform:uppercase;background:#ffffffc2;border:1px solid #18283b29;border-radius:4px;min-width:48px;min-height:30px;padding:0 10px;font:10px DM Mono,monospace}.media-control.is-enabled{color:#fff;background:#26775b;border-color:#26775b}.media-control:disabled{opacity:.52;cursor:not-allowed}.media-error{color:#9a3d35;max-width:min(310px,60vw);font:10px DM Mono,monospace}.chat-dock{right:max(12px, env(safe-area-inset-right,0px));bottom:max(12px, env(safe-area-inset-bottom,0px));z-index:50;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0a0e12e6;border:1px solid #ffffff14;border-radius:22px;flex-direction:column;width:360px;max-width:calc(100vw - 28px);height:min(360px,100dvh - 120px);min-height:300px;max-height:calc(100dvh - 120px);padding:12px;transition:width .2s,height .2s;display:flex;position:fixed;box-shadow:0 18px 42px #00000042}.network-traffic-panel{top:82px;right:max(12px, env(safe-area-inset-right,0px));z-index:45;box-sizing:border-box;color:#edf6ec;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:auto;background:#0d1518f0;border:1px solid #9ed7ad4d;border-radius:10px;flex-direction:column;gap:8px;width:min(350px,100vw - 24px);min-width:min(280px,100vw - 24px);max-width:calc(100vw - 24px);height:min(520px,56dvh);min-height:min(260px,100dvh - 24px);max-height:calc(100dvh - 24px);padding:11px;font-family:DM Sans,sans-serif;display:flex;position:fixed;overflow:hidden;box-shadow:0 14px 36px #040c0e52}.network-traffic-panel.is-collapsed{width:min(250px,100vw - 24px);min-width:0;height:auto;min-height:0;max-height:none;padding:9px 11px}.network-traffic-panel__header{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:3px 8px;display:grid}.network-traffic-panel__header:active{cursor:grabbing}.network-traffic-panel__eyebrow{color:#a8ed69;letter-spacing:.09em;grid-column:1/-1;font:9px DM Mono,monospace}.network-traffic-panel__header strong{grid-area:2/1;font-size:14px}.network-traffic-panel__status{color:#bdc9c4;grid-area:2/2;align-items:center;gap:5px;font:9px DM Mono,monospace;display:flex}.network-traffic-panel__collapse{color:#edf6ec;cursor:pointer;background:#ffffff12;border:1px solid #ffffff24;border-radius:6px;grid-area:2/3;place-items:center;width:28px;height:28px;display:grid}.network-traffic-panel__collapse:hover{background:#a8ed691f;border-color:#a8ed6980}.network-traffic-panel__collapse:focus-visible{outline-offset:2px;outline:2px solid #a8ed69}.network-traffic-panel__status i{background:#91e376;border-radius:50%;width:7px;height:7px;box-shadow:0 0 8px #91e376b3}.network-traffic-panel__graph{background:#02080a3d;border:1px solid #ffffff12;border-radius:6px;flex:140px;min-height:80px;max-height:160px;overflow:auto}.network-traffic-panel__graph svg{width:100%;min-height:130px;display:block}.network-traffic-panel__link{fill:none;stroke:#a3b5ae5c;stroke-width:1.5px;stroke-dasharray:4 4}.network-traffic-panel__link.is-connecting{stroke:#a3b5ae4d;animation:1.1s linear infinite network-connection-dash}.network-traffic-panel__link.is-connected{stroke:#63cfe299;stroke-dasharray:none}.network-traffic-panel__link.is-failed{stroke:#f06767b8;stroke-dasharray:3 4}.network-traffic-panel__link.is-active.is-incoming{stroke:#a8ed69;stroke-width:2.6px;stroke-dasharray:8 5;animation:.35s linear infinite network-data-flow,.7s ease-in-out infinite alternate network-link-glow}.network-traffic-panel__link.is-active.is-outgoing:not(.is-incoming){stroke:#bd94ff;stroke-width:2.6px;stroke-dasharray:8 5;animation:.35s linear infinite reverse network-data-flow,.7s ease-in-out infinite alternate network-link-glow}.network-traffic-panel__link.is-active.is-incoming.is-outgoing{stroke:#d0b5ff;stroke-width:2.8px;stroke-dasharray:8 5;animation:.28s linear infinite network-data-flow,.55s ease-in-out infinite alternate network-link-glow}.network-traffic-panel__peer circle{fill:#263b3e;stroke:#9baaa7;stroke-width:1.2px}.network-traffic-panel__peer.is-connected>circle:not(.network-traffic-panel__pulse){fill:#19434a;stroke:#63cfe2}.network-traffic-panel__peer.is-connecting>circle:not(.network-traffic-panel__pulse){fill:#263b3e;stroke:#aebdb5;stroke-dasharray:2 2}.network-traffic-panel__peer.is-failed>circle:not(.network-traffic-panel__pulse){fill:#512e32;stroke:#f06767}.network-traffic-panel__peer .network-traffic-panel__pulse{fill:none;stroke:#bdf87d;stroke-width:1.5px;transform-box:fill-box;transform-origin:50%;animation:.7s ease-out infinite network-node-pulse}.network-traffic-panel__packet{filter:drop-shadow(0 0 4px)}.network-traffic-panel__peer text,.network-traffic-panel__leader text{fill:#f0f6ef;text-anchor:middle;font:8px DM Mono,monospace}.network-traffic-panel__peer .network-traffic-panel__name,.network-traffic-panel__leader .network-traffic-panel__name{fill:#c5d1ca;font:8px DM Sans,sans-serif}.network-traffic-panel__leader circle{fill:#755a20;stroke:#ffe080;stroke-width:1.5px;filter:drop-shadow(0 0 5px #ffe08059)}.network-traffic-panel__leader text{fill:#fff5cc;font-size:8px;font-weight:700}.network-traffic-panel__legend{color:#c5d1ca;flex-wrap:wrap;justify-content:space-between;gap:5px 9px;font:8px DM Mono,monospace;display:flex}.network-traffic-panel__legend span{align-items:center;gap:5px;display:flex}.network-traffic-panel__legend i{background:#a8ed69;border-radius:50%;width:7px;height:7px}.network-traffic-panel__legend i.is-connecting{background:#aebdb5}.network-traffic-panel__legend i.is-connected{background:#63cfe2}.network-traffic-panel__legend i.is-outgoing{background:#bd94ff}@keyframes network-connection-dash{to{stroke-dashoffset:-16px}}@keyframes network-data-flow{to{stroke-dashoffset:-26px}}@keyframes network-link-glow{0%{filter:drop-shadow(0 0 1px)}to{filter:drop-shadow(0 0 5px)}}@keyframes network-node-pulse{0%{opacity:.9;transform:scale(.65)}to{opacity:0;transform:scale(1.35)}}@media (prefers-reduced-motion:reduce){.network-traffic-panel__link,.network-traffic-panel__peer .network-traffic-panel__pulse{animation-duration:1.5s}}.network-traffic-panel__log{flex:0 130px;gap:5px;min-height:45px;max-height:150px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.network-traffic-panel__log li{background:#ffffff0b;border-left:2px solid #a8ed69;border-radius:3px;gap:2px;padding:5px 6px;display:grid}.network-traffic-panel__log li.is-media{border-left-color:#b79aff}.network-traffic-panel__log small{color:#aebdb5;text-overflow:ellipsis;white-space:nowrap;font:8px DM Mono,monospace;overflow:hidden}.network-traffic-panel__log span{color:#f0f6ef;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.network-traffic-panel__log li.is-empty{color:#aebdb5;border-left-color:#66756e;font-size:10px}.network-traffic-panel__resize-handle{cursor:nwse-resize;touch-action:none;background:linear-gradient(135deg,#0000 0 48%,#789294 49% 54%,#0000 55% 65%,#789294 66% 71%,#0000 72%);border:0;border-radius:0 0 6px;width:18px;height:18px;padding:0;position:absolute;bottom:2px;right:2px}.network-traffic-panel.is-collapsed .network-traffic-panel__resize-handle{display:none}.network-traffic-panel__resize-handle:focus-visible{outline-offset:-3px;outline:2px solid #a8ed69}.chat-dock.collapsed{box-sizing:border-box;background:#000000bf;border-color:#ffffffc7;border-radius:50%;place-items:center;width:50px;height:50px;min-height:50px;max-height:50px;padding:4px;display:grid;overflow:hidden;box-shadow:0 8px 22px #12202d24}.chat-bubble{color:#142530;background:linear-gradient(135deg,#d9f36b,#8bd0ff);border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin:10px auto 0;font-size:18px;font-weight:700;display:none;position:relative}.chat-dock.collapsed .chat-bubble{width:42px;height:42px;margin:0;display:flex}.chat-dock.collapsed .chat-bubble span{color:#f4f8fb;background:#223746;border:1px solid #fffc;border-radius:10px;place-items:center;min-width:15px;height:15px;padding:0 3px;font-size:9px;display:grid;position:absolute;top:-3px;right:-4px}.chat-dock.collapsed .chat-tabs,.chat-dock.collapsed .chat-header,.chat-dock.collapsed .chat-body{display:none}.chat-tabs{gap:8px;margin-bottom:8px;display:flex}.chat-tab{color:#ffffffc7;text-transform:uppercase;letter-spacing:.08em;background:#ffffff0f;border-radius:999px;flex:1;min-height:34px;font-size:11px}.chat-tab svg{width:14px;height:14px}.chat-tab.is-active{color:#dff4ff;background:#8bd0ff29}.chat-header{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;gap:10px;padding-bottom:8px;display:flex}.panel-label{color:#ffffffb3;letter-spacing:.12em;text-transform:uppercase;font-size:10px}.chat-toggle{color:#fff;background:#ffffff14;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;display:inline-flex}.chat-body{flex:1;min-height:0;display:flex}.chat-panel{flex:1;min-height:0;display:none}.chat-panel.is-active{flex-direction:column;display:flex}.chat-log{background:#ffffff0a;border-radius:16px;flex-direction:column;flex:1;gap:12px;min-height:160px;margin:12px 0;padding:10px;display:flex;overflow:auto}.chat-empty{color:#ffffff8c;text-align:center;margin:auto 0;font:12px DM Mono,monospace}.chat-message{color:#fff;flex-direction:column;max-width:82%;display:flex}.chat-message.mine{align-items:flex-end;margin-left:auto}.chat-message small{color:#ffffff9e;margin-bottom:5px;font-family:DM Mono,monospace;font-size:10px}.chat-message p{background:#ffffff14;border-radius:16px;margin:0;padding:10px 12px;font-size:13px;line-height:1.4}.chat-message.mine p{background:#8bd0ff33;border-bottom-right-radius:6px}.chat-message.system-message{align-items:center;max-width:100%}.chat-message.system-message p{color:#ffffffb8;background:#ffffff0a;border-radius:999px;font-family:DM Mono,monospace;font-size:11px}.chat-form{align-items:center;gap:8px;display:flex}.chat-form input{color:#fff;background:#ffffff0f;border:1px solid #ffffff14;border-radius:999px;outline:none;flex:1;min-width:0;padding:12px 14px}.chat-form input::placeholder{color:#ffffff73}.chat-form button{color:#112130;background:linear-gradient(135deg,#d9f36b,#8bd0ff);border-radius:50%;width:42px;height:42px;font-size:18px}.online-list{color:#fff;background:#ffffff0a;border-radius:16px;flex-direction:column;flex:1;gap:8px;min-height:160px;margin:12px 0;padding:10px;display:flex;overflow:auto}.online-user{background:#ffffff0a;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.online-user.self{background:#d9f36b14;border:1px solid #d9f36b47}.online-user-avatar{color:#112130;background:linear-gradient(135deg,#d9f36b,#8bd0ff);border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:12px;font-weight:700;display:inline-flex}.online-user-name{flex:1;font-size:13px}.online-user-status{border-radius:50%;width:8px;height:8px}.online-user-status.is-connected{background:#35a866;box-shadow:0 0 0 4px #35a8661f}.online-user-status.is-connecting{background:#d5a52e;box-shadow:0 0 0 4px #d5a52e1f}.online-user-status.is-failed{background:#d56f5e;box-shadow:0 0 0 4px #d56f5e1f}.online-user-media{flex:none;gap:5px;display:flex}.online-media-toggle{color:#ffffffd1;cursor:pointer;text-transform:uppercase;background:#ffffff14;border:1px solid #ffffff24;border-radius:5px;min-width:36px;min-height:28px;padding:0 6px;font:9px DM Mono,monospace}.online-media-toggle.is-enabled{color:#a9f0bf;background:#35a86638;border-color:#7ee3a16b}.online-media-toggle:disabled{opacity:.38;cursor:not-allowed}.media-device-status{color:#d4e3ee;padding:6px 8px;font:10px DM Mono,monospace}.media-device-status.is-error{color:#ffb0a2}@media (width<=900px){.game-topbar{flex-direction:column;align-items:flex-start}.game-topbar.is-in-room{grid-template-rows:auto;grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.brand-box{gap:7px;padding:8px 10px}.game-topbar.is-in-room .brand-box{grid-area:1/1}.game-topbar.is-in-room .room-menu{flex-wrap:nowrap;grid-area:1/2;width:auto;position:static}.game-topbar.is-in-room .room-current-code{text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.room-controls{flex-wrap:wrap;width:min(100%,440px)}.room-menu{flex-wrap:wrap;width:100%}.room-menu.is-expanded .room-controls{width:100%}.game-topbar.is-in-room .room-menu.is-expanded .room-controls{justify-content:flex-end;width:min(440px,100vw - 36px);position:absolute;top:100px;right:0}.room-menu:not(.is-expanded){justify-content:flex-end}.room-input-wrap{width:100%;min-width:0}.name-input{flex:1}.hud{top:150px}.game-topbar:not(.is-in-room)~.hud{top:260px}.avatar-editor{position:fixed;top:150px;right:18px}.hud__status{max-width:calc(100vw - 36px)}.video-room-mode{inset:118px 12px 12px}}@media (width<=520px){.game-topbar.is-in-room .room-menu{grid-template-rows:40px;grid-template-columns:repeat(3,40px);align-items:center;gap:6px;display:grid}.game-topbar.is-in-room .room-type-control{grid-area:1/1;justify-self:start}.game-topbar.is-in-room .character-reset-button{grid-area:1/2}.game-topbar.is-in-room .room-menu-toggle:not(.character-reset-button){grid-area:1/3}.brand-box{border-radius:10px;gap:5px;padding:6px 8px}.brand-mark{width:20px;height:20px}.mode-switch{gap:2px;padding:2px}.mode-link{width:34px;min-width:34px;padding:7px 0}.video-room-grid{grid-template-columns:minmax(0,1fr);align-content:start}.video-room-tile{min-height:180px}}.chess-proximity-prompt{z-index:30;pointer-events:auto;position:absolute;bottom:90px;left:50%;transform:translate(-50%)}.chess-proximity-button{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#f5e6c0;cursor:pointer;background:#5c3d1aeb;border:1px solid #f5deb359;border-radius:24px;padding:10px 22px;font-size:15px;font-weight:600;transition:background .15s}.chess-proximity-button:hover{background:#78501ef7}.concert-controls{z-index:16777300;pointer-events:auto;grid-template-columns:repeat(3,40px);gap:6px;display:grid;position:fixed;top:16px;right:16px}.debug-controls{z-index:20;color:#ffe4a8;pointer-events:none;background:#191208e0;border:1px solid #ffbe5099;border-radius:10px;flex-direction:column;gap:4px;max-width:min(320px,100vw - 32px);padding:9px 48px 9px 12px;font:12px/1.4 system-ui,sans-serif;display:flex;position:fixed;top:72px;left:16px}.debug-controls strong{color:#ffb84d;letter-spacing:.12em}.debug-controls__view-button{color:#ffe4a8;cursor:pointer;pointer-events:auto;background:#ffb84d2e;border:0;border-radius:7px;place-items:center;width:30px;height:30px;display:grid;position:absolute;top:8px;right:8px}.debug-controls__view-button:hover,.debug-controls__view-button:focus-visible{background:#ffb84d61;outline:none}.concert-controls__views{grid-column:1/-1;gap:4px;display:flex}.concert-controls__views .concert-controls__btn{flex:1}.concert-controls__actions{grid-column:1/-1;grid-template-columns:repeat(3,40px);gap:6px;display:grid}.concert-teleport{position:relative}.concert-teleport__list{overscroll-behavior:contain;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f1422f5;border:1px solid #ffffff29;border-radius:12px;width:min(560px,100vw - 32px);max-height:min(70vh,560px);position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 8px 28px #0006}.concert-teleport__header{color:#fff;flex-wrap:wrap;align-items:center;gap:3px 12px;padding:12px 14px 10px;font:13px/1.4 system-ui,sans-serif;display:flex}.concert-teleport__header>strong,.concert-teleport__header span{flex-basis:100%}.concert-teleport__header span{color:#ffffffa6;font-size:11px}.concert-teleport__filter{color:#ffffffbf;align-items:center;gap:8px;margin-top:5px;font-size:11px;display:flex}.concert-teleport__filter span{flex-basis:auto}.concert-teleport__filter select{color:#fff;background:#171d2d;border:1px solid #fff3;border-radius:7px;min-width:150px;padding:6px 26px 6px 9px;font:12px system-ui,sans-serif}.concert-teleport__table-wrap{overscroll-behavior:contain;max-height:calc(min(70vh,560px) - 62px);overflow:auto}.concert-teleport__table{border-collapse:collapse;color:#f3f5fa;text-align:left;width:100%;font:12px/1.35 system-ui,sans-serif}.concert-teleport__table th,.concert-teleport__table td{white-space:nowrap;border-top:1px solid #ffffff14;padding:7px 10px}.concert-teleport__table th{z-index:1;color:#ffffffb3;background:#171d2d;font-size:10px;font-weight:600;position:sticky;top:0}.concert-teleport__table td:first-child{width:100%}.concert-teleport__type-icon{place-items:center;min-width:24px;font-size:15px;display:inline-grid}.concert-teleport__type-icon--standing{color:#ffb078}.concert-teleport__type-icon--seated{color:#8ed8ff}.concert-teleport__item{color:#fff;text-align:left;cursor:pointer;background:0 0;border:0;padding:3px 4px;font:500 12px system-ui,sans-serif}.concert-teleport__item:hover,.concert-teleport__item:focus-visible{color:#ff9a79;outline:none;text-decoration:underline}.concert-teleport__table tbody tr:hover{background:#ffffff0f}.concert-teleport__empty{color:#ffffffa6;text-align:center;padding:16px!important}.concert-controls__btn{cursor:pointer;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#141c30d9;border:none;border-radius:10px;place-items:center;width:40px;height:40px;padding:0;font:600 13px system-ui,sans-serif;display:grid;box-shadow:0 2px 8px #0000004d}.concert-controls__btn.is-active{background:#ff5a2b}.concert-controls__daynight[aria-pressed=false]{color:#5a3d0a;background:#ffe08a}.concert-controls__daynight[aria-pressed=true]{color:#dfe6ff;background:#1b2440}.concert-controls__hint{color:#cfe0ff;text-align:right;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#141c30d9;border-radius:10px;grid-column:1/-1;justify-self:flex-end;max-width:220px;margin:0;padding:8px 10px;font:500 11px/1.4 system-ui,sans-serif;box-shadow:0 2px 8px #0000004d}
