:root{--color-bg: #1a1a2e;--color-glass: rgba(0, 0, 0, .45);--color-glass-border: rgba(255, 255, 255, .12);--color-text: #f0f0f0;--color-text-dim: #aaaaaa;--color-accent: #4CAF50;--color-gold: #FFD54F;--blur-amount: 12px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--font-family: "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden;font-family:var(--font-family);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased}.app-container{position:relative;width:100%;height:100%}.canvas-container{position:absolute;top:0;left:0;width:100%;height:100%}.hud{position:absolute;top:0;left:0;right:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:var(--color-glass);backdrop-filter:blur(var(--blur-amount));-webkit-backdrop-filter:blur(var(--blur-amount));border-bottom:1px solid var(--color-glass-border)}.hud-left,.hud-right{display:flex;gap:16px;align-items:center}.hud-item{font-size:14px;font-weight:600;letter-spacing:.3px}.toolbar{position:absolute;bottom:24px;left:50%;transform:translate(-50%);z-index:10;padding:12px 24px 10px;background:var(--color-glass);backdrop-filter:blur(var(--blur-amount));-webkit-backdrop-filter:blur(var(--blur-amount));border:1px solid var(--color-glass-border);border-radius:30px;box-shadow:0 8px 32px #0006;width:max-content;max-width:90vw}.toolbar-tools{position:absolute;top:-32px;left:50%;transform:translate(-50%);display:flex;justify-content:center;gap:10px;margin-bottom:0;z-index:11}.tool-btn{width:56px;height:56px;border-radius:50%;border:2px solid rgba(255,255,255,.15);background:linear-gradient(135deg,#4caf50cc,#2e7d32e6);font-size:26px;cursor:pointer;transition:all .2s cubic-bezier(.34,1.56,.64,1);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #00000080}.tool-btn:hover:not(.locked){background:linear-gradient(135deg,#4caf50e6,#2e7d32);transform:translateY(-4px) scale(1.05);box-shadow:0 6px 16px #4caf5066}.tool-btn.active{background:linear-gradient(135deg,#4caf50,#81c784);border-color:#a5d6a7;box-shadow:0 0 20px #4caf5099}.tool-btn.locked{opacity:.4;cursor:not-allowed;background:#ffffff1a;border-color:#ffffff0d;box-shadow:none}.toolbar-nav{display:flex;justify-content:center;gap:8px}.nav-spacer{width:60px;flex-shrink:0}.nav-btn{display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:none;color:var(--color-text-dim);cursor:pointer;padding:10px 12px;border-radius:var(--radius-md);transition:all .2s ease;min-width:54px}.nav-btn:hover,.nav-btn.nav-active{color:var(--color-text);background:#ffffff1f;transform:translateY(-2px)}.nav-btn.nav-active{color:var(--color-accent)}.nav-emoji{font-size:20px}.nav-name{font-size:13px;font-weight:600}.fishing-hint{position:absolute;top:50px;left:50%;transform:translate(-50%);z-index:15;padding:8px 24px;background:var(--color-glass);backdrop-filter:blur(var(--blur-amount));-webkit-backdrop-filter:blur(var(--blur-amount));border:1px solid var(--color-glass-border);border-radius:24px;font-size:15px;font-weight:500;animation:fadeInDown .3s ease;-webkit-user-select:none;user-select:none}.fishing-hint.waiting-pulse{display:flex;gap:4px;align-items:center}.waiting-dots .dot{animation:dotBounce 1.4s ease-in-out infinite;display:inline-block;font-size:20px}.waiting-dots .dot:nth-child(2){animation-delay:.2s}.waiting-dots .dot:nth-child(3){animation-delay:.4s}@keyframes dotBounce{0%,80%,to{opacity:.3}40%{opacity:1}}@keyframes fadeInDown{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.bite-overlay{position:absolute;top:0;left:0;right:0;bottom:0;z-index:20;display:flex;align-items:center;justify-content:center;background:#00000059;animation:fadeIn .15s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.bite-container{text-align:center;animation:biteAppear .3s cubic-bezier(.34,1.56,.64,1)}@keyframes biteAppear{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.bite-alert-text{font-size:28px;font-weight:800;color:#ff6d00;text-shadow:0 2px 12px rgba(255,109,0,.5);margin-bottom:12px;animation:biteShake .15s ease infinite alternate}@keyframes biteShake{0%{transform:translate(-2px) rotate(-1deg)}to{transform:translate(2px) rotate(1deg)}}.bite-timer-bar{width:240px;height:6px;background:#ffffff26;border-radius:3px;margin:0 auto 20px;overflow:hidden}.bite-timer-fill{height:100%;background:linear-gradient(90deg,#ff5722,#ff6d00);border-radius:3px;transition:width .1s linear}.bite-pull-btn{display:flex;flex-direction:column;align-items:center;gap:4px;width:140px;height:140px;margin:0 auto 12px;border:3px solid rgba(255,109,0,.8);border-radius:50%;background:radial-gradient(circle at 40% 35%,#ff9800e6,#ff5722f2);box-shadow:0 0 30px #ff6d0080,0 0 60px #ff6d0033,inset 0 -4px 12px #0003;cursor:pointer;animation:pullPulse .6s ease infinite alternate;justify-content:center;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.bite-pull-btn:active{transform:scale(.92)}@keyframes pullPulse{0%{transform:scale(1);box-shadow:0 0 30px #ff6d0080,0 0 60px #ff6d0033}to{transform:scale(1.08);box-shadow:0 0 50px #ff6d00b3,0 0 80px #ff6d004d}}.bite-pull-icon{font-size:36px}.bite-pull-text{font-size:28px;font-weight:900;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.3)}.bite-hint{font-size:13px;color:#ffffffb3}.powerbar-fullscreen{position:absolute;top:0;left:0;right:0;bottom:0;z-index:20;display:flex;align-items:center;justify-content:center;background:#00000073;cursor:pointer;animation:fadeIn .2s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.powerbar-panel{width:380px;background:#0f0f23eb;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.15);border-radius:20px;padding:28px 32px;text-align:center;animation:scaleIn .3s cubic-bezier(.34,1.56,.64,1)}.powerbar-title{font-size:20px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:6px}.powerbar-emoji{font-size:28px}.powerbar-target{font-size:14px;color:var(--color-text-dim);margin-bottom:20px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px}.powerbar-bar{position:relative;width:100%;height:36px;background:#ef53504d;border-radius:18px;overflow:hidden;border:2px solid rgba(239,83,80,.5)}.powerbar-danger{position:absolute;top:0;left:0;right:0;bottom:0;background:repeating-linear-gradient(45deg,transparent,transparent 6px,rgba(239,83,80,.1) 6px,rgba(239,83,80,.1) 12px)}.powerbar-sweet-zone{position:absolute;top:0;height:100%;background:#4caf5080;border-left:2px solid rgba(76,175,80,.8);border-right:2px solid rgba(76,175,80,.8);display:flex;align-items:center;justify-content:center}.sweet-label{font-size:18px;font-weight:700;color:#fffc}.powerbar-cursor{position:absolute;top:-4px;width:6px;height:44px;border-radius:3px;transform:translate(-50%);transition:background .08s,box-shadow .08s}.cursor-danger{background:#ef5350;box-shadow:0 0 10px #ef5350b3}.cursor-sweet{background:#66bb6a;box-shadow:0 0 16px #4caf50e6,0 0 30px #4caf5066}.powerbar-status{margin-top:16px;font-size:15px;font-weight:600;transition:color .15s}.status-good{color:#66bb6a;animation:statusPulse .5s ease infinite alternate}.status-wait{color:var(--color-text-dim)}@keyframes statusPulse{0%{opacity:.7}to{opacity:1}}.powerbar-confirm-btn{width:100%;padding:14px;margin-top:14px;border:2px solid;border-radius:var(--radius-md);font-size:18px;font-weight:700;cursor:pointer;transition:all .15s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.btn-ready{background:linear-gradient(135deg,#43a047,#66bb6a);border-color:#4caf50;color:#fff;box-shadow:0 0 20px #4caf5066;animation:btnReadyPulse .5s ease infinite alternate}.btn-wait{background:#ffffff0f;border-color:#ffffff26;color:var(--color-text-dim)}@keyframes btnReadyPulse{0%{box-shadow:0 0 20px #4caf5066}to{box-shadow:0 0 35px #4caf50b3}}.powerbar-progress{margin-bottom:16px;display:flex;flex-direction:column;align-items:center;gap:6px}.progress-dots{display:flex;gap:10px}.progress-dot{width:32px;height:32px;border-radius:50%;border:2px solid;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;transition:all .3s ease}.progress-dot.dot-done{animation:dotSuccess .4s cubic-bezier(.34,1.56,.64,1)}@keyframes dotSuccess{0%{transform:scale(.5)}to{transform:scale(1)}}.progress-text{font-size:12px;font-weight:600}.catch-overlay{position:absolute;top:0;left:0;right:0;bottom:0;z-index:25;display:flex;align-items:center;justify-content:center;background:#0006;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}.catch-panel{width:320px;background:#141428eb;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:2px solid;border-radius:var(--radius-lg);padding:24px;text-align:center;animation:scaleIn .4s cubic-bezier(.34,1.56,.64,1)}.catch-panel.escaped{border-color:#666}.catch-new{background:linear-gradient(135deg,#ff6f00,#ff9800);color:#fff;font-size:12px;font-weight:700;padding:3px 12px;border-radius:10px;display:inline-block;margin-bottom:8px;animation:newBadgePulse 1s ease infinite alternate}@keyframes newBadgePulse{0%{box-shadow:0 0 8px #ff980080}to{box-shadow:0 0 20px #ff9800cc}}.catch-icon{margin:8px 0}.catch-name{font-size:22px;font-weight:700;margin:4px 0}.catch-rarity{font-size:13px;color:var(--color-text-dim);margin-bottom:12px}.catch-title{font-size:22px;font-weight:700;margin:8px 0 4px}.catch-stats{display:flex;justify-content:space-around;margin:14px 0;padding:12px;background:#ffffff0d;border-radius:var(--radius-sm)}.catch-stat{display:flex;flex-direction:column;gap:2px}.catch-stat-label{font-size:11px;color:var(--color-text-dim)}.catch-stat-value{font-size:16px;font-weight:600}.catch-desc{font-size:12px;color:var(--color-text-dim);line-height:1.5;margin:10px 0}.catch-btn{width:100%;padding:12px;margin-top:8px;border:none;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--color-accent),#66bb6a);color:#fff;font-size:16px;font-weight:700;cursor:pointer;transition:all .2s ease}.catch-btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px #4caf5080}.catch-buttons{display:flex;gap:8px;margin-top:10px}.catch-btn.sell{flex:1;background:linear-gradient(135deg,var(--color-accent),#66bb6a)}.catch-btn.keep{flex:1;background:linear-gradient(135deg,#1565c0,#42a5f5)}.catch-btn.keep.disabled{opacity:.4;cursor:not-allowed;background:#444}.hud-level{display:flex;align-items:center;gap:6px}.hud-exp-bar{display:inline-block;width:60px;height:4px;background:#ffffff26;border-radius:2px;overflow:hidden;vertical-align:middle}.hud-exp-fill{display:block;height:100%;background:linear-gradient(90deg,#ffd54f,#ffa726);border-radius:2px;transition:width .3s ease}.nav-btn.nav-active{color:var(--color-accent);background:#4caf501f}.panel-overlay{position:absolute;top:0;left:0;right:0;bottom:0;z-index:30;display:flex;align-items:center;justify-content:center;background:#00000080;animation:fadeIn .2s ease}.panel-container{width:420px;max-height:80vh;background:#0f0f23f2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.12);border-radius:20px;overflow-y:auto;animation:scaleIn .3s cubic-bezier(.34,1.56,.64,1)}.panel-container::-webkit-scrollbar{width:4px}.panel-container::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:2px}.panel-header{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid rgba(255,255,255,.08);position:sticky;top:0;background:#0f0f23fa;z-index:1}.panel-header h2{flex:1;font-size:18px;font-weight:700;margin:0}.panel-close{width:32px;height:32px;border:none;border-radius:50%;background:#ffffff14;color:var(--color-text-dim);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.panel-close:hover{background:#ffffff26;color:var(--color-text)}.codex-progress{padding:14px 20px 0;display:flex;align-items:center;gap:12px}.codex-progress-bar{flex:1;height:8px;background:#ffffff14;border-radius:4px;overflow:hidden}.codex-progress-fill{height:100%;background:linear-gradient(90deg,var(--color-accent),#81C784);border-radius:4px;transition:width .4s ease}.codex-progress-text{font-size:13px;color:var(--color-text-dim);white-space:nowrap}.codex-milestones{padding:10px 20px;display:flex;gap:8px;flex-wrap:wrap}.milestone{font-size:12px;padding:3px 8px;border-radius:10px;background:#ffffff0d;color:var(--color-text-dim)}.milestone.reached{background:#4caf5033;color:var(--color-accent)}.codex-list{padding:0 16px 16px}.codex-group{margin-top:14px}.codex-group-title{font-size:14px;font-weight:600;margin-bottom:8px;display:flex;align-items:center;gap:8px}.codex-group-count{font-size:12px;color:var(--color-text-dim);margin-left:auto}.codex-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.codex-card{padding:10px;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.06);background:#ffffff08;transition:all .15s}.codex-card.collected{border-width:1px}.codex-card.locked{opacity:.5}.codex-card-icon{font-size:24px;margin-bottom:4px}.codex-card-name{font-size:13px;font-weight:600;margin-bottom:2px}.codex-card-stats{font-size:11px;color:var(--color-text-dim);display:flex;gap:8px}.codex-card-desc{font-size:11px;color:var(--color-text-dim);margin-top:4px;line-height:1.4}.shop-gold{font-size:15px;font-weight:600;color:var(--color-gold)}.shop-section{padding:14px 20px;border-bottom:1px solid rgba(255,255,255,.05)}.shop-section:last-child{border-bottom:none}.shop-section h3{font-size:14px;font-weight:600;margin:0 0 10px}.shop-grid{display:flex;flex-direction:column;gap:8px}.shop-card{padding:12px;border-radius:var(--radius-sm);background:#ffffff0a;border:1px solid rgba(255,255,255,.06)}.shop-card.owned{opacity:.6}.shop-card.level-locked{opacity:.4}.shop-card-name{font-size:14px;font-weight:600;margin-bottom:3px}.shop-card-desc{font-size:12px;color:var(--color-text-dim);margin-bottom:8px}.shop-card-status{font-size:12px}.shop-card-status.owned{color:var(--color-accent)}.shop-card-status.locked{color:#ef5350}.shop-buy-btn{padding:6px 14px;border:none;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--color-accent),#66bb6a);color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.shop-buy-btn:hover:not(.disabled){transform:translateY(-1px);box-shadow:0 2px 8px #4caf5066}.shop-buy-btn.disabled{opacity:.4;cursor:not-allowed;background:#444}.shrimp-cage-count{font-size:13px;color:var(--color-text-dim)}.shrimp-cage-empty{text-align:center;padding:40px 20px;color:var(--color-text-dim)}.shrimp-cage-empty-icon{font-size:48px;margin-bottom:12px}.shrimp-cage-empty-hint{font-size:13px;margin-top:4px}.shrimp-cage-actions{padding:12px 20px;border-bottom:1px solid rgba(255,255,255,.05)}.shrimp-cage-sell-all{width:100%;padding:10px;border:none;border-radius:var(--radius-md);background:linear-gradient(135deg,#e65100,#ff6d00);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s}.shrimp-cage-sell-all:hover{transform:translateY(-1px);box-shadow:0 4px 12px #ff6d0066}.shrimp-cage-list{padding:8px 16px 16px;display:flex;flex-direction:column;gap:6px}.shrimp-cage-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:var(--radius-sm);background:#ffffff08;border-left:3px solid}.shrimp-cage-item-info{display:flex;align-items:center;gap:10px}.shrimp-cage-item-icon{font-size:22px}.shrimp-cage-item-name{font-size:13px;font-weight:600}.shrimp-cage-item-detail{font-size:11px;color:var(--color-text-dim)}.shrimp-cage-sell-btn{padding:4px 12px;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-sm);background:#ffffff0f;color:var(--color-gold);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.shrimp-cage-sell-btn:hover{background:#ffffff1f}.tasks-complete{text-align:center;padding:12px 20px;font-size:14px;color:var(--color-accent);background:#4caf5014;border-bottom:1px solid rgba(255,255,255,.05)}.tasks-list{padding:12px 16px 16px;display:flex;flex-direction:column;gap:8px}.task-card{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--radius-sm);background:#ffffff0a;border:1px solid rgba(255,255,255,.06);transition:opacity .2s}.task-card.claimed{opacity:.45}.task-info{flex:1}.task-desc{font-size:13px;font-weight:500;margin-bottom:6px}.task-progress-bar{width:100%;height:5px;background:#ffffff14;border-radius:3px;overflow:hidden;margin-bottom:3px}.task-progress-fill{height:100%;background:linear-gradient(90deg,var(--color-accent),#81C784);border-radius:3px;transition:width .3s ease}.task-progress-text{font-size:11px;color:var(--color-text-dim)}.task-reward-section{text-align:center;min-width:70px}.task-reward-label{font-size:11px;color:var(--color-text-dim);margin-bottom:6px}.task-claim-btn{padding:5px 14px;border:none;border-radius:var(--radius-sm);background:linear-gradient(135deg,#e65100,#ff6d00);color:#fff;font-size:12px;font-weight:700;cursor:pointer;animation:btnReadyPulse .6s ease infinite alternate;transition:transform .1s}.task-claim-btn:active{transform:scale(.95)}.task-status{font-size:12px}.task-status.done{color:var(--color-accent)}.task-status.pending{color:var(--color-text-dim)}.settings-section{padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.05)}.settings-section:last-of-type{border-bottom:none}.settings-section h3{font-size:14px;font-weight:600;margin:0 0 12px}.settings-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:13px}.settings-value{color:var(--color-text-dim)}.speed-btns{display:flex;gap:4px}.speed-btn{padding:4px 10px;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-sm);background:#ffffff0a;color:var(--color-text-dim);font-size:12px;cursor:pointer;transition:all .15s}.speed-btn.active{background:#4caf504d;border-color:var(--color-accent);color:var(--color-accent)}.toggle-btn{padding:4px 12px;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-sm);background:#ffffff0f;color:var(--color-text);font-size:12px;cursor:pointer;transition:all .15s}.toggle-btn:hover{background:#ffffff1f}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat-item{text-align:center;padding:10px 6px;border-radius:var(--radius-sm);background:#ffffff08}.stat-label{font-size:11px;color:var(--color-text-dim);margin-bottom:3px}.stat-value{font-size:14px;font-weight:600}.settings-reset-btn{width:100%;padding:10px;margin-top:10px;border:1px solid rgba(239,83,80,.4);border-radius:var(--radius-md);background:#ef53501a;color:#ef5350;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.settings-reset-btn:hover{background:#ef535033}.settings-footer{text-align:center;padding:14px;font-size:12px;color:#ffffff40}.net-overlay{position:absolute;top:0;left:0;right:0;bottom:0;z-index:25;pointer-events:none}.net-hud{position:absolute;top:60px;left:50%;transform:translate(-50%);display:flex;gap:16px;padding:8px 16px;background:var(--color-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:var(--radius-md);border:1px solid var(--color-glass-border);pointer-events:auto;font-size:14px;font-weight:600}.net-timer{color:#ef5350}.net-score{color:var(--color-gold)}.net-remaining{color:var(--color-text-dim)}.net-instruction{position:absolute;bottom:140px;left:50%;transform:translate(-50%);padding:8px 16px;background:#0009;border-radius:var(--radius-sm);font-size:13px;white-space:nowrap;pointer-events:none}.net-scoop-btn{position:absolute;bottom:160px;left:50%;transform:translate(-50%);padding:14px 36px;border:none;border-radius:50px;background:linear-gradient(135deg,#1565c0,#42a5f5);color:#fff;font-size:18px;font-weight:800;cursor:pointer;pointer-events:auto;animation:btnReadyPulse .6s ease infinite alternate;box-shadow:0 4px 20px #1565c080}.net-catch-list{display:flex;flex-direction:column;gap:4px;margin:10px 0;max-height:120px;overflow-y:auto}.net-catch-item{display:flex;justify-content:space-between;font-size:13px;padding:4px 8px;background:#ffffff0a;border-radius:4px}.trap-overlay{position:absolute;top:0;left:0;right:0;bottom:0;z-index:25;display:flex;align-items:center;justify-content:center;background:#00000073}.trap-panel{text-align:center;padding:30px;background:#0f0f23f2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:20px;border:1px solid rgba(255,255,255,.12);min-width:280px}.trap-icon{font-size:56px;margin-bottom:12px}.animate-shake{animation:trapShake .5s ease infinite}@keyframes trapShake{0%,to{transform:rotate(0)}25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}.trap-title{font-size:18px;font-weight:700;margin-bottom:8px}.trap-desc{font-size:13px;color:var(--color-text-dim);margin-bottom:16px}.bait-grid{display:flex;flex-direction:column;gap:8px;margin-top:12px}.bait-btn{padding:12px;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);background:#ffffff0a;color:var(--color-text);font-size:14px;cursor:pointer;transition:all .15s}.bait-btn:hover{background:#ffffff1a;border-color:var(--color-accent)}.trap-quick-btn,.trap-open-btn{padding:12px 28px;border:none;border-radius:50px;background:linear-gradient(135deg,#e65100,#ff6d00);color:#fff;font-size:16px;font-weight:700;cursor:pointer;margin-bottom:8px}.trap-cancel-btn{padding:8px 20px;border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-sm);background:none;color:var(--color-text-dim);font-size:13px;cursor:pointer}.magic-overlay{position:absolute;top:0;left:0;right:0;bottom:0;z-index:25;pointer-events:none}.magic-hud{position:absolute;top:60px;left:50%;transform:translate(-50%);text-align:center;pointer-events:none}.magic-target-label{padding:8px 16px;background:var(--color-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:var(--radius-md);border:1px solid rgba(206,147,216,.3);font-size:15px;font-weight:600;margin-bottom:8px}.magic-instruction{font-size:13px;color:var(--color-text-dim);margin-top:6px}.scene-list{padding:12px 16px 16px;display:flex;flex-direction:column;gap:8px}.scene-card{display:flex;align-items:center;gap:12px;padding:14px;border-radius:var(--radius-sm);background:#ffffff0a;border:1px solid rgba(255,255,255,.06);cursor:pointer;transition:all .15s}.scene-card:hover:not(.locked){background:#ffffff14;border-color:var(--color-accent)}.scene-card.current{border-color:var(--color-accent);background:#4caf5014}.scene-card.locked{opacity:.45;cursor:not-allowed}.scene-card-icon{font-size:36px}.scene-card-info{flex:1}.scene-card-name{font-size:15px;font-weight:600;display:flex;align-items:center;gap:8px}.scene-current-badge{font-size:11px;padding:1px 6px;background:#4caf504d;border-radius:4px;color:var(--color-accent)}.scene-card-diff{font-size:12px;color:var(--color-text-dim);margin-top:2px}.scene-card-desc{font-size:12px;color:var(--color-text-dim);margin-top:3px}.scene-lock-label{font-size:12px;color:#ef5350;white-space:nowrap}.milestone.claimable{background:#ff980040;color:#ffa726;cursor:pointer;animation:btnReadyPulse .8s ease infinite alternate}.milestone.claimed{background:#4caf5033;color:var(--color-accent)}.tournament-lobby{max-width:420px}.tournament-player{padding:12px 20px;border-bottom:1px solid rgba(255,255,255,.05)}.tournament-name-display{font-size:14px;cursor:pointer;padding:8px 12px;border-radius:var(--radius-sm);background:#ffffff0a;transition:background .15s}.tournament-name-display:hover{background:#ffffff14}.tournament-name-edit{display:flex;gap:8px}.tournament-name-input{flex:1;padding:8px 12px;border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-sm);background:#0000004d;color:#fff;font-size:14px;outline:none}.tournament-name-input:focus{border-color:var(--color-accent)}.tournament-name-save{padding:8px 16px;border:none;border-radius:var(--radius-sm);background:var(--color-accent);color:#fff;font-weight:600;cursor:pointer}.tournament-stats{display:flex;gap:12px;padding:12px 20px;border-bottom:1px solid rgba(255,255,255,.05)}.tournament-stat{flex:1;text-align:center;padding:8px;border-radius:var(--radius-sm);background:#ffffff08}.tournament-stat-label{font-size:11px;color:var(--color-text-dim);display:block;margin-bottom:4px}.tournament-stat-value{font-size:20px;font-weight:700}.tournament-modes{padding:16px 20px;display:flex;flex-direction:column;gap:12px}.tournament-mode-card{padding:16px;border-radius:var(--radius-md);background:#ffffff0a;border:1px solid rgba(255,255,255,.08)}.tournament-mode-card.daily{border-color:#ffb74d4d;background:#ffb74d0a}.tournament-mode-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.tournament-mode-icon{font-size:24px}.tournament-mode-title{font-size:16px;font-weight:700}.tournament-daily-badge{margin-left:auto;font-size:11px;padding:2px 8px;border-radius:10px;background:#ffb74d33;color:#ffb74d}.tournament-mode-desc{font-size:12px;color:var(--color-text-dim);margin-bottom:8px}.tournament-mode-best{font-size:13px;margin-bottom:12px}.tournament-grade-badge{display:inline-block;padding:1px 6px;border-radius:4px;color:#fff;font-size:11px;font-weight:700;margin-left:6px}.tournament-start-btn{width:100%;padding:12px;border:none;border-radius:var(--radius-md);font-size:15px;font-weight:700;cursor:pointer;transition:all .2s;color:#fff}.tournament-start-btn.free{background:linear-gradient(135deg,#1565c0,#42a5f5);box-shadow:0 4px 15px #1565c04d}.tournament-start-btn.daily{background:linear-gradient(135deg,#e65100,#ff9800);box-shadow:0 4px 15px #e651004d}.tournament-start-btn:hover:not(.disabled){transform:translateY(-2px)}.tournament-start-btn.disabled{opacity:.4;cursor:not-allowed;background:#555;box-shadow:none}.tournament-countdown-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#000000b3;pointer-events:none}.tournament-countdown-number{font-size:120px;font-weight:900;color:#fff;text-shadow:0 0 40px rgba(255,183,77,.6);animation:countdownPop .5s ease-out}.tournament-countdown-mode{font-size:18px;color:var(--color-text-dim);margin-top:20px}@keyframes countdownPop{0%{transform:scale(2);opacity:0}60%{transform:scale(.9);opacity:1}to{transform:scale(1)}}.tournament-hud{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:50;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}.tournament-timer-bar{width:280px;height:24px;background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:12px;border:1px solid rgba(255,255,255,.15);position:relative;overflow:hidden}.tournament-timer-fill{height:100%;background:linear-gradient(90deg,#4caf50,#8bc34a);border-radius:12px;transition:width .3s linear}.tournament-timer-bar.urgent .tournament-timer-fill{background:linear-gradient(90deg,#ef5350,#ff7043);animation:timerPulse .5s ease infinite alternate}@keyframes timerPulse{0%{opacity:.8}to{opacity:1}}.tournament-timer-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:13px;font-weight:700;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.5)}.tournament-score-row{display:flex;align-items:center;gap:12px}.tournament-score{font-size:22px;font-weight:800;color:var(--color-gold);text-shadow:0 2px 8px rgba(0,0,0,.5);padding:4px 16px;background:#0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-sm)}.tournament-combo{font-size:14px;font-weight:700;color:#ff9800;padding:4px 12px;background:#ff980026;border:1px solid rgba(255,152,0,.3);border-radius:var(--radius-sm);animation:comboGlow .3s ease}.tournament-combo.epic{color:#ce93d8;background:#ce93d826;border-color:#ce93d84d}.tournament-combo.legendary{color:gold;background:#ffd70026;border-color:#ffd7004d;animation:comboGlow .3s ease,legendaryShine 1s ease infinite}@keyframes comboGlow{0%{transform:scale(1.3)}to{transform:scale(1)}}@keyframes legendaryShine{0%,to{box-shadow:0 0 8px #ffd7004d}50%{box-shadow:0 0 20px #ffd70099}}.combo-mult{margin-left:4px;font-size:12px;opacity:.8}.tournament-catch-count{font-size:14px;font-weight:600;color:#fff;padding:2px 10px;background:#0000004d;border-radius:var(--radius-sm)}.tournament-score-popup{position:fixed;top:35%;left:50%;transform:translate(-50%);font-size:28px;font-weight:900;color:gold;text-shadow:0 2px 10px rgba(0,0,0,.5);animation:scorePopup .8s ease-out forwards;pointer-events:none;z-index:60}@keyframes scorePopup{0%{opacity:1;transform:translate(-50%) translateY(0) scale(1)}50%{opacity:1;transform:translate(-50%) translateY(-30px) scale(1.2)}to{opacity:0;transform:translate(-50%) translateY(-60px) scale(.8)}}.tournament-result-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#000000bf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.tournament-result-panel{text-align:center;padding:30px;background:#0f0f23f2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:20px;border:1px solid rgba(255,255,255,.12);min-width:320px;max-width:400px;animation:resultSlideIn .4s ease-out}@keyframes resultSlideIn{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.tournament-result-grade{margin-bottom:8px}.tournament-grade-letter{font-size:80px;font-weight:900;line-height:1;animation:gradeReveal .6s ease-out}@keyframes gradeReveal{0%{transform:scale(3);opacity:0}50%{transform:scale(.8)}to{transform:scale(1);opacity:1}}.tournament-grade-label{font-size:16px;font-weight:600;opacity:.8}.tournament-new-best{font-size:18px;font-weight:700;color:gold;margin-bottom:8px;animation:newBestPulse .8s ease infinite alternate}@keyframes newBestPulse{0%{transform:scale(1);text-shadow:0 0 8px rgba(255,215,0,.3)}to{transform:scale(1.05);text-shadow:0 0 20px rgba(255,215,0,.6)}}.tournament-result-score{font-size:28px;font-weight:800;color:var(--color-gold);margin-bottom:16px}.tournament-result-stats{display:flex;gap:12px;margin-bottom:16px}.tournament-result-stat{flex:1;padding:10px 8px;background:#ffffff0a;border-radius:var(--radius-sm)}.tournament-result-stat .stat-label{font-size:11px;color:var(--color-text-dim);display:block;margin-bottom:4px}.tournament-result-stat .stat-value{font-size:16px;font-weight:700}.tournament-rarity-breakdown{display:flex;justify-content:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}.rarity-tag{font-size:12px;padding:2px 8px;background:#ffffff0d;border-radius:4px}.tournament-rank-result{font-size:16px;color:gold;margin-bottom:12px;padding:8px;background:#ffd70014;border-radius:var(--radius-sm)}.tournament-result-buttons{display:flex;flex-direction:column;gap:8px}.tournament-submit-btn{padding:12px;border:none;border-radius:var(--radius-md);background:linear-gradient(135deg,#1565c0,#42a5f5);color:#fff;font-size:15px;font-weight:700;cursor:pointer;transition:all .2s}.tournament-submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 15px #1565c066}.tournament-submit-btn:disabled{opacity:.6;cursor:wait}.tournament-submitted{font-size:14px;color:var(--color-accent);padding:12px}.tournament-close-btn{padding:10px;border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-md);background:none;color:var(--color-text-dim);font-size:13px;cursor:pointer;transition:all .15s}.tournament-close-btn:hover{background:#ffffff0f}.leaderboard-panel{max-width:440px}.leaderboard-tabs{display:flex;padding:8px 16px;gap:4px;border-bottom:1px solid rgba(255,255,255,.05)}.leaderboard-tab{flex:1;padding:8px 4px;border:none;border-radius:var(--radius-sm);background:#ffffff0a;color:var(--color-text-dim);font-size:12px;cursor:pointer;transition:all .15s}.leaderboard-tab.active{background:#4caf5026;color:var(--color-accent);font-weight:600}.leaderboard-loading,.leaderboard-error,.leaderboard-empty{text-align:center;padding:30px 20px;font-size:13px;color:var(--color-text-dim)}.leaderboard-error{color:#ef5350}.leaderboard-list{padding:8px 16px 16px;display:flex;flex-direction:column;gap:4px;max-height:400px;overflow-y:auto}.leaderboard-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);background:#ffffff08;transition:background .15s}.leaderboard-row:hover{background:#ffffff0f}.leaderboard-rank{font-size:16px;font-weight:700;min-width:36px;text-align:center}.leaderboard-name{font-size:13px;font-weight:600;min-width:60px}.leaderboard-info{flex:1;display:flex;align-items:center;gap:6px}.leaderboard-score{font-size:15px;font-weight:700}.leaderboard-grade{display:inline-block;padding:1px 6px;border-radius:4px;color:#fff;font-size:11px;font-weight:700}.leaderboard-meta{font-size:11px;color:var(--color-text-dim);display:flex;gap:6px;align-items:center}.leaderboard-date{font-size:10px;opacity:.6}.steal-panel{max-width:420px}.steal-stats{display:flex;gap:12px;padding:12px 20px;border-bottom:1px solid rgba(255,255,255,.05)}.steal-stat{flex:1;text-align:center;padding:8px;border-radius:var(--radius-sm);background:#ffffff08}.steal-stat-label{font-size:11px;color:var(--color-text-dim);display:block;margin-bottom:4px}.steal-stat-value{font-size:16px;font-weight:700}.steal-error{padding:8px 20px;font-size:13px;color:#ef5350}.steal-lobby-action{padding:16px 20px;text-align:center}.steal-find-btn{width:100%;padding:14px;border:none;border-radius:var(--radius-md);background:linear-gradient(135deg,#6d4c41,#8d6e63);color:#fff;font-size:16px;font-weight:700;cursor:pointer;transition:all .2s;box-shadow:0 4px 15px #6d4c414d}.steal-find-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #6d4c4180}.steal-find-btn:disabled{opacity:.6;cursor:wait}.steal-cooldown-msg{padding:14px;background:#ffffff0a;border-radius:var(--radius-md);color:var(--color-text-dim);font-size:13px}.steal-dog-section{padding:16px 20px;border-top:1px solid rgba(255,255,255,.05)}.steal-dog-section h3{font-size:14px;font-weight:600;margin-bottom:6px}.steal-dog-desc{font-size:12px;color:var(--color-text-dim);margin-bottom:12px}.steal-dog-list{display:flex;flex-direction:column;gap:8px}.steal-dog-card{display:flex;justify-content:space-between;align-items:center;padding:12px;border-radius:var(--radius-sm);background:#ffffff0a;border:1px solid rgba(255,255,255,.06)}.steal-dog-card.owned{border-color:#4caf504d;background:#4caf500d}.steal-dog-card-header{display:flex;flex-direction:column;gap:2px}.steal-dog-intercept{font-size:11px;color:var(--color-text-dim)}.steal-dog-owned{font-size:12px;color:var(--color-accent)}.steal-dog-buy-btn{padding:6px 14px;border:none;border-radius:var(--radius-sm);background:linear-gradient(135deg,#e65100,#ff6d00);color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s}.steal-dog-buy-btn:hover:not(.disabled){transform:translateY(-1px)}.steal-dog-buy-btn.disabled{opacity:.4;cursor:not-allowed;background:#555}.steal-target-info{padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.05)}.steal-target-name{font-size:16px;font-weight:700;margin-bottom:6px}.steal-target-meta{font-size:12px;color:var(--color-text-dim)}.steal-dog-warning{display:inline-block;margin-left:8px;color:#ff9800;font-weight:600}.steal-item-list{padding:8px 16px;display:flex;flex-direction:column;gap:4px;max-height:250px;overflow-y:auto}.steal-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-left:3px solid;cursor:pointer;transition:all .15s;text-align:left;color:var(--color-text);width:100%}.steal-item:hover{background:#ffffff12}.steal-item.selected{background:#6d4c4126;border-color:#6d4c4180;box-shadow:0 0 8px #6d4c4133}.steal-item-emoji{font-size:22px}.steal-item-rarity{font-size:12px;font-weight:600;min-width:36px}.steal-item-price{font-size:12px;color:var(--color-gold)}.steal-item-rate{margin-left:auto;font-size:11px;color:var(--color-text-dim)}.steal-action-row{display:flex;gap:8px;padding:12px 16px}.steal-cancel-btn{flex:1;padding:12px;border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-md);background:none;color:var(--color-text-dim);font-size:13px;cursor:pointer}.steal-go-btn{flex:2;padding:12px;border:none;border-radius:var(--radius-md);background:linear-gradient(135deg,#6d4c41,#8d6e63);color:#fff;font-size:15px;font-weight:700;cursor:pointer;transition:all .2s}.steal-go-btn:hover:not(.disabled){transform:translateY(-1px);box-shadow:0 4px 12px #6d4c4166}.steal-go-btn.disabled{opacity:.4;cursor:not-allowed}.steal-result-content{text-align:center;padding:30px 20px}.steal-result-icon{font-size:64px;margin-bottom:12px;animation:stealResultPop .5s ease-out}@keyframes stealResultPop{0%{transform:scale(0)}60%{transform:scale(1.2)}to{transform:scale(1)}}.steal-result-icon.steal-success{animation:stealResultPop .5s ease-out,stealSuccessGlow 1s ease infinite alternate}.steal-result-icon.steal-caught{animation:stealResultPop .5s ease-out,stealBiteShake .4s ease .5s}@keyframes stealSuccessGlow{0%{filter:brightness(1)}to{filter:brightness(1.3)}}@keyframes stealBiteShake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}.steal-result-title{font-size:22px;font-weight:800;margin-bottom:8px}.steal-result-detail{font-size:14px;color:var(--color-text-dim);margin-bottom:12px}.steal-result-gold{font-size:24px;font-weight:800;color:var(--color-gold)}.steal-result-penalty{font-size:24px;font-weight:800;color:#ef5350}.steal-result-cooldown{font-size:12px;color:var(--color-text-dim);margin-top:8px}.steal-close-btn{display:block;width:calc(100% - 40px);margin:0 20px 20px;padding:12px;border:none;border-radius:var(--radius-md);background:#ffffff14;color:var(--color-text);font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}.steal-close-btn:hover{background:#ffffff26}.steal-log-panel{max-width:440px}.steal-log-list{padding:8px 16px 16px;display:flex;flex-direction:column;gap:4px;max-height:400px;overflow-y:auto}.steal-log-row{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);background:#ffffff08}.steal-log-row.as-thief{border-left:3px solid #8d6e63}.steal-log-row.as-victim{border-left:3px solid #ef5350}.steal-log-icon{font-size:18px;margin-top:2px}.steal-log-info{flex:1}.steal-log-title{font-size:13px;margin-bottom:2px}.steal-log-detail{font-size:12px;color:var(--color-text-dim)}.steal-log-gold{font-weight:600;margin-left:6px}.steal-log-gold.positive{color:var(--color-accent)}.steal-log-gold.negative{color:#ef5350}.steal-log-time{font-size:10px;color:var(--color-text-dim);white-space:nowrap;opacity:.6}.music-widget{position:fixed;bottom:100px;right:20px;z-index:50;display:flex;flex-direction:column;align-items:flex-end;gap:10px}.music-fab{width:48px;height:48px;border-radius:50%;border:2px solid rgba(255,255,255,.15);background:linear-gradient(135deg,#1e1e3cd9,#32325ae6);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;transition:all .3s cubic-bezier(.34,1.56,.64,1);box-shadow:0 4px 20px #0006}.music-fab:hover{transform:scale(1.1);border-color:#81c78480;box-shadow:0 6px 24px #4caf504d}.music-fab.playing{border-color:#81c78499;animation:fabGlow 2s ease-in-out infinite alternate}@keyframes fabGlow{0%{box-shadow:0 4px 20px #4caf5033}to{box-shadow:0 4px 28px #4caf5080}}.music-fab-icon{font-size:22px;z-index:2}.music-fab-waves{position:absolute;bottom:5px;left:50%;transform:translate(-50%);display:flex;gap:2px;align-items:flex-end;height:12px;z-index:1;opacity:.6}.wave-bar{width:3px;border-radius:1px;background:linear-gradient(to top,#4caf50,#81c784);animation:waveAnim 1s ease-in-out infinite alternate}.wave-bar:nth-child(1){height:4px;animation-delay:0s}.wave-bar:nth-child(2){height:8px;animation-delay:.15s}.wave-bar:nth-child(3){height:6px;animation-delay:.3s}.wave-bar:nth-child(4){height:10px;animation-delay:.45s}@keyframes waveAnim{0%{height:3px}to{height:12px}}.music-player-card{width:280px;background:#0f0f23eb;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:16px;animation:playerSlideIn .35s cubic-bezier(.34,1.56,.64,1);box-shadow:0 12px 40px #0009}@keyframes playerSlideIn{0%{opacity:0;transform:translateY(20px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.music-player-cover{display:flex;justify-content:center;margin-bottom:12px}.music-disc{width:80px;height:80px;border-radius:50%;background:conic-gradient(from 0deg,#1a1a2e,#2d2d4e,#1a1a2e,#2d2d4e,#1a1a2e);border:3px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;position:relative;box-shadow:0 0 0 4px #0000004d,0 4px 20px #00000080}.music-disc.spinning{animation:discSpin 4s linear infinite}@keyframes discSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.disc-inner{width:28px;height:28px;border-radius:50%;background:radial-gradient(circle,#4caf50,#2e7d32 60%,#1a1a2e);display:flex;align-items:center;justify-content:center;font-size:14px;box-shadow:0 0 10px #4caf5066}.music-player-info{text-align:center;margin-bottom:10px}.music-track-title{font-size:15px;font-weight:700;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.music-track-artist{font-size:12px;color:var(--color-text-dim);margin-top:2px}.music-progress-wrap{display:flex;align-items:center;gap:8px;margin-bottom:12px}.music-time{font-size:10px;color:var(--color-text-dim);width:32px;text-align:center;flex-shrink:0;font-variant-numeric:tabular-nums}.music-progress-bar{flex:1;height:4px;background:#ffffff1a;border-radius:2px;cursor:pointer;position:relative;transition:height .15s}.music-progress-bar:hover{height:6px}.music-progress-fill{height:100%;background:linear-gradient(90deg,#4caf50,#81c784);border-radius:2px;transition:width .1s linear}.music-progress-thumb{position:absolute;top:50%;width:10px;height:10px;border-radius:50%;background:#81c784;transform:translate(-50%,-50%);opacity:0;transition:opacity .15s;box-shadow:0 0 6px #4caf5099}.music-progress-bar:hover .music-progress-thumb{opacity:1}.music-controls{display:flex;align-items:center;justify-content:center;gap:4px;margin-bottom:8px}.music-ctrl-btn{width:36px;height:36px;border:none;border-radius:50%;background:transparent;color:var(--color-text);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.music-ctrl-btn:hover{background:#ffffff1a;transform:scale(1.1)}.music-ctrl-btn.play-btn{width:44px;height:44px;font-size:20px;background:linear-gradient(135deg,#4caf504d,#4caf5026);border:1px solid rgba(76,175,80,.4)}.music-ctrl-btn.play-btn:hover{background:linear-gradient(135deg,#4caf5080,#4caf504d);box-shadow:0 0 16px #4caf504d}.music-ctrl-btn.mode-btn,.music-ctrl-btn.list-btn{font-size:14px;opacity:.7}.music-ctrl-btn.mode-btn:hover,.music-ctrl-btn.list-btn:hover{opacity:1}.music-volume-row{display:flex;align-items:center;gap:8px;padding:0 4px}.volume-icon{font-size:14px;opacity:.7}.music-volume-slider{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:3px;background:#ffffff1f;border-radius:2px;outline:none;cursor:pointer}.music-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:#81c784;cursor:pointer;box-shadow:0 0 6px #4caf5066;transition:transform .15s}.music-volume-slider::-webkit-slider-thumb:hover{transform:scale(1.3)}.music-playlist{margin-top:10px;border-top:1px solid rgba(255,255,255,.08);padding-top:10px;animation:fadeIn .2s ease}.playlist-header{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;margin-bottom:8px;padding:0 4px;color:var(--color-text-dim)}.playlist-count{font-size:11px;opacity:.6}.playlist-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px;border:none;border-radius:8px;background:transparent;color:var(--color-text);cursor:pointer;text-align:left;transition:all .15s}.playlist-item:hover{background:#ffffff0f}.playlist-item.active{background:#4caf501f;border-left:2px solid #4CAF50}.playlist-idx{width:22px;height:22px;font-size:12px;font-weight:600;color:var(--color-text-dim);display:flex;align-items:center;justify-content:center;flex-shrink:0}.playlist-item.active .playlist-idx{color:#4caf50}.playlist-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.playlist-title{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playlist-artist{font-size:11px;color:var(--color-text-dim)}.playlist-playing-badge{font-size:10px;padding:2px 6px;border-radius:8px;background:#4caf5033;color:#81c784;font-weight:600;flex-shrink:0;white-space:nowrap}@media(max-width:480px){.music-widget{bottom:140px;right:12px}.music-fab{width:42px;height:42px}.music-player-card{width:260px;padding:12px}.music-disc{width:64px;height:64px}}.joystick-base{position:fixed;left:10px;bottom:110px;width:130px;height:130px;border-radius:50%;background:radial-gradient(circle,#ffffff1a,#ffffff0a);border:2px solid rgba(255,255,255,.2);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;z-index:1000;opacity:.45;transition:opacity .2s ease}.joystick-base:active{opacity:.85;background:radial-gradient(circle,#ffffff2e,#ffffff14);border-color:#ffffff59}.joystick-knob{width:52px;height:52px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ffffff8c,#fff3);border:1.5px solid rgba(255,255,255,.45);box-shadow:0 2px 8px #0003;pointer-events:none;transition:transform .15s ease-out;will-change:transform}.wasd-hint{position:fixed;left:6px;bottom:24px;z-index:50;pointer-events:none;opacity:.3;transition:opacity .3s ease;-webkit-user-select:none;user-select:none}.wasd-hint:hover{opacity:.3}.wasd-hint__layout{display:flex;flex-direction:column;align-items:center;gap:4px}.wasd-hint__row{display:flex;gap:4px;justify-content:center}.wasd-hint__key{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;font-weight:700;color:#222;background:linear-gradient(180deg,#fff,#e8e8e8);box-shadow:0 2px #bbb,0 3px 4px #00000026,inset 0 1px #fffc;border:1px solid #ccc;position:relative}.wasd-hint__key--active{background:linear-gradient(180deg,#ddd,#d0d0d0);box-shadow:0 1px #aaa,0 1px 2px #0000001a,inset 0 1px #ffffff80;transform:translateY(1px)}
