/* ================= v6: motion layer (home hero, sliders, micro-interactions) ================= */
:root{--ease-out:cubic-bezier(.16,1,.3,1);--bleed:20px}
@view-transition{navigation:auto}
::view-transition-old(root){animation:vtOut .22s ease both}
::view-transition-new(root){animation:vtIn .45s var(--ease-out) both}
@keyframes vtOut{to{opacity:0;transform:translateY(-6px)}}@keyframes vtIn{from{opacity:0;transform:translateY(10px)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes ping{70%,100%{box-shadow:0 0 0 10px rgba(95,155,79,0)}}
@keyframes twinkle{0%,100%{opacity:.25;transform:scale(.7) rotate(0)}50%{opacity:1;transform:scale(1.15) rotate(25deg)}}
@keyframes drift{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(4vmax,-3vmax,0) scale(1.12)}}
@keyframes wordUp{from{transform:translateY(112%) rotate(5deg)}}
@keyframes floaty{from{transform:translateY(-9px) rotate(var(--r1,-3deg))}to{transform:translateY(11px) rotate(var(--r2,3deg))}}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}}
@keyframes bump{30%{transform:scale(1.35)}60%{transform:scale(.9)}}
@keyframes rotw{0%{transform:translateY(105%);opacity:0}3%,14%{transform:translateY(0);opacity:1}17%,100%{transform:translateY(-105%);opacity:0}}
@keyframes splashOut{to{transform:translateY(-102%);visibility:hidden}}
@keyframes splashIn{from{opacity:0;transform:scale(.85)}}
@keyframes ripple{to{transform:scale(1);opacity:0}}

/* ---- Splash (first visit of a session only) ---- */
.splash{position:fixed;inset:0;z-index:300;display:grid;place-items:center;background:var(--blush);border-radius:0 0 50% 50%/0 0 12vw 12vw;animation:splashOut .85s var(--ease-out) 1.25s forwards;pointer-events:none}
.splash-inner{display:flex;align-items:baseline;gap:6px;font-family:var(--font-head);font-weight:700;font-size:clamp(2.2rem,9vw,4rem);animation:splashIn .7s var(--ease-out) both}
.splash-inner i{font-style:normal;color:var(--rose);animation:beat 1s infinite}.splash img{height:min(38vh,280px);width:auto}
.no-splash .splash{display:none}
.logo-heart{display:inline-block;animation:beat 2.4s ease-in-out infinite}

