:root{--bg:#f5f5f2;--paper:#fff;--ink:#20221f;--muted:#73776f;--line:#e3e5df;--accent:#c9f36a;--accent-dark:#91bd2f;--soft:#eeefe9;--radius:18px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh}.topbar{height:72px;padding:0 clamp(20px,5vw,76px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(255,255,255,.58)}.brand{display:flex;gap:11px;align-items:center;color:var(--ink);text-decoration:none;font-size:17px;font-weight:750;letter-spacing:-.04em}.brand-mark{display:grid;grid-template-columns:repeat(2,9px);gap:3px;transform:rotate(-7deg)}.brand-mark span{width:9px;height:9px;background:var(--ink);border-radius:2px}.brand-mark span:nth-child(2),.brand-mark span:nth-child(3){background:var(--accent-dark)}.privacy{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.privacy-dot,.info-dot{width:7px;height:7px;border-radius:50%;background:#72a82d;display:inline-block}.app{max-width:1260px;margin:0 auto;padding:55px clamp(18px,4vw,52px) 26px}.intro{max-width:700px;margin:0 auto 36px;text-align:center}.eyebrow,.preview-label{font-size:10px;font-weight:800;letter-spacing:.15em;color:#70766a}.intro h1{font-size:clamp(34px,5vw,56px);line-height:1.05;letter-spacing:-.065em;margin:15px 0 16px;font-weight:780}.intro h1 em{font-family:Georgia,serif;font-weight:400;letter-spacing:-.055em}.lead{font-size:15px;line-height:1.65;color:var(--muted);max-width:520px;margin:0 auto}.workspace{display:grid;grid-template-columns:320px minmax(0,1fr);background:var(--paper);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 16px 50px rgba(31,37,23,.045);min-height:550px}.controls{padding:25px 23px;border-right:1px solid var(--line)}.upload-panel{min-height:490px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.upload-icon{width:54px;height:54px;border-radius:16px;background:var(--soft);display:grid;place-items:center;margin-bottom:16px}.upload-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.upload-panel h2{font-size:17px;margin:0 0 7px;letter-spacing:-.03em}.upload-panel p{font-size:12px;color:var(--muted);margin:0 0 20px}.upload-panel .small-note{font-size:11px;margin:15px 0 0}.button{border:0;border-radius:10px;padding:13px 16px;font:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:transform .15s,background .15s}.button:active{transform:scale(.99)}.button-dark{background:var(--ink);color:white}.button-dark:hover{background:#3c4037}.button-accent{background:var(--accent);color:#1d2414;width:100%;display:flex;justify-content:center;align-items:center;gap:10px;margin-top:18px}.button-accent:hover{background:#b8e84e}.button-accent:disabled{opacity:.45;cursor:not-allowed}.button-quiet{background:transparent;color:var(--muted);width:100%;margin-top:5px;font-size:12px}.button-quiet:hover{background:var(--soft);color:var(--ink)}.section-heading{display:flex;align-items:center;gap:10px;margin:0 0 17px}.section-heading h2{font-size:14px;margin:0;letter-spacing:-.02em}.step,.mini-number{display:grid;place-items:center;background:var(--soft);border-radius:7px;width:25px;height:25px;font-size:10px;font-weight:800;color:#686f5e}.mode-switch{display:grid;grid-template-columns:1fr 1fr;background:#f1f2ed;border-radius:10px;padding:4px;margin-bottom:23px;gap:3px}.mode-btn{font:inherit;font-size:11px;font-weight:700;line-height:1.3;border:0;background:transparent;color:var(--muted);border-radius:7px;padding:10px 7px;cursor:pointer}.mode-btn.active{background:white;color:var(--ink);box-shadow:0 1px 4px #0000000d}.field-group{margin-bottom:21px}.field-label{display:block;font-size:11px;font-weight:750;margin:0 0 8px}.field-label strong{float:right;font-size:11px}.select,.input-unit{width:100%;height:43px;border:1px solid var(--line);border-radius:9px;background:white;font:inherit;font-size:13px;color:var(--ink)}.select{padding:0 11px;margin-bottom:15px}.input-unit{display:flex;align-items:center;padding:0 11px;gap:8px}.input-unit input{width:100%;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:14px;color:var(--ink)}.input-unit span{font-size:11px;color:var(--muted)}.helper{font-size:11px;line-height:1.5;color:var(--muted);margin:9px 0 0}.two-inputs{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:15px}.sub-label{display:block;font-size:10px;color:var(--muted);margin:0 0 6px}.two-inputs .input-unit{padding:0 8px}.two-inputs .input-unit input{font-size:12px}.output-heading{margin-top:25px}.quality-wrap{margin-top:17px}.quality-wrap input{width:100%;accent-color:#7da72d}.status{font-size:11px;line-height:1.45;color:var(--muted);margin:13px 0 0;min-height:16px}.preview-area{min-width:0;display:flex;flex-direction:column;padding:23px 24px 16px}.preview-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px}.image-name{font-size:13px;font-weight:700;margin-top:6px;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dimensions{font-size:11px;color:var(--muted);background:var(--soft);border-radius:7px;padding:8px 10px;white-space:nowrap}.preview-stage{position:relative;flex:1;min-height:390px;background-color:#f3f4f0;background-image:linear-gradient(45deg,#e9ebe5 25%,transparent 25%),linear-gradient(-45deg,#e9ebe5 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e9ebe5 75%),linear-gradient(-45deg,transparent 75%,#e9ebe5 75%);background-size:18px 18px;background-position:0 0,0 9px,9px -9px,-9px 0;border-radius:13px;overflow:hidden;display:flex;align-items:center;justify-content:center}.empty-state{text-align:center;padding:35px 20px;max-width:320px}.empty-state h3{font-size:14px;margin:20px 0 7px}.empty-state p{font-size:12px;line-height:1.5;color:var(--muted);margin:0}.empty-art{width:155px;height:105px;position:relative;margin:0 auto}.art-back{position:absolute;width:100px;height:70px;left:37px;top:4px;border:1px solid #c8ccc1;border-radius:5px;transform:rotate(8deg);background:#f9faf6}.art-front{position:absolute;left:5px;top:16px;width:126px;height:82px;background:#e2e8d8;border:1px solid #aab39e;border-radius:5px;overflow:hidden}.sun{position:absolute;width:19px;height:19px;background:#c4e878;border-radius:50%;top:14px;right:20px}.mountain{position:absolute;bottom:-15px;width:100px;height:70px;transform:rotate(45deg);border-radius:8px;background:#99b17e}.m1{left:3px}.m2{left:52px;bottom:-29px;background:#758d67}.crop-corner{position:absolute;width:13px;height:13px;border-color:#5d7f34;border-style:solid}.c1{left:0;top:10px;border-width:2px 0 0 2px}.c2{right:11px;top:10px;border-width:2px 2px 0 0}.c3{left:0;bottom:0;border-width:0 0 2px 2px}.c4{right:11px;bottom:0;border-width:0 2px 2px 0}.canvas-wrap{position:relative;display:inline-flex;max-width:100%;max-height:100%;line-height:0;align-items:center;justify-content:center}.canvas-wrap canvas{display:block;max-width:100%;max-height:100%;object-fit:contain}.preview-stage.has-image{padding:18px}.preview-stage.has-image .canvas-wrap{max-width:100%;max-height:100%;width:auto;height:auto}#previewCanvas{max-width:100%;max-height:100%;width:auto;height:auto}.crop-overlay{position:absolute;inset:0;pointer-events:none}.crop-shade{position:absolute;background:rgba(13,17,10,.48)}.crop-shade-top,.crop-shade-bottom{left:0;right:0}.crop-shade-top{top:0}.crop-shade-bottom{bottom:0}.crop-shade-left,.crop-shade-right{top:0;bottom:0}.crop-frame{position:absolute;border:1.5px solid #fff;box-shadow:0 0 0 1px #20251b;pointer-events:auto;cursor:move;touch-action:none;outline:none}.crop-frame:focus-visible{box-shadow:0 0 0 3px var(--accent)}.frame-grid{position:absolute;inset:0;background:linear-gradient(to right,transparent 33.1%,#ffffff8a 33.3%,#ffffff8a 33.8%,transparent 34%),linear-gradient(to right,transparent 66.1%,#ffffff8a 66.3%,#ffffff8a 66.8%,transparent 67%),linear-gradient(to bottom,transparent 33.1%,#ffffff8a 33.3%,#ffffff8a 33.8%,transparent 34%),linear-gradient(to bottom,transparent 66.1%,#ffffff8a 66.3%,#ffffff8a 66.8%,transparent 67%);pointer-events:none}.frame-corner{position:absolute;width:10px;height:10px;border:2px solid white}.tl{left:-2px;top:-2px;border-right:0;border-bottom:0}.tr{right:-2px;top:-2px;border-left:0;border-bottom:0}.bl{left:-2px;bottom:-2px;border-right:0;border-top:0}.br{right:-2px;bottom:-2px;border-left:0;border-top:0}.stage-hint{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);font-size:10px;background:#20221fda;color:white;border-radius:20px;padding:8px 12px;white-space:nowrap;pointer-events:none}.preview-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:13px}.file-info{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:7px}.output-dimensions{font-size:10px;font-weight:750;white-space:nowrap}.how-it-works{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;padding:40px 20px 34px}.how-it-works>div{position:relative;padding-left:39px}.mini-number{position:absolute;left:0;top:0}.how-it-works h3{font-size:13px;margin:3px 0 7px}.how-it-works p{font-size:12px;line-height:1.5;color:var(--muted);margin:0}footer{border-top:1px solid var(--line);padding:18px 2px 4px;display:flex;justify-content:space-between;gap:15px;font-size:10px;color:var(--muted)}footer span:first-child{font-weight:800;color:var(--ink)}[hidden]{display:none!important}.upload-panel.dragging{background:#f8fbea;outline:2px dashed #a8ce58;outline-offset:-12px;border-radius:12px}@media(max-width:850px){.workspace{grid-template-columns:280px minmax(0,1fr)}.controls{padding:20px 17px}.preview-area{padding:20px 17px 14px}.preview-stage{min-height:330px}.how-it-works{gap:20px}}@media(max-width:650px){.topbar{height:60px;padding:0 18px}.privacy{font-size:10px}.app{padding:36px 12px 20px}.intro{margin-bottom:25px}.intro h1{font-size:37px}.lead{font-size:13px;max-width:370px}.workspace{display:flex;flex-direction:column;border-radius:16px}.controls{order:2;border-right:0;border-top:1px solid var(--line);padding:22px 18px}.preview-area{order:1;padding:16px 12px 13px}.preview-stage{min-height:270px;max-height:55vh}.preview-stage.has-image{padding:10px}.preview-top{margin-bottom:10px}.image-name{max-width:180px}.empty-art{transform:scale(.8);margin-top:-10px;margin-bottom:-10px}.empty-state{padding:20px 12px}.empty-state h3{margin-top:10px}.how-it-works{grid-template-columns:1fr;gap:20px;padding:28px 8px}.how-it-works>div{min-height:32px}footer{font-size:9px}.upload-panel{min-height:300px}}