@font-face{font-family:"Noto Serif SC";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/noto-serif-sc-400.woff2) format("woff2")}@font-face{font-family:"Noto Serif SC";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/noto-serif-sc-700.woff2) format("woff2")}@font-face{font-family:LXGW WenKai Lite;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/lxgw-wenkai-400.woff2) format("woff2")}@font-face{font-family:LXGW WenKai Lite;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/lxgw-wenkai-700.woff2) format("woff2")}:root{--bg: #f6f2ea;--card: #fffdf9;--desk: #f1ebdf;--ink: #26221b;--ink-soft: #4d463c;--muted: #756c5e;--line: #e6ddcb;--line-soft: #eee7d8;--accent: #c2402a;--accent-dark: #a02f1d;--accent-soft: #f9ebe5;--green: #2f7d4e;--green-bg: #ebf5ee;--gold: #b98a2f;--radius: 16px;--radius-s: 10px;--shadow-s: 0 1px 2px rgba(40, 34, 24, .05), 0 3px 10px rgba(40, 34, 24, .05);--shadow-m: 0 1px 2px rgba(40, 34, 24, .06), 0 12px 32px rgba(40, 34, 24, .1);--shadow-sheet: 0 1px 3px rgba(40, 34, 24, .15), 0 18px 44px rgba(40, 34, 24, .18);--chip-bg: #fff;--field-bg: #fff;--btn-bg: #fff;--btn-hover-border: #d6cbb0;--btn-primary-bg: var(--ink);--btn-primary-fg: #fff;--btn-primary-hover: #0f0d09;--seg-bg: #efe8da;--seg-active-bg: #fff;--seg-active-shadow: 0 1px 3px rgba(40, 34, 24, .14);--track-bg: #e8e0cd;--switch-bg: #ded5c2;--mat-bg: #f6f1e7;--dot: rgba(43, 37, 26, .06);--stage-hl-top: rgba(255, 255, 255, .65);--stage-hl-soft: rgba(43, 37, 26, .08);--drag-bg: #f6e8dd;--stage-drag-bg: #f2e7da;--crop-veil: rgba(24, 20, 14, .58);--photo-hover-border: #d3c6a8;--accent-head-grad: linear-gradient(180deg, #fbf0e7, var(--card));--accent-head-line: #f0e0d2;--badge-bg: rgba(47, 125, 78, .08);--badge-border: rgba(47, 125, 78, .32);--badge-fg: var(--green);--toast-bg: var(--ink);--toast-fg: #fff;color-scheme:light;--serif: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "STZhongsong", "SimSun", serif;--kai: "LXGW WenKai Lite", "Kaiti SC", "STKaiti", "KaiTi", "FZKai-Z03S", "Noto Serif SC", serif;--sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;padding:0}body{color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;background-color:var(--bg);background-image:radial-gradient(ellipse 120% 60% at 50% -12%,#fffdf6e6,#fffdf600 70%),radial-gradient(rgba(41,34,23,.04) 1px,transparent 1.1px);background-size:100% 640px,22px 22px;background-repeat:no-repeat,repeat;min-height:100vh}::selection{background:#c2402a2e}.container{max-width:1200px;margin:0 auto;padding:0 20px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.site-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:26px;padding-bottom:22px}.brand{display:flex;align-items:center;gap:14px}.logo-mark{width:46px;height:46px;border-radius:10px;background:var(--accent);color:#fff;font-family:var(--serif);font-size:23px;font-weight:700;display:grid;place-items:center;box-shadow:inset 0 0 0 2px #ffffff52,0 4px 14px #c2402a52;transform:rotate(-4deg);transition:transform .22s ease}.brand:hover .logo-mark{transform:rotate(0) scale(1.04)}.brand-text h1{margin:0;font-family:var(--serif);font-size:23px;font-weight:700;letter-spacing:.02em}.zh-sub{font-family:var(--serif);font-size:14px;font-weight:500;color:var(--muted);margin-left:5px;letter-spacing:.14em}.tagline{margin:3px 0 0;font-family:var(--kai);font-size:14.5px;color:var(--ink-soft);letter-spacing:.06em}.header-actions{display:flex;align-items:center;gap:10px}.theme-toggle{width:38px;height:38px;flex:none;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--ink-soft);display:grid;place-items:center;cursor:pointer;transition:border-color .15s,color .15s,transform .15s,box-shadow .15s}.theme-toggle:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px);box-shadow:var(--shadow-s)}.theme-toggle .icon-sun,[data-theme=night] .theme-toggle .icon-moon{display:none}[data-theme=night] .theme-toggle .icon-sun{display:block}.privacy-badge{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:999px;background:var(--badge-bg);border:1px solid var(--badge-border);color:var(--badge-fg);font-size:13px;font-weight:600;white-space:nowrap}.studio{display:grid;grid-template-columns:392px minmax(0,1fr);gap:22px;align-items:stretch;scroll-margin-top:12px}.col{display:flex;flex-direction:column;gap:22px;min-width:0}.col-input{display:contents}.input-card{grid-column:1 / -1}.param-pane{grid-column:1;min-width:0}.col-output{grid-column:2}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-s)}.pane-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 20px 12px;border-bottom:1px solid var(--line-soft)}.pane-head h2{margin:0;font-family:var(--serif);font-size:16.5px;font-weight:700;letter-spacing:.03em}.pane-sub{margin:2px 0 0;font-size:12px;color:var(--muted)}.pane-sub .sub-mobile{display:none}.pane-head.accent{flex-direction:column;align-items:flex-start;gap:2px;padding:16px 20px 13px;background:var(--accent-head-grad);border-bottom:1px solid var(--accent-head-line)}.pane-head.accent h2{color:var(--accent-dark);font-size:17px}.pane-head.slim{padding:12px 20px 10px;align-items:baseline}.pane-head.slim h2{font-size:14px;letter-spacing:.06em;color:var(--ink-soft)}.input-card{overflow:hidden}.input-body{padding:16px 20px 18px;display:flex;flex-direction:column;gap:18px}.input-field{display:flex;flex-direction:column}.input-label{display:flex;align-items:center;gap:9px;margin-bottom:8px}.input-label b{font-size:13.5px;letter-spacing:.02em}.num{width:21px;height:21px;flex:none;display:grid;place-items:center;background:var(--accent);color:#fff;font-size:12px;font-weight:700;border-radius:6px;box-shadow:inset 0 0 0 1.5px #ffffff47}.link-btn{margin-left:auto;border:0;background:none;padding:3px 8px;color:var(--accent);font-family:inherit;font-size:12.5px;font-weight:600;cursor:pointer;border-radius:6px;transition:background .15s}.link-btn:hover{background:var(--accent-soft)}.photo-slot{position:relative;border-radius:12px;min-height:232px;display:grid;place-items:center;padding:14px;background-color:var(--desk);background-image:radial-gradient(var(--dot) 1px,transparent 1.2px);background-size:16px 16px;border:1.5px dashed var(--line);cursor:pointer;overflow:hidden;transition:border-color .15s,background-color .15s}.photo-slot:hover{border-color:var(--photo-hover-border)}.photo-slot.dragging{border-color:var(--accent);background-color:var(--drag-bg)}.photo-slot.filled{border-style:solid;border-color:var(--line)}.crop-btn{position:absolute;top:10px;right:10px;z-index:3;display:inline-flex;align-items:center;gap:5px;padding:6px 13px;border:1px solid rgba(255,255,255,.55);border-radius:999px;background:#1c1914c7;color:#fff;font-family:inherit;font-size:12.5px;font-weight:600;letter-spacing:.04em;cursor:pointer;box-shadow:0 3px 12px #28221859;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .15s,border-color .15s,transform .15s,box-shadow .15s}.crop-btn svg{flex:none;opacity:.92}.crop-btn:hover{background:var(--accent);border-color:#ffffffb8;transform:translateY(-1px);box-shadow:0 5px 16px #c2402a73}.crop-btn:active{transform:translateY(0)}.photo-slot img{max-width:100%;max-height:300px;width:auto;height:auto;display:block;border-radius:4px;background:#fff;box-shadow:var(--shadow-s)}.photo-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:24px 16px;text-align:center}.photo-empty svg{color:var(--accent);opacity:.8}.ph-title{margin:4px 0 0;font-family:var(--serif);font-size:14.5px;font-weight:600;letter-spacing:.02em}.ph-hint{margin:0;font-size:12px;line-height:1.6;color:var(--muted)}.photo-cta{position:absolute;inset:auto 0 0;padding:9px 12px;text-align:center;background:linear-gradient(180deg,#1c191400,#1c1914b8);color:#fff;font-size:12.5px;font-weight:600;letter-spacing:.05em;opacity:0;transform:translateY(4px);transition:opacity .18s,transform .18s;pointer-events:none}.photo-slot.filled:hover .photo-cta,.photo-slot.filled:focus-visible .photo-cta{opacity:1;transform:none}.photo-meta{margin:7px 2px 0;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sample-row{margin-top:11px;padding-top:10px;border-top:1px dashed var(--line);display:flex;flex-wrap:wrap;gap:7px;align-items:center}.sample-label{font-size:12.5px;color:var(--muted);margin-right:2px}.chip{border:1px solid var(--line);background:var(--chip-bg);color:var(--ink);font-family:inherit;font-size:12.5px;padding:4px 12px;border-radius:999px;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.chip:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.input-field input[type=text]{border:1px solid var(--line);border-radius:var(--radius-s);padding:12px 14px;font-size:16.5px;font-family:var(--serif);letter-spacing:.06em;background:var(--field-bg);color:var(--ink);outline:none;width:100%;transition:border-color .15s,box-shadow .15s}.input-field input[type=text]:focus{border-color:var(--accent);box-shadow:0 0 0 3px #c2402a1f}.field-hint{margin:6px 2px 0;font-size:12px;color:var(--muted)}.output-pane{position:sticky;top:16px;padding-bottom:18px;min-width:0}.output-head>div:first-child{min-width:0}.preview-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.font-pick{display:inline-flex;align-items:center;gap:8px}.font-label{font-size:12px;color:var(--muted);white-space:nowrap;letter-spacing:.04em}.font-switch{display:inline-flex;gap:2px;background:var(--seg-bg);border-radius:999px;padding:3px}.font-switch button{border:0;background:transparent;padding:4px 12px;border-radius:999px;cursor:pointer;font-size:12.5px;font-family:inherit;color:var(--muted);transition:color .15s,background .15s,box-shadow .15s}.font-switch button:hover:not(.active){color:var(--ink)}.font-switch button.active{background:var(--seg-active-bg);color:var(--ink);font-weight:600;box-shadow:var(--seg-active-shadow)}.font-switch button.loading{opacity:.55;cursor:progress}.font-progress{display:flex;align-items:center;gap:8px;width:100%;margin-top:2px}.font-progress[hidden]{display:none}.font-progress i{position:relative;flex:1;height:3px;border-radius:999px;background:var(--line);overflow:hidden}.font-progress i:after{content:"";position:absolute;inset:0;transform-origin:left center;transform:scaleX(0);background:var(--accent);border-radius:999px;transition:transform .15s linear}.font-progress.indeterminate i:after{transform:scaleX(.35) translate(-240%);animation:font-progress-indet 1.15s ease-in-out infinite}@keyframes font-progress-indet{0%{transform:scaleX(.3) translate(-240%)}55%{transform:scaleX(.5) translate(230%)}to{transform:scaleX(.3) translate(-240%)}}.font-progress-text{font-size:10.5px;color:var(--muted);white-space:nowrap;min-width:52px;text-align:right;letter-spacing:.02em;font-variant-numeric:tabular-nums}@media (max-width: 960px){.output-head{flex-wrap:wrap;row-gap:8px}.preview-tools{width:100%;justify-content:space-between;gap:8px}.font-pick{flex-wrap:wrap;row-gap:6px;max-width:100%}.font-label{font-size:11px;letter-spacing:.02em}.font-switch{max-width:100%}.font-switch button{flex:1 1 auto;min-width:0;padding:4px 10px;font-size:12px;white-space:nowrap}}@media (max-width: 560px){.font-label{font-size:10.5px}.font-switch{flex-wrap:wrap;justify-content:center;border-radius:12px}.font-switch button{padding:3px 9px;font-size:11px}}.status{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);min-height:20px;padding:12px 20px 0}.status:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);opacity:.8;flex:none;animation:status-pulse 2.4s ease-in-out infinite}@keyframes status-pulse{50%{opacity:.3}}.preview-stage{position:relative;margin:12px 20px 0;min-height:440px;border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:26px;background-color:var(--desk);background-image:radial-gradient(var(--dot) 1px,transparent 1.2px);background-size:16px 16px;box-shadow:inset 0 1px 2px var(--stage-hl-top),inset 0 2px 12px var(--stage-hl-soft);cursor:default}.preview-stage.dragging{background-color:var(--stage-drag-bg)}.preview-stage canvas{max-width:100%;max-height:clamp(300px,60vh,720px);width:auto;height:auto;display:block;border-radius:3px;background:#fff;box-shadow:var(--shadow-sheet)}.preview-stage.comparing canvas{outline:2px solid var(--accent);outline-offset:3px}.compare-tag{position:absolute;top:14px;left:14px;z-index:3;background:var(--accent);color:#fff;font-size:12px;font-weight:600;letter-spacing:.22em;padding:4px 12px 4px 14px;border-radius:999px;box-shadow:0 4px 12px #c2402a59;opacity:0;transform:translateY(-4px);transition:opacity .18s,transform .18s;pointer-events:none}.preview-stage.comparing .compare-tag{opacity:1;transform:none}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:16px 20px 0}.actions-gap{flex:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;border:1px solid var(--line);background:var(--btn-bg);color:var(--ink);font-family:inherit;font-size:14px;font-weight:600;padding:0 18px;border-radius:var(--radius-s);cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s,background .15s}.btn svg{flex:none}.btn:hover:not(:disabled){border-color:var(--btn-hover-border);transform:translateY(-1px);box-shadow:var(--shadow-s)}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.38;cursor:not-allowed}.btn.primary{background:var(--btn-primary-bg);color:var(--btn-primary-fg);border-color:var(--btn-primary-bg)}.btn.primary:hover:not(:disabled){background:var(--btn-primary-hover);border-color:var(--btn-primary-hover)}.btn.accent{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.accent:hover:not(:disabled){background:var(--accent-dark);border-color:var(--accent-dark)}.btn.ghost{background:transparent}.btn.small{min-height:32px;padding:0 13px;font-size:12.5px;font-weight:500}.btn.full{width:100%;margin-top:8px}#btn-compare{touch-action:none;user-select:none;-webkit-user-select:none}#btn-compare:active:not(:disabled){color:var(--accent);border-color:var(--accent)}.param-pane{overflow:hidden}.param-body{padding:2px 20px 14px}.param-section{padding:14px 0 16px}.param-section+.param-section{border-top:1px solid var(--line-soft)}.param-section h3{display:flex;align-items:center;gap:9px;margin:0 0 12px;font-size:12px;font-weight:700;letter-spacing:.24em;color:var(--muted)}.param-section h3:before{content:"";width:6px;height:6px;background:var(--accent);border-radius:1.5px;transform:rotate(45deg);opacity:.85;flex:none}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.field:last-child{margin-bottom:0}.field label{font-size:13px;color:var(--ink)}.segmented{display:inline-flex;background:var(--seg-bg);border-radius:var(--radius-s);padding:3px;width:fit-content}.segmented button{border:0;background:transparent;padding:6px 20px;border-radius:8px;cursor:pointer;font-size:13px;font-family:inherit;color:var(--muted);transition:color .15s,background .15s,box-shadow .15s}.segmented button.active{background:var(--seg-active-bg);color:var(--ink);font-weight:600;box-shadow:var(--seg-active-shadow)}.colors-row{display:flex;gap:14px}.color-field{flex:1}.color-field.disabled{opacity:.45;pointer-events:none}input[type=color]{width:100%;height:38px;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--field-bg);padding:4px;cursor:pointer}.slider-row{margin-bottom:12px}.slider-label{display:flex;justify-content:space-between;font-size:13px;margin-bottom:4px}.slider-label .val-edit{width:54px;padding:2px 6px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--accent);font-family:inherit;font-size:13px;font-weight:600;line-height:1.4;text-align:right;font-variant-numeric:tabular-nums;outline:none;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s}.slider-label .val-edit:hover{background:var(--accent-soft)}.slider-label .val-edit:focus{cursor:text;border-color:var(--accent);background:var(--field-bg);box-shadow:0 0 0 3px #c2402a1f}input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:24px;background:transparent;cursor:pointer;--p: 50%}input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:linear-gradient(to right,var(--accent) var(--p),var(--track-bg) var(--p))}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;margin-top:-5px;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:0 1px 4px #28221838;transition:transform .12s}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}input[type=range]:active::-webkit-slider-thumb{cursor:grabbing}input[type=range]::-moz-range-track{height:6px;border-radius:999px;background:linear-gradient(to right,var(--accent) var(--p),var(--track-bg) var(--p))}input[type=range]::-moz-range-thumb{width:13px;height:13px;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:0 1px 4px #28221838}input[type=range]:focus-visible{outline:none}input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 5px #c2402a2e}input[type=range]:focus-visible::-moz-range-thumb{box-shadow:0 0 0 5px #c2402a2e}.switch-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;font-size:13px;cursor:pointer;user-select:none}.switch-row input{display:none}.switch{width:40px;height:22px;border-radius:11px;background:var(--switch-bg);position:relative;transition:background .2s;flex-shrink:0}.switch:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .2s;box-shadow:0 1px 2px #00000040}.switch-row input:checked+.switch{background:var(--accent)}.switch-row input:checked+.switch:after{left:20px}.switch-row input:focus-visible+.switch{box-shadow:0 0 0 4px #c2402a29}.preset-row{display:flex;gap:8px;flex-wrap:wrap}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0 0 24px}.step{display:flex;gap:14px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-s);padding:18px 20px}.step i{font-style:normal;width:34px;height:34px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);border:1px solid rgba(194,64,42,.28);color:var(--accent);font-family:var(--kai);font-weight:700;font-size:15px}.step-body b{display:block;font-size:14.5px;margin-top:2px}.step-body span{font-size:12.5px;color:var(--muted)}.gallery{margin-top:48px}.gallery h2{font-family:var(--serif);font-size:21px;font-weight:700;letter-spacing:.02em;margin:0 0 4px}.gallery-sub{font-family:var(--sans);font-size:13px;color:var(--muted);font-weight:400;margin-left:8px;letter-spacing:0}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:18px}.g-card{margin:0;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-s);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.g-card[data-gallery]{cursor:pointer}.g-card[data-gallery]:hover,.g-card[data-gallery]:focus-visible{transform:translateY(-4px);box-shadow:var(--shadow-m);border-color:#c2402a8c}.g-img{position:relative;background:var(--mat-bg);display:grid;place-items:center;padding:18px;min-height:190px;overflow:hidden}.g-img:before,.g-img:after{content:"";position:absolute;width:13px;height:13px;border:0 solid rgba(185,138,47,.55)}.g-img:before{top:8px;left:8px;border-top-width:1.5px;border-left-width:1.5px}.g-img:after{bottom:8px;right:8px;border-bottom-width:1.5px;border-right-width:1.5px}.g-img img{max-width:100%;max-height:240px;width:auto;height:auto;transition:transform .25s ease}.g-card:hover .g-img img{transform:scale(1.035)}.g-load{position:absolute;inset:auto 0 0;padding:9px 12px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;font-size:12.5px;font-weight:600;letter-spacing:.06em;transform:translateY(100%);transition:transform .22s ease;pointer-events:none}.g-card[data-gallery]:hover .g-load,.g-card[data-gallery]:focus-visible .g-load{transform:none}.g-card figcaption{padding:11px 14px 13px;border-top:1px solid var(--line-soft)}.g-card figcaption b{display:block;font-family:var(--serif);font-size:14.5px;letter-spacing:.02em}.g-card figcaption span{font-size:12.5px;color:var(--muted)}.site-footer{text-align:center;margin:56px 0 34px;color:var(--muted)}.seal{width:54px;height:54px;margin:0 auto 14px;border:2.5px solid var(--accent);border-radius:9px;display:grid;place-items:center;color:var(--accent);font-family:var(--kai);font-size:17px;font-weight:700;letter-spacing:.18em;text-indent:.18em;transform:rotate(-5deg);opacity:.88;box-shadow:inset 0 0 0 1.5px #fffdf8a6}.site-footer p{margin:3px 0 0;font-size:12.5px}.foot-note{font-family:var(--kai);font-size:14.5px;color:var(--ink-soft);letter-spacing:.1em;margin-top:6px}.foot-src{margin-top:8px}.foot-src a{color:var(--muted);text-decoration:none;border-bottom:1px dashed var(--muted);padding-bottom:1px;transition:color .18s ease,border-color .18s ease}.foot-src a:hover,.foot-src a:focus-visible{color:var(--accent);border-bottom-color:var(--accent);outline:none}#toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%) translateY(12px);background:var(--toast-bg);color:var(--toast-fg);padding:11px 22px;border-radius:12px;font-size:13.5px;letter-spacing:.02em;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:100;box-shadow:0 6px 22px #14110c59}#toast.show{opacity:1;transform:translate(-50%) translateY(0)}.crop-overlay{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:18px;background:transparent;opacity:0;transition:opacity .18s ease}.crop-overlay.open{opacity:1}.crop-dialog{width:min(720px,100%);max-height:calc(100vh - 36px);overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sheet);display:flex;flex-direction:column;transform:translateY(8px);transition:transform .18s ease}.crop-overlay.open .crop-dialog{transform:none}.crop-head{padding:15px 20px 12px;border-bottom:1px solid var(--line-soft)}.crop-head h3{margin:0;font-family:var(--serif);font-size:16.5px;font-weight:700;letter-spacing:.03em}.crop-head p{margin:3px 0 0;font-size:12.5px;color:var(--muted)}.crop-stage{padding:18px 20px;display:grid;place-items:center;background-color:var(--desk);background-image:radial-gradient(var(--dot) 1px,transparent 1.2px);background-size:16px 16px}.crop-wrap{position:relative;display:inline-block;max-width:100%;line-height:0;touch-action:none;user-select:none;-webkit-user-select:none}.crop-wrap img{max-width:100%;max-height:min(56vh,520px);display:block;border-radius:3px;box-shadow:var(--shadow-s)}.crop-veil{position:absolute;inset:0;background:var(--crop-veil);pointer-events:none}.crop-box{position:absolute;cursor:move}.crop-box:before{content:"";position:absolute;inset:0;border:1.5px solid var(--accent);pointer-events:none}.crop-grid{position:absolute;inset:0;pointer-events:none;--gl: rgba(255, 255, 255, .62);background-image:linear-gradient(var(--gl),var(--gl)),linear-gradient(var(--gl),var(--gl)),linear-gradient(var(--gl),var(--gl)),linear-gradient(var(--gl),var(--gl));background-repeat:no-repeat;background-size:1px 100%,1px 100%,100% 1px,100% 1px;background-position:33.333% 0,66.667% 0,0 33.333%,0 66.667%}.hd{position:absolute;background:#fff;border:1.5px solid var(--accent);z-index:2;border-radius:3px}.hd-nw,.hd-ne,.hd-sw,.hd-se{width:14px;height:14px}.hd-n,.hd-s{width:24px;height:9px;border-radius:999px}.hd-e,.hd-w{width:9px;height:24px;border-radius:999px}.hd-nw{top:-7px;left:-7px;cursor:nwse-resize}.hd-n{top:-4px;left:calc(50% - 12px);cursor:ns-resize}.hd-ne{top:-7px;right:-7px;cursor:nesw-resize}.hd-e{right:-4px;top:calc(50% - 12px);cursor:ew-resize}.hd-se{bottom:-7px;right:-7px;cursor:nwse-resize}.hd-s{bottom:-4px;left:calc(50% - 12px);cursor:ns-resize}.hd-sw{bottom:-7px;left:-7px;cursor:nesw-resize}.hd-w{left:-4px;top:calc(50% - 12px);cursor:ew-resize}.crop-meta{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:0;padding:10px 20px 0;font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}.crop-keys{flex:none;font-size:12px;opacity:.85}.crop-foot{display:flex;align-items:center;gap:10px;padding:12px 20px 16px}.crop-foot-gap{flex:1}@media (max-width: 560px){.crop-overlay{padding:10px}.crop-stage{padding:14px}.crop-wrap img{max-height:44vh}.crop-meta{flex-direction:column;gap:2px;padding:10px 14px 0}.crop-foot{flex-wrap:wrap;padding:12px 14px 14px}.crop-foot .btn{flex:1 1 auto}}@media (min-width: 961px) and (max-height: 760px){.output-pane{position:static}.preview-stage{min-height:380px}}@media (min-width: 961px){.input-body{gap:20px;padding:18px 24px 20px}.photo-slot{min-height:250px}.photo-slot img{max-height:330px}.input-body .input-field input[type=text]{padding:14px 18px;font-size:17.5px}}@media (max-width: 960px){.studio{grid-template-columns:minmax(0,25fr) minmax(0,27fr);gap:14px}.gallery-grid{grid-template-columns:repeat(2,1fr)}.output-pane{top:10px;padding-bottom:16px}.site-header{flex-direction:column;align-items:flex-start;gap:12px}.steps{grid-template-columns:1fr;gap:12px}.pane-sub .sub-desktop{display:none}.pane-sub .sub-mobile{display:inline}.preview-stage{min-height:clamp(170px,26vh,300px);padding:14px;margin:10px 12px 0}.preview-stage canvas{max-height:40vh;max-height:40svh}.status{padding:11px 12px 0;font-size:12.5px}.actions{margin:12px 12px 0}.actions .btn{flex:1 1 auto}.actions .actions-gap{display:none}.pane-head{padding:13px 14px 11px}.pane-head.accent{padding:14px 16px 12px}.input-body{padding:14px 16px 16px}.param-body{padding:2px 14px 12px}}@media (max-width: 960px) and (max-height: 480px){.output-pane{position:static}.preview-stage{min-height:140px}.preview-stage canvas{max-height:30vh}}@media (max-width: 560px){.container{padding:0 12px}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.btn{padding:0 14px}.photo-slot{min-height:190px}.photo-slot img{max-height:240px}.studio{gap:12px}.output-pane{top:8px;padding-bottom:12px}.pane-head,.pane-head.accent{padding:12px 14px 10px}.input-body{padding:13px 14px 15px}.param-body{padding:2px 12px 10px}.param-section{padding:12px 0 13px}.param-section h3{margin-bottom:10px}.segmented button{padding:6px 14px}.colors-row{flex-direction:column;gap:10px}.preset-row .btn{flex:1 1 100%}.switch-row{font-size:12.5px;padding:8px 0}.preview-stage{margin:10px 10px 0;padding:10px;min-height:150px}.preview-stage canvas{max-height:34vh;max-height:34svh}.status{padding:10px 10px 0}.actions{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:12px 10px 0}.actions .btn{min-height:38px;padding:0 6px;font-size:12.5px}.actions .btn svg{display:none}#btn-pdf{grid-column:1 / -1}}[data-theme=night]{color-scheme:dark;--bg: #0a0d13;--card: rgba(255, 255, 255, .05);--desk: rgba(255, 255, 255, .03);--ink: #e9e6de;--ink-soft: #c9c4b8;--muted: #9c978c;--line: rgba(255, 255, 255, .11);--line-soft: rgba(255, 255, 255, .07);--accent: #cf5340;--accent-dark: #e56b52;--accent-soft: rgba(207, 83, 64, .16);--shadow-s: 0 1px 2px rgba(0, 0, 0, .35), 0 3px 12px rgba(0, 0, 0, .28);--shadow-m: 0 1px 2px rgba(0, 0, 0, .4), 0 14px 36px rgba(0, 0, 0, .45);--shadow-sheet: 0 2px 6px rgba(0, 0, 0, .45), 0 26px 60px rgba(0, 0, 0, .55);--chip-bg: rgba(255, 255, 255, .07);--field-bg: rgba(255, 255, 255, .06);--btn-bg: rgba(255, 255, 255, .07);--btn-hover-border: rgba(255, 255, 255, .26);--btn-primary-bg: rgba(255, 255, 255, .92);--btn-primary-fg: #14171d;--btn-primary-hover: #ffffff;--seg-bg: rgba(255, 255, 255, .07);--seg-active-bg: rgba(255, 255, 255, .18);--seg-active-shadow: 0 1px 3px rgba(0, 0, 0, .4);--track-bg: rgba(255, 255, 255, .16);--switch-bg: rgba(255, 255, 255, .16);--mat-bg: rgba(255, 255, 255, .04);--dot: rgba(255, 255, 255, .05);--stage-hl-top: rgba(255, 255, 255, .07);--stage-hl-soft: rgba(0, 0, 0, .34);--drag-bg: rgba(207, 83, 64, .1);--stage-drag-bg: rgba(207, 83, 64, .08);--crop-veil: rgba(4, 6, 10, .68);--photo-hover-border: rgba(255, 255, 255, .3);--accent-head-grad: linear-gradient(180deg, rgba(255, 255, 255, .055), rgba(255, 255, 255, .015));--accent-head-line: rgba(255, 255, 255, .08);--badge-bg: rgba(128, 199, 155, .1);--badge-border: rgba(128, 199, 155, .3);--badge-fg: #8ec9a4;--toast-bg: rgba(24, 29, 38, .9);--toast-fg: #ece8de}[data-theme=night] body{background-color:var(--bg);background-image:radial-gradient(ellipse 120% 55% at 50% -10%,#a8b8d429,#a8b8d400 62%),radial-gradient(ellipse 46% 34% at 88% 112%,#8c9eba12,#8c9eba00 66%);background-size:100% 640px,100% 900px;background-repeat:no-repeat,no-repeat}[data-theme=night] body:after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.085;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)'/%3E%3C/svg%3E");background-size:220px 220px}[data-theme=night] .card,[data-theme=night] .step,[data-theme=night] .g-card,[data-theme=night] .theme-toggle{background:linear-gradient(180deg,#ffffff12,#ffffff09);-webkit-backdrop-filter:blur(18px) saturate(1.55);backdrop-filter:blur(18px) saturate(1.55)}[data-theme=night] .card,[data-theme=night] .step,[data-theme=night] .g-card{border-color:#ffffff1c;border-top-color:#ffffff38;box-shadow:inset 0 1px #ffffff1f,0 18px 44px #02040880}[data-theme=night] .g-card[data-gallery]:hover,[data-theme=night] .g-card[data-gallery]:focus-visible{box-shadow:inset 0 1px #ffffff29,0 22px 48px #02040899}[data-theme=night] .theme-toggle{border-color:#ffffff24;border-top-color:#ffffff3d;box-shadow:inset 0 1px #ffffff24;color:var(--ink-soft)}[data-theme=night] .link-btn,[data-theme=night] .slider-label .val-edit,[data-theme=night] .step i{color:var(--accent-dark)}[data-theme=night] .step i{border-color:#e56b525c}[data-theme=night] #toast{border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px #ffffff1a,0 10px 30px #00000080;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}[data-theme=night] .crop-dialog{background:linear-gradient(180deg,#ffffff12,#ffffff09);-webkit-backdrop-filter:blur(18px) saturate(1.55);backdrop-filter:blur(18px) saturate(1.55);border-color:#ffffff1c;border-top-color:#ffffff38;box-shadow:inset 0 1px #ffffff1f,0 18px 44px #02040880}[data-theme=night] .crop-btn{background:#0a0d13d1}[data-theme=night] .crop-btn:hover{background:var(--accent)}@supports not ((backdrop-filter: blur(2px)) or (-webkit-backdrop-filter: blur(2px))){[data-theme=night] .card,[data-theme=night] .step,[data-theme=night] .g-card,[data-theme=night] .theme-toggle,[data-theme=night] .crop-dialog,[data-theme=night] .crop-btn,[data-theme=night] #toast{background:#11151cf0}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
