@font-face{font-family:Pretendard;src:url(/fonts/Pretendard-Regular.woff) format("woff");font-weight:400;font-display:swap}@font-face{font-family:CookieRun;src:url(/fonts/CookieRun-Regular.woff) format("woff");font-weight:400;font-display:swap}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:#111;color:#fff;font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}#app{width:100%;height:100%;position:relative;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}#popup-container{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;pointer-events:none}#popup-container:not(:empty){pointer-events:auto}.popup-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center}.popup-box{background:#222;border:1px solid #444;border-radius:12px;padding:24px;min-width:280px;max-width:90vw}.popup-title{font-size:18px;font-weight:700;margin-bottom:12px}.popup-message{font-size:14px;color:#ccc;margin-bottom:20px;line-height:1.5}.popup-buttons{display:flex;gap:8px;justify-content:flex-end}.popup-btn{padding:8px 20px;border-radius:8px;border:none;font-size:14px;cursor:pointer}.popup-btn.primary{background:#4a9eff;color:#fff}.popup-btn.secondary{background:#444;color:#fff}#demo-banner{position:fixed;top:calc(env(safe-area-inset-top) + 8px);left:50%;transform:translate(-50%);background:#ffc800e6;color:#000;padding:4px 16px;border-radius:20px;font-size:12px;font-weight:700;z-index:500;pointer-events:none}#ota-loading{position:fixed;top:0;right:0;bottom:0;left:0;background:#111;display:flex;align-items:center;justify-content:center;z-index:9999}.ota-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:ota-spin .8s linear infinite}@keyframes ota-spin{to{transform:rotate(360deg)}}#hud{padding:8px 16px;font-size:20px;font-weight:700;text-align:center}#game-area{flex:1;display:flex;align-items:center;justify-content:center}#scene-container{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0b10}#scene-container canvas{display:block}#vignette{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;box-shadow:inset 0 0 120px 40px #f000;transition:box-shadow .3s;z-index:5}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#05060ce0;z-index:20;padding:env(safe-area-inset-top,0px) 20px env(safe-area-inset-bottom,0px) 20px}.overlay h1{font-family:var(--theme-font-display, sans-serif);color:#e8433f;font-size:clamp(22px,5vw,40px);text-shadow:0 0 18px rgba(232,67,63,.6);margin:0;text-align:center}#lobby-tagline{color:#9aa0b0;font-size:13px;margin:0 0 8px;text-align:center}#lobby-form,#lobby-room{display:flex;flex-direction:column;align-items:center;gap:8px;width:min(320px,80vw)}#lobby input{width:100%;box-sizing:border-box;padding:10px 12px;border-radius:10px;border:1px solid #3a3f4e;background:#171a24;color:#e8eaf0;font-size:14px;outline:none;text-align:center}.btn-primary{width:100%;padding:12px;border:none;border-radius:10px;background:#e8433f;color:#fff;font-size:15px;font-weight:700;cursor:pointer}.btn-primary:active{transform:scale(.97)}#lobby-error{color:#ff7b76;font-size:12px;min-height:15px}#room-code-label{color:#9aa0b0;font-size:12px}#room-code{font-size:34px;font-weight:800;letter-spacing:8px;color:#ffd866;text-shadow:0 0 14px rgba(255,216,102,.5)}#player-list{color:#cdd3e0;font-size:14px;text-align:center;line-height:1.6}#share-hint,#waiting-host{color:#7a8095;font-size:12px;text-align:center}#mission-hud{position:fixed;top:calc(10px + env(safe-area-inset-top,0px));left:50%;transform:translate(-50%);background:#0a0c14b3;border:1px solid #333a4a;border-radius:20px;padding:6px 18px;color:#cfe8ff;font-size:15px;font-weight:700;z-index:10}#alert-banner,#status-banner{position:fixed;left:50%;transform:translate(-50%);z-index:10;font-weight:800;text-align:center}#alert-banner{top:calc(48px + env(safe-area-inset-top,0px));color:#6dff8a;font-size:17px;text-shadow:0 0 12px rgba(60,255,120,.7);animation:pulse .9s infinite alternate}#status-banner{top:40%;color:#ff5f5a;font-size:22px;text-shadow:0 0 16px rgba(255,60,60,.7)}@keyframes pulse{0%{opacity:.75}to{opacity:1}}#joystick-zone{position:fixed;left:0;top:0;bottom:0;width:50%;z-index:8;touch-action:none}#joystick-base{position:fixed;width:110px;height:110px;margin:-55px 0 0 -55px;border-radius:50%;border:2px solid rgba(255,255,255,.25);background:#ffffff0f;z-index:9;pointer-events:none}#joystick-knob{position:absolute;left:50%;top:50%;width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;background:#ffffff59}#interact-btn{position:fixed;right:calc(26px + env(safe-area-inset-right,0px));bottom:calc(30px + env(safe-area-inset-bottom,0px));width:92px;height:92px;border-radius:50%;border:3px solid #35e0ff;background:#1ebee640;color:#d8f8ff;font-size:14px;font-weight:800;z-index:9;touch-action:none}#interact-btn:active{background:#1ebee68c}#rotate-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:none;align-items:center;justify-content:center;background:#05060c;color:#e8eaf0;font-size:17px;font-weight:700;text-align:center;z-index:100;padding:20px}@media (orientation: portrait){#rotate-overlay{display:flex}}