/* ---- Motion hero ---- */
.mhero{position:relative;overflow:hidden;padding:30px 0 70px;min-height:min(90svh,840px);display:grid;align-items:center;--hd:.15s}
html:not(.no-splash) .mhero{--hd:1.35s}
.mhero-bg{position:absolute;inset:0;pointer-events:none;z-index:0}
.blob{position:absolute;border-radius:50%;filter:blur(46px);opacity:.8;animation:drift 15s ease-in-out infinite alternate}
.b1{width:46vmax;height:46vmax;background:var(--blush);top:-16vmax;inset-inline-end:-14vmax}
.b2{width:34vmax;height:34vmax;background:#e3ecdc;bottom:-12vmax;inset-inline-start:-10vmax;animation-delay:-5s}
.b3{width:20vmax;height:20vmax;background:#fbe9b6;top:34%;inset-inline-start:38%;opacity:.55;animation-delay:-9s}
.spark{position:absolute;color:var(--rose);font-size:1.4rem;animation:twinkle 3.2s ease-in-out infinite}
.sp1{top:14%;inset-inline-start:8%}.sp2{top:62%;inset-inline-start:46%;animation-delay:-1.2s;color:var(--sage)}.sp3{top:20%;inset-inline-end:6%;animation-delay:-2s;color:#e0b94a}
.mhero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.08fr 1fr;gap:36px;align-items:center}
.live{display:inline-flex;gap:9px;align-items:center;background:#fff;padding:7px 16px 7px 14px;border-radius:999px;box-shadow:var(--shadow);font-weight:600;font-size:.86rem;animation:fadeUp .8s var(--ease-out) both;animation-delay:var(--hd)}
.live i{width:9px;height:9px;border-radius:50%;background:#5f9b4f;box-shadow:0 0 0 0 rgba(95,155,79,.6);animation:ping 2s infinite}
.mhero h1{font-size:clamp(2.6rem,8vw,5.6rem);line-height:1.22;letter-spacing:-.02em;margin:18px 0 14px}
.w{display:inline-block;overflow:hidden;vertical-align:bottom;padding:.12em 0 .14em;margin-inline-end:.26em}
.w>span{display:inline-block;animation:wordUp 1s var(--ease-out) both;animation-delay:calc(var(--i) * .09s + var(--hd))}
.w.hl>span{background:linear-gradient(transparent 64%,var(--butter) 64% 90%,transparent 90%) no-repeat;background-size:0 100%;animation:wordUp 1s var(--ease-out) both,hlGrow .9s var(--ease-out) forwards;animation-delay:calc(var(--i) * .09s + var(--hd)),calc(var(--i) * .09s + var(--hd) + .8s)}
@keyframes hlGrow{to{background-size:100% 100%}}
.mhero-sub{font-size:clamp(1.02rem,2.6vw,1.25rem);color:var(--muted);max-width:30em;animation:fadeUp .9s var(--ease-out) both;animation-delay:calc(var(--hd) + .45s)}
.rot{display:flex;gap:10px;align-items:center;margin:18px 0 6px;color:var(--muted);font-weight:500;animation:fadeUp .9s var(--ease-out) both;animation-delay:calc(var(--hd) + .6s)}
.rot-words{display:inline-grid;height:2em;overflow:hidden;min-width:8em;align-items:center}
.rot-words b{grid-area:1/1;color:var(--ink);font-family:var(--font-head);font-size:1.15em;opacity:0;animation:rotw 12s infinite;animation-delay:calc(var(--k) * 2s)}
.mhero .hero-actions{animation:fadeUp .9s var(--ease-out) both;animation-delay:calc(var(--hd) + .75s)}
.hero-actions .btn{min-height:54px;padding:0 30px}
.scroll-cue{position:absolute;bottom:14px;inset-inline-start:50%;transform:translateX(50%);z-index:2;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--ink);color:var(--ink);animation:cue 2s ease-in-out infinite}
@keyframes cue{50%{transform:translateX(50%) translateY(8px)}}
.mhero-stage{position:relative;aspect-ratio:1/1.08;max-width:540px;width:100%;margin-inline:auto;--mx:0px;--my:0px;--sy:0px}
.hs-item{position:absolute;transform:translate3d(calc(var(--mx) * var(--k,1)),calc((var(--my) + var(--sy)) * var(--k,1)),0);will-change:transform}
.hs-1{width:58%;top:0;inset-inline-start:0;--k:1.1}.hs-2{width:49%;top:27%;inset-inline-end:0;--k:-.8}.hs-3{width:44%;bottom:0;inset-inline-start:20%;--k:1.5}
.hs-card{display:block;position:relative;border-radius:24px;overflow:hidden;background:#fff;border:6px solid #fff;box-shadow:var(--shadow-lg);animation:floaty 7s ease-in-out infinite alternate,fadeUp 1s var(--ease-out) both;animation-delay:var(--fd,0s),calc(var(--hd) + var(--ent,0s))}
.hs-1 .hs-card{--r1:-4deg;--r2:2deg;--ent:.1s}.hs-2 .hs-card{--r1:3deg;--r2:-2deg;--fd:-2.5s;--ent:.3s}.hs-3 .hs-card{--r1:-1deg;--r2:3deg;--fd:-4s;--ent:.5s}
.hs-card img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}
.hs-tag{position:absolute;inset-inline:8px;bottom:8px;background:rgba(255,255,255,.93);border-radius:14px;padding:5px 10px;font-size:.76rem;font-weight:600;display:flex;justify-content:space-between;gap:6px}
.spin-badge{position:absolute;z-index:3;width:112px;height:112px;top:-14px;inset-inline-end:2%;animation:spin 18s linear infinite}
.spin-badge text{font:700 11.5px var(--font-body);letter-spacing:.14em;fill:var(--ink)}.spin-badge circle.bg{fill:var(--butter)}.spin-badge .ht{font-size:22px;fill:var(--rose-deep);animation:none}

/* ---- Section heads ---- */
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:26px;flex-wrap:wrap}
.sec-head .eb{display:block;color:var(--rose-deep);font-weight:700;font-size:.86rem;margin-bottom:4px}
.sec-head h2{font-size:clamp(1.8rem,4.6vw,3rem);margin:0;line-height:1.25}
.link-arrow{display:inline-flex;gap:8px;align-items:center;font-weight:600;border-bottom:2px solid var(--rose);padding-bottom:2px;transition:gap .25s var(--ease)}.link-arrow:hover{gap:14px}

/* ---- Ribbon marquee ---- */
.ribbon{overflow:hidden;direction:ltr;padding:20px 0;background:var(--ink);color:var(--cream)}
.ribbon-track{display:flex;gap:34px;width:max-content;animation:marq 32s linear infinite;font-family:var(--font-head);font-size:clamp(1.8rem,5.5vw,3.6rem);font-weight:700;line-height:1.3}
.ribbon span{white-space:nowrap}.ribbon span:nth-child(3n+1){color:var(--rose)}.ribbon span:nth-child(3n+2){color:var(--butter)}.ribbon span:nth-child(3n){color:var(--sage)}
.ribbon:hover .ribbon-track{animation-play-state:paused}

/* ---- Motion slider ---- */
.mslider{--per:4;--gap:20px;position:relative}
.ms-track{display:flex;gap:var(--gap);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;margin-inline:calc(var(--bleed) * -1);padding:8px var(--bleed) 22px;scroll-padding-inline:var(--bleed);cursor:grab}
.ms-track::-webkit-scrollbar{display:none}
.ms-track.is-drag{scroll-snap-type:none;cursor:grabbing;scroll-behavior:auto}.ms-track.is-drag a{pointer-events:none}
.ms-track img{-webkit-user-drag:none;user-select:none}
.ms-slide{--d:0;flex:0 0 calc((100% - (var(--per) - 1) * var(--gap)) / var(--per));scroll-snap-align:start;transform:scale(calc(1 - var(--d) * .05));opacity:calc(1 - var(--d) * .28);transform-origin:center bottom;will-change:transform}
.ms-slide .product-card.reveal{opacity:1;transform:none}
.ms-ui{display:flex;align-items:center;gap:18px}
.ms-progress{flex:1;height:3px;background:var(--line);border-radius:3px;position:relative;overflow:hidden}
.ms-progress i{position:absolute;top:0;bottom:0;width:30%;background:var(--ink);border-radius:3px;transition:inset-inline-start .15s linear,width .25s}
.ms-btns{display:flex;gap:10px}
.ms-btns button{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--ink);background:transparent;display:grid;place-items:center;cursor:pointer;transition:background .2s,color .2s,transform .2s,opacity .2s}
.ms-btns button:hover:not(:disabled){background:var(--ink);color:#fff;transform:scale(1.06)}.ms-btns button:disabled{opacity:.28;cursor:default}

/* ---- Product card: FAB + press feel ---- */
.product-card{transition:transform .35s var(--ease)}.product-card:active{transform:scale(.985)}
@media (hover:hover){.product-card:hover{transform:translateY(-5px)}}
.pc-fab{position:absolute;z-index:2;bottom:10px;inset-inline-end:10px;width:46px;height:46px;border-radius:50%;border:0;background:var(--ink);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 20px rgba(48,42,40,.25);transition:transform .3s var(--ease),background .2s,color .2s}
.pc-fab:hover{transform:scale(1.1) rotate(90deg);background:var(--rose);color:var(--ink)}.pc-fab:disabled{display:none}
.pc-fab.is-loading{color:transparent;pointer-events:none}.pc-fab.is-loading::after{content:"";position:absolute;width:18px;height:18px;border:2px solid #fff;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite}
.pc-quick{inset-inline-end:68px!important}
.mslider .pc-body .btn{display:none}
.fly-dot{position:fixed;z-index:400;width:28px;height:28px;border-radius:50%;background:var(--rose);box-shadow:0 8px 20px rgba(217,143,154,.65);pointer-events:none}
.bump{animation:bump .5s var(--ease)}
.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.45);transform:scale(0);animation:ripple .6s ease-out forwards;pointer-events:none}.btn-primary .ripple,.btn-ghost .ripple{background:rgba(48,42,40,.14)}

/* ---- Categories (slider cards) ---- */
.mslider.cats{--per:4}.mslider.cats .cat-card{height:100%}
.cat-card img{aspect-ratio:3/4}

/* ---- Story + stickers ---- */
.story-media{position:relative;overflow:hidden;border-radius:var(--r)}.story-media img{box-shadow:none;border-radius:0;scale:1.14;will-change:transform}
.sticker{position:absolute;inset-inline-start:14px;bottom:14px;background:var(--butter);padding:10px 18px;border-radius:999px;font-weight:700;transform:rotate(-6deg);box-shadow:var(--shadow);animation:floaty 5s ease-in-out infinite alternate;--r1:-8deg;--r2:-3deg}

/* ---- Reviews slider ---- */
.mslider.reviews{--per:3}
.rv-card{background:#fff;border-radius:24px;padding:28px;box-shadow:var(--shadow);height:100%;display:grid;gap:12px;align-content:start;position:relative}
.rv-card::before{content:"”";position:absolute;top:6px;inset-inline-end:20px;font:700 5rem/1 var(--font-head);color:var(--blush)}
.rv-card p{margin:0;font-size:1.05rem;line-height:2;position:relative}.rv-card footer{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:.9rem}
.rv-av{width:38px;height:38px;border-radius:50%;background:var(--blush);color:var(--rose-deep);display:grid;place-items:center;font-weight:700}

/* ---- Gallery rails ---- */
.rail{overflow:hidden;direction:ltr;margin-bottom:12px}
.rail-track{display:flex;gap:12px;width:max-content;animation:marq 46s linear infinite}
.rail.rev .rail-track{animation-direction:reverse;animation-duration:54s}
.rail:hover .rail-track{animation-play-state:paused}
.rail-item{flex:none;width:clamp(140px,24vw,230px);aspect-ratio:1;border-radius:var(--r-sm);overflow:hidden;display:block}
.rail-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}.rail-item:hover img{transform:scale(1.1)}

/* ---- Reveal variants ---- */
.js .reveal{transition-delay:calc(var(--i,0) * 70ms)}
.js .reveal.reveal-scale{transform:scale(.92) translateY(10px)}.js .reveal.reveal-scale.in{transform:none}
.js .reveal.reveal-left{transform:translateX(-30px)}.js .reveal.reveal-left.in{transform:none}
.steps li{position:relative;overflow:hidden}.steps li::after{content:"";position:absolute;inset-inline:0;bottom:0;height:4px;background:linear-gradient(90deg,var(--rose),var(--butter),var(--sage));transform:scaleX(0);transform-origin:right;transition:transform 1s var(--ease-out) .3s}
.steps li.in::after{transform:scaleX(1)}
.newsletter{position:relative;overflow:hidden}.newsletter::before,.newsletter::after{content:"✦";position:absolute;font-size:3rem;color:rgba(255,255,255,.7);animation:twinkle 4s ease-in-out infinite}.newsletter::before{top:14%;inset-inline-start:8%}.newsletter::after{bottom:12%;inset-inline-end:10%;animation-delay:-2s}

/* ---- Menus / drawer ---- */
.mobile-menu.is-open .mm-list li{animation:fadeUp .5s var(--ease-out) both}
.mm-list li:nth-child(1){animation-delay:.08s}.mm-list li:nth-child(2){animation-delay:.14s}.mm-list li:nth-child(3){animation-delay:.2s}.mm-list li:nth-child(4){animation-delay:.26s}.mm-list li:nth-child(5){animation-delay:.32s}.mm-list li:nth-child(6){animation-delay:.38s}.mm-list li:nth-child(7){animation-delay:.44s}
.drawer-item{animation:fadeUp .45s var(--ease-out) both}

/* ---- Mobile ---- */
@media (max-width:1024px){
  .mslider{--per:3;--gap:16px}.mslider.cats{--per:2.4}.mslider.reviews{--per:1.6}
  .mhero-grid{grid-template-columns:1fr;gap:28px}.mhero{padding:22px 0 64px;min-height:0}
  .mhero-stage{max-width:430px}.scroll-cue{display:none}
}
@media (max-width:640px){
  :root{--bleed:14px}
  .mslider{--per:1.72;--gap:12px}.mslider.cats{--per:1.5}.mslider.reviews{--per:1.18}
  .mhero{padding:14px 0 54px}
  .mhero h1{font-size:clamp(2.4rem,12.5vw,3.4rem);margin:14px 0 10px}
  .mhero-stage{aspect-ratio:1/1;max-width:340px;margin-top:6px}.hs-card{border-width:4px;border-radius:18px}.spin-badge{width:84px;height:84px;top:-8px}
  .ms-btns{display:none}.ms-ui{gap:0}
  .sec-head{margin-bottom:18px}.sec-head h2{font-size:1.85rem}
  .ribbon{padding:14px 0}
  .pc-fab{width:42px;height:42px;bottom:8px;inset-inline-end:8px}.product-card .pc-body .btn{display:none}.pc-quick{display:none}
  .product-card .pc-stock{margin-bottom:0}
  .rv-card{padding:22px}
  .rail-item{width:36vw}
  .hero-actions .btn{flex:1;padding:0 18px}
}
@media (prefers-reduced-motion:reduce){
  .w>span,.live,.mhero-sub,.rot,.mhero .hero-actions,.hs-card{animation:none!important}
  .w.hl>span{background-size:100% 100%}.rot-words b:first-child{opacity:1}.splash{display:none}
  .ribbon-track,.rail-track,.blob,.spark,.spin-badge,.logo-heart{animation:none!important}
  .ms-slide{transform:none;opacity:1}
}

/* ================= v7: pro hero deck + extra motion ================= */
@keyframes dotfill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes bob{from{transform:translateY(-6px)}to{transform:translateY(8px)}}
.page-home .site-header:not(.is-scrolled){background:transparent;backdrop-filter:none;border-color:transparent}
.scroll-progress{position:fixed;top:0;inset-inline:0;height:3px;z-index:140;transform-origin:right center;transform:scaleX(var(--sp,0));background:linear-gradient(90deg,var(--rose),var(--butter),var(--sage));pointer-events:none}
.mhero::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(460px circle at var(--cx,50%) var(--cy,40%),rgba(244,213,141,.30),transparent 62%);opacity:0;transition:opacity .5s}
.mhero:hover::after{opacity:1}
.mhero-copy{transform:translateY(calc(var(--hp,0) * -34px));opacity:calc(1 - var(--hp,0) * 1.15)}
[data-magnetic]{transition:transform .25s var(--ease-out)}

