:root{--knu-blue:#006ddb;--knu-blue-dark:#004c99;--knu-blue-light:#eaf4ff;--knu-orange:#ff9d00;--knu-orange-dark:#cc7a00;--knu-orange-light:#fff8e6;--gomduri-blue:#85cdee;--gomduri-blue-dim:#85cdee4d;--bg-base:#85cdee;--bg-warm:#f7fafc;--surface:#fff;--surface-dim:#f0f4f8;--text-primary:#1a202c;--text-secondary:#4a5568;--text-muted:#a0aec0;--text-light:#fff;--success:#48bb78;--success-dark:#2f855a;--danger:#e53e3e;--danger-dark:#c53030;--radius-pixel:8px;--border-thick:4px;--outline-color:#003d73;--font-pixel:"DungGeunMo", monospace;--pixel-panel-shadow:inset 4px 4px 0px #fff9, inset -4px -4px 0px #0000001a, 0 8px 0px #00000026;--pixel-btn-blue:inset 4px 4px 0px #ffffff4d, inset -4px -4px 0px #0003, 0 6px 0 var(--knu-blue-dark);--pixel-btn-orange:inset 4px 4px 0px #ffffff4d, inset -4px -4px 0px #0003, 0 6px 0 var(--knu-orange-dark)}*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}body{font-family:var(--font-pixel);background-color:var(--bg-base);color:var(--text-primary);letter-spacing:1px;-webkit-font-smoothing:none;image-rendering:pixelated;font-size:16px;line-height:1.5;overflow:hidden}button,input,textarea{font-family:var(--font-pixel);letter-spacing:1px;outline:none}button{cursor:pointer}@keyframes popIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes popBounce{0%{opacity:0;transform:scale(.85)}60%{opacity:1;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes floatSlow{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes cloudDrift{0%{transform:translate(-120px)}to{transform:translate(calc(100vw + 120px))}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulseReady{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes twinkle{0%,to{opacity:0;transform:scale(.5)}50%{opacity:1;transform:scale(1.2)}}.pop-in{animation:.3s ease-out forwards popIn}.fade-in{animation:.25s ease-out forwards fadeIn}.pop-in-bounce{animation:.35s ease-out forwards popBounce}::-webkit-scrollbar{width:14px}::-webkit-scrollbar-track{background:var(--knu-blue-light);border-left:var(--border-thick) solid var(--outline-color)}::-webkit-scrollbar-thumb{background:var(--knu-orange);border:var(--border-thick) solid var(--outline-color);border-radius:6px}.game-container{background:0 0;width:100vw;height:100vh;position:relative;overflow:hidden}.top-info{z-index:10;align-items:center;gap:8px;display:flex;position:absolute;top:16px;left:100px}.settings-btn{border-radius:var(--radius-pixel);border:var(--border-thick) solid var(--outline-color);width:44px;height:44px;box-shadow:inset 3px 3px 0 #fff6, inset -3px -3px 0 #0003, 0 4px 0 var(--knu-blue-dark);color:#fff;-webkit-backdrop-filter:blur(6px);background:#005bacd9;justify-content:center;align-items:center;font-size:20px;transition:all .1s;display:flex}.settings-btn:active{transform:translateY(4px);box-shadow:inset 3px 3px #0000001a}.turn-badge{color:#fff;border-radius:var(--radius-pixel);border:var(--border-thick) solid var(--outline-color);box-shadow:inset 4px 4px 0 #ffffff4d, 0 6px 0 var(--knu-blue-dark);text-shadow:2px 2px 0 var(--knu-blue-dark);z-index:20;white-space:nowrap;-webkit-backdrop-filter:blur(8px);text-align:center;background:#005bace6;align-self:flex-end;min-width:140px;margin-top:12px;padding:8px 24px;font-size:18px}.board-wrapper{z-index:0;pointer-events:auto;position:absolute;inset:0;overflow:hidden}.board-area{background:0 0;width:100%;height:100%}#phaser-game-container{width:100%;height:100%}#phaser-game-container canvas{object-fit:contain;width:100%!important;height:100%!important}.board-placeholder{opacity:.8;flex-direction:column;justify-content:center;align-items:center;display:flex}.board-placeholder-title{color:#b4dc8c99;text-shadow:2px 2px #0000004d;font-size:3rem;font-weight:900}.board-placeholder-desc{color:#b4c8a080;margin-top:10px;font-size:1.2rem}.dice-container{z-index:20;position:absolute;bottom:30px;left:50%;transform:translate(-50%)}.dice-button{border-radius:var(--radius-pixel);color:#fff;border:var(--border-thick) solid #8a4d00;text-shadow:2px 2px #8a4d00;background:linear-gradient(#ffb800 0%,#ff8c00 100%);justify-content:center;align-items:center;min-width:170px;height:68px;padding:0 24px;font-size:26px;transition:all .1s;display:flex;box-shadow:inset 4px 4px #ffffff80,0 8px #8a4d00}.dice-button:active{box-shadow:inset 4px 4px 0px #0003, 0 0 0 var(--outline-color);transform:translateY(6px)}.players-dock{z-index:30;flex-direction:column;gap:8px;display:flex;position:absolute;top:16px;right:16px}.player-badge{border:4px solid var(--knu-blue);border-radius:var(--radius-pixel);background:#ffffffe6;align-items:center;gap:10px;min-width:180px;padding:8px 14px;transition:all .15s ease-out;display:flex;box-shadow:0 6px #0003}.player-badge.active{background:#fffbf0;border-color:#ff8c00;transform:translate(-8px);box-shadow:-6px 0 #c05621,0 8px 12px #ff8c004d}.badge-icon{border-radius:var(--radius-pixel);border:3px solid var(--outline-color);flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:24px;display:flex}.badge-info{flex-direction:column;gap:2px;min-width:0;display:flex}.badge-name{color:var(--knu-blue-dark);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:700;overflow:hidden}.badge-stats{align-items:center;gap:6px;display:flex}.badge-gpa{color:var(--text-secondary);font-size:12px}.badge-card{opacity:.8;font-size:14px}.turn-overlay{z-index:100;background:#003d7399;justify-content:center;align-items:center;animation:.2s ease-out forwards fadeIn;display:flex;position:fixed;inset:0}.turn-alert{border-radius:var(--radius-pixel);border:var(--border-thick) solid var(--knu-blue-dark);box-shadow:var(--pixel-panel-shadow);background:#fff;padding:40px 80px;animation:.35s ease-out forwards popBounce}.turn-alert h2{color:var(--knu-blue);text-shadow:2px 2px 0 var(--knu-blue-light);font-size:36px}.settings-dropdown{border:var(--border-thick) solid var(--outline-color);border-radius:var(--radius-pixel);box-shadow:var(--pixel-panel-shadow);white-space:nowrap;z-index:50;background:#fff;flex-direction:column;gap:8px;width:max-content;padding:8px;animation:.15s ease-out forwards popIn;display:flex;position:absolute;top:56px;left:0}.settings-item{background:var(--bg-warm);border:3px solid var(--outline-color);width:100%;color:var(--text-primary);text-shadow:.5px .5px 0 var(--text-primary);white-space:nowrap;border-radius:4px;justify-content:flex-start;align-items:center;gap:12px;padding:12px 16px;font-size:18px;display:flex;box-shadow:inset 2px 2px #fffc,inset -2px -2px #0000000d}.settings-item:active{transform:translateY(2px);box-shadow:inset 2px 2px #0000001a}.settings-item.exit-btn{color:var(--danger-dark);text-shadow:.5px .5px 0 var(--danger-dark);border-color:var(--danger-dark);background:#fff5f5}.in-game-title-container{z-index:10;position:absolute;top:16px;left:16px}.in-game-title{flex-direction:column;align-items:flex-start;gap:2px;line-height:1;display:flex}.in-game-title .title-text{color:#fff;letter-spacing:1px;text-shadow:-1.5px -1.5px 0 var(--outline-color), 1.5px -1.5px 0 var(--outline-color), -1.5px 1.5px 0 var(--outline-color), 1.5px 1.5px 0 var(--outline-color), 0px 3px 0 var(--knu-blue), 0px 4px 0 var(--outline-color);font-size:24px}.in-game-title .title-text:nth-child(2){color:#ff8c00;text-shadow:-1.5px -1.5px 0 var(--outline-color), 1.5px -1.5px 0 var(--outline-color), -1.5px 1.5px 0 var(--outline-color), 1.5px 1.5px 0 var(--outline-color), 0px 3px 0 var(--knu-orange-dark), 0px 4px 0 var(--outline-color);margin-left:-3px;font-size:30px}.exit-overlay{z-index:200;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.exit-popup{background:var(--surface);border:var(--border-thick) solid var(--outline-color);border-radius:var(--radius-pixel);text-align:center;box-shadow:var(--pixel-panel-shadow);min-width:400px;padding:32px 40px}.exit-popup h2{color:var(--danger-dark);text-shadow:.5px .5px 0 var(--danger-dark);margin:0 0 16px;font-size:24px}.exit-popup p{color:var(--text-primary);text-shadow:.5px .5px 0 var(--text-primary);margin-bottom:24px;font-size:16px}.exit-buttons{justify-content:center;gap:12px;display:flex}.exit-buttons .cancel-btn{border:3px solid var(--outline-color);background:var(--bg-warm);color:var(--text-primary);text-shadow:.5px .5px 0 var(--text-primary);box-shadow:inset 2px 2px 0 #fffc, inset -2px -2px 0 #0000000d, 0 4px 0 var(--outline-color);border-radius:4px;padding:12px 24px;font-size:16px;transition:all .1s}.exit-buttons .cancel-btn:active{transform:translateY(4px);box-shadow:inset 2px 2px #0000001a}.exit-buttons .confirm-btn{border:3px solid var(--outline-color);background:var(--danger);color:var(--text-light);box-shadow:inset 2px 2px 0 #ffffff4d, inset -2px -2px 0 #0000001a, 0 4px 0 var(--danger-dark);text-shadow:1px 1px 0 var(--danger-dark);border-radius:4px;padding:12px 24px;font-size:16px;transition:all .1s}.exit-buttons .confirm-btn:active{transform:translateY(4px);box-shadow:inset 2px 2px #0003}.branch-alert{border-radius:var(--radius-pixel);border:var(--border-thick) solid var(--knu-orange);box-shadow:var(--pixel-panel-shadow);text-align:center;background:#fff;padding:40px 60px;animation:.35s ease-out forwards popBounce}.branch-alert h2{color:var(--knu-orange-dark);text-shadow:2px 2px 0 var(--knu-orange-light);margin-bottom:12px;font-size:32px}.branch-alert p{color:var(--text-secondary);margin-bottom:30px;font-size:18px}.branch-btn-group{justify-content:center;gap:20px;display:flex}.branch-btn{font-size:22px;font-family:var(--font-pixel);color:#fff;background:var(--knu-blue);border:var(--border-thick) solid var(--outline-color);border-radius:var(--radius-pixel);box-shadow:inset 4px 4px 0px #ffffff4d, inset -4px -4px 0px #0003, 0 6px 0 var(--knu-blue-dark);text-shadow:2px 2px 0 var(--knu-blue-dark);cursor:pointer;padding:16px 32px;transition:all .1s}.branch-btn:hover{background:var(--knu-blue-dark);box-shadow:inset 4px 4px 0px #ffffff4d, inset -4px -4px 0px #0003, 0 8px 0 var(--knu-blue-dark);transform:translateY(-2px)}.branch-btn:active{transform:translateY(6px);box-shadow:inset 4px 4px #0003}.branch-btn.orange{background:var(--knu-orange);box-shadow:inset 4px 4px 0px #ffffff4d, inset -4px -4px 0px #0003, 0 6px 0 var(--knu-orange-dark);text-shadow:2px 2px 0 var(--knu-orange-dark)}.branch-btn.orange:hover{background:var(--knu-orange-dark);box-shadow:inset 4px 4px 0px #ffffff4d, inset -4px -4px 0px #0003, 0 8px 0 var(--knu-orange-dark)}.main-menu-container{background:linear-gradient(#85cdee 0%,#a0d8f1 35%,#c8e0b8 60%,#a8c878 100%);justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:relative;overflow:hidden}.bg-placeholder{z-index:0;position:absolute;inset:0}.settings-btn-top-right{border-radius:var(--radius-pixel);background:var(--surface);border:var(--border-thick) solid var(--outline-color);width:48px;height:48px;box-shadow:var(--pixel-panel-shadow);z-index:20;justify-content:center;align-items:center;font-size:24px;transition:all .1s;display:flex;position:absolute;top:16px;right:16px}.settings-btn-top-right:active{transform:translateY(4px);box-shadow:inset 3px 3px #0000001a}.menu-content{z-index:10;flex-direction:column;align-items:center;gap:48px;animation:.4s ease-out forwards fadeIn;display:flex}.game-title{flex-direction:column;align-items:center;margin:0;line-height:1.1;animation:3s ease-in-out infinite floatSlow;display:flex;position:relative}.title-text{color:#fff;letter-spacing:12px;text-shadow:-3px -3px 0 var(--outline-color), 3px -3px 0 var(--outline-color), -3px 3px 0 var(--outline-color), 3px 3px 0 var(--outline-color), 0px 6px 0 var(--knu-blue), 0px 12px 0 var(--knu-blue-dark), 0px 16px 0 var(--outline-color), 0px 24px 10px #0000004d;z-index:2;font-size:80px}.game-title span:nth-child(2){color:var(--knu-orange);text-shadow:-3px -3px 0 var(--outline-color), 3px -3px 0 var(--outline-color), -3px 3px 0 var(--outline-color), 3px 3px 0 var(--outline-color), 0px 6px 0 var(--knu-orange-dark), 0px 12px 0 #9c4221, 0px 16px 0 var(--outline-color), 0px 24px 10px #0000004d;z-index:3;margin-top:-10px;font-size:100px}.button-group{flex-direction:column;align-items:center;gap:16px;display:flex}.btn-main{background:var(--knu-orange);color:var(--text-light);border:var(--border-thick) solid var(--outline-color);border-radius:var(--radius-pixel);box-shadow:var(--pixel-btn-orange);text-shadow:2px 2px 0 var(--outline-color);padding:16px 48px;font-size:24px;transition:all .1s}.btn-main:active{box-shadow:inset 4px 4px 0 #0003, 0 0 0 var(--outline-color);transform:translateY(6px)}.sub-buttons{gap:12px;display:flex}.glass-btn{background:var(--surface);border:var(--border-thick) solid var(--outline-color);border-radius:var(--radius-pixel);color:var(--knu-blue);box-shadow:var(--pixel-panel-shadow);padding:12px 24px;font-size:16px;transition:all .1s}.glass-btn:active{transform:translateY(4px);box-shadow:inset 3px 3px #0000001a}.menu-cloud{opacity:.3;z-index:1;text-shadow:2px 2px #0000001a;font-size:64px;animation:linear infinite cloudDrift;position:absolute}.menu-cloud:first-child{opacity:.25;font-size:80px;animation-duration:50s;top:10%}.menu-cloud:nth-child(2){animation-duration:65s;animation-delay:-20s;top:25%}.menu-cloud:nth-child(3){opacity:.2;font-size:48px;animation-duration:55s;animation-delay:-35s;top:5%}.menu-star{z-index:1;background:#fff;width:4px;height:4px;animation:ease-in-out infinite twinkle;position:absolute;box-shadow:0 0 0 2px #ffffff4d}.lobby-container{background:linear-gradient(#85cdee 0%,#a0d8f1 35%,#c8e0b8 60%,#a8c878 100%);flex-direction:column;align-items:center;width:100vw;height:100vh;padding:80px 32px 32px;display:flex;position:relative;overflow:hidden}.top-right-actions{z-index:50;position:absolute;top:24px;right:32px}.menu-exit-btn{background:var(--bg-warm);border:var(--border-thick) solid var(--outline-color);border-radius:var(--radius-pixel);box-shadow:inset 3px 3px 0 #fffc, inset -3px -3px 0 #0000001a, 0 4px 0 var(--outline-color);color:var(--text-primary);text-shadow:.5px .5px 0 var(--text-primary);align-items:center;gap:12px;padding:12px 24px;font-size:16px;transition:all .1s;display:flex}.menu-exit-btn:active{transform:translateY(4px);box-shadow:inset 3px 3px #0000001a}.glass-panel{background:var(--surface);border:var(--border-thick) solid var(--outline-color);border-radius:var(--radius-pixel);box-shadow:var(--pixel-panel-shadow)}.lobby-content-area{z-index:10;justify-content:center;width:100%;max-width:1100px;height:100%;display:flex}.server-browser{flex-direction:column;width:100%;height:100%;padding:32px;display:flex}.browser-header{border-bottom:var(--border-thick) solid var(--outline-color);justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:24px;display:flex;box-shadow:0 4px #0000000d}.browser-header h2{color:var(--knu-blue);text-shadow:.5px .5px 0 var(--knu-blue);margin:0;font-size:32px}.browser-actions{align-items:center;gap:12px;display:flex}.search-input{border:3px solid var(--outline-color);background:var(--bg-warm);color:var(--text-primary);text-shadow:.5px .5px 0 var(--text-primary);box-sizing:border-box;border-radius:4px;width:200px;height:44px;padding:10px 16px;font-size:16px;box-shadow:inset 2px 2px #0000000d}.search-input:focus{box-shadow:inset 2px 2px 0 #0000000d, 0 0 0 3px var(--gomduri-blue);background:#fff}.text-icon-btn{background:var(--bg-warm);border:3px solid var(--outline-color);color:var(--text-primary);text-shadow:.5px .5px 0 var(--text-primary);box-sizing:border-box;height:44px;box-shadow:inset 2px 2px 0 #fffc, inset -2px -2px 0 #0000001a, 0 4px 0 var(--outline-color);border-radius:4px;padding:0 20px;font-size:16px;transition:all .1s}.text-icon-btn:active:not(:disabled){transform:translateY(4px);box-shadow:inset 2px 2px #0000001a}.btn-create-room{box-sizing:border-box;background:var(--knu-blue);height:44px;color:var(--text-light);border:var(--border-thick) solid var(--outline-color);border-radius:var(--radius-pixel);box-shadow:var(--pixel-btn-blue);text-shadow:2px 2px 0 var(--knu-blue-dark);padding:0 28px;font-size:16px;transition:all .1s}.btn-create-room:active{box-shadow:inset 4px 4px 0 #0003, 0 0 0 var(--outline-color);transform:translateY(6px)}.room-list-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));align-content:start;gap:24px;padding:8px 16px 16px 8px;display:grid;overflow-y:auto}.loading-state{color:var(--text-primary);text-shadow:.5px .5px 0 var(--text-primary);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:48px 0;font-size:20px;display:flex}.loading-spinner{font-size:40px;animation:1s steps(8,end) infinite spin}.room-card{background:var(--bg-warm);border:3px solid var(--outline-color);border-radius:var(--radius-pixel);flex-direction:column;gap:20px;padding:24px;display:flex;box-shadow:inset 2px 2px #fffc,inset -2px -2px #0000000d,0 4px #0000001a}.room-card.full{opacity:.6;background:#e2e8f0}.room-card-header{border-bottom:2px dashed var(--outline-color);padding-bottom:16px}.room-item-title{color:var(--text-primary);text-shadow:.5px .5px 0 var(--text-primary);font-size:20px}.room-card-body{justify-content:space-between;align-items:center;display:flex}.room-item-count{color:var(--text-primary);text-shadow:.5px .5px 0 var(--text-primary);font-size:16px}.badge-join{background:var(--success);color:#fff;border:3px solid var(--success-dark);box-shadow:0 4px 0 var(--success-dark);text-shadow:1px 1px #0000004d;cursor:pointer;border-radius:4px;padding:8px 20px;font-size:16px;transition:all .1s}.badge-join:hover{box-shadow:0 6px 0 var(--success-dark);background:#38a169;transform:translateY(-2px)}.badge-join:active{transform:translateY(2px);box-shadow:inset 2px 2px #0003}.badge-full{background:var(--text-muted);color:#fff;cursor:not-allowed;border:3px solid #718096;border-radius:4px;padding:8px 20px;font-size:16px}.waiting-room-layout{gap:16px;width:100%;height:100%;display:flex}.waiting-room{flex-direction:column;flex:1;min-width:0;padding:24px;display:flex}.character-picker{flex-direction:column;flex-shrink:0;gap:16px;width:220px;padding:20px;display:flex}.picker-title{color:var(--knu-blue);text-shadow:.5px .5px 0 var(--knu-blue);text-align:center;border-bottom:var(--border-thick) solid var(--outline-color);margin:0;padding-bottom:12px;font-size:20px}.picker-preview{background:var(--bg-warm);border:3px solid var(--outline-color);border-radius:var(--radius-pixel);flex-direction:column;align-items:center;gap:6px;padding:16px 8px;display:flex;box-shadow:inset 2px 2px #fffc,inset -2px -2px #0000000d}.preview-icon{font-size:48px}.preview-name{color:var(--text-primary);text-shadow:.5px .5px 0 var(--text-primary);font-size:18px}.preview-desc{color:var(--knu-orange-dark);text-shadow:.5px .5px 0 var(--knu-orange-dark);text-align:center;font-size:12px}.picker-grid{flex:1;grid-template-columns:1fr 1fr;align-content:start;gap:8px;display:grid;overflow-y:auto}.picker-item{background:var(--bg-warm);border:3px solid var(--outline-color);border-radius:var(--radius-pixel);cursor:pointer;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;transition:all .1s;display:flex;box-shadow:inset 2px 2px #fffc,inset -2px -2px #0000000d,0 3px #0000001a}.picker-item:hover{background:var(--knu-blue-light);transform:translateY(-2px);box-shadow:inset 2px 2px #fffc,inset -2px -2px #0000000d,0 5px #00000026}.picker-item:active{transform:translateY(2px);box-shadow:inset 2px 2px #0000001a}.picker-item.selected{border-color:var(--knu-orange);background:var(--knu-orange-light);box-shadow:inset 2px 2px 0 #ffffff80, 0 3px 0 var(--knu-orange-dark)}.picker-item-icon{font-size:28px}.picker-item-name{color:var(--text-primary);text-shadow:.5px .5px 0 var(--text-primary);font-size:12px}.waiting-room-header{border-bottom:var(--border-thick) solid var(--outline-color);justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:16px;display:flex;box-shadow:0 4px #0000000d}.waiting-room-title-info{align-items:flex-end;gap:16px;display:flex}.waiting-room-title-info h2{color:var(--knu-blue);text-shadow:.5px .5px 0 var(--knu-blue);margin:0;font-size:32px}.room-capacity{color:var(--text-primary);text-shadow:.5px .5px 0 var(--text-primary);background:var(--knu-blue-light);border:3px solid var(--outline-color);border-radius:4px;padding:8px 16px;font-size:18px}.player-grid{flex:1;grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:16px;min-height:0;display:grid}.player-slot{border-radius:var(--radius-pixel);border:4px dashed var(--outline-color);background:#0000000a;justify-content:center;align-items:center;height:100%;padding:16px;display:flex}.player-slot.occupied{border:var(--border-thick) solid var(--outline-color);background:var(--surface);flex-direction:column;gap:12px;position:relative;box-shadow:inset 4px 4px #fffc,inset -4px -4px #0000000d}.slot-master-badge{color:#854d0e;border:3px solid var(--outline-color);box-shadow:0 4px 0 var(--outline-color);text-shadow:.5px .5px #ffffff80;z-index:10;background:gold;border-radius:4px;padding:4px 12px;font-size:14px;font-weight:700;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.slot-avatar{background:var(--bg-base);border-radius:var(--radius-pixel);border:var(--border-thick) solid var(--outline-color);justify-content:center;align-items:center;width:80px;height:80px;font-size:48px;display:flex;box-shadow:4px 4px #0000001a}.slot-info{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.slot-name{color:var(--text-primary);text-shadow:.5px .5px 0 var(--text-primary);font-size:20px}.slot-ready-status{background:var(--success);color:#fff;border:3px solid var(--success-dark);box-shadow:0 4px 0 var(--success-dark);text-shadow:1px 1px #0003;border-radius:4px;padding:8px 24px;font-size:16px}.slot-waiting-status{background:var(--knu-orange);color:#fff;border:3px solid var(--knu-orange-dark);box-shadow:0 4px 0 var(--knu-orange-dark);text-shadow:1px 1px #0003;border-radius:4px;padding:8px 24px;font-size:16px}.player-slot.empty .empty-text{color:var(--text-primary);text-shadow:.5px .5px 0 var(--text-primary);font-size:20px}.waiting-room-footer{justify-content:center;margin-top:16px;display:flex}.btn-ready{background:var(--knu-orange);color:var(--text-light);border:var(--border-thick) solid var(--outline-color);border-radius:var(--radius-pixel);box-shadow:var(--pixel-btn-orange);text-shadow:2px 2px 0 var(--knu-orange-dark);padding:16px 80px;font-size:24px;transition:all .1s}.btn-ready:active{box-shadow:inset 4px 4px 0 #0003, 0 0 0 var(--outline-color);transform:translateY(6px)}.btn-ready.is-ready{background:var(--success);border-color:var(--outline-color);box-shadow:inset 4px 4px 0 #ffffff4d, inset -4px -4px 0 #0003, 0 6px 0 var(--success-dark);text-shadow:2px 2px 0 var(--success-dark);animation:2s steps(4,end) infinite pulseReady}.btn-ready.is-ready:active{box-shadow:inset 4px 4px 0 #0003, 0 0 0 var(--outline-color);transform:translateY(6px)}.modal-overlay{z-index:100;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.create-modal{background:var(--surface);border:var(--border-thick) solid var(--outline-color);border-radius:var(--radius-pixel);text-align:center;box-shadow:var(--pixel-panel-shadow);min-width:480px;padding:40px 48px;animation:.3s ease-out forwards popBounce}.create-modal h2{color:var(--knu-blue);text-shadow:.5px .5px 0 var(--knu-blue);margin:0 0 24px;font-size:28px}.modal-input{border:3px solid var(--outline-color);background:var(--bg-warm);width:100%;color:var(--text-primary);text-shadow:.5px .5px 0 var(--text-primary);border-radius:4px;margin-bottom:32px;padding:16px 20px;font-size:18px;box-shadow:inset 3px 3px #0000000d}.modal-input:focus{box-shadow:inset 3px 3px 0 #0000000d, 0 0 0 4px var(--gomduri-blue);background:#fff}.modal-buttons{justify-content:center;gap:16px;display:flex}.modal-cancel-btn{border:3px solid var(--outline-color);background:var(--bg-warm);color:var(--text-primary);text-shadow:.5px .5px 0 var(--text-primary);box-shadow:inset 2px 2px 0 #fffc, inset -2px -2px 0 #0000000d, 0 4px 0 var(--outline-color);border-radius:4px;padding:16px 32px;font-size:20px;transition:all .1s}.modal-cancel-btn:active{transform:translateY(4px);box-shadow:inset 2px 2px #0000001a}.modal-confirm-btn{border:3px solid var(--outline-color);background:var(--knu-blue);color:var(--text-light);box-shadow:inset 2px 2px 0 #ffffff4d, inset -2px -2px 0 #0000001a, 0 4px 0 var(--knu-blue-dark);text-shadow:1px 1px 0 var(--knu-blue-dark);border-radius:4px;padding:16px 32px;font-size:20px;transition:all .1s}.modal-confirm-btn:active:not(:disabled){transform:translateY(4px);box-shadow:inset 2px 2px #0003}.modal-confirm-btn:disabled{background:var(--text-muted);cursor:not-allowed;opacity:.8;border-color:#718096;box-shadow:0 4px #718096}
