/* ---------- v5 additions ---------- */
.plink{color:inherit;text-decoration:none}
.plink:hover{color:var(--rani)}
.pdp{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:40px;align-items:start;padding-block:24px 48px}
.pdp .tile{border-radius:var(--r);border:1px solid var(--line)}
.pdp .tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff;padding:28px;z-index:2}
.pinfo h1{font-size:clamp(34px,4.6vw,56px);margin:6px 0 14px;text-wrap:balance}
.pinfo .lede{max-width:56ch}
.pbuy{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:22px 0 8px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--r);background:var(--card)}
.buy.big{padding:15px 22px;font-size:15px}
h2.mini{font:700 12px/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:26px 0 12px}
.clinks.tight{padding-bottom:0}
.notes{margin:0;padding-left:18px;color:var(--ink)}
.notes li{margin:0 0 8px;max-width:60ch}
@media (max-width:760px){.pdp{grid-template-columns:1fr;gap:20px}}
.card{border-radius:20px}
.tile::before{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(120% 80% at 20% 0%,rgba(255,255,255,.5),transparent 60%)}
.badge{position:absolute;z-index:3;left:12px;bottom:12px;display:inline-flex;gap:5px;align-items:center;font:700 11px/1 var(--f-body);letter-spacing:.06em;text-transform:uppercase;padding:7px 10px;border-radius:999px;box-shadow:0 6px 16px -8px var(--shadow)}
.badge.b-top{background:var(--marigold);color:#2A1A05}
.badge.b-loved{background:var(--rani);color:var(--on-rani)}
.pbadges{margin-bottom:6px}.pbadges .badge{position:static}
.rate{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.rate b{color:var(--ink);font-weight:700}
.stars{--p:calc(var(--r) / 5 * 100%);display:inline-block;width:70px;height:14px;background:linear-gradient(90deg,var(--marigold) var(--p),var(--line) var(--p));-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.8l2.8 5.9 6.4.8-4.7 4.4 1.2 6.4L12 17.2l-5.7 3.1 1.2-6.4-4.7-4.4 6.4-.8z'/%3E%3C/svg%3E") 0 0/14px 14px repeat-x;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.8l2.8 5.9 6.4.8-4.7 4.4 1.2 6.4L12 17.2l-5.7 3.1 1.2-6.4-4.7-4.4 6.4-.8z'/%3E%3C/svg%3E") 0 0/14px 14px repeat-x}
.pinfo .rate{font-size:15px;margin:-4px 0 10px}.pinfo .stars{width:90px;height:18px;-webkit-mask-size:18px 18px;mask-size:18px 18px}
.lovedsec{position:relative;padding:56px 0 8px;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--rani) 7%,transparent) 45%,transparent)}
.lv-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px}
.lv-head .section-title{margin:12px 0 0}
.lv-head .sub{color:var(--muted);max-width:58ch;margin:8px 0 0}
.lv-nav{display:flex;gap:8px}.lv-nav .pill{width:44px;height:44px;justify-content:center;font-size:22px;padding:0}
.lv-track{list-style:none;margin:22px 0 0;padding:6px 2px 28px;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,250px);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.lv-track::-webkit-scrollbar{display:none}
.lv{scroll-snap-align:start;animation:rise .6s var(--ease) both;animation-delay:calc(var(--i) * 60ms)}
.lv a{position:relative;display:flex;flex-direction:column;text-decoration:none;background:var(--card);border:1px solid var(--line);border-radius:22px;overflow:hidden;height:100%;transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s}
.lv a:hover{transform:translateY(-6px);box-shadow:0 30px 50px -30px var(--shadow);border-color:color-mix(in srgb,var(--rani) 35%,var(--line))}
.lv-img{position:relative;aspect-ratio:4/5;display:grid;place-items:center;color:var(--glyph);overflow:hidden}
.lv-img svg.g{width:80px;height:80px}
.lv-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff;padding:24px;z-index:2;transition:transform .6s var(--ease)}
.lv a:hover .lv-img img{transform:scale(1.06)}
.lv-rank{position:absolute;z-index:3;left:14px;top:8px;font-family:var(--f-display);font-size:58px;line-height:1;color:var(--rani);text-shadow:0 0 14px var(--card),0 0 4px var(--card)}
.lv-txt{display:flex;flex-direction:column;gap:6px;padding:14px 16px 18px;border-top:1px solid var(--line)}
.lv-txt b{font-family:var(--f-display);font-weight:400;font-size:21px;line-height:1.15;text-wrap:balance}
.lv-txt span{font-size:13px;color:var(--muted)}
.price.live{font-size:13px;line-height:1.3;max-width:10em}
.card{position:relative}
.card .plink::after{content:"";position:absolute;inset:0;z-index:4;border-radius:inherit}
.card .heart{z-index:6}
.card .buy{position:relative;z-index:6}
.card .tag,.card .badge{pointer-events:none}
.tile-link{position:absolute;inset:0;z-index:4}
.pdp .heart{z-index:6}
@media (max-width:640px){.lv-nav{display:none}.lv-track{grid-auto-columns:72%}}
@media (prefers-reduced-motion:reduce){.lv{animation:none}}

