*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--accent-gold: #e8c17a;--accent-rose: #ff6b9d;--accent-green: #66ffaa;--glass-bg: rgba(10, 10, 30, .65);--glass-blur: 16px;--glass-border: rgba(255, 255, 255, .08);--text-primary: rgba(255, 255, 255, .95);--text-secondary: rgba(255, 255, 255, .6);--text-tertiary: rgba(255, 255, 255, .4);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 20px}html,body{width:100%;height:100%;overflow:hidden;background:#000;font-family:Noto Sans SC,-apple-system,BlinkMacSystemFont,sans-serif;color:var(--text-primary);user-select:none;-webkit-user-select:none}#nightSky{display:none;position:fixed;top:0;left:0;width:100%;height:100%;z-index:1;background:linear-gradient(175deg,#050510,#0a0a28 20%,#0e1035 45%,#0b0c2a 65%,#080818);overflow:hidden}#nightSky.active{display:block}#nightSky:before,#nightSky:after{content:"";position:absolute;width:200%;height:200%;top:-50%;left:-50%}#nightSky:before{background-image:radial-gradient(1.2px 1.2px at 10% 15%,rgba(255,255,255,.9),transparent),radial-gradient(1px 1px at 25% 35%,rgba(255,255,255,.6),transparent),radial-gradient(1.5px 1.5px at 40% 60%,rgba(255,255,255,.8),transparent),radial-gradient(.8px .8px at 55% 20%,rgba(255,255,255,.5),transparent),radial-gradient(1.2px 1.2px at 70% 75%,rgba(255,255,255,.7),transparent),radial-gradient(1px 1px at 85% 40%,rgba(255,255,255,.6),transparent),radial-gradient(.5px .5px at 15% 80%,rgba(255,255,255,.4),transparent),radial-gradient(1px 1px at 60% 45%,rgba(255,255,255,.5),transparent),radial-gradient(1.3px 1.3px at 90% 10%,rgba(255,255,255,.7),transparent),radial-gradient(.8px .8px at 35% 90%,rgba(255,255,255,.4),transparent);background-size:200px 200px;animation:starDrift 80s linear infinite}@keyframes starDrift{0%{transform:translate(0)}50%{transform:translate(-5%,-3%)}to{transform:translate(-10%,-5%)}}#fireworksCanvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none}#uploadScreen{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0a0a1a,#1a0a2e,#0a1a3e 60%,#0a0a1a);transition:opacity .6s ease,transform .6s ease}#uploadScreen.hidden{opacity:0;pointer-events:none;transform:scale(1.05)}.upload-container{position:relative;display:flex;flex-direction:column;align-items:center;gap:16px;padding:48px 40px;border-radius:24px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);max-width:360px;width:85%}.upload-glow{position:absolute;top:-80px;left:50%;transform:translate(-50%);width:200px;height:200px;background:radial-gradient(circle,rgba(232,193,122,.15) 0%,transparent 70%);pointer-events:none;animation:uploadGlowPulse 3s ease-in-out infinite}@keyframes uploadGlowPulse{0%,to{opacity:.6;transform:translate(-50%) scale(1)}50%{opacity:1;transform:translate(-50%) scale(1.2)}}.upload-icon{width:80px;height:80px;color:var(--accent-gold);opacity:.8;animation:uploadIconFloat 4s ease-in-out infinite}.upload-icon svg{width:100%;height:100%}@keyframes uploadIconFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.upload-title{font-size:22px;font-weight:500;letter-spacing:2px;background:linear-gradient(135deg,#e8c17a,#ff6b9d);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.upload-desc{font-size:14px;color:var(--text-secondary);text-align:center;line-height:1.6}.upload-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 32px;border-radius:50px;background:linear-gradient(135deg,var(--accent-gold),#d4a058);color:#1a1a2e;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 20px #e8c17a4d;margin-top:8px}.upload-btn:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 6px 30px #e8c17a80}.upload-btn:active{transform:scale(.97)}.upload-hint{font-size:12px;color:var(--text-tertiary);margin-top:4px}#topBar{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:12px 20px;padding-top:max(12px,env(safe-area-inset-top));background:linear-gradient(180deg,rgba(0,0,0,.4) 0%,transparent 100%);pointer-events:none;transition:opacity .3s ease}#topBar.hidden{opacity:0}#appTitle{font-size:16px;font-weight:500;letter-spacing:3px;color:var(--text-secondary);text-shadow:0 1px 8px rgba(0,0,0,.5)}#recIndicator{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-sm);background:#ff323233;pointer-events:auto}#recIndicator.hidden{display:none}.rec-dot{width:8px;height:8px;border-radius:50%;background:#f33;animation:recPulse 1s ease-in-out infinite}#recTime{font-size:13px;font-weight:500;color:#f66;font-variant-numeric:tabular-nums}#tapHint{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:50;animation:hintFade 4s ease-in-out infinite;pointer-events:none}#tapHint.hidden{display:none}.hint-text{font-size:15px;font-weight:300;color:var(--text-secondary);letter-spacing:4px;white-space:nowrap;text-shadow:0 1px 12px rgba(0,0,0,.5)}@keyframes hintFade{0%,to{opacity:.2}50%{opacity:.8}}#zoomIndicator{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:90;padding:8px 20px;border-radius:var(--radius-md);background:#0009;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:18px;font-weight:600;color:var(--text-primary);pointer-events:none;transition:opacity .3s ease}#zoomIndicator.hidden{opacity:0}#typePanel{position:fixed;bottom:90px;left:50%;transform:translate(-50%);z-index:80;padding:12px;border-radius:var(--radius-lg);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:0 8px 32px #0000004d;width:min(340px,90vw);transition:opacity .2s ease,transform .2s ease}#typePanel.hidden{opacity:0;transform:translate(-50%) translateY(16px);pointer-events:none}.type-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;max-height:60vh;overflow-y:auto}.type-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 10px;border:1px solid rgba(255,255,255,.05);border-radius:var(--radius-md);background:#ffffff08;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;font-family:inherit}.type-btn:active,.type-btn.active{background:#e8c17a26;border-color:#e8c17a4d;color:var(--accent-gold)}.type-icon{width:28px;height:28px}.type-label{font-size:11px;font-weight:400;letter-spacing:1px}#controlBar{position:fixed;bottom:0;left:0;right:0;z-index:80;display:flex;align-items:center;justify-content:space-around;padding:8px 12px;padding-bottom:max(8px,env(safe-area-inset-bottom));background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-top:1px solid var(--glass-border);box-shadow:0 -4px 24px #0003;transition:opacity .3s ease,transform .3s ease}#controlBar.hidden{opacity:0;transform:translateY(100%);pointer-events:none}.ctrl-btn{display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:6px 12px;border-radius:var(--radius-sm);transition:all .2s ease;font-family:inherit}.ctrl-btn:active{transform:scale(.92)}.ctrl-btn.active{color:var(--accent-gold)}.ctrl-icon{width:22px;height:22px}.ctrl-label{font-size:10px;font-weight:400;letter-spacing:1px}.launch-btn{width:56px;height:56px;border-radius:50%;border:2px solid rgba(232,193,122,.4)!important;background:linear-gradient(135deg,#e8c17a26,#e8c17a0d)!important;justify-content:center;position:relative}.launch-btn .launch-icon{width:24px;height:24px;stroke-width:2.5}.launch-btn:active{transform:scale(.9);box-shadow:0 2px 12px #e8c17a80,0 0 50px #e8c17a26}.launch-btn .ctrl-label{display:none}.launch-btn:after{content:"";position:absolute;width:100%;height:100%;border-radius:50%;border:1px solid rgba(232,193,122,.3);animation:launchPulse 2.5s ease-out infinite}@keyframes launchPulse{0%{transform:scale(1);opacity:.8}to{transform:scale(1.5);opacity:0}}.ctrl-btn.recording .rec-icon{color:#f33;animation:recPulse 1s ease-in-out infinite}@keyframes recPulse{0%,to{opacity:1}50%{opacity:.3}}.ctrl-btn{position:relative}.record-badge{position:absolute;top:0;right:2px;min-width:16px;height:16px;border-radius:8px;background:var(--accent-gold);color:#000;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 4px;line-height:1;box-shadow:0 1px 4px #0000004d}.record-badge.hidden{display:none}.more-tray{position:fixed;bottom:76px;left:50%;transform:translate(-50%);z-index:78;display:flex;gap:4px;padding:8px 12px;border-radius:var(--radius-lg);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:0 4px 20px #00000040;transition:opacity .2s ease,transform .2s ease}.more-tray.hidden{opacity:0;transform:translate(-50%) translateY(12px);pointer-events:none}.tray-btn{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 14px;border:none;border-radius:var(--radius-sm);background:none;color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:11px;font-weight:400;letter-spacing:.5px;transition:all .15s}.tray-btn svg{width:20px;height:20px}.tray-btn:active{transform:scale(.92)}.tray-btn.active{color:var(--accent-gold);background:#e8c17a1a}.ctrl-btn.auto-active{color:var(--accent-green)}#groundLineHint{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:95;pointer-events:none;animation:groundHintPulse 2s ease-in-out infinite;transition:opacity .4s ease}#groundLineHint.hidden{opacity:0;pointer-events:none;animation:none}#groundLineHint.flash .ground-hint-text{animation:groundFlash .5s ease-out 3}.ground-hint-text{padding:14px 28px;border-radius:var(--radius-lg);background:#ff8c1e2e;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,180,60,.3);font-size:16px;font-weight:500;color:#fc6;letter-spacing:2px;text-shadow:0 1px 8px rgba(255,140,30,.5);white-space:nowrap}@keyframes groundHintPulse{0%,to{opacity:.7;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.03)}}@keyframes groundFlash{0%{background:#ff501e66}to{background:#ff8c1e2e}}.ctrl-btn.ground-setting{color:#fa3;animation:groundBtnPulse 1.2s ease-in-out infinite}@keyframes groundBtnPulse{0%,to{opacity:1}50%{opacity:.5}}.ground-popup{position:absolute;bottom:70px;right:60px;display:flex;gap:6px;padding:8px;border-radius:var(--radius-md);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:0 4px 20px #0000004d;z-index:85;transition:opacity .15s ease,transform .15s ease}.ground-popup.hidden{opacity:0;transform:translateY(8px);pointer-events:none}.ground-popup-btn{padding:8px 16px;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.08);background:#ffffff0d;color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;font-family:inherit;white-space:nowrap}.ground-popup-btn:active{transform:scale(.95)}.ground-popup-btn:hover{background:#e8c17a26;color:var(--accent-gold);border-color:#e8c17a4d}.ground-popup-reset:hover{background:#ff503c26;color:#f86;border-color:#ff503c4d}#sizePanel{position:fixed;bottom:90px;left:50%;transform:translate(-50%);z-index:85;padding:16px;border-radius:var(--radius-lg);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:0 8px 32px #0000004d;width:min(320px,88vw);transition:opacity .2s ease,transform .2s ease}#sizePanel.hidden{opacity:0;transform:translate(-50%) translateY(16px);pointer-events:none}.size-panel-title{font-size:13px;font-weight:500;color:var(--text-secondary);letter-spacing:2px;margin-bottom:12px;text-align:center}.size-rows{display:flex;flex-direction:column;gap:8px}.size-row{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:var(--radius-sm);background:#ffffff08;border:1px solid rgba(255,255,255,.04);transition:all .2s ease}.size-row.active{background:#e8c17a14;border-color:#e8c17a33}.size-toggle{display:flex;align-items:center;gap:6px;cursor:pointer;min-width:55px}.size-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent-gold);cursor:pointer}.size-name{font-size:13px;font-weight:500;color:var(--text-secondary)}.size-row.active .size-name{color:var(--accent-gold)}.size-slider{flex:1;height:4px;-webkit-appearance:none;appearance:none;background:#ffffff1a;border-radius:2px;outline:none;cursor:pointer;transition:opacity .2s}.size-slider:disabled{opacity:.3;cursor:not-allowed}.size-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent-gold);box-shadow:0 0 6px #e8c17a66;cursor:pointer}.size-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent-gold);border:none;cursor:pointer}.size-value{font-size:12px;font-weight:500;color:var(--text-tertiary);min-width:38px;text-align:right;font-variant-numeric:tabular-nums}.size-row.active .size-value{color:var(--accent-gold)}.size-divider{height:1px;background:#ffffff14;margin:10px 0}.duration-row{display:flex;align-items:center;gap:10px;padding:6px 10px}.duration-label{font-size:13px;font-weight:500;color:var(--accent-gold);min-width:80px;white-space:nowrap}#recordHistory{position:fixed;bottom:90px;left:50%;transform:translate(-50%);z-index:85;padding:14px;border-radius:var(--radius-lg);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:0 8px 32px #0000004d;width:min(360px,90vw);max-height:320px;display:flex;flex-direction:column;transition:opacity .2s ease,transform .2s ease}#recordHistory.hidden{opacity:0;transform:translate(-50%) translateY(16px);pointer-events:none}.record-history-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.record-history-title{font-size:14px;font-weight:600;color:var(--text-primary);letter-spacing:1px}.record-history-close{width:28px;height:28px;border-radius:50%;border:1px solid rgba(255,255,255,.1);background:#ffffff0d;color:var(--text-tertiary);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.record-history-close:hover{background:#ff503c26;color:#f86}.record-history-list{overflow-y:auto;display:flex;flex-direction:column;gap:6px;max-height:240px}.record-history-empty{text-align:center;color:var(--text-tertiary);font-size:13px;padding:20px 0}.record-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:var(--radius-sm);background:#ffffff08;border:1px solid rgba(255,255,255,.04);transition:all .15s}.record-item:hover{background:#ffffff0f;border-color:#ffffff14}.record-item-info{display:flex;flex-direction:column;gap:2px}.record-item-name{font-size:13px;font-weight:600;color:var(--text-primary)}.record-item-meta{font-size:12px;color:var(--accent-gold);font-weight:500}.record-item-time{font-size:11px;color:var(--text-tertiary)}.record-item-actions{display:flex;gap:6px}.record-item-dl,.record-item-del{width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,255,255,.08);background:#ffffff0d;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.record-item-dl{color:#6cf}.record-item-dl:hover{background:#66ccff26;border-color:#66ccff4d}.record-item-dl:active{transform:scale(.9)}.record-item-del{color:var(--text-tertiary)}.record-item-del:hover{background:#ff503c26;color:#f86;border-color:#ff503c4d}.record-item-del:active{transform:scale(.9)}.custom-panel{position:fixed;bottom:90px;left:50%;transform:translate(-50%);z-index:88;padding:16px;border-radius:var(--radius-lg);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:0 8px 32px #0006;width:min(360px,92vw);transition:opacity .25s ease,transform .25s ease}.custom-panel.hidden{opacity:0;transform:translate(-50%) translateY(16px);pointer-events:none}.custom-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.custom-panel-title{font-size:15px;font-weight:600;background:linear-gradient(135deg,var(--accent-gold),var(--accent-rose));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:1px}.custom-panel-close{width:28px;height:28px;border-radius:50%;border:1px solid rgba(255,255,255,.1);background:#ffffff0d;color:var(--text-tertiary);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.custom-panel-close:hover{background:#ff503c26;color:#f86}.custom-tabs{display:flex;gap:4px;margin-bottom:14px;border-radius:var(--radius-sm);background:#ffffff0a;padding:3px}.custom-tab{flex:1;padding:8px 6px;border:none;border-radius:6px;background:transparent;color:var(--text-tertiary);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;font-family:inherit;text-align:center}.custom-tab.active{background:#e8c17a26;color:var(--accent-gold);box-shadow:0 1px 8px #e8c17a1a}.custom-tab:active{transform:scale(.96)}.custom-mode{display:none}.custom-mode.active{display:block}.custom-mode-desc{font-size:12px;color:var(--text-tertiary);margin-bottom:10px;line-height:1.5}.custom-input{width:100%;padding:12px 16px;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.1);background:#ffffff0f;color:var(--text-primary);font-size:18px;font-weight:500;font-family:inherit;outline:none;transition:all .2s;letter-spacing:3px;text-align:center;margin-bottom:12px}.custom-input:focus{border-color:#e8c17a66;background:#ffffff14;box-shadow:0 0 16px #e8c17a1a}.custom-input::placeholder{color:var(--text-tertiary);letter-spacing:1px;font-size:14px}.custom-textarea{width:100%;padding:12px 16px;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.1);background:#ffffff0f;color:var(--text-primary);font-size:14px;font-family:inherit;outline:none;resize:none;transition:all .2s;line-height:1.5;margin-bottom:12px}.custom-textarea:focus{border-color:#e8c17a66;background:#ffffff14;box-shadow:0 0 16px #e8c17a1a}.custom-textarea::placeholder{color:var(--text-tertiary)}.shape-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:12px;max-height:180px;overflow-y:auto}.shape-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.05);background:#ffffff08;cursor:pointer;transition:all .15s;font-family:inherit}.shape-item:active{transform:scale(.93)}.shape-item.selected{background:#e8c17a26;border-color:#e8c17a59;box-shadow:0 0 12px #e8c17a1a}.shape-item-icon{font-size:22px;line-height:1}.shape-item-name{font-size:10px;color:var(--text-tertiary);font-weight:400}.shape-item.selected .shape-item-name{color:var(--accent-gold)}.custom-launch-btn{width:100%;padding:12px;border-radius:50px;border:none;background:linear-gradient(135deg,var(--accent-gold),#d4a058);color:#1a1a2e;font-size:15px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .2s;box-shadow:0 4px 16px #e8c17a40}.custom-launch-btn:hover{transform:translateY(-1px);box-shadow:0 6px 24px #e8c17a66}.custom-launch-btn:active{transform:scale(.97)}.custom-launch-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.ai-launch-btn{background:linear-gradient(135deg,#7c3aed,#a855f7);box-shadow:0 4px 16px #7c3aed40;color:#fff}.ai-launch-btn:hover{box-shadow:0 6px 24px #7c3aed66}.ai-btn-loading{display:inline-flex;align-items:center;gap:6px}.ai-btn-loading.hidden,.ai-btn-text.hidden{display:none}.custom-settings{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:6px}.custom-slider-row{display:flex;align-items:center;gap:8px}.custom-slider-row label{font-size:12px;color:var(--text-secondary);min-width:28px;flex-shrink:0}.custom-slider-row input[type=range]{flex:1;height:4px;-webkit-appearance:none;appearance:none;background:#ffffff1f;border-radius:2px;outline:none}.custom-slider-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent-gold);cursor:pointer;box-shadow:0 2px 6px #0000004d}.custom-slider-row .slider-val{font-size:11px;color:var(--accent-gold);min-width:24px;text-align:right;font-variant-numeric:tabular-nums}
