:root{--ink: #f5f2e8;--muted: #9ca8a7;--soft: #d7dbcf;--bg: #090b0d;--panel: rgba(21, 24, 25, .82);--panel-soft: rgba(255, 255, 255, .055);--line: rgba(245, 242, 232, .13);--line-strong: rgba(245, 242, 232, .22);--accent: #d7ff49;--accent-2: #73d8ff;--rose: #ff7eac;--ok: #9dffb0;--shadow: 0 22px 70px rgba(0, 0, 0, .42);font-family:Microsoft YaHei UI,Aptos,Segoe UI,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(180deg,rgba(255,255,255,.035),transparent 220px),repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0 1px,transparent 1px 72px),linear-gradient(135deg,#090b0d,#101414 46%,#07090c)}body:before{position:fixed;inset:0;z-index:-1;content:"";opacity:.55;background-image:linear-gradient(rgba(215,255,73,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(115,216,255,.045) 1px,transparent 1px);background-size:36px 36px;mask-image:linear-gradient(to bottom,black,transparent 78%)}button,input,a{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}.app-shell{min-height:100vh;padding:14px}.studio{width:min(1180px,100%);margin:0 auto}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0 12px;backdrop-filter:blur(18px)}.brand{display:flex;align-items:center;min-width:0;gap:11px}.brand-mark,.drop-icon{width:44px;height:44px;display:grid;place-items:center;color:#071013;background:var(--accent);border:1px solid rgba(255,255,255,.28);border-radius:8px;box-shadow:0 12px 34px #d7ff4924}.brand strong,.brand span{display:block}.brand strong{font-family:"Bodoni 72",Didot,Georgia,serif;font-size:24px;line-height:1;letter-spacing:0}.brand span{margin-top:4px;color:var(--muted);font-size:12px}.icon-button{width:44px;height:44px;display:grid;place-items:center;color:var(--ink);background:#fff1;border:1px solid var(--line-strong);border-radius:8px}.progress{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:2px 0 16px;padding:5px;background:#ffffff0e;border:1px solid var(--line);border-radius:8px}.progress button{min-height:34px;display:flex;align-items:center;justify-content:center;gap:5px;color:var(--muted);background:transparent;border:0;border-radius:6px;font-size:12px}.progress .active{color:#071013;background:var(--accent);font-weight:900}.progress button:not(:disabled){cursor:pointer}.progress button:disabled{cursor:default;opacity:1}.stage{min-height:calc(100vh - 128px)}.upload-panel,.select-panel,.render-panel,.done-panel{display:grid;gap:16px}.hero-copy{position:relative;padding:min(10vh,74px) 0 8px}.eyebrow{width:fit-content;margin:0 0 14px;padding:6px 9px;color:var(--accent);background:#d7ff4914;border:1px solid rgba(215,255,73,.2);border-radius:8px;font-size:12px;font-weight:900}h1,h2,p{margin-top:0}h1{max-width:820px;margin-bottom:14px;font-family:"Bodoni 72",Didot,Georgia,Microsoft YaHei UI,serif;font-size:clamp(42px,8vw,88px);line-height:.98;letter-spacing:0}h2{margin-bottom:5px;font-size:19px;line-height:1.2;letter-spacing:0}p{color:var(--muted);line-height:1.65}.drop-zone{position:relative;overflow:hidden;display:grid;place-items:center;gap:10px;min-height:236px;padding:24px;text-align:center;background:linear-gradient(115deg,rgba(215,255,73,.12),transparent 40%),linear-gradient(295deg,rgba(115,216,255,.12),transparent 46%),#ffffff0b;border:1px dashed rgba(245,242,232,.34);border-radius:8px;box-shadow:var(--shadow)}.drop-zone:after{position:absolute;inset:12px;content:"";border:1px solid rgba(245,242,232,.08);border-radius:6px;pointer-events:none}.drop-zone input{position:absolute;inset:0;opacity:0;cursor:pointer}.drop-zone strong{font-size:24px}.drop-zone small,.feature small,.render-panel small{color:var(--muted)}.promise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.feature{min-height:118px;display:grid;align-content:start;gap:8px;padding:16px;background:#ffffff0e;border:1px solid var(--line);border-radius:8px}.feature span{color:var(--accent-2)}.notice,.save-note{margin:0;padding:12px 14px;color:var(--soft);background:#73d8ff14;border:1px solid rgba(115,216,255,.2);border-radius:8px}.source-video{position:fixed;width:1px;height:1px;opacity:0;pointer-events:none}.section-heading{display:flex;align-items:center;gap:12px;padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:8px}.section-heading svg{flex:0 0 auto;color:var(--accent)}.section-heading p{margin:0;font-size:13px}.compact{padding:0;background:transparent;border:0}.frame-picker{position:relative;overflow:hidden;display:grid;place-items:center;width:100%;aspect-ratio:16 / 9;background:linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),#101418;background-size:54px 54px;border:1px solid var(--line-strong);border-radius:8px;box-shadow:var(--shadow);cursor:crosshair}.frame-stage{position:relative;overflow:hidden;width:100%;max-width:100%;max-height:100%}.frame-stage img{width:100%;height:100%;object-fit:fill;display:block}.face-box{position:absolute;min-width:42px;min-height:42px;display:flex;align-items:flex-start;justify-content:center;padding:0;color:#071013;background:#d7ff491a;border:2px solid var(--accent);border-radius:8px;box-sizing:border-box;box-shadow:0 0 0 9999px #0000001f}.face-box span{position:absolute;top:6px;left:6px;transform:none;padding:5px 8px;color:#071013;background:var(--accent);border-radius:8px;font-size:12px;font-weight:900;white-space:nowrap}.face-box.selected{border-color:var(--ok);background:#9dffb02b}.face-box.pose-landmarker{border-color:var(--accent-2);background:#73d8ff21}.face-box.pose-landmarker span{background:var(--accent-2)}.face-box.manual{border-color:var(--rose);background:#ff7eac29}.face-box.manual span{background:var(--rose)}.tap-hint{position:absolute;left:50%;bottom:12px;z-index:2;max-width:calc(100% - 24px);padding:8px 11px;color:var(--ink);background:#090b0db8;border:1px solid var(--line-strong);border-radius:8px;font-size:12px;white-space:nowrap;pointer-events:none;backdrop-filter:blur(10px)}.loading-card,.render-panel{min-height:280px;display:grid;place-items:center;text-align:center}.spin{animation:spin 1s linear infinite}.render-actions{width:min(100%,420px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.error-detail{width:min(100%,560px);max-height:110px;margin:-4px 0 0;padding:10px 12px;overflow:auto;color:#ffd7df;background:#ff7eac1a;border:1px solid rgba(255,126,172,.28);border-radius:8px;font-size:12px;line-height:1.5;text-align:left;word-break:break-word}@keyframes spin{to{transform:rotate(360deg)}}.primary-button,.secondary-button{min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 18px;color:#071013;text-decoration:none;background:var(--accent);border:1px solid rgba(255,255,255,.18);border-radius:8px;box-shadow:0 12px 32px #d7ff4926;font-weight:900}.primary-button:disabled{opacity:.45;box-shadow:none}.secondary-button{color:var(--ink);background:#ffffff0b;border-color:var(--line-strong);box-shadow:none}.wide{width:100%}.edit-panel{display:grid;grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:16px}.preview-card{position:sticky;top:78px;overflow:hidden;aspect-ratio:9 / 16;max-height:calc(100vh - 104px);margin-inline:auto;background:#050607;border:1px solid var(--line-strong);border-radius:8px;box-shadow:var(--shadow)}.preview-card:after{position:absolute;inset:0;content:"";pointer-events:none;background:linear-gradient(transparent 49.8%,rgba(215,255,73,.2) 50%,transparent 50.2%),linear-gradient(90deg,transparent 49.8%,rgba(215,255,73,.15) 50%,transparent 50.2%);opacity:.25}.preview-canvas{width:100%;height:100%;display:block}.preview-badge{position:absolute;left:10px;top:10px;z-index:1;display:flex;align-items:center;gap:6px;padding:7px 9px;color:var(--ink);background:#090b0db8;border:1px solid var(--line-strong);border-radius:8px;font-size:12px;backdrop-filter:blur(10px)}.control-dock{display:grid;gap:14px;padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.segmented{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.segmented.two{grid-template-columns:repeat(3,1fr)}.segmented button{min-height:42px;color:var(--soft);background:#ffffff0b;border:1px solid var(--line);border-radius:8px;font-size:12px;font-weight:700}.segmented.two button:nth-child(1){border-bottom-color:#d7ff495c}.segmented.two button:nth-child(2){border-bottom-color:#9dffb05c}.segmented.two button:nth-child(3){border-bottom-color:#ff7eac61}.segmented .active{color:#071013;background:var(--accent-2);border-color:var(--accent-2);font-weight:900}.segmented.two .active:nth-child(1){background:var(--accent);border-color:var(--accent)}.segmented.two .active:nth-child(2){background:var(--ok);border-color:var(--ok)}.segmented.two .active:nth-child(3){background:var(--rose);border-color:var(--rose)}.range-control{display:grid;gap:10px;padding:12px;background:#ffffff09;border:1px solid var(--line);border-radius:8px}.range-control span{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:13px}.range-control strong{color:var(--ink)}.range-control input{width:100%;accent-color:var(--accent)}.render-orbit{width:118px;height:118px;display:grid;place-items:center;color:var(--accent);background:#ffffff0e;border:1px solid var(--line);border-radius:50%;box-shadow:inset 0 0 34px #d7ff4914}.meter{overflow:hidden;width:min(440px,100%);height:12px;background:#ffffff14;border:1px solid var(--line);border-radius:999px}.meter span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .3s ease}.result-video{width:100%;max-height:64vh;background:#050607;border:1px solid var(--line-strong);border-radius:8px;box-shadow:var(--shadow)}.actions{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px}.save-note{font-size:13px}@media(hover:hover){.primary-button:hover,.icon-button:hover,.secondary-button:hover,.segmented button:hover{transform:translateY(-1px)}}@media(max-width:760px){.app-shell{padding:10px}.topbar{padding-top:6px}.brand strong{font-size:21px}.progress{gap:4px}.progress button{min-height:32px;font-size:11px}.render-actions{grid-template-columns:1fr}h1{font-size:clamp(39px,12vw,58px)}.promise-grid,.edit-panel,.actions{grid-template-columns:1fr}.preview-card{position:relative;top:auto;width:min(100%,390px);max-height:none}.control-dock{padding-bottom:max(14px,env(safe-area-inset-bottom))}.frame-picker{aspect-ratio:9 / 16}.frame-picker img{object-fit:fill}}
