:root{--bg-dark: #0b1026;--bg-mid: #1a1f3d;--accent: #7c5cff;--accent-glow: #a78bff;--pink: #ff8fb1;--yellow: #ffd166;--mint: #8ce99a;--text: #f4f6ff;--text-dim: #9aa3cc;--hp: #ff6b6b;--mp: #4dabf7;--panel-bg: rgba(20, 24, 50, .72);--panel-border: rgba(124, 92, 255, .35);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .45);--radius: 14px}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Pretendard,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg-dark);-webkit-font-smoothing:antialiased;user-select:none;-webkit-user-select:none}.hidden{display:none!important}#loading-screen{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at top,#2a1f5e 0%,var(--bg-dark) 60%);z-index:1000;gap:32px;transition:opacity .6s ease}#loading-screen.fade-out{opacity:0;pointer-events:none}.loading-logo{text-align:center}.logo-cube{width:90px;height:90px;margin:0 auto 20px;position:relative;transform-style:preserve-3d;animation:rotateCube 4s linear infinite}.logo-cube .face{position:absolute;inset:0;border:2px solid var(--accent-glow);border-radius:10px;background:linear-gradient(135deg,#7c5cff80,#ff8fb166);box-shadow:0 0 20px #7c5cff80}.logo-cube .f1{transform:rotateY(0) translateZ(45px)}.logo-cube .f2{transform:rotateY(120deg) translateZ(45px)}.logo-cube .f3{transform:rotateY(240deg) translateZ(45px)}@keyframes rotateCube{0%{transform:rotateY(0) rotateX(20deg)}to{transform:rotateY(360deg) rotateX(20deg)}}.loading-logo h1{font-size:42px;font-weight:900;letter-spacing:2px;background:linear-gradient(90deg,var(--accent-glow),var(--pink),var(--yellow));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.loading-logo h1 span{font-weight:300}.tagline{font-size:13px;letter-spacing:6px;text-transform:uppercase;color:var(--text-dim);margin-top:4px}.loading-bar{width:min(420px,70vw);height:6px;background:#ffffff14;border-radius:3px;overflow:hidden}.loading-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--accent),var(--pink));border-radius:3px;transition:width .3s ease;box-shadow:0 0 12px var(--accent-glow)}.loading-status{font-size:13px;color:var(--text-dim);letter-spacing:1px}#login-screen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at top,#2a1f5e 0%,var(--bg-dark) 60%);z-index:900;padding:20px}.login-card{width:min(440px,100%);background:var(--panel-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--panel-border);border-radius:22px;padding:36px 30px;box-shadow:var(--shadow-lg);text-align:center}.login-header h2{font-size:24px;font-weight:700;margin-bottom:8px}.login-header p{color:var(--text-dim);font-size:14px;margin-bottom:28px}.wallet-btn{width:100%;padding:16px;border:none;border-radius:14px;background:linear-gradient(135deg,#f6851b,#e2761b);color:#fff;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:12px;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 6px 20px #e2761b59}.wallet-btn:hover{transform:translateY(-2px);box-shadow:0 10px 28px #e2761b80}.wallet-btn:active{transform:translateY(0)}.wallet-btn:disabled{opacity:.6;cursor:wait}.fox-icon{font-size:22px}.guest-btn{width:100%;padding:14px;margin-top:12px;border:1px solid rgba(255,255,255,.15);border-radius:14px;background:transparent;color:var(--text-dim);font-size:14px;cursor:pointer;transition:background .2s ease}.guest-btn:hover{background:#ffffff0f}.wallet-info{margin-top:16px;font-size:13px;color:var(--yellow);min-height:18px}.login-footer{margin-top:28px;display:flex;justify-content:space-between;font-size:11px;color:var(--text-dim);letter-spacing:1px;text-transform:uppercase}#game-root{position:fixed;inset:0}#gl-canvas{display:block;width:100%;height:100%;cursor:crosshair}.hud{position:fixed;left:0;right:0;z-index:50;display:flex;padding:14px 20px;pointer-events:none}.hud>*{pointer-events:auto}.hud-top{top:0;justify-content:space-between;align-items:center;gap:12px}.hud-bottom{bottom:0;flex-direction:column;align-items:center;gap:10px;padding-bottom:20px}.hud-left,.hud-center,.hud-right{display:flex;align-items:center;gap:10px}.pill{background:var(--panel-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--panel-border);color:var(--text);padding:8px 14px;border-radius:999px;font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:8px}.pill-dot{width:8px;height:8px;border-radius:50%;background:var(--mint);box-shadow:0 0 8px var(--mint)}.coord-display{background:var(--panel-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--panel-border);padding:6px 14px;border-radius:10px;font-size:12px;font-family:SF Mono,Monaco,monospace;color:var(--text-dim);letter-spacing:1px}.icon-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--panel-border);background:var(--panel-bg);color:var(--text);font-size:16px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .2s ease}.icon-btn:hover{background:#ff6b6b40;color:#fff}.stat-panel{background:var(--panel-bg);backdrop-filter:blur(12px);border:1px solid var(--panel-border);border-radius:var(--radius);padding:12px 16px;min-width:min(380px,90vw);display:flex;flex-direction:column;gap:8px}.stat{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:10px}.stat-icon{font-size:14px;text-align:center;font-weight:700}.hp-icon{color:var(--hp)}.mp-icon{color:var(--mp)}.stat-bar{height:10px;background:#ffffff12;border-radius:999px;overflow:hidden;position:relative}.stat-fill{height:100%;border-radius:999px;transition:width .25s ease}.hp-fill{width:100%;background:linear-gradient(90deg,#ff4d6d,#ff8fb1);box-shadow:0 0 8px #ff6b6b80}.mp-fill{width:100%;background:linear-gradient(90deg,#339af0,#74c0fc);box-shadow:0 0 8px #4dabf780}.stat-value{font-size:11px;color:var(--text-dim);font-family:SF Mono,Monaco,monospace;min-width:64px;text-align:right}.action-hints{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;font-size:12px;color:var(--text-dim)}.action-hints span{display:inline-flex;align-items:center;gap:6px}kbd{display:inline-block;padding:2px 8px;border-radius:6px;border:1px solid rgba(255,255,255,.15);background:#ffffff0d;font-family:inherit;font-size:11px;color:var(--text)}.crosshair{position:fixed;top:50%;left:50%;width:14px;height:14px;transform:translate(-50%,-50%);pointer-events:none;opacity:.6}.crosshair:before,.crosshair:after{content:"";position:absolute;background:#fff;box-shadow:0 0 4px #000c}.crosshair:before{top:50%;left:0;right:0;height:1px;transform:translateY(-50%)}.crosshair:after{left:50%;top:0;bottom:0;width:1px;transform:translate(-50%)}.mobile-controls{display:none;position:fixed;inset:0;pointer-events:none;z-index:60}.joystick{position:absolute;bottom:120px;left:30px;width:120px;height:120px;border-radius:50%;background:#14183266;border:2px solid rgba(255,255,255,.15);pointer-events:auto;touch-action:none}.joystick-inner{position:absolute;top:50%;left:50%;width:54px;height:54px;border-radius:50%;background:#7c5cff99;border:2px solid rgba(255,255,255,.25);transform:translate(-50%,-50%);box-shadow:0 0 14px #7c5cff80}.mobile-jump{position:absolute;bottom:140px;right:30px;width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--pink));color:#fff;border:2px solid rgba(255,255,255,.25);font-weight:700;font-size:14px;pointer-events:auto;box-shadow:0 6px 18px #0006}@media (pointer: coarse){.mobile-controls{display:block}.crosshair,.action-hints{display:none}}#toast-container{position:fixed;top:74px;left:50%;transform:translate(-50%);z-index:80;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{background:var(--panel-bg);backdrop-filter:blur(12px);border:1px solid var(--panel-border);color:var(--text);padding:10px 16px;border-radius:10px;font-size:13px;animation:toastIn .3s ease,toastOut .3s ease 2.4s forwards;box-shadow:var(--shadow-lg)}@keyframes toastIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes toastOut{to{opacity:0;transform:translateY(-10px)}}
