:root{--purple:#6644b4;--purple-d:#4b2f8f;--pink:#fec3e1;--pink-s:#ffe3f1;--magenta:#c0185f;--hot:#f04fa6;--ink:#2b2433}
*{box-sizing:border-box;margin:0;padding:0}body{font-family:Montserrat,sans-serif;color:var(--ink);background:#fff;line-height:1.6}a{color:inherit;text-decoration:none}svg{width:1.15em;height:1.15em;flex:none}
.wrap{max-width:1060px;margin:0 auto;padding:0 20px}.c{text-align:center}
.sample{background:var(--ink);color:#f3e6ff;font-size:12px;text-align:center;padding:6px 10px}
.top{position:sticky;top:0;z-index:5;background:rgba(246,245,243,.94);backdrop-filter:blur(8px);border-bottom:1px solid #ece8f2}
.nav{display:flex;justify-content:space-between;align-items:center;padding:10px 20px}
.brand{display:flex;align-items:center;gap:10px}.brand .mini{width:42px;height:42px;border-radius:50%;background:#fff;display:grid;place-items:center;color:var(--hot);box-shadow:0 0 0 2px var(--pink)}.brand .mini svg{width:34px;height:34px}
.brand b{display:block;font-family:'Cormorant Garamond',serif;font-weight:600;font-size:26px;line-height:1;color:var(--ink)}.brand small{font-size:9.5px;letter-spacing:.28em;text-transform:uppercase;color:#6b6472}
.btn{display:inline-flex;gap:8px;align-items:center;justify-content:center;background:var(--hot);color:#fff;font-weight:600;padding:14px 22px;border-radius:999px;font-size:15px;box-shadow:0 10px 22px rgba(240,79,166,.3);transition:.2s}.btn:hover{transform:translateY(-2px)}
.btn.ghost{background:rgba(255,255,255,.12);box-shadow:inset 0 0 0 2px rgba(255,255,255,.55)}.btn.light{background:#fff;color:var(--purple)}.btn.sm{padding:9px 16px;font-size:14px}
.hero{background:radial-gradient(circle at 15% 15%,#8a66d6 0,transparent 45%),radial-gradient(circle at 90% 90%,#c04fb0 0,transparent 45%),var(--purple);color:#fff;padding:44px 0 60px;overflow:hidden}
.hero-in{display:grid;gap:26px;justify-items:center;text-align:center}
.badge-wrap{position:relative;width:220px;height:220px}.halo{position:absolute;inset:-18px;border-radius:50%;background:radial-gradient(circle,rgba(254,195,225,.35),transparent 70%);animation:pulse 3.2s ease-in-out infinite}
.badge{position:relative;width:220px;height:220px;border-radius:50%;background:var(--purple-d);box-shadow:0 0 0 6px rgba(255,255,255,.18),0 24px 50px rgba(30,10,60,.45);display:grid;place-items:center;color:var(--hot);animation:float 4s ease-in-out infinite}.badge .cup{width:150px;height:150px}
.badge .cup path{stroke-dasharray:320;stroke-dashoffset:320;animation:draw 2.6s ease forwards}
.dot{position:absolute;border-radius:50%;background:var(--pink)}.d1{width:16px;height:16px;top:6px;right:4px;animation:float 3s infinite}.d2{width:10px;height:10px;bottom:20px;left:-6px;background:#fff;animation:float 3.6s infinite}.d3{width:22px;height:22px;bottom:-4px;right:20px;opacity:.7;animation:float 4.4s infinite}
@keyframes float{50%{transform:translateY(-10px)}}@keyframes pulse{50%{transform:scale(1.08);opacity:.6}}@keyframes draw{to{stroke-dashoffset:0}}
.script{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:28px;color:var(--pink)}
h1{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:clamp(38px,9.5vw,64px);line-height:1.05;margin:6px 0 12px}.lead{opacity:.9;margin-bottom:22px}.cta{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.block{padding:56px 20px}h2{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:38px;line-height:1.1;margin-bottom:18px;color:var(--purple-d)}
.feature{background:var(--pink);border-radius:36px;padding:30px 24px;margin-top:-80px;position:relative;box-shadow:0 20px 40px rgba(102,68,180,.18)}
.f-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px}.label{background:#fff;color:var(--magenta);border-radius:999px;padding:4px 12px;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.feature h2{color:var(--magenta);margin:0}.price{color:var(--magenta)}.price b{font-size:28px}.f-intro{font-weight:600;color:#7a1d4a;margin:12px 0 14px}
.ticks{list-style:none;display:grid;gap:8px;margin-bottom:22px}.ticks li{padding-left:30px;position:relative;color:#5a2440}.ticks li:before{content:"";position:absolute;left:0;top:5px;width:16px;height:16px;border-radius:50%;background:var(--magenta);box-shadow:inset 0 0 0 4px #fff}.ticks.small li{font-size:15px}
.cakes{background:var(--pink-s)}.cakes .script{color:var(--hot)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:8px}
.pc{background:#fff;border-radius:30px;padding:22px 16px;text-align:center;box-shadow:0 10px 26px rgba(192,24,95,.08)}.size{display:inline-grid;place-items:center;width:62px;height:62px;border-radius:50%;background:var(--purple);color:#fff;font-family:'Cormorant Garamond';font-size:28px;font-weight:600;margin-bottom:10px}
.pc h3{color:var(--magenta);font-size:16px}.srv{font-size:13px;color:#7b6f86}.from{margin-top:6px}.from b{font-size:22px;color:var(--purple-d)}.fine-c{text-align:center;font-size:14px;color:#7b6f86;margin-top:18px}
.split{display:grid;gap:22px}.cupcakes,.flavours{border-radius:34px;padding:28px 22px}.cupcakes{background:var(--purple);color:#fff}.cupcakes h2{color:#fff}.cupcakes .ticks li{color:#fff}.cupcakes .ticks li:before{background:var(--pink);box-shadow:inset 0 0 0 4px var(--purple)}
.boxes{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}.bx{background:rgba(255,255,255,.12);border-radius:24px;padding:16px;text-align:center}.bx b{display:block}.bx span{color:var(--pink);font-weight:700;font-size:20px}.inc{font-weight:700;margin-bottom:8px}
.flavours{background:#faf7fd;box-shadow:inset 0 0 0 2px #eee6f8}.flavours .script{color:var(--hot)}.fl{padding:12px 0;border-bottom:1px dashed #e3d8f1}.fl h3{color:var(--magenta);font-size:17px}.fl em{font-style:normal;font-size:11px;background:var(--pink);color:var(--magenta);border-radius:999px;padding:2px 9px;margin-left:6px;vertical-align:middle}.fl em.new{background:var(--purple);color:#fff}.fl p{font-size:15px;color:#5d5566}.up{margin-top:14px;font-weight:600;color:var(--purple)}
.order{background:var(--purple-d);color:#fff}.order h2{color:#fff}.steps{list-style:none;display:grid;gap:12px;counter-reset:s;margin-bottom:24px}.steps li{counter-increment:s;background:rgba(255,255,255,.08);border-radius:28px;padding:18px 18px 18px 72px;position:relative}
.steps li:before{content:counter(s);position:absolute;left:18px;top:18px;width:38px;height:38px;border-radius:50%;background:var(--hot);display:grid;place-items:center;font-weight:700}.steps b{display:block}.steps span{opacity:.85;font-size:15px}
.muted{color:#8a8295;margin:-8px 0 18px}.gal{display:grid;grid-template-columns:1fr 1fr;gap:12px}.g{aspect-ratio:1;border-radius:50%;display:grid;place-items:center;text-align:center;padding:16px;font-weight:600;color:var(--magenta);background:radial-gradient(circle at 35% 30%,#fff,var(--pink));box-shadow:0 0 0 6px var(--pink-s)}.g:nth-child(even){background:radial-gradient(circle at 35% 30%,#a58be0,var(--purple));color:#fff}
footer{background:var(--ink);color:#d9d0e4;padding:36px 0 96px;font-size:14px}.foot{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.foot img{border-radius:50%;box-shadow:0 0 0 3px rgba(255,255,255,.15)}.fb{font-family:'Cormorant Garamond';font-size:26px;color:#fff}.fine{opacity:.6;font-size:12px;margin-top:8px}
.float{position:fixed;right:18px;bottom:18px;width:58px;height:58px;border-radius:50%;background:#25d366;color:#fff;display:grid;place-items:center;box-shadow:0 8px 22px rgba(0,0,0,.25)}.float svg{width:28px;height:28px}
@media(min-width:760px){.hero-in{grid-template-columns:auto 1fr;text-align:left;justify-items:start;align-items:center}.hero .cta{justify-content:flex-start}.badge-wrap,.badge{width:280px;height:280px}.badge .cup{width:190px;height:190px}.hero{padding:70px 0 130px}
.grid{grid-template-columns:repeat(4,1fr)}.split{grid-template-columns:1fr 1.3fr}.steps{grid-template-columns:repeat(4,1fr)}.gal{grid-template-columns:repeat(4,1fr)}}
/* ---- order wizard ---- */
.wizard-sec{background:linear-gradient(180deg,var(--pink-s),#fff)}.wizard-sec .script{color:var(--hot)}
.wiz{max-width:720px;margin:0 auto;background:#fff;border-radius:34px;padding:22px 18px 18px;box-shadow:0 20px 44px rgba(102,68,180,.14)}
.prog{height:10px;border-radius:999px;background:#efe7fa;overflow:hidden}.bar{height:100%;width:20%;border-radius:999px;background:linear-gradient(90deg,var(--purple),var(--hot));transition:width .35s}
.dots{list-style:none;display:flex;justify-content:space-between;margin:10px 0 18px;font-size:11px;font-weight:600;color:#a197ad}.dots li{display:flex;flex-direction:column;align-items:center;gap:4px}.dots li:before{content:"";width:12px;height:12px;border-radius:50%;background:#e6dcf4}.dots li.on{color:var(--purple)}.dots li.on:before{background:var(--hot)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.step{border:0}.step legend{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:28px;color:var(--purple-d);margin-bottom:14px}
.cards{display:grid;gap:10px}.cards.two{grid-template-columns:1fr 1fr}
.opt{position:relative;cursor:pointer}.opt input,.chip input,.sw input{position:absolute;opacity:0;width:1px;height:1px}
.opt span{display:block;border-radius:24px;padding:14px 16px;background:#faf7fd;box-shadow:inset 0 0 0 2px #ece4f6;transition:.15s;height:100%}.opt b{display:block;color:var(--purple-d)}.opt small{color:#7b6f86;font-size:13px}
.opt input:checked+span{background:var(--pink);box-shadow:inset 0 0 0 2px var(--hot)}.opt input:checked+span b{color:var(--magenta)}.opt input:focus-visible+span,.chip input:focus-visible+span,.sw input:focus-visible+span{outline:3px solid var(--purple);outline-offset:2px}
.lbl{display:block;font-weight:600;font-size:14px;margin:14px 0 6px;color:var(--ink)}.lbl small{font-weight:400;color:#8a8295}
.wiz input:not([type=radio]):not([type=checkbox]),.wiz textarea{width:100%;font:inherit;border:0;border-radius:18px;padding:12px 16px;background:#faf7fd;box-shadow:inset 0 0 0 2px #ece4f6;color:var(--ink)}.wiz textarea{border-radius:22px;resize:vertical}
.wiz input:focus,.wiz textarea:focus{outline:none;box-shadow:inset 0 0 0 2px var(--purple)}
.stepper{display:inline-flex;align-items:center;gap:6px;background:#faf7fd;border-radius:999px;padding:4px}.stepper button{width:42px;height:42px;border-radius:50%;border:0;background:var(--purple);color:#fff;font-size:22px;cursor:pointer}.stepper input{width:64px!important;text-align:center;background:transparent!important;box-shadow:none!important}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{cursor:pointer;position:relative}.chip span{display:inline-block;border-radius:999px;padding:9px 16px;background:#faf7fd;box-shadow:inset 0 0 0 2px #ece4f6;font-size:14px}.chip em{font-style:normal;font-size:10px;font-weight:700;background:var(--purple);color:#fff;border-radius:999px;padding:1px 7px}
.chip input:checked+span{background:var(--hot);color:#fff;box-shadow:none}.chip.solo{display:block;margin-top:14px}.chip.solo span{border-radius:22px;display:block}
.swatches{display:flex;flex-wrap:wrap;gap:10px}.sw{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;width:54px}.sw span{width:40px;height:40px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}.sw em{font-style:normal;font-size:10.5px;color:#6b6472;text-align:center}
.sw input:checked+span{box-shadow:0 0 0 3px #fff,0 0 0 5px var(--hot)}
.grid2{display:grid;grid-template-columns:2fr 1fr;gap:10px}
.note{background:#f4effb;border-radius:20px;padding:10px 14px;font-size:13.5px;color:#5d5566;margin-top:12px}.note.busy{background:var(--pink-s);color:#7a1d4a}
.err{display:none;color:#c0185f;font-size:13px;font-weight:600;margin-top:6px}.err.on{display:block}
.summary ol{list-style:none;display:grid;gap:6px}.summary li{display:grid;grid-template-columns:1fr;background:#faf7fd;border-radius:18px;padding:9px 14px;font-size:14px}.summary li span{font-size:11.5px;color:#8a8295;text-transform:uppercase;letter-spacing:.06em}.summary li b{font-weight:600;color:var(--ink);word-break:break-word}
.est{margin-top:14px;background:var(--purple);color:#fff;border-radius:26px;padding:16px 18px;display:grid}.est b{font-family:'Cormorant Garamond',serif;font-size:34px;line-height:1.1}.est small{opacity:.85}
.nav-btns{display:flex;justify-content:space-between;gap:10px;margin-top:20px}.nav-btns .btn{border:0;cursor:pointer;font:inherit;font-weight:600}.btn.ghost2{background:#f1ebf9;color:var(--purple);box-shadow:none}
.reset{display:block;margin:12px auto 0;background:none;border:0;color:#8a8295;font:inherit;font-size:13px;text-decoration:underline;cursor:pointer}
@media(min-width:760px){.cards{grid-template-columns:repeat(3,1fr)}.cards.two{grid-template-columns:repeat(2,1fr)}.wiz{padding:30px}}
