:root{--bg: #090d14;--panel: #101620;--card: #151d2a;--line: #222d3d;--text: #e6edf3;--dim: #8b949e;--purple: #8b5cf6;--blue: #3b82f6;--orange: #f97316;--yellow: #eab308;--accent: #a855f7;--green: #22c55e;--sat: env(safe-area-inset-top, 0px);--sab: env(safe-area-inset-bottom, 0px);--sal: env(safe-area-inset-left, 0px);--sar: env(safe-area-inset-right, 0px)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;max-width:100%;overflow-x:hidden;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-text-size-adjust:100%}.shell{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;width:100%;max-width:100%;overflow-x:hidden;box-sizing:border-box;padding-left:var(--sal);padding-right:var(--sar);padding-bottom:var(--sab)}header{display:flex;flex-direction:column;gap:8px;padding:14px 20px;padding-top:calc(14px + var(--sat));background:var(--panel);border-bottom:1px solid var(--line);width:100%;box-sizing:border-box}.header-row-main{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px}.header-row-sub{display:flex;align-items:center;justify-content:space-between;width:100%;gap:10px}.header-sub-left{display:flex;align-items:center;gap:8px;min-width:0}.brand{font-size:16px;font-weight:700;letter-spacing:.5px;display:flex;align-items:center;gap:6px;white-space:nowrap}.brand b{color:var(--purple)}.version{font-size:11px;color:var(--dim);font-weight:400}.beta-badge{font-size:10px;padding:2px 6px;border-radius:4px;border:1px solid var(--purple);color:var(--purple);font-weight:600;white-space:nowrap}header small{color:var(--dim);font-size:11px}.brand-center{display:flex;align-items:center;gap:6px;flex-shrink:0}.youtube-link{display:inline-flex;align-items:center;gap:5px;color:red;text-decoration:none;font-size:11.5px;white-space:nowrap}.youtube-link strong{color:var(--text)}.actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.pwa-btn{background:linear-gradient(135deg,#7c3aed,#4f46e5);color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:6px;padding:6px 12px;font-size:11.5px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:transform .15s,box-shadow .15s}.pwa-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #7c3aed59}button.ghost{background:transparent;border:1px solid var(--line);color:var(--dim);border-radius:6px;padding:6px 10px;font-size:11.5px;cursor:pointer;white-space:nowrap}button.ghost:hover{color:var(--text);border-color:var(--dim)}main{flex:1;display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;padding:16px;width:100%;box-sizing:border-box}.column{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px;display:flex;flex-direction:column;min-width:0;box-sizing:border-box}.title{font-size:12px;font-weight:700;color:var(--dim);letter-spacing:.5px;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between}.title span{font-weight:400;font-size:10px}.section-title-with-help{margin-bottom:6px}.how-btn{background:transparent;border:1px solid var(--line);color:#94a3b8;border-radius:4px;padding:2px 8px;font-size:11px;cursor:pointer}.how-btn:hover{color:#e2e8f0;border-color:#94a3b8}.section-intro{font-size:11px;color:#64748b;margin-bottom:12px}.drop{border:2px dashed var(--line);border-radius:8px;padding:24px 16px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;margin-bottom:12px;background:var(--card)}.drop strong{font-size:13px}.drop small{color:var(--dim);font-size:11px}.choose{background:var(--purple);color:#fff;border:none;border-radius:4px;padding:6px 14px;font-size:11px;font-weight:600;cursor:pointer;margin-top:4px}.limit{font-size:10px;color:#64748b;margin-bottom:12px;text-align:center}.reference{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:10px;margin-bottom:14px}.reference.disabled{opacity:.5}.refhead{font-size:10px;font-weight:700;color:var(--dim);margin-bottom:6px}.reference select{width:100%;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:4px;padding:6px;font-size:11px}.refnote{font-size:10px;color:var(--dim);margin-top:6px}.files{flex:1;display:flex;flex-direction:column;gap:6px;overflow-y:auto;max-height:260px}.file{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:8px 10px;display:flex;align-items:center;gap:8px;font-size:11px}.fname{flex:1;min-width:0}.fname strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fname small{color:var(--dim)}.badge{background:#8b5cf633;color:#c4b5fd;border:1px solid var(--purple);font-size:9px;padding:2px 4px;border-radius:4px;font-weight:700}.x{background:transparent;border:none;color:var(--dim);font-size:14px;cursor:pointer}.x:hover{color:#ef4444}.empty{color:var(--dim);font-size:11px;text-align:center;padding:20px}.pipeline{display:flex;flex-direction:column;gap:10px}.stage{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:10px;display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:10px;transition:opacity .15s,border-color .15s}.stage.off{opacity:.5}.stage.dragging{opacity:.4;border:1px dashed var(--purple)}.stage.drag-over{border:2px solid var(--purple)}.grip{cursor:grab;color:var(--dim);font-size:14px;-webkit-user-select:none;user-select:none}.num{width:20px;height:20px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}.num.purple{background:#8b5cf633;color:#c4b5fd}.num.blue{background:#3b82f633;color:#93c5fd}.num.orange{background:#f9731633;color:#fdba74}.num.yellow{background:#eab30833;color:#fde047}.copy strong{display:block;font-size:11px}.copy small{color:var(--dim);font-size:10px}.toggle-wrap{display:flex;align-items:center;gap:6px}.toggle{border:1px solid var(--line);border-radius:4px;padding:4px 8px;font-size:10px;font-weight:700;cursor:pointer}.toggle.purple{background:var(--purple);color:#fff;border:none}.toggle.blue{background:var(--blue);color:#fff;border:none}.toggle.orange{background:var(--orange);color:#fff;border:none}.toggle.yellow{background:var(--yellow);color:#000;border:none}.stage.off .toggle{background:transparent;color:var(--dim);border:1px solid var(--line)}.mini-help{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;background:var(--line);color:var(--dim);font-size:9px;cursor:help;position:relative}.mini-help:hover:after{content:attr(data-help);position:absolute;bottom:20px;right:0;width:180px;background:#1e293b;color:#e2e8f0;padding:6px 8px;border-radius:4px;border:1px solid #475569;font-size:10px;z-index:100;line-height:1.4}.option-row{grid-column:1 / -1;margin-top:4px}.param-toggle{background:transparent;border:1px solid var(--line);color:var(--dim);border-radius:4px;padding:3px 8px;font-size:10px;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.param-toggle.open .chevron{transform:rotate(180deg)}.params{grid-column:1 / -1;display:none;flex-direction:column;gap:8px;padding-top:8px;border-top:1px solid var(--line)}.params.open{display:flex}.param{display:flex;align-items:center;justify-content:space-between;font-size:10px}.param select{background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:4px;padding:3px 6px;font-size:10px}.output{display:flex;flex-direction:column}.output-title{margin-bottom:12px}button.primary{background:var(--purple);color:#fff;border:none;border-radius:6px;padding:6px 14px;font-size:11px;font-weight:700;cursor:pointer}button.primary:disabled{opacity:.4;cursor:not-allowed}.info{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:10px;font-size:11px;color:var(--dim);margin-bottom:12px;line-height:1.5}.info span{color:#94a3b8}.results{flex:1;display:flex;flex-direction:column;gap:6px;overflow-y:auto;max-height:240px;margin-bottom:12px}.result{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:8px 10px;display:flex;align-items:center;gap:8px}.result span{color:var(--green)}.download{background:#22c55e33;color:#86efac;border:1px solid var(--green);border-radius:4px;padding:3px 8px;font-size:10px;cursor:pointer}.download-all{background:#1e293b;color:#e2e8f0;border:1px solid #475569;border-radius:6px;padding:8px;font-size:11px;font-weight:700;cursor:pointer;margin-bottom:8px}.download-all:hover{background:#334155}.status{font-size:10px;color:var(--dim);padding:6px 0;border-top:1px solid var(--line)}footer{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;padding:16px 20px;background:var(--panel);border-top:1px solid var(--line);font-size:11px;width:100%;box-sizing:border-box}footer b{display:block;color:var(--text);margin-bottom:2px}footer small{color:var(--dim);font-size:10px}footer a{color:var(--purple);text-decoration:none}.footer-brand{text-align:right}.modal{display:none;position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);align-items:center;justify-content:center;z-index:1000;padding:16px}.modal.open{display:flex}.player{background:var(--panel);border:1px solid var(--line);border-radius:8px;width:100%;max-width:520px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden}.player-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line)}.player-head strong{font-size:13px;display:block}.player-head small{font-size:10px;color:var(--dim)}.close{background:transparent;border:none;color:var(--dim);font-size:16px;cursor:pointer}.close:hover{color:var(--text)}.how-content{padding:16px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.how-section{border:1px solid var(--line);border-radius:6px;padding:8px 10px;background:var(--card)}.how-section summary{font-size:11px;font-weight:700;cursor:pointer;color:#cbd5e1}.how-section-body{margin-top:10px;display:flex;flex-direction:column;gap:8px}.how-step strong{display:block;font-size:11px;color:#a78bfa;margin-bottom:2px}.how-step p{margin:0;font-size:10.5px;color:var(--dim);line-height:1.4}.tutorial-video{position:relative;width:100%;padding-top:56.25%;border-radius:4px;overflow:hidden;margin:6px 0}.tutorial-video iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none}.tutorial-link{color:var(--purple);font-size:10px;text-decoration:none;display:inline-block;margin-top:4px}.tutorial-placeholder-text{font-size:10.5px;color:var(--dim);margin-bottom:4px}.experimental-note{font-size:10px;color:#94a3b8;background:#94a3b814;border:1px solid rgba(148,163,184,.2);border-radius:6px;padding:8px 10px;line-height:1.4}.pwa-group{margin-bottom:14px}.pwa-group-title{font-size:11px;font-weight:700;color:#818cf8;letter-spacing:.5px;margin:12px 0 6px 2px;display:flex;align-items:center;gap:6px}.pwa-item{border-bottom:1px solid rgba(255,255,255,.06);padding:2px 0;background:transparent}.pwa-item:last-child{border-bottom:none}.pwa-item summary{padding:7px 8px;font-size:11.5px;font-weight:600;color:#e2e8f0;cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;border-radius:4px;transition:background .15s,color .15s}.pwa-item summary::-webkit-details-marker{display:none}.pwa-item summary:after{content:"›";font-size:15px;color:#8b5cf6;transition:transform .2s ease;font-weight:700}.pwa-item[open] summary:after{transform:rotate(90deg)}.pwa-item summary:hover{background:#8b5cf61f;color:#c4b5fd}.pwa-item-body{padding:4px 10px 10px 12px;font-size:11px;color:#cbd5e1;line-height:1.55}.pwa-item-body strong{color:#c4b5fd}@media(max-width:768px){header{padding:10px 14px;padding-top:max(22px,calc(16px + var(--sat)));gap:8px}.header-row-main,.header-row-sub{display:flex;align-items:center;justify-content:space-between}.brand{font-size:14px}.brand-center{display:none}.actions{display:flex;align-items:center;gap:8px}.pwa-btn{padding:6px 12px;font-size:11.5px;border-radius:6px}button.ghost{padding:5px 10px;font-size:11px}header small{font-size:10px}main{grid-template-columns:100%;padding:12px 14px;gap:14px}footer{grid-template-columns:1fr;text-align:center;padding:14px}.footer-brand{text-align:center}}.shell.modal-blurred{filter:blur(4px) brightness(.65);pointer-events:none;-webkit-user-select:none;user-select:none;transition:filter .25s ease}.trial-banner{background:linear-gradient(90deg,#7c3aed33,#6366f133);border-bottom:1px solid rgba(139,92,246,.35);padding:8px 16px;display:flex;justify-content:center;align-items:center;box-sizing:border-box;animation:bannerSlideDown .2s ease-out}@keyframes bannerSlideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.trial-banner-content{max-width:1400px;width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11.5px;color:#e2e8f0}.trial-banner-text{display:inline-flex;align-items:center;gap:6px}.trial-banner-btn{background:linear-gradient(135deg,#7c3aed,#6366f1);color:#fff;border:none;border-radius:5px;padding:5px 12px;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap;transition:transform .15s,box-shadow .15s}.trial-banner-btn:hover{transform:translateY(-1px);box-shadow:0 3px 12px #7c3aed66}.trial-badge{background:#8b5cf62e;color:#c4b5fd;border:1px solid rgba(139,92,246,.45);font-size:9.5px;padding:2px 6px;border-radius:4px;letter-spacing:.5px;font-weight:700}.activate-header-btn{background:linear-gradient(135deg,#7c3aed,#6366f1);color:#fff;border:none;border-radius:5px;padding:4px 10px;font-size:11px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:transform .15s,box-shadow .15s}.activate-header-btn:hover{transform:translateY(-1px);box-shadow:0 3px 12px #7c3aed66}.gate-top-bar{display:flex;justify-content:flex-end;margin:-8px -4px -8px 0}.gate-close{background:transparent;border:none;color:var(--dim);font-size:18px;cursor:pointer;padding:4px 8px;line-height:1;border-radius:4px;transition:color .15s,background .15s}.gate-close:hover{color:#fff;background:#ffffff1a}.locked-btn{opacity:.85;cursor:pointer}.locked-btn:hover{opacity:1}.shell.trial-locked .pipeline .grip{cursor:not-allowed;opacity:.4}.gate-overlay{position:fixed;inset:0;z-index:2500;display:flex;align-items:center;justify-content:center;background:#090d14c7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:16px;box-sizing:border-box;width:100%;max-width:100%;overflow-y:auto}.gate-card{background:var(--panel);border:1px solid rgba(139,92,246,.4);box-shadow:0 20px 45px #000c,0 0 35px #8b5cf62e;border-radius:12px;width:100%;max-width:430px;padding:24px 20px;display:flex;flex-direction:column;gap:16px;box-sizing:border-box;animation:gatePopIn .25s cubic-bezier(.16,1,.3,1);margin:auto}@keyframes gatePopIn{0%{transform:scale(.94);opacity:0}to{transform:scale(1);opacity:1}}.gate-header{text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}.gate-lock-icon{width:44px;height:44px;border-radius:50%;background:#8b5cf626;border:1px solid var(--purple);display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:2px}.gate-title{font-size:16px;font-weight:700;color:var(--text);letter-spacing:.5px}.gate-title b{color:var(--purple)}.gate-desc{font-size:11.5px;color:var(--dim);line-height:1.45;margin:0;text-align:center}.gate-form{display:flex;flex-direction:column;gap:10px;width:100%}.gate-input-wrap{display:flex;flex-direction:column;gap:6px;width:100%}.gate-input-wrap label{font-size:10.5px;font-weight:700;color:#cbd5e1;letter-spacing:.4px}.gate-input-row{display:flex;flex-direction:column;gap:8px;width:100%}.gate-input{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:10px 12px;color:var(--text);font-size:11.5px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;letter-spacing:.4px;outline:none;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.gate-input:focus{border-color:var(--purple);box-shadow:0 0 0 2px #8b5cf640}.gate-btn{width:100%;background:linear-gradient(135deg,#7c3aed,#6366f1);color:#fff;border:none;border-radius:6px;padding:10px 16px;font-size:12.5px;font-weight:700;cursor:pointer;box-sizing:border-box;transition:transform .15s,box-shadow .15s}.gate-btn:hover{transform:translateY(-1px);box-shadow:0 4px 14px #7c3aed66}.gate-error{font-size:11px;color:#f87171;display:none;line-height:1.4}.gate-error.visible{display:block}.shake{animation:shakeErr .35s ease}@keyframes shakeErr{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.gate-product-box{background:#8b5cf614;border:1px dashed rgba(139,92,246,.35);border-radius:8px;padding:14px 12px;display:flex;flex-direction:column;gap:8px;text-align:center;align-items:center;width:100%;box-sizing:border-box}.gate-product-text{font-size:11px;color:#cbd5e1;line-height:1.4}.gate-product-link{width:100%;background:linear-gradient(135deg,#8b5cf640,#6366f140);color:#e2e8f0;border:1px solid rgba(139,92,246,.5);border-radius:6px;padding:9px 16px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;box-sizing:border-box;transition:all .15s}.gate-product-link:hover{background:linear-gradient(135deg,#7c3aed,#4f46e5);border-color:#a78bfa;color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #7c3aed4d}.lock-btn{background:transparent;border:1px solid var(--line);color:var(--dim);border-radius:5px;padding:4px 8px;font-size:10.5px;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.lock-btn:hover{color:#f87171;border-color:#f87171}
