:root{--ink:#191714;--paper:#f4f0e9;--cream:#e8dfd2;--accent:#cf5e3d;--muted:#746e65;--line:#d4ccc0;--ok:#52745b;--dark:#24211d}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;min-height:100vh}.noise{position:fixed;inset:0;pointer-events:none;opacity:.16;z-index:20;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E")}header{height:86px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 4vw;gap:40px;position:sticky;top:0;background:rgba(244,240,233,.92);backdrop-filter:blur(15px);z-index:10}.brand{display:flex;align-items:center;gap:11px;color:inherit;text-decoration:none;font-family:Georgia,serif;font-size:16px;line-height:.9;letter-spacing:.02em}.brand small{font:9px/1.5 Inter,sans-serif;letter-spacing:.2em}.brand-mark{display:grid;place-items:center;width:39px;height:47px;background:var(--ink);color:var(--paper);font:italic 27px Georgia,serif}nav{display:flex;gap:3px;margin:auto}button{font:inherit}.nav{border:0;background:transparent;padding:10px 20px;color:var(--muted);cursor:pointer;border-radius:30px}.nav.active{background:var(--dark);color:white}.system-pill{font-size:12px;color:var(--muted);border:1px solid var(--line);border-radius:30px;padding:9px 14px}.system-pill i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#c4933c;margin-right:5px}.system-pill.ok i{background:var(--ok)}main{max-width:1420px;margin:auto;padding:0 4vw 80px}.view{display:none}.view.active{display:block}.hero-copy{padding:72px 0 42px;max-width:870px}.eyebrow{font-size:11px;letter-spacing:.22em;color:var(--accent);font-weight:700}.hero-copy h1,.section-head h2{font:500 clamp(42px,6vw,82px)/.98 Georgia,"Songti SC",serif;letter-spacing:-.04em;margin:20px 0}.hero-copy h1 em{font-weight:400;color:var(--accent)}.hero-copy>p:last-child{color:var(--muted);font-size:16px;max-width:620px;line-height:1.8}.studio-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);gap:22px}.upload-card,.pipeline-card,.run-detail,.settings-grid,.status-grid{border:1px solid var(--line);background:rgba(255,255,255,.32)}.upload-card{padding:18px}.drop-zone{display:grid;place-items:center;position:relative;min-height:520px;background:#ded6ca;overflow:hidden;cursor:pointer;border:1px dashed #aaa095}.drop-zone.drag{outline:3px solid var(--accent);outline-offset:-7px}.drop-zone input{display:none}.drop-zone img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:none;background:#ded6ca}.drop-zone.has-image img{display:block}.drop-zone.has-image .drop-prompt{display:none}.drop-prompt{text-align:center;display:flex;flex-direction:column;gap:12px}.upload-icon{display:grid;place-items:center;width:64px;height:64px;border:1px solid #877e73;border-radius:50%;font-size:25px;margin:0 auto 8px}.drop-prompt strong{font:25px Georgia,"Songti SC",serif}.drop-prompt small{color:var(--muted)}.upload-meta{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:12px;padding:17px 4px 13px;font-size:10px;letter-spacing:.14em;color:var(--muted)}.upload-meta strong{color:var(--ink)}.primary{width:100%;border:0;background:var(--accent);color:white;padding:18px 22px;display:flex;justify-content:space-between;cursor:pointer;font-weight:700}.primary:hover{filter:brightness(.94)}.primary:disabled{opacity:.5;cursor:wait}.pipeline-card{padding:28px;display:flex;flex-direction:column}.card-title{display:flex;justify-content:space-between;font:20px Georgia,"Songti SC",serif}.card-title b{font:14px Inter,sans-serif;color:var(--accent)}.progress-track{height:2px;background:var(--line);margin:23px 0}.progress-track i{display:block;height:100%;width:0;background:var(--accent);transition:width .4s}.pipeline-card ol{list-style:none;padding:0;margin:0}.pipeline-card li{display:grid;grid-template-columns:42px 1fr 20px;align-items:center;border-bottom:1px solid var(--line);padding:18px 0;color:#8b847a}.pipeline-card li>i{font:10px Inter,sans-serif}.pipeline-card li span{font:15px Georgia,"Songti SC",serif}.pipeline-card li small{display:block;font:10px/1.8 Inter,sans-serif;letter-spacing:.08em;color:#a29a90}.pipeline-card li.active{color:var(--accent)}.pipeline-card li.done{color:var(--ink)}.pipeline-card li.done>b{color:var(--ok)}.current-step{margin:auto 0 0;padding-top:22px;font-size:12px;color:var(--muted)}.final-panel{margin-top:22px;background:var(--dark);color:white;padding:28px;display:grid;grid-template-columns:minmax(250px,380px) 1fr;gap:40px;align-items:center}.final-panel video{width:100%;max-height:620px;background:#000}.final-panel h2{font:42px Georgia,"Songti SC",serif;margin:0 0 15px}.final-panel p{color:#cfc7bc;line-height:1.7}.hidden{display:none}.section-head{display:flex;justify-content:space-between;align-items:end;padding:58px 0 26px}.section-head h2{font-size:52px;margin:10px 0 0}.secondary{border:1px solid var(--ink);background:transparent;padding:10px 18px;cursor:pointer}.runs-layout{display:grid;grid-template-columns:340px 1fr;gap:18px}.run-list{display:flex;flex-direction:column;gap:8px}.run-item{border:1px solid var(--line);background:rgba(255,255,255,.25);padding:18px;text-align:left;cursor:pointer}.run-item.active{border-color:var(--accent);background:#efe1d7}.run-item strong,.run-item span{display:block}.run-item strong{font-size:13px}.run-item span{font-size:11px;color:var(--muted);margin-top:8px}.run-detail{min-height:500px;padding:26px;overflow:hidden}.run-detail.empty{display:grid;place-items:center;color:var(--muted)}.detail-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:20px}.detail-head h3{font:31px Georgia,serif;margin:0}.badge{font-size:10px;padding:7px 10px;background:var(--dark);color:white;letter-spacing:.1em}.detail-actions{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0}.detail-actions button,.shot-actions button{border:1px solid var(--line);background:transparent;padding:7px 10px;font-size:11px;cursor:pointer}.danger{color:#9d382c!important;border-color:#b77b70!important}.detail-video{width:min(100%,390px);max-height:610px;background:#111}.json-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.json-card{border-top:1px solid var(--line);padding-top:13px;min-width:0}.json-card h4{font:18px Georgia,serif}.json-card pre{max-height:260px;overflow:auto;background:#24211d;color:#e9e0d4;padding:14px;font:10px/1.55 Consolas,monospace;white-space:pre-wrap}.shots{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:18px}.shot{border:1px solid var(--line);padding:10px}.shot img,.shot video{width:100%;aspect-ratio:9/16;object-fit:cover;background:#ccc}.shot h4{margin:8px 0 2px}.shot p{font-size:10px;color:var(--muted)}.shot-actions{display:flex;gap:4px}.status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));padding:18px;margin-bottom:16px}.status-item{padding:20px;border-right:1px solid var(--line)}.status-item b{display:block;font:26px Georgia,serif;margin-top:8px}.settings-grid{display:grid;grid-template-columns:repeat(2,1fr);padding:24px;gap:0 30px}.setting{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:14px 0}.setting span{color:var(--muted)}.settings-note,.error{color:var(--muted);font-size:12px}.error{color:#a53b30}.toast{position:fixed;right:22px;bottom:22px;background:var(--dark);color:white;padding:14px 18px;transform:translateY(100px);opacity:0;transition:.3s;z-index:30}.toast.show{transform:none;opacity:1}@media(max-width:850px){header{padding:0 18px;gap:10px}.system-pill{display:none}.brand{margin-right:auto}nav{margin:0}.nav{padding:9px 12px}.studio-grid,.runs-layout,.final-panel{grid-template-columns:1fr}.hero-copy{padding-top:44px}.drop-zone{min-height:430px}.pipeline-card{min-height:560px}.runs-layout{display:block}.run-list{margin-bottom:14px}.json-grid,.settings-grid{grid-template-columns:1fr}}
.login-gate { position: fixed; inset: 0; display: none; place-items: center; padding: 24px; z-index: 100; background: rgba(5,5,8,.78); backdrop-filter: blur(16px); }
.auth-prompt .login-gate { display: grid; }
.login-card { position: relative; width: min(430px, 100%); display: grid; gap: 18px; padding: 36px; border: 1px solid rgba(255,255,255,.13); border-radius: 28px; background: rgba(14,14,18,.97); box-shadow: 0 28px 90px rgba(0,0,0,.42); }
.login-close { position: absolute; top: 18px; right: 18px; width: 34px; height: 34px; border: 0; border-radius: 50%; background: rgba(255,255,255,.08); color: inherit; font-size: 1.3rem; cursor: pointer; }
.login-card .brand-mark { width: 48px; height: 48px; display: grid; place-items: center; }
.login-card h1 { margin: -8px 0 4px; font-size: clamp(2rem, 6vw, 3.4rem); }
.login-card label { display: grid; gap: 8px; }
.login-card label span { color: var(--muted); font-size: .82rem; letter-spacing: .08em; }
.login-card input { width: 100%; padding: 14px 16px; border-radius: 12px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.06); color: inherit; }
.login-card .error { min-height: 1.4em; margin: 0; }
.logout-button { white-space: nowrap; }
