:root{--paper:#f6f2e9;--ink:#342f27;--muted:#716b60;--line:#d6cebf;--clay:#a65035;--wash:#eae4d8;--green:#536044}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Avenir Next','Trebuchet MS',sans-serif;font-size:14px}header{height:88px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}a{color:inherit}.wordmark{text-decoration:none;font-family:Georgia,serif;font-size:30px;letter-spacing:-1px}.wordmark span{font-style:italic}.wordmark i{font-weight:normal;color:#b8ac99;margin:0 20px}.wordmark small{font:10px 'Avenir Next',sans-serif;letter-spacing:2px}.local{font-size:12px;color:var(--green)}main{max-width:1530px;margin:auto;padding:42px 5vw 70px}.intro{display:flex;align-items:end;justify-content:space-between;margin-bottom:40px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:2px;margin:0 0 13px;color:var(--muted)}h1{font:clamp(34px,4.5vw,64px)/1.1 Georgia,serif;letter-spacing:-2px;margin:0}.intro>p{font-size:14px;line-height:1.8;color:var(--muted);margin:0 0 3px}.workbench{display:grid;grid-template-columns:320px minmax(0,1fr);gap:48px}aside{border-top:1px solid var(--ink)}.control-group{padding:23px 0;border-bottom:1px solid var(--line)}h2{font:24px Georgia,serif;margin:0}.control-group h2{font-family:inherit;font-size:15px;font-weight:600;margin-bottom:18px;display:flex;align-items:center;gap:15px}.control-group h2 span{font-size:11px;color:var(--clay)}.upload{display:flex;gap:18px;align-items:center;border:1px dashed #afa28f;padding:15px;cursor:pointer;position:relative;background:#f0ebdf}.upload img{width:65px;height:65px;object-fit:cover;mix-blend-mode:multiply}.upload strong{display:block;font-size:13px;margin-bottom:6px}.upload small{font-size:11px;color:var(--muted);line-height:1.5}.upload input{position:absolute;width:100%;height:100%;left:0;top:0;opacity:0;cursor:pointer}.upload:focus-within{outline:2px solid var(--clay);outline-offset:3px}.subrow{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;font-size:10px;color:var(--muted)}#filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.textbutton{background:none;border:0;border-bottom:1px solid var(--line);padding:4px 0;color:var(--muted);font:inherit;font-size:11px;cursor:pointer;white-space:nowrap}.sizes{display:flex;gap:6px}.sizes button{flex:1;padding:13px 4px;text-align:left;padding-left:12px;background:transparent;border:1px solid var(--line);font:inherit;font-size:10px;cursor:pointer;color:var(--muted)}.sizes strong{display:block;font-size:21px;font-weight:500;margin-top:5px;color:var(--ink)}.sizes strong small{font-size:10px}.sizes button[aria-pressed=true]{border-color:var(--clay);background:#efe0d3}.sizes button[aria-pressed=true] strong{color:var(--clay)}.hint{font-size:11px;line-height:1.65;color:var(--muted);margin:12px 0 0}label:not(.upload){display:block;font-size:12px;margin:15px 0}label output{float:right;color:var(--clay);font-variant-numeric:tabular-nums}input[type=range]{display:block;width:100%;accent-color:var(--clay);margin:12px 0 4px;cursor:pointer}select{display:block;width:100%;margin-top:9px;border:1px solid var(--line);background:var(--paper);padding:10px 25px 10px 9px;border-radius:0;color:var(--ink);font:inherit;font-size:11px}.check{display:flex!important;align-items:center;gap:9px;line-height:1.45}.check input{accent-color:var(--clay);width:15px;height:15px;flex:none;margin:0}details{border-top:1px solid var(--line);padding-top:12px;margin-top:15px}summary{cursor:pointer;color:var(--muted);font-size:12px}.preview-panel{min-width:0}.preview-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.preview-title .eyebrow{margin-bottom:7px}.stage{position:relative;background:#e7e1d5;height:410px;overflow:hidden;border:1px solid #e1d8c9}#view{width:100%;height:100%;display:block;touch-action:none;cursor:grab}#view:active{cursor:grabbing}.stage-note{position:absolute;top:22px;left:24px;font-size:10px;letter-spacing:1.5px;pointer-events:none}.stage-note span{display:block;font-size:10px;color:var(--muted);letter-spacing:0;margin-top:5px}.orbit-hint{position:absolute;bottom:16px;right:22px;font-size:10px;color:var(--muted);pointer-events:none}.busy{position:absolute;bottom:16px;left:20px;background:var(--paper);padding:9px 12px;font-size:11px}.specs{display:flex;gap:30px;padding:19px 0;border-bottom:1px solid var(--line)}.specs strong{font-size:17px;font-weight:500;display:block;letter-spacing:-.3px}.specs span{display:block;color:var(--muted);font-size:10px;margin-top:5px}.impression{padding:28px 0}.impression-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}h3{font:21px Georgia,serif;margin:0}.impression-title>span{font-size:10px;color:var(--muted)}#clay{width:100%;max-height:365px;object-fit:contain;display:block;background:#ceaa8c}.scale-line{display:flex;justify-content:space-between;border-bottom:1px solid #9f917d;padding:8px 0;font-size:10px;color:var(--muted)}.export-area{border-top:1px solid var(--line);padding:20px 0}#status{color:var(--green);font-size:12px}#status.error{color:#a02c1b}#warnings{font-size:11px;line-height:1.6;padding-left:17px;color:var(--muted);margin:10px 0}.primary{width:100%;padding:17px 20px;background:var(--clay);border:0;color:#fff5e8;font:inherit;text-align:left;cursor:pointer;margin-top:9px}.primary span{float:right;font-size:11px}.primary:disabled{opacity:.5;cursor:wait}#downloads{margin-top:12px;font-size:11px}#downloads a{margin-right:20px}.first-print{padding:24px 0;border-top:1px solid var(--line)}.first-print .eyebrow{display:block}.first-print>p{max-width:620px;font-size:12px;line-height:1.7}.first-print>p.hint{font-size:11px}.part-links{display:flex;flex-wrap:wrap;gap:18px;margin:20px 0;font-size:11px}button:hover,a:hover{filter:brightness(.88)}:focus-visible{outline:2px solid var(--clay);outline-offset:4px}footer{display:flex;gap:30px;justify-content:space-between;border-top:1px solid var(--line);padding:25px 5vw;font-size:10px;letter-spacing:1px;color:var(--muted)}footer span{letter-spacing:0}[hidden]{display:none!important}@media(min-width:1400px){.stage{height:480px}}@media(max-width:900px){.workbench{gap:26px;grid-template-columns:280px minmax(0,1fr)}.intro>p{max-width:220px}.stage{height:330px}.specs{gap:20px}.specs strong{font-size:14px}.impression-title{align-items:start;gap:15px}.impression-title>span{max-width:110px}}@media(max-width:700px){header{height:70px}.wordmark{font-size:25px}.wordmark small,.wordmark i{display:none}.intro{display:block}.intro>p{max-width:none;margin-top:18px}.workbench{display:flex;flex-direction:column}.preview-panel{order:-1}.stage{height:310px}.intro{margin-bottom:26px}.first-print{padding-bottom:0}main{padding-top:30px}footer span{display:none}.specs{justify-content:space-between}.control-group{padding:22px 0}}

select,input[type=number]{width:100%;padding:9px;border:1px solid #c9c0b2;background:#f8f5ee;color:inherit;font:inherit;margin:5px 0 12px}input[type=color]{width:100%;height:38px;border:1px solid #c9c0b2}.corner-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.conversion-review{margin:30px 0;padding:26px 0;border-block:1px solid #d3c9ba}.conversion-review h3{font:26px Georgia,serif;margin:8px 0}.art-previews{display:grid;grid-template-columns:1fr 1fr;gap:18px}figure{margin:16px 0}figcaption{font-weight:600;margin:0 0 10px}figcaption span{display:block;font-size:12px;color:#70695e;font-weight:400;margin-top:5px}.art-previews img{width:100%;height:220px;object-fit:contain;background:white;border:1px solid #d3c9ba}#wrap{display:block;width:100%;border-inline:3px dashed #a0472e}#seam-status{font-size:13px;line-height:1.5}.conversion-review a{font-size:12px;text-decoration:underline;cursor:pointer}.conversion-review.stale{opacity:.45} [hidden]{display:none!important}@media(max-width:600px){.art-previews{grid-template-columns:1fr}.art-previews img{height:180px}}
/* Guided workspace: each control group stays with the preview it changes. */
main{max-width:1420px;padding-top:24px}.step-nav{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-bottom:1px solid var(--line);margin-bottom:16px}.step-nav button{font:inherit;text-align:left;background:none;border:0;border-bottom:3px solid transparent;padding:16px 10px;color:var(--muted);cursor:pointer}.step-nav button span{margin-right:12px;font-size:11px}.step-nav button[aria-current=step]{color:var(--clay);border-bottom-color:var(--clay);font-weight:600}.step-nav button:disabled{opacity:.42;cursor:default}.workflow-status{display:flex;align-items:center;gap:12px;background:var(--paper);border:1px solid var(--line);padding:12px 16px;position:sticky;top:0;z-index:8;min-height:68px}.workflow-status p{margin:0;font-size:13px;line-height:1.5}.workflow-status #next-hint{font-size:11px;color:var(--muted);margin-top:3px}.activity-dot{width:9px;height:9px;border-radius:50%;background:var(--green);flex:none}.workflow-status[data-state=busy] .activity-dot{background:transparent;border:2px solid #cdb8a7;border-top-color:var(--clay);width:15px;height:15px;animation:work-spin .8s linear infinite}.workflow-status[data-state=error]{border-color:var(--clay)}.workflow-status[data-state=error] .activity-dot{background:var(--clay)}@keyframes work-spin{to{transform:rotate(360deg)}}.step-intro{padding:32px 0 26px}.step-intro h1{font-size:clamp(30px,3.8vw,48px);letter-spacing:-1.2px}.step-intro>p:last-child{color:var(--muted);line-height:1.6;margin:12px 0 0}.step-grid{display:grid;grid-template-columns:minmax(260px,330px) minmax(0,1fr);gap:42px;align-items:start}.step-controls{padding-top:18px;border-top:1px solid var(--ink);min-width:0}.step-controls h2{font-family:inherit;font-size:15px;font-weight:600;margin:0 0 12px}.step-preview{min-width:0;position:sticky;top:88px}.control-divider{border-top:1px solid var(--line);margin-top:24px;padding-top:22px}.source-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px}.image-well{height:330px;display:flex;align-items:center;justify-content:center;background:#eae4d8;border:1px solid var(--line);padding:12px;color:var(--muted);text-align:center;font-size:13px}.image-well img{width:100%;height:100%;object-fit:contain}.source-pair figure{margin:0 0 16px}.source-pair figcaption{min-height:46px}.step-controls .upload{min-height:118px}.step-controls .upload strong{font-size:15px}.subrow{font-size:11px;flex-wrap:wrap}#filename{max-width:100%;overflow-wrap:anywhere;white-space:normal}#upload-status{font-size:12px;color:var(--green);line-height:1.5;min-height:36px}.conversion-review{margin:0;padding:0;border:0}.conversion-review figure:first-child{margin-top:0}#patch{width:100%;height:260px;object-fit:contain;background:#ede7dc;border:1px solid var(--line)}#wrap{max-height:265px;object-fit:contain;background:#ede7dc}.conversion-review.stale{opacity:.38}.conversion-review.stale a{pointer-events:none}.stage.stale canvas{opacity:.2}.stage.stale .busy{display:block}.busy{z-index:2}.stage{height:365px}.step-controls>label:first-child{margin-top:0}.flow-actions{display:flex;justify-content:space-between;gap:16px;position:sticky;bottom:0;z-index:9;background:var(--paper);border-top:1px solid var(--line);padding:18px 0;margin-top:30px}.flow-actions .primary{width:auto;min-width:240px;margin-left:auto;padding:14px 22px}.secondary{background:transparent;color:var(--ink);border:1px solid var(--line);font:inherit;padding:12px 18px;cursor:pointer}.primary:disabled,.secondary:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--clay);outline-offset:4px}.step-intro h1:focus{outline:none}.check-results h2{font-size:22px}.check-results ul{padding-left:20px;font-size:13px;line-height:1.7}.export-area{padding-top:18px}.first-print{margin-top:24px}#export-summary{font-size:14px;line-height:1.8}#step-1 .step-preview{top:110px}#mask-download,#wrap-download{font-size:12px;text-decoration:underline}#mask-download:not([href]),#wrap-download:not([href]){pointer-events:none;opacity:.4}.flow-panel[hidden]{display:none!important}
@media(max-width:900px){.step-grid{grid-template-columns:minmax(220px,290px) minmax(0,1fr);gap:22px}.source-pair{grid-template-columns:1fr}.image-well{height:210px}.source-pair figcaption{min-height:0}.stage{height:320px}}
@media(max-width:650px){header{height:65px}.wordmark small,.wordmark i{display:none}.local{font-size:10px}.wordmark{font-size:25px}main{padding:12px 18px 40px}.step-nav button{padding:14px 4px;font-size:12px}.step-nav button span{display:block;margin:0 0 4px}.workflow-status{padding:9px 11px;min-height:74px}.step-grid{grid-template-columns:1fr;gap:24px}.step-preview,#step-1 .step-preview{position:static}.step-controls{border-top:0;padding-top:0}.source-pair{grid-template-columns:1fr 1fr;gap:10px}.image-well{height:180px;padding:7px}.source-pair figcaption{min-height:45px;font-size:13px}.flow-actions{padding:12px 0}.flow-actions .primary{min-width:0;font-size:12px;padding:13px 12px}.secondary{font-size:12px;padding:12px}.step-intro{padding:24px 0}.stage{height:300px}.specs{gap:15px}.impression-title{gap:14px}.impression-title h3{font-size:20px}}
@media(prefers-reduced-motion:reduce){.workflow-status[data-state=busy] .activity-dot{animation:none}}
@media(min-width:651px) and (max-height:850px){header{height:60px}main{padding-top:12px}.step-nav{margin-bottom:10px}.step-nav button{padding:11px 10px}.workflow-status{padding:8px 14px;min-height:55px}.step-intro{padding:20px 0}.step-intro h1{font-size:35px}.step-intro .eyebrow{margin-bottom:8px}.step-intro>p:last-child{margin-top:8px;font-size:13px}.stage{height:295px}.image-well{height:260px}.flow-actions{padding:12px 0}.step-preview{top:75px}}
/* A settings rail and persistent work surface, like a slicer. */
@media(min-width:761px){
 body{height:100dvh;overflow:hidden;display:flex;flex-direction:column}header{height:60px;flex:none;padding-inline:28px}main{width:100%;max-width:none;min-height:0;flex:1;display:flex;flex-direction:column;padding:0 28px 16px}.step-nav{flex:none;margin:0;max-width:650px}.workflow-status{flex:none;position:static;border:0;border-bottom:1px solid var(--line);min-height:54px;padding:8px 0}.studio-workspace{flex:1;min-height:0;display:grid;grid-template-columns:350px minmax(0,1fr);gap:28px;padding-top:16px}.controls-pane{overflow:auto;padding-right:18px;scrollbar-gutter:stable}.viewer-pane{min-height:0;display:flex;flex-direction:column;overflow:hidden}.live-roller{flex:none}.stage{height:clamp(190px,33dvh,390px)}.review-content{overflow:auto;min-height:0;padding:16px 8px 24px 0;scrollbar-gutter:stable}footer{display:none}.flow-actions{gap:8px;margin-top:20px;padding:10px 0}.flow-actions .primary{min-width:0;font-size:12px;padding:12px}.flow-actions .secondary{font-size:12px;padding:10px}.source-pair{grid-template-columns:1fr 1fr}.preview-title{margin-bottom:10px}.preview-title .eyebrow{display:none}.specs{padding:10px 0;gap:28px}.specs strong{font-size:15px}
}
.step-intro{padding:0 0 20px}.step-intro .eyebrow{margin-bottom:8px}.step-intro h1{font-size:31px;letter-spacing:-.8px}.step-intro>p:last-child{font-size:12px;margin-top:8px}.step-controls{padding-top:18px}.review-tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);flex:none}.review-tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:13px 0;font:inherit;font-size:12px;color:var(--muted);cursor:pointer}.review-tabs button[aria-pressed=true]{color:var(--clay);border-bottom-color:var(--clay)}.review-panel{min-width:0}.image-well{height:220px}.source-pair figcaption{min-height:40px;font-size:13px}.source-well{height:auto;min-height:120px;padding:0;overflow:hidden}.crop-stage{position:relative;width:100%;touch-action:none;cursor:crosshair;overflow:hidden;line-height:0}.crop-stage #source{display:block;width:100%;height:auto;max-height:none;object-fit:fill;user-select:none;pointer-events:none}.crop-stage #crop-selection{position:absolute;border:2px solid #fff;outline:1px solid var(--clay);box-shadow:0 0 0 1000px #201b1866;cursor:move;touch-action:none}.crop-handle{position:absolute;width:20px;height:20px;border:2px solid var(--clay);background:white;padding:0;touch-action:none}.crop-handle.nw{left:-3px;top:-3px;cursor:nwse-resize}.crop-handle.ne{right:-3px;top:-3px;cursor:nesw-resize}.crop-handle.sw{left:-3px;bottom:-3px;cursor:nesw-resize}.crop-handle.se{right:-3px;bottom:-3px;cursor:nwse-resize}.crop-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:10px;font-size:10px;color:var(--muted)}.crop-instructions{padding-block:4px}.stage.stale canvas{opacity:.55}.impression{padding:0}#patch{height:220px}.live-roller{position:relative}#busy{max-width:75%}
@media(min-width:761px) and (max-width:1000px){.studio-workspace{grid-template-columns:290px minmax(0,1fr);gap:20px}main{padding-inline:20px}.source-pair{grid-template-columns:1fr 1fr;gap:12px}.image-well{height:160px}.source-well{height:auto}.specs{gap:16px}.review-tabs{gap:16px}.review-tabs button{font-size:11px}}
@media(max-width:760px){.studio-workspace{display:flex;flex-direction:column}.viewer-pane{display:contents}.live-roller{order:-2;position:sticky;top:0;z-index:5;background:var(--paper);padding-top:10px}.live-roller .stage{height:180px}.live-roller .preview-title{margin-bottom:8px}.live-roller .preview-title .eyebrow,.live-roller .specs{display:none}.live-roller h2{font-size:20px}.review-tabs{order:-1;gap:20px}.review-content{order:0;padding-block:16px}.controls-pane{order:1}.step-intro{padding-top:18px}.workflow-status{position:static}.source-pair{grid-template-columns:1fr 1fr}.image-well{height:180px}.source-well{height:auto}.flow-actions{position:static}}
@media(min-width:761px){.stage{height:clamp(170px,28dvh,330px)}.crop-stage{width:min(100%,calc(var(--source-aspect,1)*clamp(160px,calc(100dvh - 570px),360px)))}.image-well:not(.source-well){height:clamp(160px,calc(100dvh - 570px),360px)}.source-pair figcaption{min-height:32px}.specs{padding:8px 0}.review-content{padding-top:12px}}
@media(max-width:760px){.stage-note{display:none}.step-intro h1{scroll-margin-top:240px}}
