:root{--p:#652d90;--pd:#3f1a5c;--pl:#f3ecfa;--k:#14101a;--w:#fff;--r:14px}
*{box-sizing:border-box}body{margin:0;font:16px/1.5 'DM Sans',sans-serif;color:var(--k);background:var(--w)}
h1,h2{font-family:'Lilita One',sans-serif;font-weight:400;line-height:1.05;margin:0}
button,input,select,textarea{font:inherit}button{cursor:pointer}
:focus-visible{outline:3px solid var(--p);outline-offset:2px}
.cartbtn{background:var(--w);color:var(--k);border:0;border-radius:99px;padding:10px 16px;font-weight:700}
.cartbtn span{background:var(--p);color:var(--w);border-radius:99px;padding:1px 8px;margin-left:4px}
.hero{display:grid;gap:28px;padding:32px 16px;background:var(--pl);grid-template-columns:1fr}
.hero h1{font-size:clamp(2.4rem,7vw,4.4rem);color:var(--p);max-width:11ch}
.hero-copy>p{max-width:46ch}
.cust{background:var(--w);border-radius:var(--r);padding:16px;border:2px solid var(--k);max-width:520px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
label{display:block;font-size:14px;font-weight:700}select,input:not([type=file]),textarea{width:100%;padding:10px;border:1.5px solid var(--k);border-radius:10px;margin-top:4px;background:var(--w)}
.drop{margin:12px 0;border:2px dashed var(--p);border-radius:10px;padding:16px;text-align:center;color:var(--p);cursor:pointer}
.btn{width:100%;background:var(--p);color:var(--w);border:0;border-radius:10px;padding:13px;font-weight:700}.btn:hover{background:var(--pd)}
.msg{min-height:1.4em;margin:8px 0 0;font-size:14px;color:var(--pd)}
.cloth-wrap{display:grid;place-items:center}
.cloth{position:relative;width:min(300px,78vw);aspect-ratio:3/4;background:#efe9df;border:3px solid var(--k);outline:2px dashed var(--k);outline-offset:-12px;display:grid;place-items:center;overflow:hidden;transform:rotate(-2deg);box-shadow:8px 8px 0 var(--p)}
.cloth img{position:absolute;inset:16px;width:calc(100% - 32px);height:calc(100% - 32px);object-fit:cover}
#clothHint{font-size:14px;color:#6b6472;padding:0 30px;text-align:center}
.mist{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 85% 12%,var(--m,#3b2a55) 0,transparent 55%);opacity:0}
.mist.go{animation:spray 1.2s ease-out}
@keyframes spray{0%{opacity:.75;transform:scale(.4)}100%{opacity:0;transform:scale(1.4)}}
.cap{font-weight:700;margin:14px 0 0}
.chips{display:flex;gap:8px;padding:20px 16px 4px;overflow-x:auto}
.chip{border:1.5px solid var(--k);background:var(--w);border-radius:99px;padding:8px 16px;white-space:nowrap}.chip.on{background:var(--k);color:var(--w)}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:16px}
.card{border:1.5px solid #e2d8ee;border-radius:var(--r);padding:10px;display:flex;flex-direction:column}
.card[hidden]{display:none}
.pic{background:var(--pl);border-radius:10px;height:130px;display:grid;place-items:center}.pic svg{height:100px}
.card h3{font-size:15px;margin:10px 0 0}.d{font-size:13px;color:#5b5364;margin:2px 0 10px;flex:1}
.buy{display:flex;justify-content:space-between;align-items:end}.buy small{display:block;color:#6b6472;font-size:12px}
.add{border:1.5px solid var(--p);color:var(--p);background:var(--w);border-radius:8px;padding:6px 16px;font-weight:700}.add:hover{background:var(--p);color:var(--w)}
.stepper{display:flex;align-items:center;background:var(--p);color:var(--w);border-radius:8px}.stepper button{background:none;border:0;color:var(--w);padding:6px 12px;font-weight:700}
.steps{padding:32px 16px;background:var(--k);color:var(--w)}.steps h2{color:var(--w);margin-bottom:16px}.steps ol{display:grid;gap:12px;padding:0;margin:0;list-style:none;counter-reset:s}
.steps li{counter-increment:s;padding-left:44px;position:relative}.steps li::before{content:counter(s);position:absolute;left:0;top:-2px;width:32px;height:32px;border-radius:50%;background:var(--p);display:grid;place-items:center;font-weight:700}
.bar{position:fixed;left:12px;right:12px;bottom:12px;z-index:30;background:var(--p);color:var(--w);text-decoration:none;border-radius:14px;padding:14px 18px;display:flex;justify-content:space-between}
.bar[hidden],.scrim[hidden]{display:none}
.scrim{position:fixed;inset:0;background:#14101a99;z-index:40}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(420px,100%);background:var(--w);z-index:50;transform:translateX(100%);transition:transform .25s;overflow:auto;padding:16px}
.drawer.open{transform:none}.dh{display:flex;justify-content:space-between;align-items:center}.dh button{border:0;background:none;font-size:22px}
.line{display:flex;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid #eee}.line img{width:48px;height:60px;object-fit:cover;border-radius:6px}.line div{flex:1;font-size:14px}.line small{color:#6b6472}
#sum{padding:12px 0;font-size:15px}#sum p{display:flex;justify-content:space-between;margin:4px 0}#co{display:grid;gap:10px}
.empty{padding:24px 0;color:#6b6472}
@media(min-width:760px){.hero{grid-template-columns:1.2fr 1fr;padding:56px 6vw}.grid{grid-template-columns:repeat(4,1fr);padding:20px 6vw}.chips,.steps{padding-left:6vw;padding-right:6vw}.steps ol{grid-template-columns:repeat(3,1fr)}.bar{display:none}}
@media(prefers-reduced-motion:reduce){.mist.go{animation:none}.drawer{transition:none}}
/* nav + slider */
.navl{color:var(--w);text-decoration:none;font-weight:700;white-space:nowrap;font-size:14px}.navl:hover{text-decoration:underline}
.slider{position:relative;height:calc(100svh - var(--hh,72px));min-height:460px;background:var(--pd);color:var(--w);overflow:hidden}
.slide{position:absolute;inset:0;display:grid;grid-template-columns:1fr;align-content:center;justify-items:center;gap:20px;padding:24px 6vw;background:linear-gradient(135deg,var(--k),var(--p));opacity:0;visibility:hidden;transition:opacity .7s,visibility .7s}
.slide:nth-child(2){background:linear-gradient(135deg,var(--p),var(--k))}.slide:nth-child(3){background:linear-gradient(135deg,var(--pd),#6b3aa0)}
.slide.on{opacity:1;visibility:visible}
.slide img{max-height:38svh;max-width:80vw;object-fit:contain;order:-1;filter:drop-shadow(0 10px 24px #0008)}
.slide:nth-child(1) img{background:var(--w);border-radius:24px;padding:12px}
.stxt{max-width:560px;text-align:center}.stxt h2{font-size:clamp(2.2rem,6vw,4.4rem)}.stxt p{margin:12px 0 20px;font-size:1.1rem}.stxt .btn{width:auto;display:inline-block;background:var(--w);color:var(--p);text-decoration:none;padding:13px 28px}
.sa{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:44px;height:44px;border-radius:50%;border:0;background:#ffffffcc;font-size:26px}.prev{left:12px}.next{right:12px}
.dots{position:absolute;bottom:18px;left:0;right:0;display:flex;justify-content:center;gap:10px;z-index:2}.dots button{width:12px;height:12px;border-radius:50%;border:2px solid var(--w);background:none;padding:0}.dots button.on{background:var(--w)}
@media(min-width:900px){.slide{grid-template-columns:1fr 1fr;justify-items:stretch;align-items:center;padding:0 8vw;gap:6vw}.stxt{text-align:left}.slide img{order:2;max-height:66svh;max-width:100%;justify-self:center}}
.studio{display:grid;gap:20px;padding:16px;background:var(--pl);min-height:calc(100svh - 64px)}
.stage{display:grid;justify-items:center;align-content:start;gap:8px}#cv{width:min(440px,100%);aspect-ratio:596/842;background:#fff0;touch-action:none;filter:drop-shadow(0 8px 20px #14101a44);cursor:grab}.hint{font-size:13px;color:#5b5364;margin:0;text-align:center}
.panel{display:grid;gap:10px;align-content:start;max-width:520px}
.panel details{background:var(--w);border:2px solid var(--k);border-radius:var(--r);padding:12px 14px}.panel summary{font-weight:700;cursor:pointer}
.panel details>*{margin-top:10px}.panel input[type=range]{padding:0;border:0}.panel input[type=color]{height:38px;padding:2px}
.btns{display:flex;flex-wrap:wrap;gap:6px}.btns button,.btn.ghost{border:1.5px solid var(--k);background:var(--w);border-radius:8px;padding:7px 12px;font-weight:700}.btns button.on{background:var(--p);color:var(--w);border-color:var(--p)}.btns button:disabled,.panel :disabled{opacity:.4}
.btn.ghost{color:var(--k);width:100%;margin-top:8px}.btn.ghost:hover{background:var(--pl)}
.sw{display:flex;flex-wrap:wrap;gap:8px}.sw button{width:34px;height:34px;border-radius:50%;border:2px solid var(--k);padding:0}
.chk{display:flex;gap:8px;align-items:center}.chk input{width:auto;margin:0}
@media(min-width:900px){.demo-in{grid-template-columns:1fr auto}.studio{grid-template-columns:auto 1fr;padding:24px 6vw;align-items:start}.stage{position:sticky;top:76px}.demo{padding:56px 6vw}}
/* header */
.top{position:relative;z-index:20;display:grid;grid-template-columns:1fr auto 1fr;grid-template-areas:"nav brand tools";align-items:center;gap:10px 16px;padding:8px 16px;background:var(--k);color:var(--w)}
.tnav{grid-area:nav;display:flex;gap:10px 18px;flex-wrap:wrap;align-items:center}.tnav a{color:var(--w);text-decoration:none;font-weight:700;font-size:15px;border-bottom:2px solid transparent}.tnav a:hover{border-color:var(--w)}.tnav .hot{background:var(--p);padding:8px 14px;border-radius:99px;border:0}.tnav .hot:hover{background:var(--pd)}
.brand{grid-area:brand;position:relative;overflow:hidden;border-radius:16px;background:var(--w);display:block}
.brand img{height:58px;display:block;padding:3px 10px;transform-origin:50% 100%;animation:bob 3.6s ease-in-out infinite}
.brand::after{content:'';position:absolute;top:0;bottom:0;width:40%;left:-60%;background:linear-gradient(100deg,transparent,#652d9040,transparent);animation:shine 4.5s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0) rotate(0)}20%{transform:translateY(-5px) rotate(-3deg)}40%{transform:none}60%{transform:translateY(-3px) rotate(3deg)}80%{transform:none}}
@keyframes shine{0%,55%{left:-60%}100%{left:130%}}
.tright{grid-area:tools;display:flex;gap:8px;justify-content:flex-end;align-items:center}#sf{margin:0}#search{width:min(260px,30vw);padding:10px 14px;border-radius:99px;border:0}
@media(min-width:900px){.top{position:sticky;top:0}}
@media(max-width:899px){.top{grid-template-areas:". brand cart" "nav nav nav" "search search search"}.tright{display:contents}#sf{grid-area:search}#search{width:100%}.cartbtn{grid-area:cart;justify-self:end}.tnav{justify-content:center}}
#grid{scroll-margin-top:90px}
/* hero */
.hero{overflow:hidden;align-items:center}
.opts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.opt{position:relative;cursor:pointer}.opt input{position:absolute;opacity:0}
.opt span{display:grid;gap:2px;height:100%;border:2px solid var(--k);border-radius:12px;padding:12px}.opt b{font-size:15px}.opt em{font:400 1.7rem 'Lilita One',sans-serif;color:var(--p)}.opt small{font-weight:400;color:#5b5364}
.opt input:checked+span{background:var(--p);border-color:var(--p);color:var(--w)}.opt input:checked+span em,.opt input:checked+span small{color:var(--w)}.opt input:focus-visible+span{outline:3px solid var(--p);outline-offset:2px}
.cust .btn{display:block;text-align:center;text-decoration:none}
@media(min-width:760px){.hero{grid-template-columns:1fr 1fr}}
/* animated demo card */
.dstage{--sc:#652d90;position:relative;width:min(440px,90vw);margin:auto;padding:24px 0 6px;display:grid;justify-items:center}
.dcard{--b:#652d90;position:relative;z-index:2;width:min(360px,74vw);aspect-ratio:596/842;background:var(--b);border-radius:9%/6.4%;padding:15% 12% 14%;transition:background .5s,box-shadow 1s;container-type:inline-size;animation:float 6s ease-in-out infinite;box-shadow:0 20px 40px #14101a44}
.smell .dcard{box-shadow:0 0 70px 12px color-mix(in srgb,var(--sc) 55%,transparent),0 20px 40px #14101a44}
@keyframes float{0%,100%{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(-12px) rotate(1.5deg)}}
.dwin{position:relative;height:100%;background:var(--w);border-radius:7%;overflow:hidden;display:grid;place-items:center}
.dph{position:absolute;inset:0;background:radial-gradient(circle at 68% 28%,#ffe9a8 0 9%,#ffb86b 10% 16%,transparent 17%),linear-gradient(180deg,#5b2a86,#d61f69 55%,#ff9a5b);transform:translateY(-110%);transition:transform .9s cubic-bezier(.2,1.1,.3,1)}
.dph::before,.dph::after{content:'';position:absolute;left:-10%;right:-10%;bottom:-10%;height:38%;border-radius:50% 50% 0 0;background:#1a0d2b}.dph::after{height:26%;background:#2c1548;left:20%}
.dph.in{transform:none;animation:kb 9s ease-in-out .9s infinite alternate}@keyframes kb{to{transform:scale(1.12) translate(-2%,-1%)}}
.dtx{position:relative;z-index:1;font:400 9cqw/1.3 'Lilita One',sans-serif;color:#fff;padding:.05em .3em;min-height:1.4em;text-shadow:0 2px 6px #0006;transition:background .4s,color .4s}.dtx.hl{background:#f4c542;color:var(--k);text-shadow:none}
.dlogo{position:absolute;left:50%;bottom:0;width:38%;transform:translateX(-50%);background:var(--w);border-radius:14% 14% 30% 30%;padding:2% 3%;animation:wig 3s ease-in-out infinite}
@keyframes wig{0%,100%{transform:translateX(-50%) rotate(0)}50%{transform:translateX(-50%) rotate(-4deg)}}
.dwin .mist{--m:var(--sc)}
.dcap{position:relative;z-index:2;text-align:center;font-weight:700;color:var(--p);min-height:3em;margin:18px 0 0}
.dbot{position:absolute;z-index:3;right:-4%;top:0;width:24%;opacity:0;transform:translate(70%,-30%) rotate(35deg);transition:transform .7s cubic-bezier(.2,1,.3,1),opacity .4s;pointer-events:none}
.spray .dbot{opacity:1;transform:rotate(-18deg)}.dbot .nz{transform-box:fill-box}.spray .dbot .nz{animation:press .35s ease-in-out 3 .7s}@keyframes press{50%{transform:translateY(5px)}}
.jet{position:absolute;z-index:3;right:21%;top:5%;pointer-events:none}.jet i{position:absolute;width:14px;height:14px;border-radius:50%;background:var(--sc);opacity:0;filter:blur(3px)}
.spray .jet i{animation:jet .6s ease-out infinite;animation-delay:calc(var(--n,0)*.1s + .8s)}.jet i:nth-child(2){--n:1;top:6px}.jet i:nth-child(3){--n:2;top:-4px}.jet i:nth-child(4){--n:3;top:10px}.jet i:nth-child(5){--n:4;top:2px}
@keyframes jet{0%{transform:translate(0,0) scale(.4);opacity:.9}100%{transform:translate(-70px,40px) scale(2);opacity:0}}
.aroma{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity 1s}.smell .aroma{opacity:1}
.aroma i{position:absolute;left:50%;top:50%;width:78%;aspect-ratio:1;margin:-39% 0 0 -39%;border-radius:50%;border:3px solid var(--sc);opacity:0;animation:ring 4.8s ease-out infinite;animation-delay:calc(var(--i)*1.2s)}
@keyframes ring{0%{transform:scale(.6);opacity:.7}100%{transform:scale(2.1);opacity:0}}
.wisp,.puff{display:none}.smell .wisp,.smell .puff{display:block}
.wisp{position:absolute;z-index:1;bottom:14%;left:var(--x);width:22px;height:80px;fill:none;stroke:var(--sc);stroke-width:3;stroke-linecap:round;opacity:0;animation:rise 3.6s ease-in infinite;animation-delay:var(--d)}
@keyframes rise{0%{transform:translateY(0) scaleY(.6);opacity:0}25%{opacity:.85}100%{transform:translateY(-230px) scaleY(1.25);opacity:0}}
.puff{position:absolute;z-index:1;left:var(--x);bottom:28%;width:var(--s);aspect-ratio:1;border-radius:50%;background:var(--sc);filter:blur(6px);opacity:0;animation:puff 4s ease-out infinite;animation-delay:var(--d)}
@keyframes puff{0%{transform:translate(0,0) scale(.4);opacity:0}20%{opacity:.5}100%{transform:translate(var(--dx),-250px) scale(2.2);opacity:0}}
@media(prefers-reduced-motion:reduce){.brand img,.brand::after,.dcard,.dlogo,.dph.in,.aroma i,.wisp,.puff,.jet i{animation:none}.aroma i,.wisp,.puff{opacity:.35}}
/* white animated header */
.top{background:var(--w);color:var(--k);padding-bottom:12px}
.top>*:not(.hfx){position:relative;z-index:2}
.top::after{content:'';position:absolute;left:0;right:0;bottom:0;height:4px;z-index:3;background:linear-gradient(90deg,var(--p),#c9c3d3,var(--k),#c9c3d3,var(--p));background-size:200% 100%;animation:flow 6s linear infinite}
@keyframes flow{to{background-position:200% 0}}
.hfx{position:absolute;inset:0;overflow:hidden;z-index:0;background:linear-gradient(100deg,#fff 0,#f6f3fa 50%,#fff 100%)}
.hb{position:absolute;bottom:-14px;left:var(--x);width:var(--s);height:var(--s);border-radius:50%;background:var(--c);opacity:0;animation:hrise var(--t) ease-in infinite;animation-delay:var(--d)}
@keyframes hrise{0%{transform:translate(0,0) scale(.6);opacity:0}20%{opacity:.4}100%{transform:translate(18px,-90px) scale(1.3);opacity:0}}
.hw{position:absolute;left:0;bottom:4px;width:200%;height:16px}.hw1{fill:#652d9026;animation:wv 9s linear infinite}.hw2{fill:#b8b2c433;animation:wv 6s linear infinite reverse}
@keyframes wv{to{transform:translateX(-50%)}}
.top .tnav a{color:var(--k);position:relative;border:0}
.top .tnav a::after{content:'';position:absolute;left:0;right:0;bottom:-3px;height:2px;background:var(--p);transform:scaleX(0);transition:transform .3s}
.top .tnav a:hover::after,.top .tnav a:focus-visible::after{transform:scaleX(1)}
.top .tnav .hot{color:var(--w);overflow:hidden;background:linear-gradient(110deg,var(--p),#8e4fc4,var(--pd),var(--p));background-size:250% 100%;animation:flow 5s linear infinite,pulse 2.8s ease-in-out infinite}
.top .tnav .hot::after{display:none}.top .tnav .hot:hover{transform:translateY(-2px)}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 #652d9055}50%{box-shadow:0 0 0 9px #652d9000}}
.brand{background:none;overflow:visible;border-radius:0}.brand::after{display:none}
.brand::before{content:'';position:absolute;inset:-8px -22px;border-radius:50%;background:radial-gradient(closest-side,#652d9040,transparent);z-index:-1;animation:halo 3.6s ease-in-out infinite}
@keyframes halo{0%,100%{transform:scale(.85);opacity:.6}50%{transform:scale(1.15);opacity:1}}
#search{background:#f6f3fa;border:1.5px solid #d9d2e3;color:var(--k)}#search:focus{border-color:var(--p);outline:0;box-shadow:0 0 0 3px #652d9033}
.top .cartbtn{background:var(--p);color:var(--w);transition:transform .2s}.top .cartbtn:hover{transform:translateY(-2px) rotate(-2deg)}.top .cartbtn span{background:var(--w);color:var(--p)}
/* footer */
.ft{position:relative;background:linear-gradient(180deg,#f4f1f8,#e6e2ec);color:#2a2433;overflow:hidden;font-size:15px}
.fwaves{position:relative;height:64px;background:var(--w);overflow:hidden}
.fw{position:absolute;left:0;bottom:-1px;width:200%;height:100%}.f1{fill:#c9c3d3;animation:wv 16s linear infinite}.f3{fill:#652d9066;animation:wv 11s linear infinite reverse}.f2{fill:#f4f1f8;animation:wv 8s linear infinite}
.ribbon{position:relative;z-index:1;background:var(--p);color:var(--w);overflow:hidden;white-space:nowrap;padding:9px 0;margin:8px -2% 0;transform:rotate(-1.2deg);box-shadow:0 8px 20px #652d9040}
.ribbon.alt{background:#3a3444;transform:rotate(1.2deg);margin-top:-6px}
.rtrack{display:inline-flex;animation:marq 30s linear infinite}.rtrack.rev{animation-direction:reverse}
.rtrack span{padding:0 22px;font:400 1.1rem 'Lilita One',sans-serif}.rtrack span::after{content:'\2726';margin-left:44px;opacity:.6}
@keyframes marq{to{transform:translateX(-50%)}}
.fx{position:absolute;inset:64px 0 0;z-index:0;overflow:hidden}
.blob{position:absolute;border-radius:50%;filter:blur(55px);opacity:.35;animation:morph 14s ease-in-out infinite alternate}
.b1{width:300px;height:300px;background:var(--p);left:-80px;top:20%}.b2{width:260px;height:260px;background:#9a94a6;right:-60px;top:35%;animation-delay:-5s}.b3{width:220px;height:220px;background:#b79be0;left:45%;bottom:-90px;animation-delay:-9s}
@keyframes morph{to{transform:translate(70px,-50px) scale(1.3)}}
.fb{position:absolute;bottom:-30px;left:var(--x);width:var(--s);height:var(--s);border-radius:50%;border:2px solid #652d9088;background:#ffffff66;animation:frise var(--t) ease-in infinite;animation-delay:var(--d)}
@keyframes frise{0%{transform:translate(0,0);opacity:0}15%{opacity:1}100%{transform:translate(24px,-460px);opacity:0}}
.fgrid{position:relative;z-index:1;display:grid;gap:28px;padding:34px 6vw 28px;grid-template-columns:1fr}
.fgrid h4{font:400 1.25rem 'Lilita One',sans-serif;color:var(--p);margin:0 0 10px}
.fgrid a:not(.wa){display:block;width:fit-content;color:inherit;text-decoration:none;padding:3px 0;position:relative;transition:transform .25s,color .25s}
.fgrid a:not(.wa)::after{content:'';position:absolute;left:0;bottom:1px;height:2px;width:100%;background:var(--p);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.fgrid a:not(.wa):hover{transform:translateX(6px);color:var(--p)}.fgrid a:not(.wa):hover::after{transform:scaleX(1)}
.fbrand img{height:84px;display:block;animation:bob 3.6s ease-in-out infinite;transform-origin:50% 100%}.fbrand p{max-width:30ch;margin:10px 0 14px}
.wa{display:inline-flex;align-items:center;gap:10px;background:#25D366;color:var(--w);font-weight:700;padding:11px 18px;border-radius:99px;text-decoration:none;animation:wapulse 2.4s ease-out infinite}.wa:hover{filter:brightness(1.05);transform:translateY(-2px)}
@keyframes wapulse{0%{box-shadow:0 0 0 0 #25D36699}100%{box-shadow:0 0 0 20px #25D36600}}
.fbot{position:relative;z-index:1;overflow:hidden;background:var(--p);color:var(--w);text-align:center;padding:14px 16px;font-size:13px}
.fbot::after{content:'';position:absolute;top:0;bottom:0;width:30%;left:-40%;background:linear-gradient(100deg,transparent,#ffffff33,transparent);animation:shine 5s ease-in-out infinite}
.wafab{position:fixed;right:16px;bottom:16px;z-index:35;display:flex;align-items:center;height:56px;padding:0 14px;max-width:56px;overflow:hidden;white-space:nowrap;background:#25D366;color:var(--w);font-weight:700;text-decoration:none;border-radius:99px;box-shadow:0 8px 20px #0003;transition:max-width .4s;animation:wapulse 2.4s ease-out infinite}
.wafab svg{flex:none}.wafab span{margin-left:10px}.wafab:hover,.wafab:focus-visible{max-width:220px}
@media(min-width:760px){.fgrid{grid-template-columns:1.5fr 1fr 1fr 1.3fr}}
@media(max-width:759px){.fbot{padding-bottom:84px}.wafab{bottom:84px}}
/* policy pages */
.doc{max-width:760px;margin:0 auto;padding:36px 16px 48px}.doc h1{color:var(--p);font-size:clamp(2rem,5vw,3rem);margin-bottom:16px}.doc h3{margin:22px 0 4px}.doc p{max-width:70ch}.doc a{color:var(--p);font-weight:700}.doc a.wa{color:var(--w)}
@media(prefers-reduced-motion:reduce){.hb,.hw,.top::after,.top .tnav .hot,.brand::before,.fw,.rtrack,.blob,.fb,.wa,.wafab,.fbrand img,.fbot::after{animation:none}}
/* logo +40% */
.brand img{height:81px}
#grid{scroll-margin-top:130px}.stage{top:124px}
/* account */
.acc{display:grid;gap:10px;max-width:460px}.ord{border:2px solid var(--k);border-radius:var(--r);padding:12px 14px;margin:10px 0;max-width:520px}.ord ul{margin:6px 0;padding-left:20px}
/* mobile: bottom nav + stacked header */
.bn{display:none}
@media(max-width:899px){
  .top{display:flex;flex-direction:column;align-items:center;gap:10px;padding:10px 16px 16px}
  .top .brand{order:1}.top .tnav{order:2;justify-content:center}.top .tright{order:3;display:block;width:100%}
  #sf{grid-area:auto;width:100%}#search{width:100%}
  .top .cartbtn{display:none}
  .bar{display:none!important}
  .wafab{bottom:90px}.fbot{padding-bottom:92px}
  .bn{position:fixed;left:0;right:0;bottom:0;z-index:45;display:grid;grid-template-columns:repeat(5,1fr);align-items:end;background:var(--w);padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px));box-shadow:0 -6px 24px #14101a22;border-radius:20px 20px 0 0}
  .bn::before{content:'';position:absolute;left:0;right:0;top:0;height:3px;border-radius:20px 20px 0 0;background:linear-gradient(90deg,var(--p),#c9c3d3,var(--k),#c9c3d3,var(--p));background-size:200% 100%;animation:flow 6s linear infinite}
  .bn a,.bn button{position:relative;display:grid;justify-items:center;gap:2px;padding:6px 0;background:none;border:0;color:#5b5364;font:700 11px 'DM Sans',sans-serif;text-decoration:none}
  .bn svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s}
  .bn .on{color:var(--p)}.bn a:active svg,.bn button:active svg{transform:scale(.85)}
  .bn .mid{margin-top:-24px;color:var(--p)}.bn .mid svg{box-sizing:content-box;width:26px;height:26px;padding:14px;border-radius:50%;background:var(--p);stroke:var(--w);box-shadow:0 6px 16px #652d9066;animation:pulse 2.8s ease-in-out infinite}
  .bn .cc{position:absolute;top:0;left:calc(50% + 6px);min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--p);color:var(--w);font-size:11px;display:grid;place-items:center}.bn .cc[data-n="0"]{display:none}
}
@media(prefers-reduced-motion:reduce){.bn::before,.bn .mid svg{animation:none}}
/* space-travel banner */
.slider{background:radial-gradient(ellipse at 50% 40%,#4a1a7a 0,#24093f 55%,#0d0318 100%);perspective:1000px}
.slider .slide{background:none;z-index:2}
#space{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.nebula{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.nebula i{position:absolute;border-radius:50%;filter:blur(80px);opacity:.5;animation:neb 16s ease-in-out infinite alternate}
.nebula i:nth-child(1){width:46vw;height:46vw;background:#c02fd6;left:-10vw;top:-12vw}
.nebula i:nth-child(2){width:40vw;height:40vw;background:#4b2cc7;right:-8vw;bottom:-10vw;animation-delay:-6s}
.nebula i:nth-child(3){width:30vw;height:30vw;background:#8e4fc4;left:38vw;top:20%;animation-delay:-11s}
@keyframes neb{to{transform:translate(6vw,-4vw) scale(1.3);opacity:.3}}
.planet{position:absolute;z-index:1;border-radius:50%;pointer-events:none}
.p1{width:clamp(70px,11vw,170px);aspect-ratio:1;right:7%;top:9%;background:radial-gradient(circle at 30% 30%,#f0dcff,#8e4fc4 45%,#2a0d47);box-shadow:0 0 50px #a66bff88;animation:drift 12s ease-in-out infinite alternate}
.p1::after{content:'';position:absolute;left:-30%;right:-30%;top:40%;height:20%;border:3px solid #e6d6ffaa;border-radius:50%;transform:rotate(-18deg)}
.p2{width:clamp(36px,6vw,90px);aspect-ratio:1;left:6%;bottom:14%;background:radial-gradient(circle at 35% 30%,#ffd0ec,#d61f69 50%,#3f0a2a);box-shadow:0 0 36px #d61f6988;animation:drift 9s ease-in-out infinite alternate-reverse}
@keyframes drift{to{transform:translate(-24px,26px) rotate(12deg)}}
.meteor{position:absolute;z-index:1;top:var(--y);left:105%;width:150px;height:2px;border-radius:2px;background:linear-gradient(90deg,#fff,#b79be0,transparent);opacity:0;animation:met 6s linear infinite;animation-delay:var(--d);pointer-events:none}
@keyframes met{0%{transform:translate(0,0) rotate(-30deg);opacity:0}4%{opacity:1}22%,100%{transform:translate(-125vw,72vw) rotate(-30deg);opacity:0}}
.fly{position:absolute;z-index:1;left:50%;top:50%;width:90px;opacity:0;pointer-events:none;animation:flyby 11s ease-in infinite;animation-delay:var(--d)}
@keyframes flyby{0%{transform:translate(-50%,-50%) scale(.05) rotate(0);opacity:0}12%{opacity:.7}100%{transform:translate(calc(-50% + var(--tx)),calc(-50% + var(--ty))) scale(3.2) rotate(var(--r));opacity:0}}
.slide img.lg{background:var(--w);border-radius:24px;padding:12px}
.slide img{filter:drop-shadow(0 0 32px #b79be0aa)}
.slide.out{opacity:1;visibility:visible;pointer-events:none;animation:flyout .85s ease-in forwards}
@keyframes flyout{to{transform:scale(2.4);opacity:0;filter:blur(10px)}}
.slide.on .stxt h2{animation:txtIn 1s cubic-bezier(.2,.9,.2,1) .1s both;text-shadow:0 0 30px #a66bffcc,0 4px 0 #3f1a5c}
.slide.on .stxt p{animation:txtIn 1s cubic-bezier(.2,.9,.2,1) .5s both}
.slide.on .stxt .btn{animation:txtIn 1s cubic-bezier(.2,.9,.2,1) .9s both,glow 2.4s ease-in-out 2s infinite}
@keyframes txtIn{from{opacity:0;transform:perspective(600px) translateZ(-520px) rotateX(35deg);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
@keyframes glow{50%{box-shadow:0 0 28px 6px #b79be0aa}}
.slide.on img{animation:imgIn 1.3s cubic-bezier(.2,.9,.2,1) .2s both,floaty 6s ease-in-out 1.5s infinite}
@keyframes imgIn{from{opacity:0;transform:scale(.08) rotate(-28deg) translateY(-60px);filter:blur(12px)}to{opacity:1;transform:none}}
@keyframes floaty{50%{transform:translateY(-14px) rotate(2deg)}}
.dots,.sa{z-index:3}
@media(max-width:899px){.p1{top:4%;right:3%}.fly{width:60px}}
/* 3D marquee */
.mq3d{position:relative;background:var(--k);overflow:hidden;padding:30px 0 40px;perspective:900px}
.mrow{overflow:hidden;white-space:nowrap;transform-origin:50% 100%;transform-style:preserve-3d}
.mrow.r1{transform:rotateX(16deg)}.mrow.r2{transform:rotateX(-16deg);margin-top:10px;transform-origin:50% 0}
.mtrack{display:inline-flex;animation:marq 30s linear infinite}.r2 .mtrack{animation-duration:40s;animation-direction:reverse}
.w{display:inline-flex;padding:0 .3em;font:400 clamp(5rem,17vw,13rem)/1.1 'Lilita One',sans-serif;text-transform:uppercase;color:var(--w);transform-style:preserve-3d}
.w i{font-style:normal;display:inline-block;animation:wave 2.6s ease-in-out infinite;animation-delay:calc(var(--i)*.14s);
 text-shadow:.01em .01em 0 #d9c2ff,.02em .02em 0 #b79be0,.03em .03em 0 #9a6fd0,.04em .04em 0 #8047b3,.05em .05em 0 #652d90,.06em .06em 0 #57267d,.07em .07em 0 #4a1f6b,.08em .08em 0 #3f1a5c,.1em .12em .12em #000a}
@keyframes wave{0%,100%{transform:translateY(0) rotateY(0)}50%{transform:translateY(-.1em) rotateY(22deg) translateZ(40px)}}
.w.sep{color:var(--p)}
.r2 .w{font-size:clamp(3rem,9vw,7rem);color:transparent;-webkit-text-stroke:2px #b79be0}
.r2 .w i{text-shadow:none;animation-name:wave2}
@keyframes wave2{0%,100%{transform:translateY(0) rotateX(0)}50%{transform:translateY(.08em) rotateX(-25deg) scale(1.08)}}
.r2 .w.sep{-webkit-text-stroke:0;color:var(--p)}
@media(prefers-reduced-motion:reduce){.nebula i,.planet,.meteor,.fly,.mtrack,.w i,.slide.on *{animation:none!important}}
/* header merged with the space banner */
.top{background:linear-gradient(100deg,#24093f,#4a1a7a 50%,#24093f);color:var(--w)}
.hfx{background:linear-gradient(100deg,#24093f,#4a1a7a 50%,#24093f)}
.hfx::before,.hfx::after{content:'';position:absolute;inset:0;background-repeat:repeat-x;background-size:420px 100%}
.hfx::before{background-image:radial-gradient(1.5px 1.5px at 8% 30%,#fff,transparent),radial-gradient(1px 1px at 22% 72%,#e6d6ff,transparent),radial-gradient(2px 2px at 41% 24%,#fff,transparent),radial-gradient(1px 1px at 58% 66%,#b79be0,transparent),radial-gradient(1.5px 1.5px at 76% 36%,#ffb3e0,transparent),radial-gradient(1px 1px at 91% 78%,#fff,transparent);animation:starpan 40s linear infinite,twinkle 3s ease-in-out infinite alternate}
.hfx::after{background-image:radial-gradient(1px 1px at 15% 55%,#fff,transparent),radial-gradient(2px 2px at 50% 80%,#e6d6ff,transparent),radial-gradient(1.5px 1.5px at 85% 20%,#fff,transparent);animation:starpan 22s linear infinite,twinkle 2.2s ease-in-out infinite alternate-reverse}
@keyframes starpan{to{background-position:-420px 0}}@keyframes twinkle{from{opacity:.45}to{opacity:1}}
.hb{background:#fff}.hw1{fill:#ffffff14}.hw2{fill:#b79be022}
.top .tnav a{color:var(--w);text-shadow:0 1px 8px #0006}.top .tnav a::after{background:var(--w)}
.top .tnav .hot{color:var(--p);text-shadow:none;background:linear-gradient(110deg,#fff,#e6d6ff,#fff);background-size:250% 100%;animation:flow 5s linear infinite,pulse2 2.8s ease-in-out infinite}
@keyframes pulse2{0%,100%{box-shadow:0 0 0 0 #ffffff66}50%{box-shadow:0 0 0 10px #ffffff00}}
.top::after{background:linear-gradient(90deg,#8e4fc4,#e6d6ff,#ff9ad5,#e6d6ff,#8e4fc4);background-size:200% 100%}
.brand img{background:var(--w);border-radius:20px;padding:4px 14px;box-shadow:0 6px 26px #0006}
.brand::before{background:radial-gradient(closest-side,#e6d6ff99,transparent)}
#search{background:#ffffff24;border:1.5px solid #ffffff59;color:var(--w);backdrop-filter:blur(6px)}
#search::placeholder{color:#ffffffc7}#search::-webkit-search-cancel-button{filter:invert(1)}
#search:focus{border-color:var(--w);box-shadow:0 0 0 3px #ffffff40}
.top .cartbtn{background:var(--w);color:var(--p)}.top .cartbtn span{background:var(--p);color:var(--w)}
/* home: header floats over the banner */
.home .top{position:absolute;top:0;left:0;right:0;background:transparent}
.home .top::after,.home .hfx{display:none}
.home .top.solid{background:linear-gradient(100deg,#24093f,#4a1a7a 50%,#24093f);box-shadow:0 6px 24px #0008}
.home .top.solid::after{display:block}
@media(min-width:900px){.home .top{position:fixed}}
.home .slider{height:100svh;min-height:620px}
.home .slider .slide{padding-top:calc(var(--hh,96px) + 10px)}
.home .p1{top:18%}
@media(max-width:899px){.home .p1{top:32%;right:2%}.home .slider .slide{align-content:start;padding-top:calc(var(--hh,220px) + 8px)}}
/* banner polish: orbit rings, softer fly-bys, scroll cue */
.slide::before,.slide::after{content:'';position:absolute;left:73%;top:54%;border-radius:50%;pointer-events:none;translate:-50% -50%}
.slide::before{width:min(62vmin,560px);aspect-ratio:1;border:2px dashed #e6d6ff66;animation:spin 40s linear infinite}
.slide::after{width:min(46vmin,420px);aspect-ratio:1;border:2px solid #b79be044;animation:spin 26s linear infinite reverse;box-shadow:0 0 80px #a66bff33 inset}
@keyframes spin{to{rotate:360deg}}
@media(max-width:899px){.slide::before,.slide::after{left:50%;top:44%}}
.fly{filter:none;animation-name:flyby;opacity:0}@keyframes flyby{0%{transform:translate(-50%,-50%) scale(.05) rotate(0);opacity:0}12%{opacity:.5}100%{transform:translate(calc(-50% + var(--tx)),calc(-50% + var(--ty))) scale(3.2) rotate(var(--r));opacity:0}}
.scrolldn{position:absolute;z-index:3;left:50%;bottom:48px;translate:-50% 0;width:26px;height:42px;border:2px solid #ffffffcc;border-radius:14px}
.scrolldn i{position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--w);animation:wheel 1.6s ease-in-out infinite}
@keyframes wheel{0%{transform:translateY(0);opacity:1}100%{transform:translateY(14px);opacity:0}}
@media(max-width:899px){.scrolldn{display:none}}
@media(prefers-reduced-motion:reduce){.hfx::before,.hfx::after,.slide::before,.slide::after,.scrolldn i{animation:none}}
/* ---- v3: customer accounts, modals, cart empty state ---- */
body.noscroll{overflow:hidden}
.loginbtn{background:#ffffff24;color:var(--w);border:1.5px solid #ffffff80;border-radius:99px;padding:9px 16px;font-weight:700;text-decoration:none;white-space:nowrap;backdrop-filter:blur(6px)}.loginbtn:hover{background:var(--w);color:var(--p)}
@media(max-width:899px){.top .loginbtn{display:none}}
.zm{position:fixed;inset:0;z-index:70;background:#14101acc;display:grid;place-items:center;padding:16px;overflow:auto}.zm[hidden]{display:none}
.zmc{position:relative;background:var(--w);color:var(--k);width:min(480px,100%);max-height:calc(100svh - 32px);overflow:auto;border-radius:20px;padding:24px 20px;animation:pop .25s ease-out}
@keyframes pop{from{transform:scale(.94);opacity:0}}
.zx{position:absolute;right:12px;top:10px;border:0;background:none;font-size:20px}
.zmc h2{color:var(--p);font-size:1.8rem;margin-bottom:6px}.zmc h4{margin:14px 0 6px}.zmc form{display:grid;gap:10px;margin-top:12px}.zmc p{margin:4px 0}
.otp{text-align:center;font:400 2.2rem 'Lilita One',sans-serif;letter-spacing:.5em;padding-left:.5em!important}
.msg.okk{color:#1d7a4b}.msg.bad{color:#c1121f}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.lnk{background:none;border:0;color:var(--p);font-weight:700;text-decoration:underline;padding:4px 0;text-align:left}.lnk:disabled{color:#8a8393;text-decoration:none}
.adl{display:grid;gap:8px}.adr{display:flex;gap:10px;align-items:flex-start;border:1.5px solid #d9d2e3;border-radius:12px;padding:10px 12px;font-size:14px;cursor:pointer}.adr input{width:auto;margin-top:4px;flex:none}.adr:has(input:checked){border-color:var(--p);background:var(--pl)}
.adr.box{cursor:default;justify-content:space-between}.acts{display:grid;gap:2px}.def{background:var(--p);color:var(--w);border-radius:99px;padding:1px 8px;font-size:11px;font-style:normal}
.sumbox{display:grid;grid-template-columns:1fr auto;gap:4px 10px;background:var(--pl);border-radius:12px;padding:12px}
.okmark svg{width:84px;display:block;margin:0 auto 6px}.okmark path{stroke-dasharray:60;stroke-dashoffset:60;animation:dash .7s .2s forwards}.okmark circle{stroke-dasharray:160;stroke-dashoffset:160;animation:dash .6s forwards}@keyframes dash{to{stroke-dashoffset:0}}
.cartempty{text-align:center;padding:28px 6px}.cartempty svg{width:150px;margin:auto;display:block}.cartempty h3{margin:8px 0 2px;color:var(--p)}.cartempty p{color:#6b6472;margin:0 0 16px}
.cartempty .cw{stroke-dasharray:200;animation:draw 2.4s ease-in-out infinite}.cartempty .cw2{animation:rollw 2.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.cartempty .cd{animation:bounce 1.6s ease-in-out infinite;transform-box:fill-box}.cartempty .d2{animation-delay:.2s}.cartempty .d3{animation-delay:.4s}
@keyframes draw{0%{stroke-dashoffset:200}60%,100%{stroke-dashoffset:0}}@keyframes rollw{50%{transform:scale(1.25)}}@keyframes bounce{50%{transform:translateY(-10px)}}
#placeWrap{padding:6px 0 90px}
.out{color:#c1121f;font-weight:700;font-size:13px}.card[data-out]{opacity:.7}
.pic{text-decoration:none}.pic img{width:100%;height:100%;object-fit:cover;border-radius:10px}.card h3 a{color:inherit;text-decoration:none}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 18px}.tabs button{border:1.5px solid var(--k);background:var(--w);border-radius:99px;padding:8px 16px;font-weight:700}.tabs button.on{background:var(--p);color:var(--w);border-color:var(--p)}
.acct .tp[hidden]{display:none}.acf{display:grid;gap:10px;max-width:460px;margin-top:14px}.acf label{font-weight:700}
.ordh{display:flex;justify-content:space-between;align-items:center;gap:8px}.st{border-radius:99px;padding:2px 10px;font-size:12px;font-weight:700;background:var(--pl);color:var(--p)}.st-delivered{background:#dcf5e5;color:#1d7a4b}.st-cancelled{background:#fde2e4;color:#c1121f}
.oi{list-style:none;padding:0;margin:8px 0}.oi li{display:flex;align-items:center;gap:10px;padding:5px 0;border-bottom:1px solid #eee}.oi li span{flex:1}.oi img{width:44px;height:60px;object-fit:cover;border-radius:6px}
.pdp{display:grid;gap:24px;max-width:1000px;margin:0 auto;padding:110px 16px 40px}.pdp-pic{background:var(--pl);border-radius:var(--r);display:grid;place-items:center;padding:24px;min-height:260px}.pdp-pic img{max-width:100%;max-height:420px;object-fit:contain}.pdp-pic svg{height:240px}
.pdp h1{color:var(--p);font-size:clamp(2rem,5vw,3rem)}.price{font:400 2rem 'Lilita One',sans-serif}.price small{font:400 14px 'DM Sans';color:#6b6472}.crumb{color:var(--p);font-weight:700;text-decoration:none}.stock{color:#1d7a4b;font-weight:700}
.pdp .rel{grid-column:1/-1}.pdp .btn{width:auto;padding:13px 32px}@media(min-width:800px){.pdp{grid-template-columns:1fr 1fr;align-items:center}}
/* ---- v3: mobile / tablet fixes ---- */
.studio{justify-items:center}.panel{width:100%;margin:0 auto}
#cv{touch-action:pan-y}.stage.edit #cv{touch-action:none}
.mm{width:auto;padding:10px 20px}
@media(max-width:899px){.studio{grid-template-columns:1fr;padding:14px 12px 24px}.stage{position:static}#cv{width:min(360px,92vw)}.panel{max-width:560px}}
/* banner: keep picture above the orbit rings on tablets and phones */
.slide::before,.slide::after{z-index:0}
.slide .stxt,.slide img{position:relative;z-index:1}
@media(max-width:899px){.slide::before{top:33%;width:min(60vw,360px)}.slide::after{top:33%;width:min(44vw,270px);box-shadow:none}}
/* ---- v4: logo without plate, logout, timeline, celebration, hero animation ---- */
.brand img{background:none;padding:0;border-radius:0;box-shadow:none;filter:drop-shadow(0 4px 14px #0008)}
.slide img.lg{background:none;padding:0}
.acct-h{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.loginbtn.dk{color:var(--p);border-color:var(--p);background:var(--w)}.loginbtn.dk:hover{background:var(--p);color:var(--w)}
.gstn{margin:2px 0;color:#6b6472;font-size:12px}.pdp .gstn{font-size:13px;font-weight:700;color:#1d7a4b}
.tl{list-style:none;margin:16px 0 8px;padding:0;position:relative;display:grid;grid-template-columns:1fr;gap:14px}
.tl .tlt,.tl .tlf{position:absolute;left:15px;top:16px;bottom:16px;width:4px;border-radius:4px}.tl .tlt{background:#e6e0ee}.tl .tlf{background:linear-gradient(180deg,var(--p),#b79be0);height:0;animation:fillv 1.4s .3s ease-out forwards}
@keyframes fillv{to{height:calc((100% - 32px)*var(--pn,0))}}
.stp{position:relative;display:grid;grid-template-columns:34px 1fr;column-gap:12px;align-items:center;opacity:0;transform:translateX(-10px);animation:stin .5s calc(var(--i)*.22s + .2s) ease-out forwards}
@keyframes stin{to{opacity:1;transform:none}}
.stp i{grid-row:span 2;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:700;background:#fff;border:3px solid #d9d2e3;color:#8a8393;z-index:1}
.stp b{font-size:14px}.stp small{color:#6b6472;font-size:12px;min-height:1em}
.stp.done i{background:var(--p);border-color:var(--p);color:#fff;animation:popd .5s calc(var(--i)*.22s + .3s) both}.stp.done b{color:var(--p)}
.stp.now i{border-color:var(--p);color:var(--p);animation:pulsedot 1.8s ease-in-out infinite}.stp.now b{color:var(--p)}
@keyframes popd{0%{transform:scale(.3)}70%{transform:scale(1.25)}100%{transform:scale(1)}}@keyframes pulsedot{0%,100%{box-shadow:0 0 0 0 #652d9055}50%{box-shadow:0 0 0 10px #652d9000}}
.tl.canc .stp.todo{opacity:.35!important}.cn{color:#c1121f;font-weight:700;margin:4px 0}
@media(min-width:640px){.tl{grid-template-columns:repeat(5,1fr);gap:0;margin:22px 0 10px}.tl .tlt,.tl .tlf{left:10%;right:10%;top:15px;bottom:auto;height:4px;width:auto}.tl .tlf{width:0;height:4px;animation:fillh 1.4s .3s ease-out forwards}
 @keyframes fillh{to{width:calc(80%*var(--pn,0))}}.stp{grid-template-columns:1fr;justify-items:center;text-align:center;row-gap:4px;transform:translateY(8px)}.stp i{grid-row:auto}}
.celeb{position:relative;overflow:hidden;text-align:center;padding:6px 4px 2px}.celeb .lead{font-weight:700}.celeb .btn{margin-top:12px}.celeb .chip{display:inline-block;background:var(--pl);color:var(--p);border-radius:99px;padding:6px 16px;margin:6px 0}
.wlogo{height:110px;display:block;margin:0 auto 4px;animation:bob 3s ease-in-out infinite}
.cfw{position:absolute;inset:0;pointer-events:none;overflow:hidden}.cfw i{position:absolute;top:-14px;left:var(--x);width:var(--w);height:calc(var(--w)*1.7);background:var(--c);border-radius:2px;animation:cfall var(--t) ease-in var(--d) both}
@keyframes cfall{to{transform:translateY(560px) rotate(var(--r));opacity:0}}
/* hero: Your photo. Your scent. One canvas. */
.hero-copy{position:relative}.hero::before{content:'';position:absolute;inset:-20%;background:radial-gradient(circle at 20% 30%,#d9b8ff88,transparent 40%),radial-gradient(circle at 80% 70%,#ff9ad555,transparent 40%);animation:heroglow 14s ease-in-out infinite alternate;pointer-events:none}
@keyframes heroglow{to{transform:translate(6%,-4%) scale(1.15)}}
.hero{position:relative}.hero>*{position:relative}
.spk{position:absolute;left:var(--x);top:var(--y);width:12px;height:12px;pointer-events:none;background:#652d90;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);animation:twk 3s ease-in-out infinite;animation-delay:var(--d);opacity:.7}
@keyframes twk{0%,100%{transform:scale(.3) rotate(0);opacity:.2}50%{transform:scale(1.4) rotate(90deg);opacity:1}}
.hl{position:relative}.hl .ln{display:block;perspective:600px}
.hl em{font-style:normal;display:inline-block;background:linear-gradient(100deg,#652d90 20%,#d61f69 45%,#8e4fc4 60%,#652d90 80%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 5s linear infinite}
.js .hl em{opacity:0;transform:rotateX(-80deg) translateY(30px);transform-origin:50% 100%}
.hero.in .hl em{animation:flip .9s cubic-bezier(.2,.9,.2,1) calc(var(--w,0)*.18s) forwards,shimmer 5s 1.5s linear infinite}
.hero.in .ln:nth-child(1) em:nth-child(1){--w:0}.hero.in .ln:nth-child(1) em:nth-child(2){--w:1}.hero.in .ln:nth-child(2) em:nth-child(1){--w:2}.hero.in .ln:nth-child(2) em:nth-child(2){--w:3}.hero.in .ln:nth-child(3) em:nth-child(1){--w:4}.hero.in .ln:nth-child(3) em:nth-child(2){--w:5}
@keyframes flip{60%{transform:rotateX(12deg) translateY(-4px)}to{opacity:1;transform:none}}@keyframes shimmer{to{background-position:-250% 0}}
.ln.k{position:relative;width:fit-content}.hsw{position:absolute;left:0;bottom:-4px;width:100%;height:14px;overflow:visible}.hsw path{fill:none;stroke:#ff9ad5;stroke-width:5;stroke-linecap:round;stroke-dasharray:260;stroke-dashoffset:260}.hero.in .hsw path{animation:draww 1.1s 1.5s ease-out forwards}@keyframes draww{to{stroke-dashoffset:0}}
.js .hero-copy>p{opacity:0;transform:translateY(14px)}.hero.in .hero-copy>p{animation:rise .8s 1.2s ease-out forwards}.js .cust{opacity:0;transform:translateY(20px)}.hero.in .cust{animation:rise .8s 1.5s ease-out forwards}@keyframes rise{to{opacity:1;transform:none}}
@property --ang{syntax:'<angle>';initial-value:0deg;inherits:false}
.opt span{border:2px solid transparent;background:linear-gradient(#fff,#fff) padding-box,conic-gradient(from var(--ang),#652d90,#ff9ad5,#b79be0,#652d90) border-box;animation:rot 4s linear infinite;transition:transform .25s}.opt:hover span{transform:translateY(-3px)}
@keyframes rot{to{--ang:360deg}}
.opt input:checked+span{background:linear-gradient(135deg,#652d90,#8e4fc4) padding-box,conic-gradient(from var(--ang),#fff,#ff9ad5,#fff) border-box;box-shadow:0 8px 24px #652d9055;animation:rot 3s linear infinite,glowp 2.4s ease-in-out infinite}@keyframes glowp{50%{box-shadow:0 8px 34px #652d90aa}}
#designBtn{position:relative;overflow:hidden;background:linear-gradient(110deg,#652d90,#8e4fc4,#d61f69,#652d90);background-size:250% 100%;animation:flow 5s linear infinite,btnp 2.6s ease-in-out infinite}
#designBtn::after{content:'';position:absolute;top:0;bottom:0;width:30%;left:-40%;background:linear-gradient(100deg,transparent,#ffffff77,transparent);animation:shine 3.4s ease-in-out infinite}
@keyframes btnp{50%{transform:scale(1.025)}}
@media(prefers-reduced-motion:reduce){.hero::before,.spk,.hl em,.opt span,#designBtn,#designBtn::after,.stp,.tl .tlf,.wlogo,.cfw i{animation:none!important}.js .hl em,.js .hero-copy>p,.js .cust{opacity:1;transform:none}.stp{opacity:1;transform:none}.tl .tlf{height:calc((100% - 32px)*var(--pn,0))}.hsw path{stroke-dashoffset:0}@media(min-width:640px){.tl .tlf{height:4px;width:calc(80%*var(--pn,0))}}}

/* ---- v5: new wordmark logo + demo photo ---- */
.brand img{height:76px;width:auto}
.fbrand img{height:58px;width:auto;animation:none}
.wlogo{height:60px;width:auto}
.dph{background:url(../assets/demo-card.jpg) center/cover no-repeat}.dph::before,.dph::after{display:none}
.dwin{align-items:end}.dtx{align-self:end;margin-bottom:14%;padding:.05em .35em}
.dlogo{width:46%;padding:3% 5%;border-radius:12% 12% 28% 28%}
@media(max-width:899px){.brand img{height:62px}}

.top{padding:12px 16px 14px}.brand img{height:70px}@media(max-width:899px){.brand img{height:58px}}
/* ---- v6: product page, category page, carousels, banners, tracking ---- */
.pdp2,.catp{max-width:1180px;margin:0 auto;padding:130px 16px 40px}.nf{text-align:center;padding:60px 0}
.crumbs{font-size:13px;color:#6b6472;margin-bottom:14px}.crumbs a{color:var(--p);text-decoration:none}.crumbs a:hover{text-decoration:underline}
.pdp-wrap{display:grid;gap:28px}@media(min-width:900px){.pdp-wrap{grid-template-columns:1.05fr 1fr;gap:44px;align-items:start}.gal{position:sticky;top:130px}}
.gal-main{position:relative;background:var(--pl);border-radius:20px;overflow:hidden;aspect-ratio:1;display:grid;place-items:center;cursor:zoom-in}
.gal-main img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.gal-main svg{height:60%}
@media(hover:hover){.gal-main:hover img{transform:scale(1.7)}}
.zoomb{position:absolute;right:12px;bottom:12px;width:40px;height:40px;border:0;border-radius:50%;background:#fffe;font-size:20px;box-shadow:0 2px 10px #0003;cursor:pointer}
.thumbs{display:flex;gap:10px;margin-top:12px;overflow-x:auto;padding-bottom:4px}.th{flex:none;width:76px;height:76px;border:2px solid transparent;border-radius:12px;padding:0;overflow:hidden;background:var(--pl);cursor:pointer;opacity:.7;transition:.2s}.th.on,.th:hover{border-color:var(--p);opacity:1}.th img{width:100%;height:100%;object-fit:cover;display:block}
.pinfo h1{font-size:clamp(1.9rem,4vw,2.8rem);color:var(--k);margin:4px 0 6px}.pinfo .crumb{color:var(--p);font-weight:700;text-decoration:none;text-transform:uppercase;font-size:12px;letter-spacing:.08em}
.pr{display:flex;align-items:baseline;gap:10px;margin:6px 0}.pr span{font:400 2.4rem 'Lilita One',sans-serif;color:var(--p)}.pr small{color:#1d7a4b;font-weight:700}
.stk{font-weight:700;font-size:14px;margin:4px 0 10px}.stk.ok{color:#1d7a4b}.stk.low{color:#a86400}.stk.no{color:#c1121f}.sdesc{color:#3b3544;max-width:60ch}
.buyrow{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:18px 0}.qty{display:flex;align-items:center;border:2px solid var(--k);border-radius:99px;overflow:hidden}.qty button{width:42px;height:44px;border:0;background:none;font-size:20px;font-weight:700;cursor:pointer}.qty input{width:44px;border:0;text-align:center;font-weight:700;padding:0;background:none}
.pbtn{width:auto!important;flex:1;min-width:140px;padding:14px 22px}.pbtn.alt{background:var(--k)}.pbtn.alt:hover{background:#2a2433}
.eta{display:grid;gap:2px;background:var(--pl);border-radius:14px;padding:12px 16px;margin:6px 0 14px;border-left:5px solid var(--p)}.eta span{font-weight:700;color:var(--p);font-size:1.1rem}.eta small{color:#6b6472}
.trust{display:flex;flex-wrap:wrap;gap:8px 18px;list-style:none;padding:0;margin:0 0 14px;font-size:13px;color:#4a4453}.trust li::before{content:'✓';color:#1d7a4b;font-weight:700;margin-right:6px}
.acc{border-top:1px solid #e5def0;padding:12px 0}.acc summary{font-weight:700;cursor:pointer}.acc dl{display:grid;grid-template-columns:120px 1fr;gap:6px 12px;margin:10px 0 0}.acc dt{color:#6b6472}.acc dd{margin:0}
.rel2{margin-top:44px}.rel2 h2,.catp h1{font-size:clamp(1.6rem,3.5vw,2.4rem);color:var(--p)}.cdesc{max-width:70ch}
.lb{position:fixed;inset:0;z-index:80;background:#14101af2;display:grid;place-items:center}.lb[hidden]{display:none}.lb img{max-width:92vw;max-height:88vh;object-fit:contain;border-radius:8px}
.lb button{position:absolute;border:0;background:#ffffff26;color:#fff;width:48px;height:48px;border-radius:50%;font-size:26px;cursor:pointer}.lbx{top:16px;right:16px}.lbp{left:14px;top:50%}.lbn{right:14px;top:50%}
/* auto-scrolling carousels and banners */
.csec,.bsec{max-width:1280px;margin:34px auto;padding:0 16px}.csec-h h2,.bt{font-size:clamp(1.6rem,3.5vw,2.4rem);color:var(--p);margin-bottom:12px}
.cs{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}.cs-track{display:flex;gap:14px;width:max-content;animation:csmove var(--dur,30s) linear infinite}.cs:hover .cs-track,.cs:focus-within .cs-track{animation-play-state:paused}
.cs .card{width:210px;flex:none}@keyframes csmove{to{transform:translateX(-50%)}}
.bn-row{display:grid;gap:12px;grid-template-columns:1fr}.bn-i{display:block;border-radius:16px;overflow:hidden;background:var(--pl);transition:transform .3s,box-shadow .3s}a.bn-i:hover{transform:translateY(-4px);box-shadow:0 10px 26px #652d9040}.bn-i img{display:block;width:100%;height:100%;object-fit:cover}
.bn-row.c1 .bn-i{aspect-ratio:16/5}@media(min-width:700px){.bn-row.c2{grid-template-columns:1fr 1fr}.bn-row.c3{grid-template-columns:repeat(3,1fr)}.bn-row.c2 .bn-i{aspect-ratio:2/1}.bn-row.c3 .bn-i{aspect-ratio:4/3}}
@media(max-width:699px){.bn-row .bn-i{aspect-ratio:16/9}}
@media(prefers-reduced-motion:reduce){.cs-track{animation:none}.cs{overflow-x:auto}}
/* timeline with 6 steps + tracking */
.tl{--n:6}@media(min-width:640px){.tl{grid-template-columns:repeat(var(--n),1fr)}.tl .tlt,.tl .tlf{left:calc(50%/var(--n));right:calc(50%/var(--n))}.tl .tlf{right:auto;width:0;animation-name:fillh6}@keyframes fillh6{to{width:calc((100% - 100%/var(--n))*var(--pn,0))}}}
.etabox{background:var(--pl);border-radius:12px;padding:8px 14px;margin:8px 0;font-size:14px}.etabox b{color:var(--p)}
.trk{margin:10px 0;border:1.5px solid #d9d2e3;border-radius:14px;padding:12px 14px}.trk .tid{font:700 1.05rem monospace;color:var(--p)}.trk a.tl-link{color:var(--p);font-weight:700}
.trk iframe{width:100%;height:520px;border:0;border-radius:10px;margin-top:10px;background:#fff}.trk .hintt{font-size:12px;color:#6b6472;margin:6px 0 0}
