@font-face{font-family:Meadow;src:url('assets/fonts/meadow.woff')}@font-face{font-family:Willow;src:url('assets/fonts/willow.woff')}@font-face{font-family:Ribbon;src:url('assets/fonts/ribbon.woff')}@font-face{font-family:Pebble;src:url('assets/fonts/pebble.woff')}@font-face{font-family:Quilt;src:url('assets/fonts/quilt.woff')}
:root{--bg:#f6f5f0;--paper:#fffefa;--ink:#333e38;--muted:#7b8178;--border:#e6e8df;--sage:#728b70;--sage-light:#eaf0e5;--shadow:0 3px 12px #34412e06,0 1px 3px #34412e05;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,select{cursor:pointer}button{color:inherit}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,canvas:focus-visible,a:focus-visible{outline:3px solid #ad795a;outline-offset:3px}button{transition:background .15s,transform .15s}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}.topbar{height:90px;padding:0 5.2%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-size:24px;font-weight:650;letter-spacing:-1px}.brand-dot{color:var(--sage);margin-left:-9px}.brand-icon{height:34px;width:34px;background:#e3eadc;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;font:italic 34px Georgia;position:relative;line-height:1}.brand-icon span{position:absolute;color:#8b9c7f;font:20px Georgia;right:-8px;top:-8px}.header-right{display:flex;align-items:center;gap:20px}.private-pill{font-size:11px;display:flex;align-items:center;gap:6px;color:#687961}.private-pill>span:first-child{font-size:17px}.header-right select{border:0;background:transparent;color:var(--ink);min-height:44px}.icon-button{width:38px;min-height:38px;border:1px solid var(--border);background:transparent;border-radius:50%;font-size:20px;display:inline-flex;align-items:center;justify-content:center}.header-right .icon-button{font-size:14px;width:27px;min-height:27px}.intro{display:flex;justify-content:space-between;align-items:center;max-width:1320px;margin:38px auto 30px;padding:0 12px}.eyebrow{font-size:9px;letter-spacing:1.8px;font-weight:650;color:#808b77}h1{font:400 clamp(30px,3vw,43px)/1.2 Georgia,serif;letter-spacing:-1.4px;margin:10px 0 11px}p{line-height:1.6}.intro p{color:var(--muted);font-size:13px;margin:0}.intro-flower{font-size:65px;color:#c7b6a6;transform:rotate(12deg);padding-right:12px;font-weight:200}.workspace{max-width:1320px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) 344px;gap:22px;padding:0 12px;align-items:start}.photo-panel{border:1px solid var(--border);border-radius:18px;overflow:hidden;background:var(--paper);box-shadow:var(--shadow);position:sticky;top:20px}.canvas-toolbar{height:61px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;gap:10px}.toolbar-left{font-size:12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.section-dot{width:7px;height:7px;border-radius:50%;background:#a6b59b}#dimensions{font-size:10px;color:var(--muted)}.history{display:flex;align-items:center;gap:8px}.history .icon-button{border:0;width:30px}.toolbar-divider{width:1px;height:18px;background:var(--border);margin:0 4px}.text-button{background:transparent;border:0;padding:8px 3px;font-size:11px;color:#737e6a;min-height:36px}.text-button:hover{color:#354b31;text-decoration:underline}.stage{margin:0 12px;background:#efeee8;border:1px solid #e4e4da;border-radius:10px;height:580px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;isolation:isolate;background-image:radial-gradient(#d8d9ce 0.7px,transparent .7px);background-size:12px 12px}.stage.has-photo{background:#e9e9e2}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:24px;max-width:100%}.photo-stack{width:190px;height:180px;margin:5px 0 22px;position:relative}.back-card{position:absolute;width:132px;height:155px;background:#dfd6c7;border:7px solid #fffefa;transform:rotate(-13deg);top:4px;left:18px;border-radius:4px;box-shadow:0 4px 8px #3d48351a}.front-card{position:absolute;left:38px;top:6px;width:132px;height:156px;background:#fffefa;padding:8px;transform:rotate(8deg);box-shadow:0 5px 12px #3d48351a;border-radius:4px}.front-card svg{background:#eee9dc;width:116px;height:112px}.front-card span{font:13px Willow,Georgia;color:#85927b}.stack-spark{position:absolute;right:-10px;top:0;font-size:48px;color:#9ba78c}.empty-state h2{font:400 25px/1.3 Georgia;letter-spacing:-.6px;margin:0 0 10px}.empty-state p{font-size:12px;color:var(--muted);margin:0 0 23px}.primary{border:1px solid #72866c;background:var(--sage);color:white;min-height:44px;border-radius:9px;padding:0 20px;font-size:12px;box-shadow:0 2px 4px #4e694416;display:inline-flex;align-items:center;justify-content:center;gap:8px}.primary:hover:not(:disabled){background:#617b5e}.primary>span:first-child:not(:last-child){font-size:19px}.file-hint{font-size:10px;color:#868a7f;margin-top:14px}.sample-button{margin-top:12px;font-size:10px}#canvas{max-width:100%;max-height:100%;touch-action:none;user-select:none;display:block;cursor:crosshair}#canvas.move{cursor:grab}.canvas-hint{pointer-events:none;position:absolute;bottom:16px;left:50%;transform:translateX(-50%);background:#fffef5ed;box-shadow:var(--shadow);padding:8px 15px;border-radius:20px;font-size:11px;color:#55644d;white-space:nowrap}.canvas-bottom{min-height:49px;padding:12px 20px;display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#888c81;gap:12px}.tiny-spark{color:#9baa8d;font-size:16px;margin-right:5px}#saveStatus{font-size:9px;white-space:nowrap}.editor-panel{background:var(--paper);border:1px solid var(--border);border-radius:18px;padding:23px;box-shadow:var(--shadow)}.panel-heading{display:flex;justify-content:space-between;margin-bottom:24px;align-items:center}.panel-heading .eyebrow{font-size:8px;letter-spacing:1.5px}.panel-heading h2{font:400 24px Georgia;letter-spacing:-.5px;margin:7px 0 0}.heading-doodle{font-size:35px;color:#c9b8a7;transform:rotate(-18deg)}.field-label{display:block;font-size:11px;font-weight:600;color:#56604f}.text-wrap{position:relative;margin-top:9px}.text-wrap textarea{resize:vertical;min-height:89px;max-height:200px;width:100%;border:1px solid #e0e5d8;border-radius:9px;background:#fbfcf7;padding:12px 13px 25px;line-height:1.6;color:#45503f;font-size:14px}.text-wrap textarea::placeholder{color:#979e8e}#charCount{position:absolute;bottom:9px;right:11px;font-size:9px;color:#a0a697;pointer-events:none}.field-note{font-size:9px;color:#8a9082;margin:7px 0 24px}.field-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.soft-tag{font-size:8px;padding:4px 7px;border-radius:6px;background:#f0f2e9;color:#859178}.font-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.font-option{background:#fffefa;border:1px solid #e5e7dd;border-radius:8px;min-height:52px;padding:6px 7px;position:relative;box-shadow:0 2px 3px #34412e03;text-align:left;overflow:hidden}.font-option .font-name{font-size:9px;font-family:-apple-system,BlinkMacSystemFont,sans-serif;display:block;color:#737d69;margin-bottom:1px}.font-option .font-preview{font-size:19px;line-height:1.2;display:block;white-space:nowrap}.font-option[aria-pressed=true]{border-color:#8fa281;background:#f0f4e9;box-shadow:0 0 0 1px #8fa28133}.font-option[aria-pressed=true]:after{content:'✓';position:absolute;top:7px;right:7px;color:#72886b;font-size:10px}.color-heading{margin-top:24px}.custom-color-label{display:flex;align-items:center;gap:6px;font-size:9px;color:#87907f;cursor:pointer}.custom-color-label input{width:22px;height:25px;padding:2px;border:1px solid #dce1d4;background:none;border-radius:5px;cursor:pointer}.swatches{display:flex;gap:9px;flex-wrap:wrap}.swatch{width:25px;height:25px;border:1px solid #00000012;border-radius:50%;background:var(--swatch);position:relative}.swatch[aria-pressed=true]{outline:2px solid #89997c;outline-offset:3px}.size-row{display:flex;justify-content:space-between;margin-top:24px;align-items:center}.size-row output{font-size:10px;color:#7b856f;background:#f0f2e9;padding:3px 8px;border-radius:5px}input[type=range]{width:100%;accent-color:var(--sage);height:27px;margin:6px 0 15px;cursor:pointer}.mode-switch{display:flex;gap:4px;background:#f0f1ea;border-radius:9px;padding:4px}.mode-switch button{border:0;background:transparent;border-radius:7px;min-height:39px;flex:1;font-size:10px;color:#7d8776;display:flex;justify-content:center;align-items:center;gap:6px}.mode-switch button>span:first-child{font-size:18px}.mode-switch .active{background:#fffefa;color:#566d4d;box-shadow:0 2px 5px #45553612}.tip{display:flex;gap:9px;background:#f6f3ec;padding:11px 12px;border-radius:8px;margin-top:12px}.tip>span{font-size:21px;color:#b9a287}.tip p{font-size:10px;color:#928573;margin:0;line-height:1.65}.layers-heading{display:flex;align-items:center;justify-content:space-between;margin-top:14px}.layers{max-height:145px;overflow:auto}.layers-empty{font-size:10px;color:#959d8b;margin:5px 0 15px}.layer{display:flex;width:100%;text-align:left;align-items:center;gap:8px;min-height:36px;border:1px solid transparent;background:#f9faf5;border-radius:6px;margin-bottom:5px;padding:5px 8px}.layer[aria-pressed=true]{border-color:#95a785}.layer span:last-child{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-dot{width:12px;height:12px;border-radius:50%;border:1px solid #0002;flex-shrink:0}.selection-tools{display:grid;grid-template-columns:1fr auto;align-items:center;font-size:10px;color:#7c866f}.selection-tools input{grid-column:1/-1;grid-row:2;height:20px;margin:0 0 8px}.danger{color:#a26d5e}.export-bar{display:flex;gap:7px;border-top:1px solid var(--border);padding-top:17px;margin-top:14px}.export-bar .primary{flex:1;padding:0 9px;font-size:11px;white-space:nowrap}.export-bar select{background:#fafbf6;border:1px solid var(--border);border-radius:8px;padding:0 5px;color:#78836d;font-size:9px;max-width:52px}.share-button{background:var(--paper);border:1px solid #dce2d3;border-radius:8px;padding:0 10px;display:flex;align-items:center;justify-content:center;gap:5px;font-size:11px;min-height:44px;color:#6b7c5e}.export-note{font-size:8px;color:#969d8c;display:block;text-align:center;margin-top:10px}.below-workspace{max-width:1320px;padding:16px 12px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:14px;color:#8b9183;font-size:9px}.project-actions{display:flex;align-items:center;gap:8px}.project-actions .text-button{font-size:9px;white-space:nowrap}footer{border-top:1px solid var(--border);margin:16px 5.2% 0;padding:24px 0 26px;display:flex;justify-content:space-between;gap:30px;align-items:center;color:#9a9e93}.footer-brand{font:italic 13px Georgia;white-space:nowrap}.footer-brand span{color:#a8b497;font-size:18px;margin-left:5px}footer p{font-size:8px;max-width:580px;margin:0;line-height:1.8;text-align:right}footer a{color:#7e8d71}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#344432;color:#fffef8;padding:13px 20px;border-radius:12px;font-size:12px;box-shadow:0 4px 20px #0002;max-width:min(90vw,500px);z-index:5;text-align:center}dialog{border:1px solid var(--border);border-radius:18px;padding:25px;width:min(500px,92vw);color:var(--ink);background:var(--paper);box-shadow:0 20px 80px #26362133}dialog::backdrop{background:#333e3855;backdrop-filter:blur(3px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-heading h2{font:25px Georgia;margin:0}dialog p{font-size:13px;color:#717c67}
@media(min-width:1500px){.stage{height:660px}}@media(min-width:700px) and (max-width:1050px){.workspace{grid-template-columns:minmax(0,1fr) 300px;gap:14px;padding:0 20px}.editor-panel{padding:18px}.intro{padding:0 20px}.stage{height:520px}.canvas-toolbar{padding:0 12px}.toolbar-left{font-size:11px}.history{gap:2px}.history .text-button{font-size:9px}.canvas-bottom{padding:10px;font-size:9px}.below-workspace{padding:12px 20px;flex-wrap:wrap}.swatches{gap:8px}.topbar{padding:0 24px}}
@media(max-width:699px){.topbar{height:69px;padding:0 20px}.brand{font-size:22px}.brand-icon{height:30px;width:30px;font-size:29px}.private-pill{display:none}.header-right{gap:12px}.header-right .icon-button{width:36px;min-height:36px}.intro{padding:0 21px;margin:26px 0 23px}.eyebrow{font-size:8px;letter-spacing:1.1px}h1{font-size:29px;letter-spacing:-1px;margin:9px 0}.intro p{font-size:11px;max-width:270px}.intro-flower{font-size:39px;padding:0}.workspace{display:flex;flex-direction:column;padding:0 12px;gap:14px}.photo-panel{position:relative;top:auto;width:100%;border-radius:14px}.canvas-toolbar{height:51px;padding:0 12px}.toolbar-left{font-size:10px;gap:5px}#dimensions{font-size:8px}.history{gap:2px}.history .text-button{font-size:9px}.history .icon-button{width:29px;min-height:38px}.stage{height:400px;margin:0 8px}.stage.has-photo{height:clamp(260px,53vh,490px)}.empty-state{padding:18px}.photo-stack{transform:scale(.8);height:150px;margin:0 0 5px}.empty-state h2{font-size:22px;max-width:260px}.empty-state p{font-size:11px;margin-bottom:16px}.file-hint{margin-top:11px}.sample-button{margin-top:5px;min-height:36px}.canvas-bottom{padding:9px 12px;min-height:42px;font-size:9px}.canvas-hint{font-size:10px;bottom:12px}.editor-panel{width:100%;padding:20px;border-radius:14px}.panel-heading{margin-bottom:18px}.panel-heading h2{font-size:25px}.font-grid{grid-template-columns:repeat(2,1fr);gap:8px}.font-option{min-height:58px;padding:7px 10px}.font-option .font-preview{font-size:22px}.font-option .font-name{font-size:10px}.field-label{font-size:12px}.field-note{font-size:10px}.text-wrap textarea{font-size:16px}.swatches{gap:13px}.swatch{width:28px;height:28px;margin:4px}.color-heading{margin-top:22px}.mode-switch button{min-height:44px;font-size:12px}.tip p{font-size:11px}.tip{padding:12px}.export-bar{padding-top:18px;gap:9px}.export-bar .primary,.share-button{min-height:47px;font-size:12px}.export-note{font-size:9px}.below-workspace{flex-direction:column;padding:15px 20px 5px;gap:5px;text-align:center;font-size:10px}.project-actions .text-button{font-size:10px;min-height:44px}.project-actions{gap:9px}footer{margin:15px 20px 0;flex-direction:column;gap:12px;padding:22px 0 calc(22px + env(safe-area-inset-bottom))}footer p{text-align:center;font-size:8px;max-width:400px}.icon-button{min-height:44px;min-width:44px}.layers{max-height:180px}.text-button{min-height:44px}.toast{bottom:calc(15px + env(safe-area-inset-bottom))}.export-bar{position:sticky;bottom:0;background:var(--paper);padding-bottom:8px;z-index:2}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* The visible color dot stays small, with a larger touch target. */
.swatch::before{content:'';position:absolute;inset:-7px;border-radius:50%}
