@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600&display=swap";:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body,html{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background-color:#000}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--glass-bg: rgba(255, 255, 255, .1);--glass-border: rgba(255, 255, 255, .2);--glass-shadow: 0 8px 32px 0 rgba(31, 38, 135, .37);--accent-color: #00f2ff;--text-main: #ffffff;--text-secondary: #aaaaaa}body{margin:0;font-family:Outfit,sans-serif;overflow:hidden;background-color:#000}.controls-panel{position:absolute;top:20px;left:20px;width:320px;max-height:80vh;overflow-y:auto;overflow-x:hidden;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:16px;box-shadow:var(--glass-shadow);padding:24px;color:var(--text-main);transition:transform .3s ease;z-index:10}.controls-panel h1{font-size:1.5rem;font-weight:600;margin:0 0 20px;text-align:center;background:linear-gradient(90deg,#fff,var(--accent-color));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.section{margin-bottom:20px;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:15px}.section-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-weight:600;margin-bottom:10px;color:var(--text-main);transition:color .2s}.section-header:hover{color:var(--accent-color)}.section-content{display:flex;flex-direction:column;gap:12px}.control-group{display:flex;flex-direction:column;gap:6px}label{font-size:.85rem;color:var(--text-secondary);display:flex;justify-content:space-between}select{background:#0000004d;border:1px solid var(--glass-border);border-radius:8px;padding:8px;color:#fff;font-family:inherit;outline:none;cursor:pointer}select:focus{border-color:var(--accent-color)}input[type=range]{appearance:none;-webkit-appearance:none;width:100%;background:transparent}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;height:16px;width:16px;border-radius:50%;background:var(--accent-color);cursor:pointer;margin-top:-6px;box-shadow:0 0 10px var(--accent-color);transition:transform .1s}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}input[type=range]::-webkit-slider-runnable-track{width:100%;height:4px;cursor:pointer;background:#fff3;border-radius:2px}button{background:#ffffff1a;border:1px solid var(--glass-border);padding:8px 16px;color:#fff;border-radius:8px;cursor:pointer;font-family:inherit;transition:all .2s;font-size:.9rem}button:hover{background:#fff3;border-color:var(--accent-color);box-shadow:0 0 15px #00f2ff33}button.export-btn{width:100%;background:linear-gradient(45deg,#00f2ff33,#00f2ff66);font-weight:600;text-transform:uppercase;letter-spacing:1px;margin-top:10px}button.export-btn:hover{background:linear-gradient(45deg,#00f2ff66,#00f2ff99)}.preset-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.instructions{margin-top:20px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);font-size:.75rem;color:var(--text-secondary);text-align:center}.controls-panel::-webkit-scrollbar{width:6px}.controls-panel::-webkit-scrollbar-track{background:transparent}.controls-panel::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.controls-panel::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.controls-panel .section-header{width:100%;background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;text-align:left;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.controls-panel .section-header:hover{border-color:transparent;color:var(--accent-color)}.mode-switch{margin-bottom:18px}.quality-grid{grid-template-columns:repeat(4,1fr)}.scene-grid{grid-template-columns:1fr;gap:6px}.scene-grid button{text-align:left}.controls-panel button.active{background:var(--accent-color);border-color:var(--accent-color);color:#04141a;font-weight:600}.control-group label{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.control-group label .value{color:var(--accent-color);font-variant-numeric:tabular-nums;font-size:.8rem}.note{margin:6px 0 0;font-size:.72rem;line-height:1.35;color:var(--text-secondary)}.note.warn{color:#ffc48a}.toggle-list{display:grid;gap:6px}.toggle{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;font-size:.82rem;background:#ffffff0f;border:1px solid var(--glass-border);color:var(--text-secondary)}.toggle.on{background:#00f2ff29;border-color:var(--accent-color);color:var(--text-main)}.toggle .cost{font-size:.68rem;opacity:.75;font-variant-numeric:tabular-nums}.export-btn[disabled]{opacity:.45;cursor:not-allowed}.progress{position:relative;margin-top:10px;height:22px;border-radius:6px;background:#ffffff14;overflow:hidden;display:flex;align-items:center;justify-content:center}.progress-bar{position:absolute;inset:0 auto 0 0;background:var(--accent-color);opacity:.35;transition:width .15s linear}.progress span{position:relative;font-size:.72rem;font-variant-numeric:tabular-nums}.hud{position:absolute;right:16px;bottom:16px;z-index:10;display:flex;gap:14px;align-items:center;padding:8px 14px;background:#00000073;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.12);border-radius:10px;font-family:Outfit,system-ui,sans-serif;font-size:.72rem;font-variant-numeric:tabular-nums;color:#ffffffb3;pointer-events:none}.hud-idle{color:#7dffb0}.hud-busy{color:var(--accent-color)}.error-toast{position:absolute;left:50%;bottom:24px;transform:translate(-50%);z-index:20;max-width:min(640px,90vw);padding:12px 16px;background:#3c0c0ceb;border:1px solid rgba(255,120,120,.5);border-radius:10px;color:#ffd9d9;font-size:.78rem;cursor:pointer}.error-toast pre{margin:6px 0 0;white-space:pre-wrap;word-break:break-word;font-size:.7rem;max-height:30vh;overflow:auto}@media(max-width:700px){.controls-panel{top:10px;left:10px;right:10px;width:auto;max-height:55vh;padding:16px}.hud{right:10px;bottom:10px;font-size:.66rem}}.App{position:fixed;inset:0;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.nav-bar{position:absolute;left:50%;bottom:16px;transform:translate(-50%);z-index:12;display:flex;flex-wrap:wrap;justify-content:center;gap:6px;padding:6px;background:#00000073;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.12);border-radius:12px}.nav-group{display:flex;align-items:stretch;gap:4px;padding:0 3px}.nav-group+.nav-group{border-left:1px solid rgba(255,255,255,.12)}.nav-bar button{padding:6px 10px;font-size:.76rem;border-radius:7px;background:#ffffff0f}.nav-bar button:disabled{cursor:default;opacity:1}.nav-bar button.active{background:var(--accent-color);border-color:var(--accent-color);color:#04141a;font-weight:600}.nav-readout{display:flex;align-items:center;padding:0 6px;font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--accent-color);min-width:40px;justify-content:center}.hud-warn{color:#ffc48a}.crosshair{position:absolute;left:50%;top:50%;width:22px;height:22px;margin:-11px 0 0 -11px;z-index:11;pointer-events:none;opacity:.8;background:linear-gradient(#fff,#fff) 50% 0 / 1px 8px no-repeat,linear-gradient(#fff,#fff) 50% 100% / 1px 8px no-repeat,linear-gradient(#fff,#fff) 0 50% / 8px 1px no-repeat,linear-gradient(#fff,#fff) 100% 50% / 8px 1px no-repeat;filter:drop-shadow(0 0 1px rgba(0,0,0,.9))}.link-btn{width:100%;background:none;border:1px solid var(--glass-border);font-size:.78rem;color:var(--text-secondary)}.help-backdrop{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:20px;background:#0000008c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.help-panel{width:min(460px,100%);max-height:80vh;overflow-y:auto;padding:20px 24px 24px;background:#0c1016eb;border:1px solid var(--glass-border);border-radius:16px;box-shadow:var(--glass-shadow);color:var(--text-main)}.help-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.help-head h2{margin:0;font-size:1.15rem;font-weight:600}.help-head button{padding:2px 10px;font-size:1.1rem;line-height:1.2;background:none;border:none;color:var(--text-secondary)}.help-panel h3{margin:18px 0 8px;font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-color)}.help-row{display:flex;align-items:baseline;gap:12px;padding:3px 0;font-size:.82rem}.help-keys{flex:0 0 168px;display:flex;flex-wrap:wrap;align-items:center;gap:3px}.help-sep{color:var(--text-secondary);font-size:.7rem}.key{display:inline-block;padding:2px 7px;font-family:inherit;font-size:.72rem;line-height:1.4;color:var(--text-main);background:#ffffff14;border:1px solid rgba(255,255,255,.22);border-bottom-width:2px;border-radius:5px;white-space:nowrap}.help-text{flex:1;color:var(--text-secondary)}@media(max-width:700px){.nav-bar{left:10px;right:10px;bottom:10px;transform:none;justify-content:flex-start}.hud{bottom:auto;top:10px;right:10px}.help-keys{flex-basis:110px}}.nav-blocked{position:absolute;left:50%;bottom:78px;transform:translate(-50%);z-index:12;padding:7px 14px;font-size:.76rem;color:#ffc48a;background:#281608d9;border:1px solid rgba(255,196,138,.4);border-radius:9px;pointer-events:none;white-space:nowrap}.crosshair.blocked{opacity:.95;background:linear-gradient(#ffc48a,#ffc48a) 50% 0 / 1px 8px no-repeat,linear-gradient(#ffc48a,#ffc48a) 50% 100% / 1px 8px no-repeat,linear-gradient(#ffc48a,#ffc48a) 0 50% / 8px 1px no-repeat,linear-gradient(#ffc48a,#ffc48a) 100% 50% / 8px 1px no-repeat}@media(max-width:700px){.nav-blocked{left:10px;right:10px;transform:none;bottom:96px;text-align:center;white-space:normal}}
