@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&display=swap');
:root{font-family:'DM Sans',Arial,sans-serif;color:#17191b;background:#fff;font-synthesis:none;font-size:16px;--line:#e3e5e7;--muted:#686e74;--accent:#2456ed}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,label,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,label:focus-within,select:focus-visible,canvas:focus-visible{outline:3px solid #2456ed;outline-offset:4px}[hidden]{display:none!important}.topbar{height:86px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4.5%;gap:20px}.wordmark{font-size:26px;font-weight:700;letter-spacing:4px;color:#101315;text-decoration:none}.wordmark span{font-size:11px;vertical-align:top;letter-spacing:0}.topbar>span{font-size:12px;letter-spacing:2px;color:var(--muted)}.topbar select{border:0;background:transparent;padding:10px;font-size:14px}.editor{max-width:1540px;margin:auto;display:grid;grid-template-columns:minmax(0,1.38fr) minmax(360px,1fr);min-height:760px}.visual{background:#f4f5f6;padding:30px 34px 24px;position:sticky;top:0;align-self:start}.view-heading{display:flex;justify-content:space-between;align-items:center;font-size:14px}.eyebrow{font-size:11px;letter-spacing:1.8px;font-weight:650}.view-heading #size-badge{background:#fff;padding:7px 12px;border-radius:20px;font-size:13px}.stage{height:490px;position:relative;margin-top:12px;overflow:hidden;touch-action:pan-y}.stage canvas#preview{width:100%;height:100%;display:block;touch-action:none}.stage #three-stage{position:absolute;inset:0;touch-action:none}.stage #three-stage canvas{display:block;width:100%;height:100%}.empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:24px}.empty-frame{height:170px;width:114px;border:1px solid #bec4c8;background:linear-gradient(125deg,#e3e7ea,#fff 60%,#d8dee2);box-shadow:10px 14px 25px #252c3420,-2px -2px 0 #fff;display:grid;place-items:center;transform:rotate(-5deg);margin-bottom:27px}.empty-frame span{font-size:35px;color:#9ca4ac;font-weight:400}.empty h2{font-size:25px;letter-spacing:-.8px;font-weight:500;margin:0 0 8px}.empty p{color:var(--muted);font-size:15px;margin:0 0 18px}.text-button{border:0;background:none;padding:0;text-decoration:underline;text-underline-offset:4px;font-size:14px;color:inherit}.view-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}.view-tabs button{padding:12px 4px;display:flex;justify-content:center;align-items:center;gap:7px;background:transparent;border:1px solid transparent;border-radius:6px;font-size:13px;color:#555c63}.view-tabs button[aria-pressed=true]{background:white;border-color:#dce0e3;color:#101315;box-shadow:0 2px 4px #00000004}.view-icon{font-size:20px}.stage-hint{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);background:#ffffffeb;box-shadow:0 2px 12px #00000006;border-radius:20px;padding:9px 15px;font-size:12px;white-space:nowrap;pointer-events:none}.visual-note{font-size:12px;color:#777f86;text-align:center;margin:18px 0 0}.controls{padding:40px 44px 32px}.intro .eyebrow{color:var(--accent);margin:0 0 14px}.intro h1{font-size:40px;line-height:1.13;letter-spacing:-1.8px;font-weight:500;margin:0 0 14px}.lead{color:var(--muted);font-size:15px;line-height:1.6;margin:0}.control-section{margin-top:27px}.control-section h2{font-size:15px;font-weight:600;margin:0 0 14px;display:flex;align-items:center;gap:10px}.step{display:inline-grid;place-items:center;border:1px solid #dadde1;border-radius:50%;width:23px;height:23px;font-size:12px}.upload{position:relative;border:1px dashed #bbc2ca;border-radius:7px;min-height:126px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;padding:17px 12px;text-align:center;cursor:pointer;transition:background .2s,border .2s}.upload:hover,.upload.dragover{background:#f5f8ff;border-color:var(--accent)}.upload input{position:absolute;width:1px;height:1px;opacity:0}.upload strong{font-size:14px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-symbol{font-size:25px;font-weight:400;line-height:1}.muted{font-size:13px;color:var(--muted);line-height:1.5}.file-change{font-size:12px;color:var(--accent);text-decoration:underline;text-underline-offset:3px}.orientation{display:grid;grid-template-columns:1fr 1fr;gap:12px}.orientation button{border:1px solid #d9dce1;border-radius:7px;background:#fff;display:grid;grid-template-columns:28px 1fr;align-items:center;text-align:left;padding:16px 15px;column-gap:12px}.orientation button[aria-pressed=true]{border:1.5px solid #161b24;background:#f8f9fb;padding:15.5px 14.5px}.orientation strong{font-size:14px;font-weight:550}.orientation span{font-size:13px;color:var(--muted);margin-top:4px}.format-shape{display:block;border:1.5px solid #161b24;grid-row:span 2;justify-self:center;background:linear-gradient(120deg,#e1e6eb,#fff)}.format-shape.portrait{width:18px;height:27px}.format-shape.landscape{width:27px;height:18px}.section-row{display:flex;justify-content:space-between;align-items:baseline}.crop-controls>p{margin:0}.zoom{display:flex;gap:14px;align-items:center;margin:14px 0 8px}.zoom input{min-width:0;flex:1;accent-color:#1e252c;cursor:pointer}.zoom output{font-size:12px;min-width:33px;text-align:right}.quality{font-size:12px!important;color:#667564;line-height:1.5;min-height:18px}.quality.warn{color:#9a6528}.purchase{margin-top:25px;padding-top:22px;border-top:1px solid var(--line)}.price-row{display:flex;justify-content:space-between;align-items:center}.price-row>div{display:flex;flex-direction:column;gap:3px}.price-row strong{font-size:30px;letter-spacing:-1px;font-weight:550}.price-size{font-size:13px;color:var(--muted)}.discount-note{font-size:12px;color:var(--muted);line-height:1.5;margin:9px 0 17px}.primary{width:100%;background:#161b22;color:#fff;display:flex;justify-content:space-between;align-items:center;border:0;border-radius:5px;padding:18px 19px;font-size:14px;font-weight:550;min-height:56px}.primary:hover:not(:disabled){background:#2e3743}.original-note{font-size:11px;line-height:1.5;color:var(--muted);text-align:center;margin:12px 0}#status{font-size:14px;line-height:1.5;color:#a43428}#result{background:#eef4ee;padding:15px;border-radius:6px;font-size:14px}#result p{font-size:12px;line-height:1.5}.download{color:#1b532a;text-underline-offset:4px}.loading{position:absolute;inset:0;background:#f4f5f6ea;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;z-index:3}.loading p{font-size:14px}.spinner{width:28px;height:28px;border:2px solid #ccd1d8;border-top-color:#171b23;border-radius:50%;animation:spin 1s linear infinite}.miniatures{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px}.miniatures button{padding:0;border:1px solid #dce0e4;border-radius:5px;overflow:hidden;background:#eee}.miniatures canvas{width:100%;display:block;aspect-ratio:1.5}footer{display:flex;justify-content:space-between;gap:16px;padding:25px 4.5%;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}footer>span:first-child{letter-spacing:3px}.embedded .topbar,.embedded footer{display:none}.embedded .editor{max-width:none}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:1500px){.stage{height:560px}.controls{padding:48px 60px}}@media(max-width:1050px){.controls{padding:30px 25px}.visual{padding:25px 20px}.intro h1{font-size:34px}.stage{height:440px}.view-tabs button{font-size:11px;gap:4px}}@media(max-width:760px){.topbar{height:65px;padding:0 20px}.topbar>span{display:none}.wordmark{font-size:22px}.editor{display:flex;flex-direction:column}.visual{position:relative;width:100%;padding:18px 16px}.stage{height:350px}.controls{padding:25px 22px}.intro h1{font-size:34px}.intro h1 br{display:none}.intro .eyebrow{font-size:10px}.view-tabs button{font-size:12px;padding:9px 3px}.view-icon{font-size:18px}.miniatures{margin-top:13px;gap:7px}.visual-note{font-size:11px;margin-top:12px}.control-section{margin-top:23px}.purchase{margin-top:20px}.stage-hint{font-size:11px;padding:8px 10px}.empty-frame{height:120px;width:80px;margin-bottom:22px}.empty h2{font-size:21px}.empty p{font-size:13px}footer{flex-direction:column;padding:20px 22px;gap:7px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Crop confirmation precedes previews and purchase, including on touch screens. */
.crop-action{display:flex;gap:18px;align-items:center;margin-top:16px}.crop-action>span{font-size:13px;color:var(--muted);flex:1}.crop-action .primary{width:auto;min-width:190px}.room-options{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0}.room-options button{border:1px solid #d5dbe1;border-radius:20px;background:#fff;padding:10px 14px;min-height:44px;font-size:12px}.room-options button[aria-pressed=true]{background:#171b22;color:white;border-color:#171b22}#edit-crop{margin-top:16px;min-height:44px}.editor[data-phase=crop] .view-tabs,.editor[data-phase=crop] .miniatures,.editor[data-phase=crop] .purchase{display:none!important}.editor[data-phase=preview] .crop-action,.editor[data-phase=preview] .crop-controls{display:none}.editor[data-phase=preview] .view-tabs button[data-view=crop]{display:none}.editor[data-phase=preview] .view-tabs{grid-template-columns:repeat(3,1fr)}
@media(max-width:760px){.editor{display:grid;grid-template-columns:1fr}.visual{grid-row:1;position:relative}.controls{display:contents}.intro{display:none}.control-section{margin:18px 20px 0}.crop-controls{grid-row:2;margin:0;padding:18px 20px;background:#f4f5f6}.purchase{margin:20px;padding-top:18px}.stage{height:clamp(270px,48svh,430px)}.crop-action{gap:10px}.crop-action>span{font-size:12px}.crop-action .primary{min-width:160px;padding:15px;font-size:13px}.editor[data-phase=preview] .purchase{grid-row:2}.orientation button{min-height:72px}.zoom input{min-height:44px}.visual-note{line-height:1.5}.editor{padding-bottom:20px}.view-tabs button{min-height:44px}}

.mobile-replace{display:none}@media(max-width:760px){.mobile-replace{display:block;font-size:12px}.view-heading{gap:8px}.view-heading>.eyebrow{display:none}.visual>.control-section{margin:14px 0 0;padding:0}.visual .step{display:none}.visual .control-section h2{margin-bottom:10px}.visual .crop-controls{background:none}.editor[data-has-photo=true] .upload-section{display:none}.editor[data-has-photo=false] .visual>.control-section,.editor[data-has-photo=false] .crop-action{display:none}.editor[data-phase=preview] .visual>.control-section{display:none}.visual-note{margin-top:14px}.stage{height:clamp(260px,40svh,350px)}.visual .quality{margin-top:8px}.visual .crop-controls>.muted{display:none}.visual .control-section h2{font-size:13px}.visual .zoom{margin:4px 0}.visual .orientation button{min-height:62px;padding:12px}.visual .orientation button[aria-pressed=true]{padding:11.5px}.crop-action>span{display:none}.crop-action .primary{width:100%;justify-content:center}}


/* Two large preview choices; confirmation is above the draggable photograph. */
.editor[data-phase=preview] .view-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.view-tabs button{min-height:58px;font-size:15px;gap:10px}.view-icon{font-size:25px}.crop-action{margin:14px 0 4px}.secondary{width:100%;min-height:56px;margin-top:10px;padding:14px 18px;border:1px solid #bac1cb;background:white;color:#171b22;border-radius:5px;font-size:14px;font-weight:550;line-height:1.45}.secondary:hover:not(:disabled){background:#f4f6fa}.editor[data-phase=preview] #preview{touch-action:pan-y}.room-options{gap:7px}.room-options button{flex:1 0 auto}.room-options #room-close{border-style:dashed}.editor[data-has-photo=false] .crop-action{display:none}
@media(max-width:760px){.view-tabs button{font-size:14px;min-height:58px}.crop-action .primary{min-height:46px;padding:12px}.stage{margin-top:8px}.room-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.room-options button{padding:10px 7px;line-height:1.3;min-height:44px}.room-options #room-close{grid-column:1/-1}.secondary{font-size:13px}.visual .control-section{margin-top:12px}}

/* Swipeable artwork thumbnails with native touch scrolling. */
.room-gallery{margin-top:18px;min-width:0}.gallery-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:#626a73}.gallery-heading>div{display:flex;gap:6px}.gallery-heading button{border:1px solid #d9dfe4;background:white;border-radius:50%;width:38px;height:38px;font-size:18px;color:#171b22}.room-gallery .room-options{display:flex;overflow-x:auto;flex-wrap:nowrap;gap:10px;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#bdc4cd transparent;padding:4px 2px 9px;margin:8px 0 0;touch-action:pan-x pan-y}.room-gallery .room-options button{flex:0 0 126px;min-width:0;padding:0;border:2px solid transparent;border-radius:8px;overflow:hidden;background:white;scroll-snap-align:start;min-height:0;color:#434b53}.room-gallery .room-options button[aria-pressed=true]{border-color:#171b22;background:white;color:#171b22}.room-options canvas{display:block;width:100%;height:auto;aspect-ratio:1.2}.room-options button span{display:block;padding:9px 4px;font-size:11px;line-height:1.4;white-space:nowrap}.room-gallery #room-close{display:block;margin:10px auto 0;min-height:40px;font-size:12px}.room-gallery #room-close[aria-pressed=true]{color:#2456ed}@media(max-width:760px){.room-gallery .room-options button{flex-basis:112px}.gallery-heading button{width:44px;height:44px}.room-gallery{margin-top:14px}}

.editor,.visual,.controls,.room-gallery,.room-options{min-width:0}.editor{width:100%}@media(max-width:760px){.editor{grid-template-columns:minmax(0,1fr)}}

.discount-note{font-size:15px;font-weight:650;line-height:1.6;color:#172c64;background:#edf2ff;border-left:3px solid #2456ed;border-radius:4px;padding:14px 16px;margin:16px 0}.discount-note span{display:block;margin-top:6px;color:#2456ed}.purchase-offer{margin-top:16px}.offer-shipping{background:#171b22;color:white;text-align:center;padding:14px 12px;border-radius:6px;font-size:14px;font-weight:650;margin:0 0 14px}.offer-card{padding:22px 18px;background:#f5f5f3;border:1px solid #e1e2e0;border-radius:8px}.offer-card h2{font-size:21px;line-height:1.3;text-align:center;margin:0 0 8px;letter-spacing:-.5px}.offer-subtitle{font-size:12px;color:#62686c;text-align:center;margin:0 0 15px}.offer-row{display:flex;gap:12px;align-items:center;border-top:1px solid #dedfdd;padding:15px 0;font-size:14px}.offer-row small{display:block;font-size:11px;color:#686e74;margin-top:4px}.offer-price{margin-left:auto;text-align:right;white-space:nowrap}.offer-price s{display:block;font-size:11px;color:#787d82}.offer-price strong{display:block}.offer-discount{background:#e8453b;color:white;border-radius:5px;padding:5px 6px;font-size:11px;font-weight:700;white-space:nowrap}.offer-note{font-size:11px;line-height:1.65;color:#656c71;margin:8px 0 0}@media(max-width:760px){.discount-note{font-size:14px}.offer-card{padding:20px 14px}.offer-row{gap:8px}}

.another-primary{margin-top:10px;gap:14px}.another-primary span:first-child{text-align:left}.offer-shipping{background:#e9f5ee;color:#17623b;border:1px solid #b7d9c3}.hanging-picker{margin:20px 0}.hanging-picker h2{font-size:17px;margin:0 0 6px}.hanging-free{font-size:13px;font-weight:700;color:#17623b;margin:0 0 14px}.hanging-picker img{width:100%;height:auto;display:block;border-radius:8px;border:1px solid #dce0e3}.hanging-picker fieldset{border:0;padding:0;margin:14px 0 0;display:grid;gap:9px}.hanging-picker legend{font-size:12px;color:#686e74;margin-bottom:10px}.hanging-picker label{display:flex;align-items:center;gap:9px;padding:13px 12px;min-height:48px;border:1px solid #d8dce1;border-radius:6px;font-size:13px;cursor:pointer}.hanging-picker label:has(input:checked){border-color:#171b22;background:#f4f5f6}.hanging-picker input{accent-color:#171b22;flex-shrink:0}.quality:empty{display:none}

/* Readable supporting copy on desktop and mobile. */
.hanging-free{font-size:17px;line-height:1.5;font-weight:700}.hanging-picker legend{font-size:16px;line-height:1.5;font-weight:600;color:#343a40}.offer-subtitle{font-size:16px;line-height:1.6;color:#434a50}.offer-note{font-size:15px;line-height:1.75;color:#434a50;margin-top:14px}
