@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Outfit:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg-void: #0a0f1e;--bg-space: #0f1624;--bg-glass: rgba(15, 23, 42, .4);--bg-glass-hover: rgba(22, 33, 56, .5);--bg-control: rgba(17, 25, 40, .5);--accent-primary: #06b6d4;--accent-bright: #22d3ee;--accent-dim: #0891b2;--accent-glow: rgba(6, 182, 212, .2);--accent-shimmer: rgba(34, 211, 238, .1);--success: #10b981;--error: #ef4444;--warning: #f59e0b;--border-glass: rgba(255, 255, 255, .08);--border-glass-bright: rgba(255, 255, 255, .15);--border-accent: rgba(6, 182, 212, .3);--text-primary: rgba(255, 255, 255, .95);--text-secondary: rgba(255, 255, 255, .65);--text-tertiary: rgba(255, 255, 255, .4);--text-accent: var(--accent-bright);--shadow-subtle: 0 1px 3px rgba(0, 0, 0, .4);--shadow-medium: 0 4px 12px rgba(0, 0, 0, .5);--shadow-strong: 0 8px 32px rgba(0, 0, 0, .6);--glow-cyan: 0 0 20px rgba(6, 182, 212, .3);--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 20px}*{box-sizing:border-box;margin:0;padding:0}body{margin:0;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:13px;font-weight:400;line-height:1.5;overflow:hidden;background:var(--bg-void);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#canvas-container{width:100vw;height:100vh;position:relative}.control-panel{position:fixed;top:16px;right:16px;background:var(--bg-glass);border:1px solid var(--border-glass-bright);border-radius:12px;padding:0;width:280px;max-height:calc(100vh - 32px);color:var(--text-primary);z-index:100;backdrop-filter:blur(24px) saturate(150%);-webkit-backdrop-filter:blur(24px) saturate(150%);box-shadow:var(--shadow-strong),inset 0 1px 1px #ffffff1a;overflow-y:auto;overflow-x:hidden;animation:slideIn .4s cubic-bezier(.16,1,.3,1);transition:all .3s ease}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.control-panel.minimized{max-height:48px;overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);background:#ffffff08;border-bottom:1px solid var(--border-glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:10}.panel-title{font-family:Outfit,sans-serif;font-size:16px;font-weight:600;letter-spacing:-.02em;color:var(--text-primary);margin:0}.minimize-button{width:24px;height:24px;border-radius:6px;border:1px solid var(--border-glass);background:var(--bg-control);color:var(--text-secondary);font-size:18px;font-weight:300;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.minimize-button:hover{background:var(--bg-glass-hover);border-color:var(--border-glass-bright);color:var(--text-primary);box-shadow:var(--glow-cyan)}.control-section{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-glass)}.control-section:last-child{border-bottom:none}.control-heading{font-family:Outfit,sans-serif;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:var(--space-sm)}.control-select{width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg-control);border:1px solid var(--border-glass);border-radius:8px;color:var(--text-primary);font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='rgba(255,255,255,0.5)' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:32px}.control-select:hover{background:var(--bg-glass-hover);border-color:var(--border-glass-bright)}.control-select:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-shimmer)}.control-slider{width:calc(100% - 50px);height:4px;border-radius:2px;background:var(--bg-control);outline:none;-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;margin-right:var(--space-sm)}.control-slider::-webkit-slider-thumb{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent-primary);border:2px solid var(--bg-void);box-shadow:var(--glow-cyan);cursor:pointer;transition:all .2s ease}.control-slider::-webkit-slider-thumb:hover{transform:scale(1.15);background:var(--accent-bright)}.control-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent-primary);border:2px solid var(--bg-void);box-shadow:var(--glow-cyan);cursor:pointer;transition:all .2s ease}.control-slider::-moz-range-thumb:hover{transform:scale(1.15);background:var(--accent-bright)}.slider-value{display:inline-block;min-width:40px;text-align:right;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:500;color:var(--text-secondary)}.control-button{width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg-control);border:1px solid var(--border-glass);border-radius:8px;color:var(--text-primary);font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;text-align:center}.control-button:hover{background:var(--bg-glass-hover);border-color:var(--accent-primary);color:var(--accent-bright);box-shadow:var(--glow-cyan);transform:translateY(-1px)}.control-button:active{transform:translateY(0)}.button-container{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm);margin-top:var(--space-sm)}.button-container .control-button{width:100%}.camera-position-display{font-family:JetBrains Mono,monospace;font-size:11px;padding:var(--space-sm);background:var(--bg-control);border:1px solid var(--border-glass);border-radius:6px;color:var(--text-secondary);text-align:center;letter-spacing:.02em;margin-bottom:var(--space-sm)}.bookmarks-container{margin-top:var(--space-sm);max-height:180px;overflow-y:auto;border:1px solid var(--border-glass);border-radius:8px;background:#0003}.bookmarks-empty{padding:var(--space-md);text-align:center;color:var(--text-tertiary);font-size:12px;font-style:italic}.bookmark-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-glass);transition:background .2s ease}.bookmark-item:last-child{border-bottom:none}.bookmark-item:hover{background:#ffffff08}.bookmark-name{flex:1;color:var(--text-primary);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:var(--space-sm)}.bookmark-buttons{display:flex;gap:4px;flex-shrink:0}.bookmark-button{padding:4px 10px;font-size:11px;background:var(--bg-control);color:var(--text-secondary);border:1px solid var(--border-glass);border-radius:4px;cursor:pointer;transition:all .2s ease;font-weight:500}.bookmark-button:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff;box-shadow:var(--glow-cyan)}.bookmark-button.delete{color:var(--error)}.bookmark-button.delete:hover{background:var(--error);color:#fff;border-color:var(--error)}.preset-row{display:grid;gap:6px;margin-bottom:6px}.preset-row:first-child{grid-template-columns:repeat(3,1fr)}.preset-row:last-child{grid-template-columns:repeat(4,1fr);margin-bottom:0}.preset-button{padding:var(--space-sm);font-size:12px;font-weight:600;background:var(--bg-control);color:var(--text-primary);border:1px solid var(--border-glass);border-radius:6px;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden}.preset-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,var(--accent-shimmer),transparent);transition:left .4s ease}.preset-button:hover:before{left:100%}.preset-button:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff;box-shadow:var(--glow-cyan);transform:translateY(-2px)}.preset-button:active{transform:translateY(0)}.control-panel::-webkit-scrollbar{width:6px}.control-panel::-webkit-scrollbar-track{background:transparent}.control-panel::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.control-panel::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}.bookmarks-container::-webkit-scrollbar{width:4px}.bookmarks-container::-webkit-scrollbar-track{background:transparent}.bookmarks-container::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.bookmarks-container::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}#loading-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:linear-gradient(135deg,var(--bg-void) 0%,var(--bg-space) 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1000;transition:opacity .5s ease}#loading-overlay.hidden{opacity:0;pointer-events:none}#loading-text{font-family:Outfit,sans-serif;font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:var(--space-md);letter-spacing:-.02em}#loading-progress{font-family:JetBrains Mono,monospace;font-size:32px;font-weight:700;color:var(--accent-bright);text-shadow:var(--glow-cyan)}#performance-monitor{position:fixed;bottom:var(--space-lg);left:var(--space-lg);background:var(--bg-glass);border:1px solid var(--border-glass-bright);border-radius:8px;padding:var(--space-sm) var(--space-md);font-family:JetBrains Mono,monospace;font-size:12px;color:var(--text-secondary);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);box-shadow:var(--shadow-medium);z-index:50}.fade-in{animation:fadeIn .4s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}*:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.file-selector-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:9999;display:flex;align-items:center;justify-content:center;padding:var(--space-lg);opacity:0;transition:opacity .3s ease}.file-selector-modal.visible{opacity:1}.file-selector-content{background:var(--bg-space);border:1px solid var(--border-glass-bright);border-radius:16px;max-width:600px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-strong),var(--glow-cyan);overflow:hidden}.file-selector-header{padding:var(--space-xl);border-bottom:1px solid var(--border-glass)}.file-selector-header h2{font-size:24px;font-weight:600;color:var(--text-primary);margin:0 0 var(--space-sm) 0}.file-selector-subtitle{font-size:14px;color:var(--text-secondary);margin:0}.file-selector-body{flex:1;overflow-y:auto;padding:var(--space-lg)}.file-group{margin-bottom:var(--space-xl)}.file-group:last-child{margin-bottom:0}.file-group-title{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 var(--space-md) 0;display:flex;align-items:center;justify-content:space-between;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-icon{font-size:12px;color:var(--text-tertiary);transition:transform .2s ease}.file-list{display:flex;flex-direction:column;gap:var(--space-sm)}.file-list.collapsed{display:none}.file-item{background:var(--bg-control);border:1px solid var(--border-glass);border-radius:8px;transition:all .2s ease}.file-item:hover{border-color:var(--border-glass-bright);background:var(--bg-glass-hover)}.file-item-label{display:flex;align-items:center;padding:var(--space-md);cursor:pointer;gap:var(--space-md)}.file-checkbox{width:20px;height:20px;cursor:pointer;flex-shrink:0}.file-item-info{flex:1;min-width:0}.file-item-name{font-size:15px;font-weight:500;color:var(--text-primary);margin-bottom:var(--space-xs);display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.recommended-badge{display:inline-block;padding:2px 8px;background:var(--accent-primary);color:var(--bg-void);font-size:11px;font-weight:600;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.file-item-details{display:flex;align-items:center;gap:var(--space-sm);font-size:13px;color:var(--text-secondary)}.file-size-badge{padding:2px 6px;border-radius:4px;font-weight:500;font-size:12px}.file-size-badge.good{background:#10b98133;color:var(--success)}.file-size-badge.warning{background:#f59e0b33;color:var(--warning)}.file-size-badge.danger{background:#ef444433;color:var(--error)}.file-description{color:var(--text-tertiary)}.file-selector-footer{padding:var(--space-lg) var(--space-xl);border-top:1px solid var(--border-glass);background:var(--bg-glass)}.selection-summary{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md);font-size:14px;color:var(--text-secondary)}.file-selector-actions{display:flex;gap:var(--space-md)}.file-selector-btn{flex:1;padding:var(--space-md) var(--space-lg);font-size:15px;font-weight:600;border-radius:8px;border:none;cursor:pointer;transition:all .2s ease}.file-selector-btn.primary{background:var(--accent-primary);color:var(--bg-void)}.file-selector-btn.primary:hover:not(:disabled){background:var(--accent-bright);transform:translateY(-1px)}.file-selector-btn.primary:disabled{background:var(--bg-control);color:var(--text-tertiary);cursor:not-allowed;opacity:.5}.file-selector-btn.secondary{background:var(--bg-control);color:var(--text-primary);border:1px solid var(--border-glass)}.file-selector-btn.secondary:hover{background:var(--warning);border-color:var(--warning);color:var(--bg-void)}@media screen and (max-width:768px){.file-selector-modal{padding:0;align-items:flex-end}.file-selector-content{max-width:100%;max-height:95vh;border-radius:16px 16px 0 0}.file-selector-header{padding:var(--space-lg)}.file-selector-header h2{font-size:20px}.file-selector-body{padding:var(--space-md)}.file-selector-footer{padding:var(--space-md) var(--space-lg)}.file-selector-actions{flex-direction:column}.file-selector-btn{width:100%}.control-panel{top:auto;bottom:0;left:0;right:0;width:100%;max-height:60vh;border-radius:16px 16px 0 0;transform:translateY(calc(100% - 56px));transition:transform .3s cubic-bezier(.4,0,.2,1)}.control-panel.expanded{transform:translateY(0)}.panel-header{cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.panel-header:after{content:"";display:block;width:40px;height:4px;background:var(--border-glass-bright);border-radius:2px;margin:var(--space-sm) auto 0}.control-button,.preset-button,.bookmark-button{min-height:44px;padding:var(--space-md) var(--space-lg);font-size:15px}.control-select{min-height:44px;font-size:15px;padding:var(--space-sm) var(--space-md)}.minimize-button{width:36px;height:36px;font-size:20px}.control-select option[value=fps]{display:none}#performance-monitor{bottom:70px;left:var(--space-sm);font-size:11px;padding:var(--space-xs) var(--space-sm)}}@media(hover:none)and (pointer:coarse){.control-button:hover,.preset-button:hover,.file-item:hover{background:var(--bg-control);transform:none}.control-button:active,.preset-button:active{background:var(--accent-primary);transform:scale(.98)}.file-item:active{border-color:var(--accent-primary)}}@media screen and (min-width:769px)and (max-width:1024px){.control-panel{width:320px;top:var(--space-lg);right:var(--space-lg)}.file-selector-content{max-width:500px}}@media screen and (max-height:500px)and (orientation:landscape){.control-panel{max-height:50vh;font-size:12px}.control-section{padding:var(--space-sm) var(--space-md)}.file-selector-content{max-height:80vh}}#canvas-container canvas{touch-action:none;-webkit-user-select:none;user-select:none}.mobile-controls{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:200}.mobile-controls>*{pointer-events:auto}.mobile-fab-group{position:absolute;display:flex;flex-direction:column;gap:var(--space-md)}.mobile-fab-group.top-right{top:var(--space-lg);right:var(--space-lg)}.mobile-fab{width:56px;height:56px;border-radius:28px;border:1px solid var(--border-accent);background:var(--bg-glass);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);color:var(--accent-bright);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-strong),var(--glow-cyan);transform-origin:center}.mobile-fab:active{transform:scale(.9);background:var(--accent-primary);color:#fff}.mobile-fab svg{width:24px;height:24px}.mobile-nav-bar{position:fixed;bottom:0;left:0;right:0;height:72px;background:var(--bg-space);border-top:1px solid var(--border-glass-bright);-webkit-backdrop-filter:blur(24px) saturate(150%);backdrop-filter:blur(24px) saturate(150%);display:flex;justify-content:space-around;align-items:center;padding:var(--space-sm) var(--space-md);box-shadow:0 -4px 24px #0009;z-index:150;animation:slideUp .4s cubic-bezier(.16,1,.3,1)}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.mobile-nav-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:var(--space-xs) var(--space-md);border:none;background:transparent;color:var(--text-secondary);font-size:11px;font-weight:500;cursor:pointer;transition:all .2s ease;border-radius:12px;min-width:64px;position:relative}.mobile-nav-btn svg{width:24px;height:24px;transition:all .2s ease}.mobile-nav-btn.active{color:var(--accent-bright)}.mobile-nav-btn.active:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:32px;height:3px;background:var(--accent-primary);border-radius:0 0 3px 3px;box-shadow:var(--glow-cyan)}.mobile-nav-btn.mobile-nav-btn-primary{color:var(--accent-bright);background:var(--bg-control);border:1px solid var(--border-accent)}.mobile-nav-btn:active{transform:scale(.95)}.virtual-joystick-container{position:fixed;bottom:120px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:var(--space-md);transition:opacity .3s ease,transform .3s cubic-bezier(.4,0,.2,1);animation:fadeInUp .4s cubic-bezier(.16,1,.3,1)}.virtual-joystick-container.hidden{opacity:0;transform:translate(-50%) translateY(20px);pointer-events:none}@keyframes fadeInUp{0%{opacity:0;transform:translate(-50%) translateY(40px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.virtual-joystick{position:relative;width:140px;height:140px}.joystick-base{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.joystick-ring{position:absolute;width:140px;height:140px;border-radius:50%;border:2px solid var(--border-accent);background:radial-gradient(circle,rgba(6,182,212,.1) 0%,transparent 70%);box-shadow:inset 0 0 20px #06b6d426,var(--glow-cyan)}.joystick-center{position:absolute;width:60px;height:60px;border-radius:50%;background:var(--bg-glass);border:1px solid var(--border-glass-bright);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.joystick-stick{position:absolute;top:50%;left:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:linear-gradient(135deg,var(--accent-primary),var(--accent-bright));border:2px solid white;box-shadow:0 4px 16px #06b6d466,var(--glow-cyan);cursor:pointer;touch-action:none;transition:transform .1s ease;z-index:10}.joystick-stick:after{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.3) 0%,transparent 70%)}.joystick-stick:active{box-shadow:0 2px 8px #06b6d499,0 0 30px #06b6d466}.joystick-hint{text-align:center;color:var(--text-secondary);font-size:12px;font-weight:500;padding:var(--space-sm) var(--space-lg);background:var(--bg-glass);border:1px solid var(--border-glass);border-radius:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.mobile-quick-menu{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0f1ed9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:flex-end;justify-content:center;z-index:300;opacity:0;transition:opacity .3s ease}.mobile-quick-menu.visible{opacity:1}.quick-menu-content{width:100%;max-width:100%;background:var(--bg-space);border-radius:24px 24px 0 0;border:1px solid var(--border-glass-bright);border-bottom:none;box-shadow:0 -8px 32px #0009;max-height:70vh;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .4s cubic-bezier(.16,1,.3,1)}.mobile-quick-menu.visible .quick-menu-content{transform:translateY(0)}.quick-menu-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xl) var(--space-lg);border-bottom:1px solid var(--border-glass);background:#ffffff05}.quick-menu-header h3{font-family:Outfit,sans-serif;font-size:20px;font-weight:600;color:var(--text-primary);margin:0}.quick-menu-close{width:40px;height:40px;border-radius:20px;border:1px solid var(--border-glass);background:var(--bg-control);color:var(--text-secondary);font-size:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.quick-menu-close:active{background:var(--bg-glass-hover);transform:scale(.95)}.quick-menu-body{flex:1;overflow-y:auto;padding:var(--space-md);display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md)}.quick-menu-item{min-height:64px;padding:var(--space-lg);border-radius:16px;border:1px solid var(--border-glass);background:var(--bg-control);color:var(--text-primary);font-size:15px;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;text-align:center}.quick-menu-item:active{background:var(--accent-primary);border-color:var(--accent-bright);transform:scale(.97)}.gesture-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0f1eeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;padding:var(--space-xl);z-index:400;opacity:0;pointer-events:none;transition:opacity .3s ease}.gesture-overlay:not(.hidden){opacity:1;pointer-events:auto}.gesture-overlay.hidden{display:none}.gesture-hint{max-width:400px;background:var(--bg-space);border:1px solid var(--border-glass-bright);border-radius:24px;padding:var(--space-xl);box-shadow:var(--shadow-strong);text-align:center;animation:scaleIn .4s cubic-bezier(.16,1,.3,1)}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.gesture-icon{margin-bottom:var(--space-lg);color:var(--accent-bright)}.gesture-hint h3{font-family:Outfit,sans-serif;font-size:24px;font-weight:600;color:var(--text-primary);margin-bottom:var(--space-lg)}.gesture-hint ul{list-style:none;margin:var(--space-lg) 0;text-align:left}.gesture-hint li{padding:var(--space-sm) 0;color:var(--text-secondary);font-size:14px;line-height:1.6}.gesture-hint strong{color:var(--accent-bright);font-weight:600}.gesture-dismiss{width:100%;min-height:48px;margin-top:var(--space-lg);border-radius:12px;border:1px solid var(--border-accent);background:var(--accent-primary);color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease}.gesture-dismiss:active{transform:scale(.97);background:var(--accent-dim)}.mobile-feedback{position:fixed;top:80px;left:50%;transform:translate(-50%) translateY(-20px);padding:var(--space-md) var(--space-xl);background:var(--bg-space);border:1px solid var(--border-accent);border-radius:24px;color:var(--text-primary);font-size:14px;font-weight:600;box-shadow:var(--shadow-strong),var(--glow-cyan);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:500;opacity:0;transition:all .3s cubic-bezier(.16,1,.3,1);pointer-events:none}.mobile-feedback.visible{opacity:1;transform:translate(-50%) translateY(0)}@media screen and (max-width:768px){.control-panel{bottom:72px;transform:translateY(100%);max-height:calc(100vh - 104px);box-shadow:0 -4px 24px #0009;transition:transform .3s cubic-bezier(.4,0,.2,1)}.control-panel.expanded{transform:translateY(0)}.panel-header{padding:var(--space-lg);min-height:64px;position:relative;cursor:pointer}.panel-header:before{content:"";position:absolute;top:var(--space-md);left:50%;transform:translate(-50%);width:48px;height:4px;background:var(--border-glass-bright);border-radius:2px}.panel-header{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.panel-header:after{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px}}
