@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap";:root{--bg: #141414;--bg-elevated: #1c1c1c;--bg-hover: #2a2a2a;--bg-overlay: rgba(20, 20, 20, .85);--text: #e8e8e8;--text-secondary: #aaa;--text-muted: #666;--accent: #4a9eff;--success: #5cb85c;--warning: #f0ad4e;--danger: #d9534f;--border: #2a2a2a;--border-light: #3a3a3a}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;height:100dvh;background:var(--bg);color:var(--text);font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden;touch-action:none}button{font-family:inherit;font-size:14px;font-weight:500;background:var(--bg-elevated);color:var(--text);border:1px solid var(--border);padding:8px 16px;border-radius:6px;cursor:pointer;transition:all .2s ease}button:hover:not(:disabled){border-color:var(--text-muted);background:var(--bg-hover)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--text);color:var(--bg);border-color:var(--text)}button.primary:hover:not(:disabled){background:var(--text-secondary);border-color:var(--text-secondary)}button.danger{background:var(--danger);color:#fff;border-color:var(--danger)}button.danger:hover:not(:disabled){background:#c9302c;border-color:#c9302c}.large-btn{padding:12px 32px;font-size:16px;font-weight:600;border-radius:8px;box-shadow:0 4px 12px #0000004d}.app-container{display:flex;flex-direction:column;height:100%;max-width:1200px;margin:0 auto}.header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:16px 24px;gap:16px;background:var(--bg);border-bottom:1px solid var(--border);z-index:10}.header-left{display:flex;flex-direction:column;gap:4px}.title{font-size:16px;font-weight:700;letter-spacing:-.02em}.status-badge{font-size:11px;font-weight:600;text-transform:uppercase;color:var(--text-muted);letter-spacing:.05em}.status-badge.success{color:var(--success)}.status-badge.accent{color:var(--accent)}.status-badge.danger{color:var(--danger)}.stats-row{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.stat-pill{display:flex;align-items:center;gap:8px;background:var(--bg-elevated);padding:6px 12px;border-radius:20px;border:1px solid var(--border)}.stat-pill .icon{font-size:12px;font-weight:600;color:var(--text-secondary)}.stat-pill .value{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}.accent-text{color:var(--accent)!important}.danger-text{color:var(--danger)!important}.warning-text{color:var(--warning)!important}.header-actions{display:flex;gap:8px}.icon-btn{padding:8px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:16px}.game-area{flex:1;position:relative;padding:24px;display:flex;flex-direction:column}.canvas-wrapper{flex:1;position:relative;background:#000;border-radius:12px;overflow:hidden;box-shadow:0 8px 32px #0006;border:1px solid var(--border)}canvas{width:100%;height:100%;display:block;object-fit:contain}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg-overlay);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;z-index:20;text-align:center;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.overlay h2{font-size:32px;font-weight:700;letter-spacing:-.02em;margin:0}.overlay .goal-text{font-size:18px;color:var(--text-secondary)}.overlay .score-text{font-size:20px;color:var(--text-secondary)}.overlay .score-text span{color:var(--accent);font-weight:700;font-size:24px}.danger-overlay h2{color:var(--danger)}.success-overlay h2{color:var(--success)}.desktop-info{position:absolute;bottom:24px;left:24px;background:#1c1c1ccc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:16px;border-radius:8px;border:1px solid var(--border);pointer-events:none;z-index:5}.desktop-info p{font-size:13px;color:var(--text-muted);margin-bottom:8px}.desktop-info p:last-child{margin-bottom:0}kbd{display:inline-block;background:var(--bg-hover);border-radius:4px;padding:2px 8px;font-family:inherit;font-size:12px;font-weight:600;color:var(--text-secondary);margin:0 2px;border:1px solid var(--border-light)}.mobile-controls-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;pointer-events:none}.touch-zone{flex:1;height:100%;pointer-events:auto;position:relative}.joystick-hint{position:absolute;bottom:60px;left:50%;transform:translate(-50%);color:#ffffff4d;font-size:14px;font-weight:500;pointer-events:none}.joystick-base{position:absolute;width:100px;height:100px;background:#ffffff1a;border:2px solid rgba(255,255,255,.2);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}.joystick-knob{position:absolute;top:50%;left:50%;width:40px;height:40px;margin:-20px 0 0 -20px;background:#fff9;border-radius:50%;pointer-events:none;box-shadow:0 2px 10px #0000004d}.fire-btn{position:absolute;bottom:60px;right:40px;width:80px;height:80px;background:#ffffff26;border:2px solid rgba(255,255,255,.3);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff9;font-weight:600;font-size:14px;-webkit-user-select:none;user-select:none;pointer-events:none;transition:transform .1s,background .1s}.fire-btn.active{background:#fff6;transform:scale(.9);color:#fff}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--bg-elevated);border-radius:16px;padding:32px;width:90%;max-width:480px;border:1px solid var(--border);box-shadow:0 16px 48px #00000080}.modal h3{font-size:18px;font-weight:600;margin-bottom:24px;text-align:center}.levels{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:12px;margin-bottom:24px}.level-btn{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px;border-radius:8px}.level-num{font-size:20px;font-weight:600}.level-name{font-size:10px;color:var(--text-muted);text-transform:uppercase}.level-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.level-btn.active .level-name{color:#fffc}.close-btn{width:100%;padding:12px;font-size:15px}@media(max-width:768px){.header{padding:12px 16px;flex-wrap:wrap}.header-left{flex-direction:row;align-items:center;gap:12px;width:100%;justify-content:space-between;margin-bottom:8px}.stats-row{width:100%;justify-content:flex-start;gap:8px}.stat-pill{padding:4px 8px}.stat-pill .icon{font-size:10px}.stat-pill .value{font-size:12px}.header-actions{position:absolute;top:10px;right:16px}.game-area{padding:0}.canvas-wrapper{border-radius:0;border-left:none;border-right:none;border-bottom:none}}