/* ---------- v6: gift-wall hero, sentence finder, drawer, motion ---------- */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hx{position:relative;overflow:hidden;isolation:isolate;background:#2A0F24;color:#FBEFF5}
.hx::before{content:"";position:absolute;inset:-25%;z-index:-1;background:radial-gradient(38% 46% at 80% 42%,rgba(222,149,42,.38),transparent 70%),radial-gradient(34% 44% at 12% 92%,rgba(194,26,94,.5),transparent 70%),radial-gradient(30% 30% at 45% 10%,rgba(120,60,160,.35),transparent 70%);animation:glow 16s ease-in-out infinite alternate}
@keyframes glow{to{transform:translate(-4%,3%) scale(1.06)}}
.hx-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:48px;align-items:center;min-height:min(84vh,740px);padding-block:36px}
.hx-title{font-size:clamp(46px,6.6vw,92px);color:#FFF6FA;margin:0 0 22px;line-height:.98}
.hx-title .ln{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.hx-title .ln>span{display:inline-block;animation:lineup 1s var(--ease) both}
.hx-title .ln:nth-child(2)>span{animation-delay:.12s}
@keyframes lineup{from{transform:translateY(108%)}}
.hx-lede{color:#E2C9D7;max-width:46ch;animation:fade .8s .35s both}
.mad{margin:30px 0 0;font-family:var(--f-display);font-size:clamp(25px,2.7vw,34px);line-height:1.6;color:#FBEFF5;animation:rise .8s .5s var(--ease) both}
.mad-f{display:inline-block}
.mad-f select,.mad-measure{font:inherit;letter-spacing:inherit}
.mad-f select{appearance:none;-webkit-appearance:none;color:#FFC86B;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23FFC86B' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 4px center/.45em;border:0;border-bottom:2px dashed rgba(255,200,107,.55);border-radius:0;padding:0 26px 0 2px;margin:0 2px;cursor:pointer;transition:color .2s,border-color .2s,width .35s var(--ease)}
.mad-f select:hover,.mad-f select:focus-visible{color:#FFE0AA;border-bottom-style:solid;border-bottom-color:#FFC86B;outline:none}
.mad-f select option{color:#23192F;background:#fff;font-family:var(--f-body);font-size:16px}
.mad-measure{position:absolute;visibility:hidden;white-space:nowrap}
.mad-go{display:flex;width:max-content;margin-top:22px;background:#FFC86B;color:#2A0F24;font-size:16px}
.mad-go:hover{box-shadow:0 14px 30px -12px rgba(255,200,107,.7)}
.hx .stores{color:#C7ABBD;animation:fade .8s .7s both}
.hx .store{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14);color:#EBD7E2}
.wall{position:relative;height:min(80vh,700px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;transform:rotate(-7deg) scale(1.12);-webkit-mask-image:linear-gradient(transparent,#000 16%,#000 84%,transparent);mask-image:linear-gradient(transparent,#000 16%,#000 84%,transparent);animation:wallin 1.3s .15s var(--ease) both}
@keyframes wallin{from{opacity:0;transform:rotate(-7deg) scale(1.12) translateY(60px)}}
.wcol{overflow:hidden}
.wrun{display:flex;flex-direction:column;gap:16px;animation:wallup 56s linear infinite}
.w2 .wrun{animation-duration:70s;animation-direction:reverse}
.w3 .wrun{animation-duration:62s}
@keyframes wallup{to{transform:translateY(calc(-50% - 8px))}}
.wall:hover .wrun{animation-play-state:paused}
.wt{display:block;aspect-ratio:4/5;border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 24px 40px -22px rgba(0,0,0,.7);transition:transform .45s var(--spring)}
.wt img{display:block;width:100%;height:100%;object-fit:contain;background:#fff;padding:14px}
.wt:hover{transform:scale(1.05) rotate(1.5deg)}
@media (max-width:900px){
  .hx-grid{grid-template-columns:1fr;min-height:0;gap:8px;padding-block:28px 8px}
  .wall{height:300px;margin:0 -24px}
  .mad{font-size:24px}
}
/* motion that answers an action */
.fly{position:fixed;z-index:60;pointer-events:none;color:var(--rani);will-change:transform}
html.noscroll{overflow:hidden}
.drawer{position:fixed;inset:0;z-index:40}
.dr-scrim{position:absolute;inset:0;background:rgba(30,10,26,.45);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade .25s both}
.dr-panel{position:absolute;right:0;top:0;bottom:0;width:min(420px,100%);background:var(--paper);box-shadow:-30px 0 60px -30px rgba(0,0,0,.5);display:flex;flex-direction:column;padding:20px max(20px,env(safe-area-inset-right,0px)) 24px 20px;overflow:auto;animation:drin .45s var(--spring) both}
@keyframes drin{from{transform:translateX(100%)}}
@keyframes drout{to{transform:translateX(100%)}}
.drawer.closing .dr-panel{animation:drout .24s var(--ease) forwards}
.drawer.closing .dr-scrim{animation:fade .24s reverse forwards}
.dr-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.dr-head h2{font-family:var(--f-display);font-weight:400;font-size:36px;margin:0}
.dr-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.dr-item{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:12px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:8px;animation:rise .35s var(--ease) both}
.dr-item img,.dr-ph{width:72px;height:72px;object-fit:contain;background:#fff;border-radius:10px;display:block}
.dr-ph{background:var(--soft)}
.dr-item a{text-decoration:none;font-family:var(--f-display);font-size:19px;line-height:1.15}
.dr-item a:hover{color:var(--rani)}
.dr-item small{display:block;font-family:var(--f-body);font-size:12px;color:var(--muted);margin-top:4px;text-transform:capitalize}
.dr-item button{border:0;background:none;color:var(--muted);cursor:pointer;width:40px;height:40px;border-radius:50%;display:grid;place-items:center}
.dr-item button:hover{background:var(--soft);color:var(--rani)}
.dr-empty{color:var(--muted);margin:8px 0 0}
.mbar{display:none}
@media (max-width:700px){
  body{padding-bottom:84px}
  .mbar{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:18;display:grid;grid-template-columns:1.2fr 1fr 1.2fr;gap:4px;background:color-mix(in srgb,#23192F 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:999px;padding:6px;box-shadow:0 20px 40px -18px rgba(0,0,0,.6)}
  .mbar a,.mbar button{color:#F7F4FA;background:none;border:0;text-decoration:none;font:600 14px/1 var(--f-body);padding:13px 6px;border-radius:999px;display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer}
  .mbar a:first-child{background:var(--rani);color:#fff}
  .mbar .count{background:rgba(255,255,255,.16);color:#fff}
  .totop{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  .toast{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
}
/* smooth page-to-page: a tapped gift photo grows into its page (Chrome, Edge) */
@view-transition{navigation:auto}
::view-transition-group(*){animation-duration:.45s;animation-timing-function:cubic-bezier(.2,.7,.2,1)}
::view-transition-old(root),::view-transition-new(root){animation-duration:.28s}
@media (prefers-reduced-motion:reduce){
  @view-transition{navigation:none}
  .wrun,.hx::before{animation:none!important}
}
.card .tile{position:relative;z-index:5}
.toast{opacity:0;visibility:hidden;transition:transform .45s var(--spring),opacity .25s,visibility .25s}
.toast.show{opacity:1;visibility:visible}

/* ---------- v7: inner pages, gift guides, packaging ---------- */
.chero.band{background:#2A0F24;color:#FBEFF5;border-bottom:0;isolation:isolate}
.chero.band::before{opacity:1;inset:-30%;z-index:-1;background:radial-gradient(36% 50% at 85% 40%,rgba(222,149,42,.32),transparent 70%),radial-gradient(34% 50% at 8% 100%,rgba(194,26,94,.45),transparent 70%);animation:glow 16s ease-in-out infinite alternate}
.chero.band .wrap{padding-block:26px 48px}
.chero.band h1{color:#FFF6FA}
.chero.band .lede{color:#E2C9D7}
.chero.band .crumbs{color:#C7ABBD;padding-top:0}
.chero.band .crumbs a:hover{color:#FFC86B}
.chero.band .store{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.16);color:#EBD7E2}
.band-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:32px;align-items:center}
.fan{position:relative;height:250px}
.fan span{position:absolute;top:50%;left:50%;width:160px;aspect-ratio:4/5;margin:-100px 0 0 -80px;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 26px 44px -20px rgba(0,0,0,.7);animation:fanin .9s var(--ease) both}
.fan img{width:100%;height:100%;object-fit:contain;padding:12px}
.fan .fan-0{--r:-12deg;--x:-110px;z-index:1}
.fan .fan-1{--r:3deg;--x:0px;z-index:3;animation-delay:.08s}
.fan .fan-2{--r:14deg;--x:110px;z-index:2;animation-delay:.16s}
.fan span{transform:translateX(var(--x)) rotate(var(--r))}
.band-grid:hover .fan .fan-0{transform:translateX(calc(var(--x) - 14px)) rotate(-16deg)}
.band-grid:hover .fan .fan-2{transform:translateX(calc(var(--x) + 14px)) rotate(18deg)}
.fan span{transition:transform .5s var(--spring)}
@keyframes fanin{from{opacity:0;transform:translateY(40px) rotate(0)}}
@media (max-width:820px){.band-grid{grid-template-columns:1fr}.fan{height:200px}.fan span{width:120px;margin:-80px 0 0 -60px}.fan .fan-0{--x:-80px}.fan .fan-2{--x:80px}}
.gchips{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.chero.band .chip{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.18);color:#FBEFF5}
.chero.band .chip[aria-pressed="true"]{background:#FFC86B;color:#2A0F24;border-color:#FFC86B}
.pmeta{margin:16px 0 0;color:#C7ABBD;font-size:14px}
/* guide cards */
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;padding-bottom:56px}
.pcard a{display:flex;flex-direction:column;height:100%;text-decoration:none;background:var(--card);border:1px solid var(--line);border-radius:22px;overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s}
.pcard a:hover{transform:translateY(-5px);box-shadow:0 28px 46px -28px var(--shadow);border-color:color-mix(in srgb,var(--rani) 35%,var(--line))}
.pc-art{position:relative;display:block;aspect-ratio:16/9;background:linear-gradient(135deg,#3A1631,#2A0F24);overflow:hidden}
.pc-art img{position:absolute;top:50%;width:34%;aspect-ratio:4/5;object-fit:contain;background:#fff;border-radius:12px;padding:8px;box-shadow:0 16px 26px -14px rgba(0,0,0,.7);transition:transform .5s var(--spring)}
.pc-art .pc-0{left:10%;transform:translateY(-50%) rotate(-9deg)}
.pc-art .pc-1{left:33%;transform:translateY(-54%) rotate(2deg);z-index:2}
.pc-art .pc-2{left:56%;transform:translateY(-48%) rotate(10deg)}
.pcard a:hover .pc-0{transform:translateY(-52%) translateX(-8px) rotate(-13deg)}
.pcard a:hover .pc-2{transform:translateY(-46%) translateX(8px) rotate(14deg)}
.pc-body{display:flex;flex-direction:column;gap:6px;padding:16px 18px 20px;flex:1}
.pc-cat{font-size:12px;font-weight:600;color:var(--rani)}
.pc-body b{font-family:var(--f-display);font-weight:400;font-size:24px;line-height:1.12;text-wrap:balance}
.pc-dek{color:var(--muted);font-size:14.5px;flex:1}
.pc-meta{font-size:13px;color:var(--muted)}
.plead{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:18px;margin-bottom:18px}
.pcard-lead .pc-art{aspect-ratio:21/10}
.pcard-lead .pc-body b{font-size:34px}
.pack-teaser{border-radius:22px;padding:24px;background:#FFF1D9;color:#3A2410;display:flex;flex-direction:column;gap:10px;justify-content:center}
.pack-teaser h2{font-family:var(--f-display);font-weight:400;font-size:32px;margin:0}
.pack-teaser p{margin:0}
.pack-teaser .btn{align-self:flex-start;margin-top:6px}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .pack-teaser{background:#3A2C1A;color:#FBEBD0}}
@media (max-width:820px){.plead{grid-template-columns:1fr}.pcard-lead .pc-body b{font-size:26px}}
/* article */
.article-wrap{display:grid;grid-template-columns:220px minmax(0,1fr);gap:48px;padding-block:40px 24px;align-items:start}
.toc{position:sticky;top:90px;font-size:14px}
.toc b{display:block;margin-bottom:10px}
.toc ol{list-style:none;margin:0;padding:0;border-left:2px solid var(--line)}
.toc li a{display:block;padding:6px 0 6px 14px;margin-left:-2px;border-left:2px solid transparent;color:var(--muted);text-decoration:none;transition:color .2s,border-color .2s}
.toc li a:hover,.toc li a.on{color:var(--rani);border-left-color:var(--rani)}
.article{max-width:68ch;font-size:18px;line-height:1.72}
.article h2{font-family:var(--f-display);font-weight:400;font-size:34px;line-height:1.1;margin:40px 0 12px;scroll-margin-top:90px}
.article h2:first-child{margin-top:0}
.article h3{font-size:19px;margin:26px 0 8px;scroll-margin-top:90px}
.article p{margin:0 0 16px}
.article ul,.article ol{margin:0 0 18px;padding-left:22px}
.article li{margin:0 0 8px}
.article li::marker{color:var(--rani)}
.article a{color:var(--rani);text-decoration-thickness:1px;text-underline-offset:3px}
.article strong{font-weight:600}
@media (max-width:900px){.article-wrap{grid-template-columns:1fr;gap:12px}.toc{position:static}.toc:empty{display:none}.article{font-size:17px}}
.pack-cta{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center;background:#2A0F24;color:#FBEFF5;border-radius:22px;padding:24px 28px;margin:8px 0 56px}
.pack-cta h2{font-family:var(--f-display);font-weight:400;font-size:30px;margin:0 0 4px}
.pack-cta p{margin:0;color:#E2C9D7}
.pack-cta .btn{background:#FFC86B;color:#2A0F24}
.wraptip{margin-top:22px;padding:16px 18px;border-radius:16px;background:#FFF1D9;color:#3A2410}
.wraptip b{display:block;margin-bottom:4px}
.wraptip p{margin:0 0 8px}
.wraptip a{color:#8A4B00;font-weight:600}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .wraptip{background:#3A2C1A;color:#FBEBD0}:root:not([data-theme="light"]) .wraptip a{color:#FFC86B}}
.lv-head .pill{flex:none}
.nw{white-space:nowrap}
.pc-art:empty{background:radial-gradient(60% 80% at 80% 20%,rgba(222,149,42,.35),transparent 70%),radial-gradient(50% 70% at 10% 100%,rgba(194,26,94,.45),transparent 70%),#2A0F24}
.pc-art:empty::after{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 20s-7-4.4-7-10a4 4 0 0 1 7-2.6A4 4 0 0 1 19 10c0 5.6-7 10-7 10z' fill='none' stroke='%23FFC86B' stroke-width='1.2'/%3E%3C/svg%3E") center/64px no-repeat;opacity:.8}
