@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900&display=swap');
:root{font-family:Nunito,ui-rounded,system-ui,sans-serif;color:#49255f;background:#f7eef7;font-synthesis:none;--purple:#7941bc;--pink:#e55299;--muted:#8a738f}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #d488e5;outline-offset:3px}button{border:0}button:disabled{opacity:.55;cursor:wait}.app{max-width:520px;min-height:100dvh;margin:auto;background:#fffafc;padding:0 22px;box-shadow:0 0 80px #65316b0c}header{display:flex;align-items:center;justify-content:space-between;padding:28px 0 22px}.brand{display:flex;align-items:center;gap:9px;background:none;padding:0;color:var(--purple);font-size:29px;font-weight:900;letter-spacing:-1.4px;text-align:left}.brand span span{color:var(--pink)}.brand small{display:block;color:var(--muted);font-size:9px;letter-spacing:1px;font-weight:800;text-transform:uppercase}.brand-flower{font-size:44px;color:#e791c4;line-height:1}.bag{position:relative;background:#f4e9f7;color:var(--purple);font-size:28px;border-radius:16px;width:46px;height:46px}.bag b{position:absolute;right:-4px;top:-4px;background:var(--pink);color:white;border-radius:50%;font-size:11px;min-width:20px;padding:3px}.eyebrow{text-transform:uppercase;font-size:10px;font-weight:900;letter-spacing:2px;color:#9869b1}h1{font-size:34px;line-height:1.13;letter-spacing:-1.2px;margin:10px 0 13px;font-weight:900}h2{font-size:22px;letter-spacing:-.5px;margin:26px 0 16px}h3{font-size:17px;margin:8px 0}p{line-height:1.55}small,.muted{color:var(--muted)}.hero{position:relative;overflow:hidden;background:#eee0f9;border:1px solid #ead9f6;border-radius:28px;padding:24px}.hero p{font-size:14px;max-width:235px;margin:0}.hero .spark{position:absolute;right:25px;top:20px;font-size:27px;color:#d198de}.hero canvas{display:block;width:100%;height:auto;margin:-9px 0 -12px;pointer-events:none}.primary{background:var(--purple);color:white;border-radius:16px;padding:16px 20px;font-weight:800;width:100%;box-shadow:0 6px 14px #7941bc16}.primary:hover{background:#6935a8}.secondary{background:#f0e8f5;color:var(--purple);border-radius:14px;padding:13px 16px;font-weight:800}.outline{border:1px solid #dfcceb;background:transparent}.subtle{background:none;padding:8px 0;color:var(--purple);font-weight:800}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.chips{display:flex;gap:8px;overflow-x:auto;padding:20px 0 2px}.chip{border:1px solid #eadfec;background:white;border-radius:30px;padding:9px 16px;white-space:nowrap;font-size:13px;font-weight:800;color:#8c659e}.chip.active{background:var(--purple);color:white;border-color:var(--purple)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.product{border:1px solid #ecdfeb;border-radius:20px;overflow:hidden;background:white}.product canvas{width:100%;height:auto;display:block;background:#fbecf1}.product:nth-child(2) canvas{background:#eef5f7}.product-info{padding:12px}.product-info h3{font-size:14px}.product-info strong{display:block;margin:6px 0 11px}.product-info button{width:100%;padding:10px;font-size:12px}.note{border-radius:15px;background:#fcf4dd;padding:13px 15px;font-size:12px;line-height:1.5;margin-top:20px}.step{display:flex;gap:7px;margin:14px 0 24px}.step i{height:5px;flex:1;background:#e9ddef;border-radius:4px}.step i.done{background:#a775d0}.field{display:block;margin:22px 0}.label{font-weight:800;font-size:15px;display:block;margin-bottom:10px}.input{border:1px solid #ddcce6;background:white;border-radius:14px;padding:14px 15px;color:#50296b;width:100%;font-size:18px;font-weight:800}.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.choice{border:2px solid transparent;border-radius:17px;background:#f3ecf7;padding:14px 6px;color:#765487;font-size:12px;font-weight:800}.choice span{display:block;font-size:30px;margin-bottom:8px;color:#c38edb}.choice.selected{border-color:#a772d2;background:#eee0f8;color:var(--purple)}.swatches{display:flex;gap:13px;flex-wrap:wrap}.swatch{width:44px;height:44px;border-radius:50%;border:3px solid white;box-shadow:0 0 0 1px #e7dbe8;color:#412354;font-weight:900;font-size:20px}.swatch[aria-pressed=true]{box-shadow:0 0 0 2px var(--purple)}.error{color:#b52555;font-weight:800;font-size:13px;min-height:20px}.success{font-size:12px;color:#377158;background:#eaf5ec;padding:8px 12px;border-radius:25px;display:inline-block}.preview{background:linear-gradient(145deg,#f6e6ef,#f0e4f7);border-radius:25px;overflow:hidden;text-align:center;padding-bottom:20px}.preview canvas{width:100%;height:auto;display:block}.price{font-size:28px;font-weight:900}.actions{display:flex;gap:10px;margin:15px 0}.actions>*{flex:1}.camera-stage{position:relative;background:#241a31;border-radius:23px;overflow:hidden;min-height:310px;display:grid;place-items:center;margin:16px 0}.camera-stage video{width:100%;height:auto;display:block}.camera-stage canvas{position:absolute;width:100%;height:100%;inset:0;pointer-events:none}.camera-stage .placeholder{position:absolute;color:#e3d1ec;text-align:center;padding:30px}.placeholder span{display:block;font-size:58px;margin-bottom:18px}.camera-status{font-size:12px;line-height:1.5;min-height:36px;color:#785688}.controls{background:#f4ecf7;border-radius:16px;padding:14px}.controls label{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;margin:8px 0}.controls input{width:60%;accent-color:var(--purple)}.link{font-size:12px}.cart-item{background:#f4ecf7;padding:16px;border-radius:16px;margin-bottom:12px}.cart-item canvas{width:100px;height:auto;float:left;margin-right:12px}.cart-item:after{content:'';display:block;clear:both}details{margin:18px 0;font-size:12px}summary{cursor:pointer;font-weight:800}pre{white-space:pre-wrap;overflow-wrap:anywhere}.empty{text-align:center;padding:40px 10px}footer{text-align:center;font-size:11px;color:#977b9b;padding:38px 5px 28px;line-height:1.9}footer span{color:#d080b8}footer small{font-size:10px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:90vw;border-radius:15px;background:#4b2a62;color:white;padding:13px 20px;font-size:13px;box-shadow:0 8px 30px #35203d25;display:none;z-index:5}.back{background:none;padding:0;color:#906da1;font-size:12px;font-weight:800}.section-head{display:flex;justify-content:space-between;align-items:center}.section-head h2{margin:25px 0 14px}.section-head span{font-size:11px;color:var(--muted)}@media(max-width:360px){.app{padding:0 14px}.brand{font-size:25px}h1{font-size:29px}.swatches{gap:8px}}@media(prefers-reduced-motion:no-preference){main{animation:appear .25s ease}@keyframes appear{from{opacity:.5;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}}
[hidden]{display:none!important}.camera-stage.live{min-height:0}
.insert{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:10px 0 4px}.insert span{font-size:13px;font-weight:800;color:#765487;width:100%}.insert button{width:44px;height:44px;border-radius:12px;border:1px solid #ddcce6;background:#f3ecf7;color:#a35fc8;font-size:22px}.choice canvas{display:block;width:34px;height:34px;margin:0 auto 8px}
.debug{margin:14px 0;padding:12px;border-radius:14px;background:#1d1424;color:#d8f5e4}.debug label{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;font-weight:800}.debug select{font-size:14px;padding:6px;border-radius:8px}.debug pre{white-space:pre-wrap;word-break:break-word;font:12px/1.45 ui-monospace,Consolas,monospace;margin:10px 0;max-height:260px;overflow:auto}#debug-log{color:#b9a7c9;border-top:1px solid #3a2a48;padding-top:8px}
.shots{display:flex;gap:8px;overflow-x:auto;margin:10px 0}.shots button{flex:0 0 auto;padding:0;border:2px solid #e3d2ee;border-radius:12px;overflow:hidden;background:#000}.shots img{display:block;height:84px}.viewer{position:fixed;inset:0;z-index:50;background:#120c18f2;display:flex;flex-direction:column}.viewer-bar{display:flex;gap:6px;flex-wrap:wrap;padding:10px;justify-content:center}.viewer-bar button{border:0;border-radius:12px;padding:10px 12px;background:#f3ecf7;color:#50296b;font-weight:800;font-size:15px;min-width:44px}.viewer-scroll{flex:1;overflow:auto;touch-action:pan-x pan-y pinch-zoom}.viewer-scroll img{display:block;width:100%;margin:auto}
