:root{color-scheme:light;--paper:#f4f4ef;--surface:#fbfbf8;--ink:#111319;--muted:#686a68;--line:rgba(17,19,25,.16);--blue:#1264e8;--lime:#d9ff45;--mono:'SFMono-Regular',Consolas,monospace;--sans:'Avenir Next','PingFang SC','Microsoft YaHei',sans-serif;--serif:'Bodoni 72','Didot','Times New Roman',serif;font-family:var(--sans);font-synthesis:none}
*{box-sizing:border-box}html{min-width:320px;scroll-behavior:smooth}body{margin:0;color:var(--ink);background:linear-gradient(90deg,transparent calc(25% - 1px),rgba(17,19,25,.035) 25%,transparent calc(25% + 1px)),var(--paper);-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:wait;opacity:.45}button:focus-visible,a:focus-visible,summary:focus-visible,select:focus-visible,.drop:focus-visible{outline:2px solid var(--blue);outline-offset:5px}[hidden]{display:none!important}.skip-link{position:fixed;top:-80px;left:20px;z-index:200;padding:14px;background:var(--ink);color:white}.skip-link:focus{top:12px}
.topbar{display:flex;justify-content:space-between;align-items:center;min-height:82px;margin:0 clamp(24px,4vw,64px);border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:baseline;gap:20px;font-size:24px;font-weight:650;letter-spacing:-1.5px}.brand span{font:10px var(--mono);letter-spacing:.04em;color:var(--muted)}.topbar nav{display:flex;gap:28px;font-size:12px}.topbar nav a:hover{color:var(--blue)}.back-link{color:var(--muted)}.eyebrow{display:block;margin:0 0 12px;color:var(--blue);font:10px var(--mono);letter-spacing:.13em}.mono{font:10px var(--mono)}
.desktop-shell{max-width:1600px;margin:auto;padding:0 clamp(24px,4vw,64px) 30px}.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;padding:45px 0 34px}.hero h1{display:flex;align-items:baseline;gap:25px;margin:0;font:clamp(65px,7vw,104px)/.9 var(--serif);letter-spacing:-.055em}.hero h1 span{font:600 22px var(--sans);letter-spacing:-.04em;color:var(--blue)}.hero-intro{margin:0 0 4px;font-size:14px;line-height:1.75;color:var(--muted)}.hero-intro span{display:block;font-size:10px;margin-top:10px;letter-spacing:.12em}.desktop-workbench{display:grid;grid-template-columns:330px minmax(0,1fr);gap:22px;align-items:start}.control-column,.output-column{min-width:0}.control-column{display:grid;gap:12px}.panel{padding:23px;background:var(--surface);border:1px solid var(--line);border-radius:17px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:13px}.section-head .eyebrow{margin-bottom:7px;font-size:9px}h2{margin:0;font-size:17px;font-weight:600;letter-spacing:-.04em}.count{font:11px var(--mono);color:var(--blue);white-space:nowrap}.device-hint{margin:0 0 17px;font-size:10px;line-height:1.7;color:var(--muted)}
.drop{display:grid;justify-items:center;gap:9px;min-height:178px;padding:23px 10px;border:1px dashed #a7ada4;border-radius:12px;background:#f3f4ee;text-align:center;transition:background .2s,border-color .2s}.drop:hover,.drop.hover,.drop:focus-visible{border-color:var(--blue);background:#edf2fd}.drop[aria-disabled=true]{opacity:.5;cursor:wait}.add-symbol{display:grid;place-items:center;width:39px;height:39px;border-radius:50%;font:26px/1 var(--sans);background:var(--lime)}.drop strong{font-weight:550;font-size:12px}.drop>span:last-child{font:9px var(--mono);color:var(--muted)}.source-row{display:flex;gap:12px;justify-content:space-between;align-items:center;margin:11px 0 0}.hint{color:var(--muted);font-size:10px;line-height:1.7}.quiet{min-height:32px;border:0;padding:0 4px;background:none;color:var(--blue);font-size:11px;white-space:nowrap}.import-notice{margin:12px 0 0;padding:12px;background:#fff0d5;border-radius:8px;color:#805016;font-size:12px;line-height:1.7}.thumbs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-height:245px;overflow:auto;margin-top:12px}.thumbs:empty{display:none}.thumb{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:7px;background:#eceee6}.thumb img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.thumb .cap{overflow:hidden;padding:5px;font:8px var(--mono);text-overflow:ellipsis;white-space:nowrap}.thumb.good{border-color:#6d8c32}.thumb.warn{border-color:#ad6e12}.thumb.bad{border-color:#ce4946}
summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;list-style:none;gap:16px}summary::-webkit-details-marker{display:none}summary .eyebrow{font-size:9px;margin-bottom:7px}summary strong{font-size:16px;font-weight:550}.summary-plus{font-size:23px;font-weight:300;color:var(--muted);transition:transform .2s}details[open] .summary-plus{transform:rotate(45deg)}.settings-grid{display:grid;gap:14px;margin-top:22px}.settings-grid label{display:grid;gap:6px;color:var(--muted);font-size:10px}select{width:100%;min-height:39px;padding:0 9px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);font-size:11px}.check-label{display:flex!important;align-items:center;gap:7px!important;min-height:26px}.check-label input{width:15px;height:15px;accent-color:var(--blue)}.action-panel{padding:8px 1px}.runtime{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:var(--muted);font-size:10px}.runtime-dot,.local-label i{display:inline-block;flex-shrink:0;width:6px;height:6px;border-radius:50%;background:#789c29}.primary{display:flex;width:100%;justify-content:space-between;align-items:center;min-height:48px;padding:0 18px;border:0;border-radius:9px;background:var(--blue);color:white;font-size:13px;font-weight:550;transition:background .2s}.primary:hover:enabled{background:#064cc5}.primary b{font-size:23px;font-weight:300}.action-panel>.hint{margin:9px 0 0}.okText{color:#4b6e1e}.errText{color:#b84530}
.canvas-panel{padding:26px;min-height:610px}.workspace-heading{margin-bottom:23px}.local-label{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--muted)}.workspace-empty{overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#e8eade}.workspace-empty>img{display:block;width:100%;height:clamp(310px,40vw,510px);object-fit:cover}.empty-caption{display:flex;justify-content:space-between;gap:15px;padding:15px 18px;border-top:1px solid var(--line);font-size:12px}.empty-caption .mono{font-size:8px;color:var(--muted);align-self:center}.progress-area{margin-top:22px}.progress{height:3px;background:#e5e6de;border-radius:4px;overflow:hidden}.progress #bar{height:100%;width:0;background:var(--blue);transition:width .15s}#ptext{min-height:17px;margin:9px 0 0;font-family:var(--mono)}.shooting-tips{display:flex;justify-content:space-between;gap:15px;margin-top:20px;border-top:1px solid var(--line);padding-top:17px;color:var(--muted);font-size:10px}.shooting-tips span::before{content:'↗';color:var(--blue);margin-right:6px}.log{display:grid;gap:5px;max-height:180px;overflow:auto;padding:13px;margin-top:17px;border-radius:9px;background:#f0f1e9;font:10px/1.6 var(--mono)}.log:empty{display:none}.log .ok{color:#4b6e1e}.log .warn{color:#9c6417}.log .err{color:#b84530}.pairs{display:grid;gap:12px;margin-top:12px}.pairs:empty{display:none}.pair{overflow:hidden;background:#f0f1e9;border:1px solid var(--line);border-radius:9px}.ptitle{padding:9px;font:10px var(--mono)}.pair canvas{display:block;max-width:100%;height:auto}.result-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px}.quality-badge{font:10px var(--mono);color:#4b6e1e}.download{width:auto;gap:30px;min-height:39px;font-size:11px}.result{max-height:78vh;overflow:auto;border:1px solid var(--line);border-radius:12px;background-color:#e8eade;background-image:linear-gradient(45deg,#dfe2d5 25%,transparent 25%),linear-gradient(-45deg,#dfe2d5 25%,transparent 25%);background-size:15px 15px}.resultCanvas{display:block;max-width:100%;height:auto;margin:auto}footer{display:flex;justify-content:space-between;gap:12px;margin:0 clamp(24px,4vw,64px);padding:24px 0;border-top:1px solid var(--line);font:9px var(--mono);color:var(--muted)}footer a:hover{color:var(--blue)}
.mobile-shell{max-width:640px;margin:auto;padding:0 20px 30px}.mobile-hero{position:relative;padding:30px 0 24px}.mobile-hero h1{font-size:38px;line-height:1.2;letter-spacing:-.065em;font-weight:500;margin:0}.mobile-hero h1 em{color:var(--blue);font-style:normal}.mobile-hero p:last-child{margin:14px 0 0;font-size:12px;line-height:1.8;color:var(--muted)}.orbit-mark{position:absolute;right:0;top:53px;display:grid;place-items:center;width:67px;height:67px;border:1px solid var(--line);border-radius:50%;background:var(--lime);font-size:40px;font-weight:300}.mobile-shell>.panel{margin-bottom:13px}.mobile-shell .source-panel{padding:20px}.mobile-shell .drop{min-height:156px}.mobile-shell .device-hint{font-size:11px}.mobile-shell .canvas-panel{min-height:0;padding:20px}.mobile-shell .workspace-empty>img{height:200px}.mobile-shell .empty-caption{padding:13px;font-size:11px}.mobile-shell .empty-caption .mono{display:none}.mobile-shell .shooting-tips{display:grid;gap:9px}.mobile-shell .local-label{font-size:9px}.mobile-shell .thumbs{grid-template-columns:repeat(4,minmax(0,1fr))}.mobile-shell select{font-size:16px;min-height:44px}.mobile-shell .settings-grid label{font-size:12px}.mobile-dock{position:sticky;bottom:0;z-index:30;width:100%;padding:13px max(20px,calc((100% - 600px)/2)) calc(13px + env(safe-area-inset-bottom));background:rgba(244,244,239,.97);border-top:1px solid var(--line);backdrop-filter:blur(16px)}.mobile-dock .primary{min-height:50px}.mobile-dock .runtime{font-size:10px;margin-bottom:9px}.mobile-dock>.hint{display:none}body[data-layout=mobile] .topbar{max-width:600px;min-height:66px;margin:0 auto}body[data-layout=mobile] .brand{font-size:22px}body[data-layout=mobile] .brand span,body[data-layout=mobile] .back-link{display:none}body[data-layout=mobile] footer{max-width:600px;margin:auto;padding:22px 0}body[data-layout=mobile] footer>span{display:none}
.entry-page{display:grid;place-items:center;min-height:100vh;padding:24px}.entry-card{width:min(560px,100%);border-top:1px solid var(--line);padding:24px 0}.entry-card .eyebrow{margin-top:70px}.entry-card h1{margin:0;font:90px var(--serif);letter-spacing:-.06em}.entry-card h1 span{font:18px var(--sans);letter-spacing:-.03em;color:var(--blue);margin-left:20px}.entry-card>p{font-size:13px;color:var(--muted)}.entry-card nav{display:flex;gap:30px;font-size:12px;margin-top:30px;color:var(--blue)}
@media(min-width:1500px){.desktop-workbench{grid-template-columns:360px minmax(0,1fr)}}
@media(max-width:1000px){.desktop-workbench{grid-template-columns:290px minmax(0,1fr);gap:14px}.panel,.canvas-panel{padding:19px}.local-label{display:none}.empty-caption .mono{display:none}.shooting-tips{display:grid;gap:8px}.hero-intro{font-size:12px}.topbar nav{gap:18px}}
@media(max-width:700px){.topbar{min-height:66px;margin:0 20px}.brand{font-size:22px}.brand span,.back-link{display:none}.desktop-shell{padding:0 20px 26px}.hero{display:block;padding-top:32px}.hero h1{font-size:75px;gap:18px}.hero h1 span{font-size:19px}.hero-intro{margin-top:22px}.desktop-workbench{display:flex;flex-direction:column}.control-column,.output-column{width:100%}.control-column .settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.canvas-panel{min-height:0}.workspace-empty>img{height:260px}.settings-grid select{font-size:13px}.topbar nav{font-size:11px}.thumbs{grid-template-columns:repeat(4,minmax(0,1fr))}footer{margin:0 20px;font-size:8px}footer>span{display:none}body[data-layout=mobile] .topbar,body[data-layout=mobile] footer{margin-inline:20px}.mobile-shell select{font-size:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
