:root{--bg:#f5f4ef;--paper:#fffefa;--ink:#24392e;--muted:#637267;--green:#315c45;--soft:#e8eee4;--line:#dde3d9;--warm:#a96936;--error:#9d382f;--radius:13px}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font:16px/1.7 "Microsoft YaHei",system-ui,sans-serif}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:4px}button{color:inherit}button:disabled{cursor:not-allowed;opacity:.5}button,a,input,select,textarea{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--warm)}button{transition:background .16s,border-color .16s,transform .16s}button:active:not(:disabled){transform:translateY(1px)}.skip{position:fixed;top:-90px;left:20px;z-index:100;background:white;padding:12px}.skip:focus{top:10px}
.sidebar{position:fixed;inset:0 auto 0 0;width:224px;background:#fafaf5;border-right:1px solid var(--line);padding:32px 22px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;font-weight:700;font-size:21px;letter-spacing:-.5px;color:var(--ink)}.brand:hover{text-decoration:none}.brand-icon{width:39px;height:39px;background:var(--green);color:#fff;border-radius:10px;display:grid;place-items:center;font-size:21px}.brand small{display:block;font-weight:400;font-size:11px;letter-spacing:1px;color:var(--muted);margin-top:3px}nav{display:grid;gap:8px;margin-top:42px}nav a{display:flex;align-items:center;gap:12px;min-height:48px;padding:10px 14px;border-radius:9px;color:var(--muted)}nav a[aria-current=page]{background:var(--soft);color:var(--green);font-weight:600}nav a:hover{background:#eff1e9;text-decoration:none}.nav-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding-top:20px;font-size:12px}.sidebar-bottom p{font-size:14px;margin:0 0 6px}.sidebar-bottom small{display:block;margin-top:12px;color:var(--muted);font-size:11px}
.workspace{margin-left:224px}.preview-banner{background:#ecece3;border-bottom:1px solid var(--line);padding:9px 36px;color:#4c5b4e;font-size:12px}.preview-banner span{color:var(--muted);margin-left:14px}.topbar{height:74px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px;color:var(--muted);font-size:13px}.balance{background:var(--paper);border:1px solid var(--line);padding:9px 14px;border-radius:25px;display:flex;align-items:center;gap:10px;font-size:12px;min-height:44px}.dot{width:6px;height:6px;border-radius:50%;background:var(--green)}main{max-width:1310px;margin:auto;padding:36px 38px 64px}h1{font-size:32px;line-height:1.4;letter-spacing:-.8px;margin:0 0 10px;font-weight:650}h2{font-size:21px;line-height:1.5;margin:0 0 10px}h3{font-size:17px;line-height:1.5;margin:0 0 8px}p{margin:8px 0}.muted{color:var(--muted)}.small{font-size:12px}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--muted);margin-bottom:9px}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:28px}.page-heading p{color:var(--muted);font-size:14px}.primary,.secondary,.text-button,.chip,.icon-button{min-height:44px;border-radius:8px;padding:9px 17px;border:1px solid var(--line);background:var(--paper)}.primary{background:var(--green);border-color:var(--green);color:#fff}.primary:hover{background:#254d38}.secondary:hover{background:var(--soft)}.text-button{border-color:transparent;background:transparent;color:var(--green);padding:8px 12px}.icon-button{padding:7px 14px;font-size:23px}.row{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.badge{font-size:11px;padding:3px 8px;border:1px solid var(--line);border-radius:5px;background:#f3f5ec;white-space:nowrap}.section-title{display:flex;justify-content:space-between;align-items:center;margin:22px 0 15px}.section-title h2{margin:0}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:24px}.form-label{display:block;font-weight:600;font-size:13px;margin:18px 0 8px}.input{width:100%;border:1px solid #81917d;border-radius:8px;padding:11px 12px;background:#fffefa;color:var(--ink);min-height:46px}textarea.input{resize:vertical;min-height:240px;line-height:1.9}.help{font-size:12px;color:var(--muted);margin:9px 0}.error{border-left:3px solid var(--error);background:#fff1ea;padding:11px 14px;margin:15px 0;color:var(--error);font-size:13px}.notice{padding:13px 16px;background:#eef1e7;border-radius:8px;color:#52614f;font-size:13px}.steps{display:flex;align-items:center;border-bottom:1px solid var(--line);padding:5px 0 21px;margin-bottom:26px;gap:30px}.step{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px}.step span{display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;width:27px;height:27px;font-size:11px}.step.current{color:var(--green);font-weight:600}.step.current span{background:var(--green);border-color:var(--green);color:#fff}.aspect-toggle{display:flex;border:1px solid var(--line);padding:3px;border-radius:8px;background:var(--paper)}.aspect-toggle button{min-height:44px;border:0;padding:7px 13px;border-radius:5px;background:transparent;color:var(--muted);font-size:12px}.aspect-toggle button[aria-pressed=true]{background:var(--soft);color:var(--green)}
.effect-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.effect-card{border:1px solid var(--line);border-radius:11px;background:var(--paper);overflow:hidden;min-width:0}.effect-card.selected{border:2px solid var(--green)}.effect-card.selected .effect-select{padding:11px 11px 4px}.effect-select{width:100%;border:0;background:transparent;text-align:left;padding:12px 12px 4px;min-height:44px}.effect-select img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:6px;background:#eaece2}.effect-title{display:flex;align-items:center;justify-content:space-between;margin:12px 3px 5px;font-size:16px;font-weight:600}.checkmark{font-size:13px;color:var(--green)}.effect-select .help{display:block;margin:0 3px;font-size:12px}.effect-footer{display:flex;justify-content:space-between;align-items:center;padding:4px 15px 10px;font-size:11px;color:var(--muted)}.effect-footer .text-button{padding:5px 0;font-size:12px}.wizard-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:25px;padding-top:22px;border-top:1px solid var(--line)}.wizard-footer p{font-size:13px;color:var(--muted)}.editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:22px}.side-stack{display:grid;gap:18px;align-content:start}.preview-cover{width:100%;border-radius:7px;display:block}.switch{display:flex;align-items:center;gap:10px;padding:12px 0;font-size:13px}.switch input{width:18px;height:18px;accent-color:var(--green)}.estimate{display:flex;gap:20px;align-items:flex-end;border-top:1px solid var(--line);margin-top:20px;padding-top:15px}.estimate strong{display:block;font-size:30px;font-weight:650}.estimate span{font-size:12px;color:var(--muted)}.summary-line{display:flex;justify-content:space-between;font-size:13px;padding:12px 0;border-bottom:1px solid var(--line)}.sum-total{font-size:34px;font-weight:650}.summary-line strong{font-weight:600}.video{display:block;width:100%;max-height:480px;background:#eeefe7;border-radius:8px}.result-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:24px}.result-grid .video{max-height:590px}.pack-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:24px 0}.pack{position:relative;display:flex;flex-direction:column;align-items:flex-start}.pack.recommended{border-color:var(--green);box-shadow:inset 0 3px var(--green)}.pack .price{font-size:40px;font-weight:650;margin:16px 0 0}.pack .points{font-size:21px;margin:2px 0 18px}.pack p{font-size:13px;color:var(--muted)}.pack button{margin-top:20px;width:100%}.rates{width:100%;border-collapse:collapse;font-size:13px}.rates th,.rates td{text-align:left;padding:13px 8px;border-bottom:1px solid var(--line)}.rates th{font-weight:500;color:var(--muted)}.trial-card{display:flex;justify-content:space-between;align-items:center;gap:24px;background:#eef1e7}.trial-card strong{font-size:25px;font-weight:600}.trial-card p{font-size:13px;color:var(--muted)}.ip-grid{display:grid;grid-template-columns:330px minmax(0,1fr);gap:24px}.portrait{width:100%;height:330px;object-fit:cover;object-position:50% 20%;border-radius:10px;background:#eceee5}.portrait-empty{height:330px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:15px;border:1px dashed #b9c9b8;border-radius:10px;background:#f4f5ed;color:var(--muted);text-align:center;padding:20px}.portrait-empty svg{width:45px;height:45px;fill:none;stroke:#7e957d;stroke-width:1.2}.upload-buttons{display:flex;gap:8px;margin-top:15px;flex-wrap:wrap}.upload-buttons button{flex:1;white-space:nowrap;padding:9px 10px}.process-list{list-style:none;padding:0;margin:20px 0}.process-list li{position:relative;padding:0 0 25px 42px}.process-list li::before{content:attr(data-number);position:absolute;left:0;top:0;width:25px;height:25px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:11px}.process-list li.active::before{background:var(--green);color:#fff;border-color:var(--green)}.process-list li p{margin:4px 0 0;font-size:12px;color:var(--muted)}.backgrounds{display:flex;gap:8px;flex-wrap:wrap}.chip{font-size:12px;padding:8px 12px}.chip[aria-pressed=true]{background:var(--soft);border-color:var(--green)}.empty{text-align:center;padding:55px 24px}.empty h2{font-size:23px}.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.work-grid img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:8px}.work-grid h3{margin:12px 0 5px}.work-grid .card{padding:16px}dialog{border:1px solid var(--line);border-radius:16px;background:var(--paper);color:var(--ink);padding:25px;width:min(680px,calc(100% - 32px));max-height:90vh}dialog::backdrop{background:#12291f66}.modal-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:16px}.modal-head h2{margin:0}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}#toast{position:fixed;bottom:28px;left:calc(50% + 112px);transform:translateX(-50%);background:#253c2f;color:#fff;padding:12px 20px;border-radius:9px;font-size:13px;opacity:0;pointer-events:none;z-index:90;max-width:calc(100vw - 35px)}#toast.visible{opacity:1}.trial-mode{display:flex;gap:8px;flex-wrap:wrap}.trial-mode button[aria-pressed=true]{border-color:var(--green);background:var(--soft)}.progress{height:5px;background:#e1e7dc;border-radius:5px;overflow:hidden;margin:20px 0}.progress span{display:block;background:var(--green);height:100%;width:100%;animation:open-sample .8s ease-out}.mobile-name{display:none}[hidden]{display:none!important}
@keyframes open-sample{from{width:10%}to{width:100%}}
@media(min-width:1600px){main{padding-top:44px}.effect-grid{gap:22px}.effect-select img{aspect-ratio:1.9}}
@media(max-width:1100px){.sidebar{width:188px;padding:27px 15px}.workspace{margin-left:188px}.brand{font-size:19px}.brand small{font-size:10px}main{padding:28px 24px 50px}.topbar{padding:0 25px}.preview-banner{padding:9px 25px}.editor-grid{grid-template-columns:minmax(0,1fr) 250px}.effect-grid{gap:13px}.effect-footer{padding-left:12px;padding-right:12px}.ip-grid{grid-template-columns:270px minmax(0,1fr)}#toast{left:calc(50% + 94px)}}
@media(max-width:820px){.sidebar{position:static;width:auto;padding:16px 20px;border-right:0;border-bottom:1px solid var(--line);flex-direction:row;align-items:center;justify-content:space-between;gap:15px}.brand small,.sidebar-bottom{display:none}.brand{font-size:19px}.brand-icon{width:33px;height:33px;font-size:18px}.sidebar nav{display:flex;margin:0;gap:3px}nav a{padding:8px 9px;font-size:12px;gap:6px}.nav-icon{width:17px;height:17px}.workspace{margin-left:0}.topbar{height:62px}.preview-banner span{display:block;margin:3px 0 0}.editor-grid,.result-grid{grid-template-columns:1fr}.side-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.ip-grid{grid-template-columns:250px minmax(0,1fr)}.pack-grid{gap:12px}.pack{padding:20px}.pack .price{font-size:32px}#toast{left:50%}}
@media(max-width:580px){.sidebar{padding:13px 15px;display:block}.brand{justify-content:center}.sidebar nav{justify-content:space-between;margin-top:13px}nav a{flex-direction:column;gap:3px;padding:7px 10px;min-width:66px;min-height:55px}.preview-banner,.topbar{padding-left:18px;padding-right:18px}.topbar{font-size:12px}.preview-banner{font-size:11px}main{padding:25px 16px 40px}h1{font-size:26px;letter-spacing:-.5px}.page-heading{gap:12px;margin-bottom:20px}.page-heading p{font-size:12px}.page-heading .secondary{font-size:12px;padding:8px}.steps{gap:18px;padding-bottom:18px}.step{font-size:11px;gap:6px}.step span{width:23px;height:23px}.effect-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.effect-select{padding:8px 8px 3px}.effect-card.selected .effect-select{padding:7px 7px 3px}.effect-title{font-size:14px;margin-top:9px}.effect-select .help{font-size:11px;min-height:36px;line-height:1.5}.effect-footer{padding:2px 10px 5px;font-size:10px;gap:5px}.effect-footer .text-button{font-size:11px}.section-title h2{font-size:17px}.aspect-toggle button{padding:6px 9px;font-size:11px}.wizard-footer{align-items:center;gap:8px}.wizard-footer p{font-size:11px}.wizard-footer .primary{font-size:13px;padding:10px 13px}.card{padding:19px}.side-stack,.ip-grid,.pack-grid,.work-grid{grid-template-columns:1fr}.side-stack .preview-cover{max-height:200px;object-fit:contain}.trial-card{display:block}.trial-card .secondary{margin-top:12px}.pack .price{margin-top:10px}.pack p{margin:3px 0}.pack button{margin-top:15px}.pack .points{margin-bottom:10px}.ip-grid .portrait,.portrait-empty{max-width:300px;margin:auto;height:300px}.trial-mode button{flex:1}.rates{font-size:12px}.rates td,.rates th{padding:11px 4px}.preview-banner{line-height:1.6}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
