*{margin:0;padding:0;box-sizing:border-box}:root{--ink: #2b2226;--rose: #e88fae;--deep: #b0537a;--blush: #fbe7ee;--line: #f0cfdc;--shadow: 0 2px 12px rgba(43, 34, 38, .08)}html{background:#fdf0f4}html,body{font-family:"Baloo 2",system-ui,sans-serif;color:var(--ink);min-height:100%}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(180deg,#fff8fb2e,#fff0f614),url(/bg-flowers.jpg) center / cover no-repeat}@media(min-width:769px){body:before{display:none}}.app{position:relative;max-width:560px;margin:0 auto;padding:24px 16px 56px}header{position:relative;text-align:center;background:#ffffffb8;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:1.5px solid var(--line);border-radius:14px;padding:12px 16px 14px;margin-bottom:14px;box-shadow:var(--shadow)}.mute-btn{position:absolute;top:8px;right:8px;width:34px;height:34px;border-radius:50%;border:1.5px solid var(--line);background:#fff;font-size:.95rem;cursor:pointer;line-height:1;transition:background .15s}.mute-btn:hover{background:var(--blush)}header h1{font-family:Pacifico,cursive;font-weight:400;font-size:clamp(1.7rem,6.5vw,2.3rem);color:var(--deep);line-height:1.4}.tagline{font-weight:500;font-size:.95rem;color:#9c7386;margin-top:2px}main{display:flex;flex-direction:column;gap:14px}.canvas-section{position:relative}.canvas-frame{position:relative;width:100%;aspect-ratio:1 / 1;background:#fff;border:1.5px solid var(--rose);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.draw-canvas,.overlay-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none}.overlay-canvas{z-index:2}.pencil-sprite{position:absolute;z-index:3;display:none;pointer-events:none;filter:drop-shadow(0 1px 2px rgba(43,34,38,.25))}.magic-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#fffbfdd1;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border-radius:14px;font-weight:600;font-size:1rem;color:var(--deep);text-align:center;padding:12px}.magic-pencil-spin{font-size:2.4rem;animation:spin-wobble 1.4s ease-in-out infinite}@keyframes spin-wobble{0%,to{transform:rotate(-18deg) scale(1)}50%{transform:rotate(18deg) scale(1.15)}}.toolbar{background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow)}.tool-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.tool-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;border:none;background:transparent;color:#6d5560;cursor:pointer;transition:background .15s,color .15s,transform .1s}.tool-btn:active{transform:scale(.92)}.tool-btn:hover{background:var(--blush)}.tool-btn.active{background:var(--blush);color:var(--deep)}.tool-divider{flex:1}.color-btn{width:24px;height:24px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--line);cursor:pointer;transition:transform .1s,box-shadow .1s}.color-btn.active{transform:scale(1.2);box-shadow:0 0 0 1.5px var(--deep)}.slider-row input[type=range]{flex:1;accent-color:var(--deep)}.dot-preview{border-radius:50%;flex-shrink:0}.fill-toggle{display:flex;align-items:center;gap:5px;font-weight:600;font-size:.85rem;color:#6d5560}.fill-toggle input{accent-color:var(--deep)}.description-input{font-family:inherit;font-size:1rem;font-weight:500;padding:13px 16px;border-radius:12px;border:1.5px solid var(--line);background:#fff;color:var(--ink);outline:none;width:100%;box-shadow:var(--shadow)}.description-input::placeholder{color:#b39aa6}.description-input:focus{border-color:var(--rose);box-shadow:0 0 0 3px #e88fae33}.boom-btn{font-family:inherit;font-size:1.1rem;font-weight:700;letter-spacing:.3px;padding:15px 18px;border:none;border-radius:12px;color:#fff;background:var(--deep);box-shadow:var(--shadow);cursor:pointer;transition:background .15s,transform .1s}.boom-btn:hover{background:#9c4468}.boom-btn:active{transform:scale(.985)}.boom-btn.busy{animation:pulse 1.4s ease-in-out infinite;font-size:.98rem}.boom-btn:disabled{cursor:wait}@keyframes pulse{0%,to{opacity:1}50%{opacity:.75}}.wiggle{animation:wiggle .5s ease-in-out}@keyframes wiggle{0%,to{transform:translate(0)}25%{transform:translate(-6px)}50%{transform:translate(6px)}75%{transform:translate(-3px)}}.gallery{background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:16px;box-shadow:var(--shadow)}.gallery.empty{text-align:center;font-weight:500;color:#9c7386}.gallery h2{font-size:1rem;font-weight:700;letter-spacing:.2px;margin-bottom:12px;color:var(--deep)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}.gallery-item{position:relative;border-radius:10px;overflow:hidden;box-shadow:0 0 0 1px var(--line);aspect-ratio:1 / 1}.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;cursor:pointer}.delete-btn{position:absolute;top:5px;right:5px;width:20px;height:20px;border-radius:50%;border:none;background:#2b2226a6;color:#fff;font-size:.6rem;cursor:pointer;line-height:1}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#2b222673;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:18px}.modal{position:relative;background:#fff;border-radius:16px;border:1.5px solid var(--line);padding:20px;max-width:440px;width:100%;max-height:90vh;overflow-y:auto;text-align:center;box-shadow:0 16px 48px #2b222640}.sparkle-in{animation:sparkle-in .4s cubic-bezier(.34,1.4,.64,1)}@keyframes sparkle-in{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}.modal h2{font-family:Pacifico,cursive;font-weight:400;font-size:1.35rem;color:var(--deep);margin-bottom:12px}.result-img{width:100%;border-radius:12px;box-shadow:0 0 0 1px var(--line)}.caption{font-weight:500;color:#9c7386;margin:12px 0}.modal-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.chip-btn{font-family:inherit;font-weight:600;font-size:.9rem;padding:8px 14px;border-radius:999px;border:1.5px solid var(--line);background:#fff;color:var(--deep);cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s}.chip-btn:hover{border-color:var(--rose);background:var(--blush)}.chip-btn.close{background:var(--deep);border-color:var(--deep);color:#fff}.sparkles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;border-radius:14px}.spark{position:absolute;left:50%;top:40%;color:var(--rose);font-size:15px;animation:burst 1s ease-out forwards;transform:rotate(calc(var(--i) * 45deg)) translateY(-10px)}@keyframes burst{0%{transform:rotate(calc(var(--i) * 45deg)) translateY(-10px) scale(.4);opacity:1}to{transform:rotate(calc(var(--i) * 45deg)) translateY(-170px) scale(1.2);opacity:0}}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%);z-index:30;background:var(--ink);color:#fff;font-weight:600;font-size:.95rem;padding:11px 20px;border-radius:999px;box-shadow:0 8px 24px #2b222640;max-width:90vw;text-align:center;animation:toast-in .3s ease-out}@keyframes toast-in{0%{transform:translate(-50%,16px);opacity:0}to{transform:translate(-50%);opacity:1}}