/* Deck (stacked product cards) */
.deck{position:relative;z-index:2;width:min(100%,380px);margin:0 auto}
.deck-stage{position:relative;aspect-ratio:4/5.1}
.deck-card{position:absolute;inset:0;border-radius:30px;overflow:hidden;background:#fff;border:6px solid #fff;box-shadow:var(--shadow-lg);transform-origin:50% 100%;transition:transform .95s var(--ease-out),opacity .6s,filter .6s;will-change:transform;touch-action:pan-y}
.deck-card>a,.deck-card>div{display:block;height:100%;position:relative}
.deck-card img{width:100%;height:100%;object-fit:cover;display:block;-webkit-user-drag:none;user-select:none}
.deck-card[data-pos="0"]{z-index:5;transform:none}
.deck-card[data-pos="1"]{z-index:4;transform:translate(-9%,3%) rotate(-6deg) scale(.93);filter:saturate(.92) brightness(.98)}
.deck-card[data-pos="2"]{z-index:3;transform:translate(-17%,6%) rotate(-11deg) scale(.86);opacity:.85;filter:saturate(.85) brightness(.96)}
.deck-card[data-pos="far"]{z-index:1;transform:translate(-22%,8%) rotate(-14deg) scale(.8);opacity:0;pointer-events:none}
.deck-card[data-pos="out"]{z-index:6;transform:translate(-125%,-4%) rotate(-16deg) scale(.96);opacity:0;pointer-events:none}
.deck-card[data-pos="out-r"]{z-index:6;transform:translate(125%,-4%) rotate(16deg) scale(.96);opacity:0;pointer-events:none}
.deck-info{position:absolute;inset-inline:0;bottom:0;padding:46px 18px 16px;background:linear-gradient(transparent,rgba(48,42,40,.78));color:#fff;display:grid;gap:2px}
.deck-cat{font-size:.78rem;opacity:.85}.deck-info strong{font-size:1.1rem;line-height:1.5}
.deck-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:4px}.deck-row b{font-size:1rem}
.deck-row em{font-style:normal;display:inline-flex;gap:6px;align-items:center;background:#fff;color:var(--ink);border-radius:999px;padding:5px 14px;font-size:.82rem;font-weight:700}
.deck-ui{display:flex;align-items:center;gap:14px;margin-top:26px}
.deck-count{font-family:var(--font-head);font-weight:700;color:var(--muted);min-width:3.4em}.deck-count b{color:var(--ink);font-size:1.25rem}
.deck-dots{display:flex;gap:6px;flex:1}
.deck-dot{flex:1;height:18px;border:0;background:none;padding:7px 0;cursor:pointer}
.deck-dot i{display:block;height:4px;border-radius:4px;background:var(--line);position:relative;overflow:hidden}
.deck-dot.is-on i::after{content:"";position:absolute;inset:0;background:var(--ink);transform-origin:right center;animation:dotfill var(--dur,4.8s) linear forwards}
.deck.is-paused .deck-dot.is-on i::after{animation-play-state:paused}.deck-dot:not(.is-on):hover i{background:var(--rose)}
.deck-arrows{display:flex;gap:8px}.deck-arrows button{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--ink);background:transparent;display:grid;place-items:center;cursor:pointer;transition:background .2s,color .2s,transform .2s}
.deck-arrows button:hover{background:var(--ink);color:#fff;transform:scale(1.06)}
.mhero-stage{aspect-ratio:auto;padding:12px 0 8px}
.hs-c1{top:18%;inset-inline-end:-2%;--k:-1.2;z-index:6}.hs-c2{bottom:20%;inset-inline-start:-4%;--k:1.4;z-index:6}
.chip-float{display:inline-block;background:#fff;border-radius:999px;padding:9px 18px;font-weight:700;font-size:.88rem;box-shadow:var(--shadow-lg);animation:bob 4.5s ease-in-out infinite alternate;white-space:nowrap}
.hs-c2 .chip-float{animation-delay:-2s;background:var(--butter)}

/* split headings + clip reveal */
.sw>span{transform:translateY(112%)}
[data-split].in .sw>span{animation:wordUp .9s var(--ease-out) both;animation-delay:calc(var(--i) * .07s);transform:none}
.js .reveal.reveal-clip{opacity:1;transform:none;clip-path:inset(0 0 100% 0 round 24px);transition:clip-path 1.2s var(--ease-out)}
.js .reveal.reveal-clip.in{clip-path:inset(0 0 0 0 round 24px)}
.ribbon-track{transform:skewX(calc(var(--skew,0) * 1deg))}

/* content pages (CMS) */
.page-hero{padding:56px 0 30px;text-align:center;background:radial-gradient(800px 260px at 50% -40px,var(--blush),transparent 70%)}
.page-hero h1{font-size:clamp(2rem,5vw,3.4rem);margin:.15em 0}.page-hero p{color:var(--muted);max-width:36em;margin:0 auto}
.eb-lg{display:inline-block;color:var(--rose-deep);font-weight:700;font-size:.9rem}
.page-cover{width:100%;max-height:420px;object-fit:cover;border-radius:var(--r);margin-bottom:28px;box-shadow:var(--shadow)}
.prose img{max-width:100%;height:auto;border-radius:14px;margin:14px 0}.prose blockquote{border-inline-start:4px solid var(--rose);background:var(--cream);padding:12px 18px;border-radius:0 14px 14px 0;margin:18px 0;color:var(--ink)}
.prose .t-center,.ed-area .t-center{text-align:center}.prose .t-left,.ed-area .t-left{text-align:left}.prose .t-right,.ed-area .t-right{text-align:right}
.prose .callout{background:#fbf0cf;border-radius:16px;padding:16px 20px}.prose .lead{font-size:1.2rem;color:var(--ink)}
.prose table{width:100%;border-collapse:collapse;margin:16px 0}.prose th,.prose td{border:1px solid var(--line);padding:8px 12px;text-align:start}
.prose hr{border:0;border-top:2px dashed var(--line);margin:28px 0}

@media (max-width:1024px){.deck{width:min(86%,340px)}.hs-c1{inset-inline-end:2%}.hs-c2{inset-inline-start:0}.mhero-copy{transform:none;opacity:1}}
@media (max-width:640px){.deck-ui{margin-top:20px;gap:10px}.deck-arrows{display:none}.chip-float{font-size:.76rem;padding:7px 12px}.deck-card{border-width:4px;border-radius:24px}}
@media (prefers-reduced-motion:reduce){.sw>span{transform:none}.deck-card{transition:none}.deck-dot.is-on i::after{animation:none;transform:scaleX(1)}.chip-float{animation:none}.js .reveal.reveal-clip{clip-path:none}.scroll-progress{display:none}}

/* ---- Gift wrapping option + admin gift banner ---- */
.cart-extras{margin-top:16px;display:grid;gap:14px}.cart-extras .field{margin:0}
.gift-opt{display:grid;grid-template-columns:auto 1fr auto auto;gap:14px;align-items:center;padding:16px 18px;border:2px dashed var(--rose);border-radius:18px;background:linear-gradient(135deg,#fff,#fdf3f4);cursor:pointer;position:relative;transition:border-color .25s,background .25s,transform .2s,box-shadow .25s}
.gift-opt:hover{transform:translateY(-1px);box-shadow:var(--shadow)}
.gift-opt input{position:absolute;opacity:0;width:1px;height:1px}
.gift-ic{font-size:1.9rem;line-height:1;transition:transform .4s var(--ease)}
.gift-txt{display:grid;gap:2px}.gift-txt small{color:var(--muted);line-height:1.7}
.gift-price{font-family:var(--font-head);white-space:nowrap}
.switch{width:50px;height:28px;border-radius:999px;background:var(--line);position:relative;transition:background .25s;flex:none}
.switch::after{content:"";position:absolute;top:3px;inset-inline-start:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(48,42,40,.25);transition:inset-inline-start .3s var(--ease)}
.gift-opt.is-on{border-style:solid;border-color:var(--sage);background:linear-gradient(135deg,#f4f8f1,#fff)}
.gift-opt.is-on .switch{background:var(--sage)}.gift-opt.is-on .switch::after{inset-inline-start:25px}
.gift-opt.is-on .gift-ic{animation:giftPop .6s var(--ease)}
.gift-opt:has(input:focus-visible){outline:3px solid var(--rose);outline-offset:3px}
@keyframes giftPop{40%{transform:scale(1.35) rotate(-10deg)}}
.gift-compact{padding:10px 12px;gap:10px;margin-bottom:10px}.gift-compact .gift-ic{font-size:1.4rem}.gift-compact .gift-txt strong{font-size:.92rem}.gift-compact .gift-price{font-size:.8rem}.gift-compact .switch{width:42px;height:24px}.gift-compact .switch::after{width:18px;height:18px}.gift-compact.is-on .switch::after{inset-inline-start:21px}
.gift-banner{display:flex;gap:16px;align-items:flex-start;background:linear-gradient(135deg,#fdf0c9,#fbe6e8);border:2px solid var(--butter);border-radius:18px;padding:18px 20px;margin-bottom:18px}
.gift-banner .gift-ic{font-size:2.4rem}.gift-banner strong{display:block;font-size:1.15rem}.gift-banner span{color:#5c4f3d}
.gift-note{margin:10px 0 0;background:#fff;border-radius:12px;padding:10px 14px;color:var(--ink)}
@media (max-width:640px){.gift-opt{grid-template-columns:auto 1fr auto;row-gap:8px}.gift-opt .gift-price{grid-column:2}.gift-opt .switch{grid-row:1;grid-column:3}.gift-compact{grid-template-columns:auto 1fr auto}}

.footer-logo{height:56px}
@media(max-width:640px){.logo img{max-height:36px}}

/* ---- OTP login ---- */
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--cream);border-radius:999px;padding:4px;margin:14px 0 18px}
.auth-tabs a{text-align:center;padding:9px 12px;border-radius:999px;font-weight:600;color:var(--muted);transition:background .25s,color .25s}
.auth-tabs a.is-on{background:#fff;color:var(--ink);box-shadow:var(--shadow)}
.otp-input{text-align:center;font-size:1.8rem;letter-spacing:.5em;font-family:ui-monospace,Menlo,Consolas,monospace;min-height:62px;padding-inline-start:.5em}
.otp-again{display:flex;justify-content:space-between;gap:12px;margin-top:14px}.otp-again .link-btn[disabled]{color:var(--muted);text-decoration:none;cursor:default}
