:root{font-family:system-ui,-apple-system,sans-serif;color:#342a2d;background:#fff9f7;font-synthesis:none}*{box-sizing:border-box}body{margin:0}.app{max-width:640px;margin:0 auto;padding:38px 20px 48px}header{text-align:center;margin-bottom:30px}.eyebrow{color:#c06f7d;font-size:.65rem;font-weight:700;letter-spacing:.18em}h1{font-size:2.4rem;letter-spacing:-.05em;margin:8px 0}h1 span{color:#d98090}header>p:last-child,.description,.note{color:#786c6e;font-size:.9rem;line-height:1.7}.card{background:#fff;border:1px solid #f1e4e1;border-radius:20px;padding:24px;box-shadow:0 12px 35px #744d4d0a}.step{color:#c06f7d;font-size:.7rem;font-weight:800;letter-spacing:.1em}.step span{color:#9d8d8e;margin-left:8px;letter-spacing:0}h2{font-size:1.2rem;margin:14px 0 4px}.description{margin:0 0 20px}.choose{display:block;position:relative;overflow:hidden;border-radius:12px;background:#bd6979;color:#fff;text-align:center;font-weight:700;padding:14px;cursor:pointer}.choose:focus-within{outline:3px solid #643e48;outline-offset:3px}.choose input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.empty{margin-top:20px;padding:48px 12px;background:#fcf8f7;border:1px dashed #e9d8d5;border-radius:12px;text-align:center;color:#a59495;font-size:.8rem}.empty span{font-size:2.5rem;color:#d9bdbe}figure{margin:20px 0 0;text-align:center}figure img{display:block;max-width:100%;max-height:60vh;margin:auto;object-fit:contain;border-radius:8px}figcaption{color:#8c7d7f;margin-top:8px;font-size:.8rem}.error{color:#a83245}.note{text-align:center;font-size:.75rem}button,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}.instructions{margin:20px 0 12px}.crop{position:relative;width:fit-content;max-width:100%;margin:0 auto 20px;line-height:0}.crop img{display:block;max-width:100%;max-height:65vh}.crop svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.crop polygon{fill:#fff2;stroke:#ed617d;stroke-width:.7;vector-effect:non-scaling-stroke}.corner{position:absolute;width:32px;height:32px;transform:translate(-50%,-50%);border:3px solid white;border-radius:50%;background:#bd6979;box-shadow:0 1px 5px #0008;touch-action:none}.loupe{position:absolute;right:8px;bottom:8px;width:120px;height:120px;border:3px solid white;border-radius:12px;box-shadow:0 2px 10px #0006;pointer-events:none}.primary{display:block;width:100%;border:0;border-radius:12px;background:#bd6979;color:#fff;text-align:center;font-weight:700;padding:14px;text-decoration:none}.editor{margin-top:20px}.stamp-buttons,.actions{display:flex;gap:8px;flex-wrap:wrap}.stamp-buttons button,.actions button,.editor>button{border:1px solid #e7d4d3;border-radius:10px;background:#fff9f7;padding:10px}.sticker-upload{display:inline-block;position:relative;overflow:hidden;margin-top:10px;padding:10px;border:1px solid #e7d4d3;border-radius:10px;background:#fff9f7;cursor:pointer}.sticker-upload input{position:absolute;inset:0;width:100%;opacity:0;cursor:pointer}.sticker-upload:focus-within{outline:3px solid #643e48;outline-offset:3px}.mask-label{margin:16px 0 6px}.history-buttons{display:flex;gap:8px;margin-top:12px}.history-buttons button{flex:1;border:1px solid #e7d4d3;border-radius:10px;background:#fff9f7;padding:10px}.preview-wrap{position:relative;width:100%;max-width:400px;margin:20px auto}.preview{display:block;width:100%;height:auto;touch-action:none}.selection{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.selection rect{fill:none;stroke:#bd6979;stroke-width:6;stroke-dasharray:18 10}.transform-handle{position:absolute;width:40px;height:40px;transform:translate(-50%,-50%);border:2px solid white;border-radius:50%;background:#bd6979;color:#fff;font-size:1.4rem;line-height:1;touch-action:none}.layer-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.layer-buttons button{flex:1 1 auto;border:1px solid #e7d4d3;border-radius:10px;background:#fff9f7;padding:10px}.field{display:block;margin:16px 0;font-size:.9rem}.field select,.field input{display:block;width:100%;margin-top:8px}.field output{float:right;color:#786c6e;font-variant-numeric:tabular-nums}.tone-controls{margin-top:24px;padding:14px;border:1px solid #f1e4e1;border-radius:12px}.tone-controls summary{cursor:pointer;font-weight:700}.tone-controls .description{margin:12px 0}.tone-controls button{border:1px solid #e7d4d3;border-radius:10px;background:#fff9f7;padding:10px}.tone-controls button[aria-pressed=true]{background:#bd6979;color:#fff}.skin-mode-notice{color:#8f4152;font-size:.85rem;line-height:1.5}.next{margin-top:30px}.actions>*{flex:1 1 150px}.disabled{opacity:.5;pointer-events:none}.saved-preview{display:block;width:100%;max-width:250px;height:auto;margin:12px auto}.secondary{display:block;text-align:center;color:#8f4152;padding:12px}.editor>button.primary{border:0;background:#bd6979;padding:14px}.footer{margin-top:28px;text-align:center;font-size:.75rem}.footer a{color:#786c6e}
