/* ==========================================================
   SEMPRE STUDIO — shared stylesheet
   cocoa #332621 · cream #F0E8DC · caramel #C6A68A
   Every page links this one file. Edit here, changes everywhere.
   ========================================================== */

:root{
  --cocoa:#332621;
  --cocoa-2:#3E2E27;
  --cream:#F0E8DC;
  --cream-2:#E7DCCC;
  --caramel:#C6A68A;
  --caramel-dp:#8F6F52;
  --ink:#2B211C;
  --line-d:rgba(240,232,220,.16);
  --line-l:rgba(43,33,28,.14);
  --white:#FCFBF8;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--cream);color:var(--ink);
  font-family:'Poppins',system-ui,sans-serif;font-weight:300;
  -webkit-font-smoothing:antialiased;line-height:1.7;
}
.wrap{max-width:1120px;margin:0 auto;padding:0 clamp(20px,5vw,48px)}
img{max-width:100%;display:block}
a{color:inherit}

/* ── eyebrow: the bilingual signature ── */
.eb{display:flex;align-items:baseline;gap:12px;font-size:10px;letter-spacing:.34em;text-transform:uppercase}
.eb i{font-style:italic;font-weight:300;letter-spacing:.22em;text-transform:none;font-size:12px}
.eb .dot{width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.45;align-self:center}

/* ── buttons ── */
.btn{
  display:inline-block;border:1px solid var(--caramel-dp);color:var(--caramel-dp);
  padding:11px 24px;font-size:9.5px;letter-spacing:.26em;text-transform:uppercase;text-indent:.26em;
  text-decoration:none;background:none;cursor:pointer;font-family:inherit;
  transition:background .25s,color .25s;
}
.btn:hover,.btn:focus-visible{background:var(--caramel-dp);color:var(--cream)}
.btn:focus-visible{outline:2px solid var(--caramel-dp);outline-offset:3px}
.btn.on-dark{border-color:var(--caramel);color:var(--caramel)}
.btn.on-dark:hover,.btn.on-dark:focus-visible{background:var(--caramel);color:var(--cocoa)}
.btn.solid{background:var(--cocoa);border-color:var(--cocoa);color:var(--cream)}
.btn.solid:hover,.btn.solid:focus-visible{background:var(--caramel-dp);border-color:var(--caramel-dp)}
.btn.block{display:block;width:100%;text-align:center}
.btn[disabled],.btn.is-disabled{opacity:.4;pointer-events:none}

/* ── shipping banner ──
   A slim strip above the header, on every page, so the free-shipping
   promise is the first thing anybody reads. Not sticky on purpose: it
   scrolls away with the rest of the page and the header settles into its
   usual sticky spot at the very top, so it never eats into space while
   someone is shopping.

   The phrase repeats ten times inside .track, and that whole run of ten
   is duplicated once (twenty spans total). The animation slides the track
   left by exactly 50% of its own width — which is exactly one run of ten —
   so the moment it snaps back to 0% the second run is sitting in the same
   place the first one started, and the loop is invisible. If you ever
   change the wording, keep the two runs identical and it stays seamless.

   There is no shared include on this site, so the banner's markup is
   repeated once near the top of every page's <body>, right before
   <header>. Change the wording or colour in every page's .ship-banner
   block to update it everywhere at once (or ask Claude to do the swap
   across all of them in one pass). */
.ship-banner{
  background:#2EB2AA;color:#FFFDFB;
  padding:9px 0;font-family:'Poppins',sans-serif;font-weight:400;
  font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  overflow:hidden;white-space:nowrap;
}
.ship-banner .track{
  display:inline-flex;width:max-content;
  animation:ship-scroll 34s linear infinite;
}
.ship-banner .track span{display:inline-flex;align-items:center;padding:0 20px;flex:none}
.ship-banner .track .hrt{margin-left:20px;font-size:11px;opacity:.7}
@keyframes ship-scroll{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
/* whole-second spins are disorienting for anyone who has asked their
   device to reduce motion, so it just sits still and reads as one line */
@media(prefers-reduced-motion:reduce){
  .ship-banner{overflow-x:auto}
  .ship-banner .track{animation:none}
}

/* ── header ── */
header{
  position:sticky;top:0;z-index:40;
  background:rgba(240,232,220,.94);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line-l);
}
.bar{display:flex;align-items:center;justify-content:space-between;gap:18px;
     padding:19px clamp(20px,5vw,48px);max-width:1180px;margin:0 auto}
/* The name and the nav were set small enough to squint at. Both are up a
   couple of points, with the letter-spacing eased back so the row still fits
   on a laptop without wrapping. */
.logo{font-family:'Prata',Georgia,serif;font-size:clamp(17px,1.6vw,20px);
      letter-spacing:.26em;text-indent:.26em;
      color:var(--ink);text-decoration:none;white-space:nowrap}
.logo span{color:var(--caramel-dp)}
.bar nav{display:flex;gap:26px;align-items:center}
.bar nav a{font-size:11.5px;letter-spacing:.17em;text-transform:uppercase;color:var(--ink);
      text-decoration:none;opacity:.78;transition:opacity .2s}
.bar nav a:hover,.bar nav a:focus-visible{opacity:1}
.bar nav a[aria-current="page"]{opacity:1;color:var(--caramel-dp)}
.bar nav a:focus-visible{outline:2px solid var(--caramel-dp);outline-offset:4px}

/* ── the Shop dropdown ───────────────────────────────────────────────────
   The word "Shop" stays a normal link to the shop landing page. The small
   chevron beside it opens the list of collections.                        */
/* the item is stretched to the full height of the header bar (the padding and
   the negative margin cancel out) so the menu below it sits flush — no gap for
   the pointer to fall through on its way down, and no overlay to bridge one */
.nav-item{position:relative;display:inline-flex;align-items:center;gap:4px;
          padding:16px 0;margin:-16px 0}
.nav-caret{
  background:none;border:none;padding:4px 2px;cursor:pointer;color:var(--ink);
  opacity:.5;line-height:0;transition:opacity .2s,transform .25s;
  display:inline-flex;align-items:center;
}
.nav-caret svg{width:10px;height:10px;display:block}
.nav-item:hover .nav-caret,.nav-caret:focus-visible{opacity:1}
.nav-item.open .nav-caret{opacity:1;transform:rotate(180deg)}
.nav-caret:focus-visible{outline:2px solid var(--caramel-dp);outline-offset:3px;border-radius:2px}

.nav-menu{
  position:absolute;top:100%;left:50%;z-index:45;list-style:none;
  min-width:242px;max-width:calc(100vw - 32px);
  background:var(--cream);border:1px solid var(--line-l);
  box-shadow:0 20px 44px rgba(43,33,28,.16);
  padding:9px 0;margin:0;
  opacity:0;visibility:hidden;pointer-events:none;
  transform:translateX(-50%) translateY(4px);
  transition:opacity .22s ease,transform .22s ease,visibility .22s;
}
.nav-item.open .nav-menu{
  opacity:1;visibility:visible;pointer-events:auto;
  transform:translateX(-50%) translateY(0);
}
.nav-menu li{margin:0}
.nav-menu li.sep{height:1px;background:var(--line-l);margin:8px 0}
.nav-menu a{
  display:block;padding:10px 20px;text-decoration:none;color:var(--ink);opacity:.78;
  font-size:11px;letter-spacing:.15em;text-transform:uppercase;line-height:1.5;
  transition:background .18s,opacity .18s,color .18s;
}
.nav-menu a:hover,.nav-menu a:focus-visible{background:var(--cream-2);opacity:1;color:var(--caramel-dp)}
.nav-menu a:focus-visible{outline:none;box-shadow:inset 2px 0 0 var(--caramel-dp)}
.nav-menu a .it{
  display:block;font-style:italic;text-transform:none;letter-spacing:.03em;
  font-size:11.5px;opacity:.6;margin-top:3px;
}
.nav-menu li.soon a{pointer-events:none;opacity:.4}
.nav-menu li.soon a .it{color:var(--caramel-dp);opacity:.8}

/* On a phone the nav is centred and "Shop" sits near the left edge, so a menu
   centred on the word runs off the screen. Below this width the menu spans the
   header instead — it measures itself against the sticky header, not the word. */
@media(max-width:820px){
  .nav-item{position:static}
  .nav-menu{left:16px;right:16px;min-width:0;max-width:none;transform:translateY(4px)}
  .nav-item.open .nav-menu{transform:translateY(0)}
}
@media(prefers-reduced-motion:reduce){
  .nav-menu,.nav-caret{transition:none}
}

/* cart button in the header */
.cart-btn{
  position:relative;background:none;border:none;cursor:pointer;font-family:inherit;
  font-size:11.5px;letter-spacing:.17em;text-transform:uppercase;color:var(--ink);
  opacity:.78;padding:6px 2px;transition:opacity .2s;display:inline-flex;align-items:center;gap:9px;
}
.cart-btn:hover,.cart-btn:focus-visible{opacity:1}
.cart-btn .count{
  min-width:21px;height:21px;padding:0 6px;border-radius:11px;background:var(--caramel-dp);
  color:var(--cream);font-size:10.5px;letter-spacing:.04em;display:grid;place-items:center;
  transition:transform .3s cubic-bezier(.3,1.6,.5,1);
}
.cart-btn .count[data-empty="true"]{background:transparent;color:var(--ink);opacity:.45}
.cart-btn .count.pop{transform:scale(1.45)}

@media(max-width:1040px){
  .bar nav{gap:19px}
  .bar nav a,.cart-btn{font-size:11px;letter-spacing:.14em}
}
@media(max-width:820px){
  .bar{flex-wrap:wrap;justify-content:center;gap:12px}
  .bar nav{gap:16px;flex-wrap:wrap;justify-content:center}
  .logo{font-size:19px}
}

/* ── page banner (inner pages) ── */
.banner{background:var(--cocoa);color:var(--cream);padding:clamp(52px,8vw,86px) 0}
.banner .eb{color:var(--caramel)}
.banner h1{font-family:'Prata',serif;font-weight:400;font-size:clamp(30px,5vw,52px);
           line-height:1.2;margin-top:20px;max-width:18ch}
.banner h1 em{font-style:normal;color:var(--caramel)}
.banner p{margin-top:20px;font-size:14.5px;max-width:46ch;opacity:.78}

/* ── breadcrumb ── */
.crumb{font-size:10px;letter-spacing:.22em;text-transform:uppercase;opacity:.6;padding:22px 0 0}
.crumb a{text-decoration:none;border-bottom:1px solid transparent}
.crumb a:hover{border-bottom-color:currentColor}
.crumb span{margin:0 9px;opacity:.5}

/* ── hero (home only) ── */
.hero{background:var(--cocoa);color:var(--cream);overflow:hidden;position:relative}
.hero .wrap{padding-top:clamp(64px,10vw,124px);padding-bottom:clamp(150px,20vw,240px);position:relative;z-index:1}
.hero .eb{color:var(--caramel)}
.hero h1{font-family:'Prata',serif;font-weight:400;font-size:clamp(34px,6vw,64px);
         line-height:1.18;max-width:17ch;margin-top:28px}
.hero h1 em{font-style:normal;color:var(--caramel)}
.hero p{margin-top:24px;font-size:15px;max-width:44ch;opacity:.78}
.hero .btn{margin-top:36px}
.hero .big{
  position:absolute;left:50%;bottom:-.24em;transform:translateX(-50%);
  font-family:'Prata',serif;font-size:clamp(90px,17vw,240px);
  letter-spacing:.12em;text-indent:.12em;line-height:1;
  color:transparent;-webkit-text-stroke:1px rgba(198,166,138,.35);
  white-space:nowrap;user-select:none;pointer-events:none;
}

/* ── sections ── */
section{padding:clamp(58px,8vw,100px) 0}
section.tint{background:var(--cream-2)}
section.dark{background:var(--cocoa);color:var(--cream)}
section.dark .sec-head .eb{color:var(--caramel)}
.sec-head{margin-bottom:clamp(32px,4.5vw,52px)}
.sec-head .eb{color:var(--caramel-dp)}
.sec-head h2{font-family:'Prata',serif;font-weight:400;font-size:clamp(24px,3.6vw,38px);
             line-height:1.3;margin-top:16px;max-width:22ch}
.sec-head p.note{margin-top:14px;font-size:13px;opacity:.68;max-width:54ch}
.sec-head.centred{text-align:center}
.sec-head.centred .eb{justify-content:center}
.sec-head.centred h2,.sec-head.centred p.note{margin-left:auto;margin-right:auto}

/* ── editorial rows ── */
.rows{border-top:1px solid var(--line-l)}
.row{display:grid;grid-template-columns:1fr;gap:8px 40px;padding:28px 0;border-bottom:1px solid var(--line-l)}
@media(min-width:760px){.row{grid-template-columns:250px 1fr auto;align-items:baseline}}
.row h3{font-family:'Prata',serif;font-weight:400;font-size:20px}
.row h3 span{display:block;font-family:'Poppins',sans-serif;font-size:10px;letter-spacing:.26em;
             text-transform:uppercase;color:var(--caramel-dp);margin-top:6px}
.row p{font-size:13.5px;opacity:.75;max-width:52ch}
.row .it{font-style:italic;font-size:12px;color:var(--caramel-dp);white-space:nowrap}

/* ── plate (brand panel placeholder) ── */
.plate{background:var(--cocoa);aspect-ratio:4/5;max-width:420px;width:100%;
       display:grid;place-items:center;justify-self:center}
.plate .inner{text-align:center;color:var(--cream)}
.plate .word{font-family:'Prata',serif;font-size:clamp(28px,4.2vw,42px);letter-spacing:.16em;text-indent:.16em}
.plate .rule{width:120px;height:1px;background:var(--caramel);opacity:.6;margin:18px auto}
.plate .sub{font-size:9px;letter-spacing:.34em;text-transform:uppercase;color:var(--caramel);text-indent:.34em}
.plate .it{font-style:italic;font-size:12px;color:var(--caramel);margin-top:24px;opacity:.85}

/* ── about ── */
.about-grid{display:grid;gap:clamp(30px,5vw,64px)}
@media(min-width:820px){.about-grid{grid-template-columns:1fr 1fr;align-items:center}}
.about-grid h2{font-family:'Prata',serif;font-weight:400;font-size:clamp(24px,3.4vw,36px);line-height:1.3;margin-top:16px}
.about-grid .eb{color:var(--caramel-dp)}
.about-grid p{margin-top:18px;font-size:14.5px;opacity:.82;max-width:54ch}
.about-grid .sig{font-style:italic;color:var(--caramel-dp);margin-top:24px;font-size:14px}

.pull{
  border-left:2px solid var(--caramel);padding:6px 0 6px 24px;margin:34px 0 0;
  font-family:'Prata',serif;font-size:clamp(18px,2.6vw,24px);line-height:1.45;opacity:.9;max-width:26ch;
}

/* ── enquire panel ── */
.enq{background:var(--cocoa);color:var(--cream)}
.enq .eb{color:var(--caramel)}
.enq h2{font-family:'Prata',serif;font-weight:400;font-size:clamp(26px,4vw,42px);line-height:1.25;margin-top:16px;max-width:20ch}
.enq p{margin-top:20px;font-size:14px;opacity:.75;max-width:46ch}
.enq .btn{margin-top:32px}
.enq .mail{display:block;margin-top:18px;font-size:13px;color:var(--caramel);text-decoration:none;letter-spacing:.04em}
.enq .mail:hover{text-decoration:underline}

.steps{border-top:1px solid var(--line-d);margin-top:44px;padding-top:26px;display:grid;gap:22px}
@media(min-width:700px){.steps{grid-template-columns:repeat(3,1fr)}}
.steps h3{font-family:'Prata',serif;font-weight:400;font-size:17px;color:var(--cream)}
.steps p{margin-top:8px;font-size:12.5px;opacity:.68;max-width:34ch}

/* ── footer ── */
footer{background:var(--cocoa);color:var(--cream);border-top:1px solid var(--line-d)}
.foot{display:flex;flex-wrap:wrap;gap:14px 34px;align-items:center;justify-content:space-between;
      padding:24px clamp(20px,5vw,48px);max-width:1120px;margin:0 auto;
      font-size:10px;letter-spacing:.2em;text-transform:uppercase;opacity:.68}
.foot a{color:inherit;text-decoration:none}
.foot a:hover{color:var(--caramel);opacity:1}
.foot nav{display:flex;gap:20px;flex-wrap:wrap}

/* ── reveal on scroll ── */
.rv{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s ease}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}

/* ==========================================================
   PRODUCT IMAGERY
   ========================================================== */

.shot{position:relative;display:block;overflow:hidden;background:var(--cocoa);aspect-ratio:1}
.shot img{width:100%;height:100%;object-fit:cover;position:relative;z-index:2;display:block;
          transition:transform .8s cubic-bezier(.2,.7,.3,1)}
a.shot:hover img{transform:scale(1.04)}
.shot .ph{
  position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:10px;text-align:center;padding:16px;
}
.shot .ph .w{font-family:'Prata',serif;font-size:clamp(16px,2.4vw,26px);letter-spacing:.2em;
             text-indent:.2em;color:var(--cream)}
.shot .ph .s{font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--caramel);
             text-indent:.22em;opacity:.85}
.shot.wide{aspect-ratio:3/2}
.shot.tall{aspect-ratio:4/5}

.fine{font-size:11.5px;opacity:.55;font-style:italic}
p.fine{margin-top:10px}

/* ── the grand opening hero ───────────────────────────────────────────────
   Only on the home page, and only while launch.on is true in the catalogue. */
.open-hero .wrap{padding-bottom:clamp(120px,16vw,190px)}
.open-hero h1{max-width:16ch}
.open-hero .cta-pair{margin-top:34px}
.open-hero .cta-pair .btn{margin-top:0}

.code-card{
  margin-top:30px;display:inline-flex;flex-direction:column;align-items:flex-start;gap:11px;
  border:1px solid rgba(198,166,138,.42);padding:22px 26px;position:relative;
  background:rgba(198,166,138,.07);
}
.code-card .off{
  font-size:10px;letter-spacing:.28em;text-transform:uppercase;text-indent:.28em;
  color:var(--caramel);
}
.code-card .code{
  font-family:'Prata',serif;font-size:clamp(24px,4.2vw,34px);letter-spacing:.16em;
  text-indent:.16em;color:var(--cream);background:none;border:0;padding:0;cursor:pointer;
  display:inline-flex;align-items:baseline;gap:14px;line-height:1.1;
}
.code-card .code .cp{
  font-family:'Poppins',sans-serif;font-size:8.5px;letter-spacing:.22em;text-transform:uppercase;
  text-indent:.22em;color:var(--caramel);border:1px solid rgba(198,166,138,.5);
  padding:5px 9px;transition:background .25s,color .25s;white-space:nowrap;
}
.code-card .code:hover .cp{background:var(--caramel);color:var(--cocoa)}
.code-card .code.copied .cp{background:var(--caramel);color:var(--cocoa)}
.code-card .code:focus-visible{outline:2px solid var(--caramel);outline-offset:6px}
.code-card .terms{font-size:11.5px;font-style:italic;opacity:.6}

/* the first button on the opening hero is the loud one */
.btn.on-dark.solid-light{background:var(--caramel);color:var(--cocoa);border-color:var(--caramel)}
.btn.on-dark.solid-light:hover,
.btn.on-dark.solid-light:focus-visible{background:var(--cream);border-color:var(--cream);color:var(--cocoa)}

@media(max-width:520px){
  .code-card{width:100%;padding:20px}
  .code-card .code{flex-direction:column;align-items:flex-start;gap:10px}
}

/* ── collection tiles (shop index) ── */
.tiles{display:grid;gap:clamp(22px,3.5vw,38px)}
@media(min-width:700px){.tiles{grid-template-columns:1fr 1fr}}
.tile{position:relative;text-decoration:none;color:inherit;display:block}
.tile .shot{aspect-ratio:1}
.tile h3{font-family:'Prata',serif;font-weight:400;font-size:clamp(19px,2.4vw,24px);margin-top:20px}
.tile .it{font-style:italic;color:var(--caramel-dp);font-size:12.5px;margin-top:4px}
.tile p{font-size:13.5px;opacity:.75;margin-top:11px;max-width:46ch}
.tile .go{display:inline-block;margin-top:15px;font-size:9.5px;letter-spacing:.24em;
          text-transform:uppercase;color:var(--caramel-dp);border-bottom:1px solid currentColor;padding-bottom:3px}
.tile:hover .go{color:var(--ink)}
.flag{
  position:absolute;top:14px;left:14px;z-index:3;background:var(--cream);color:var(--caramel-dp);
  font-size:8.5px;letter-spacing:.24em;text-transform:uppercase;padding:6px 12px;text-indent:.24em;
}
.tile.soon .shot{filter:grayscale(.35) brightness(.82)}
.tile.soon{pointer-events:none}
.tile.soon .go{opacity:.5}

/* ── product grid (collection page) ── */
.prod-grid{display:grid;gap:clamp(26px,4vw,44px)}
@media(min-width:700px){.prod-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.prod-grid.three{grid-template-columns:repeat(3,1fr)}}
.prod{position:relative}
.prod h3{font-family:'Prata',serif;font-weight:400;font-size:clamp(19px,2.4vw,24px);margin-top:20px}
.prod h3 a{text-decoration:none}
.prod h3 a:hover{color:var(--caramel-dp)}
.prod .it{font-style:italic;color:var(--caramel-dp);font-size:12.5px;margin-top:4px}
.prod p{font-size:13.5px;opacity:.78;margin-top:11px;max-width:44ch}
.prod .price{margin-top:12px;font-family:'Prata',serif;font-size:16px;color:var(--caramel-dp);opacity:1}
.prod .btn{margin-top:18px}

/* ── product detail ── */
.prod-detail{display:grid;gap:clamp(28px,4vw,54px);align-items:start}
@media(min-width:900px){.prod-detail{grid-template-columns:1fr 1fr}}
.gallery{display:grid;gap:10px;position:sticky;top:96px}
@media(max-width:899px){.gallery{position:static}}
/* The product photographs: one large, the rest as small squares beneath.
   Both are cut with the same scalloped edge as every other photograph on the
   site, and carry the same brown outline on top of it. The two shapes are
   images/wave.svg and images/wave-line.svg. */
/* minmax(0,1fr): the photo carries an aspect-ratio, which would otherwise
   claim a minimum width off its own height and push the column wider than
   the page */
.photos{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;margin-top:4px}
.photo-main{
  display:block;width:100%;padding:0;border:0;background:var(--cocoa);
  position:relative;overflow:hidden;cursor:zoom-in;aspect-ratio:1;
  -webkit-mask:url(../images/wave.svg) center/100% 100% no-repeat;
  mask:url(../images/wave.svg) center/100% 100% no-repeat;
}
/* the outline has to sit outside the masked photo, so it hangs off a wrapper
   rather than the button itself */
.photos{position:relative}
.photo-wrap{position:relative;display:block;width:100%;min-width:0}
.photo-wrap::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:3;
  background:var(--frame-line,#4A3830);
  -webkit-mask:url(../images/wave-line.svg) center/100% 100% no-repeat;
  mask:url(../images/wave-line.svg) center/100% 100% no-repeat;
}
.photo-main img{width:100%;height:100%;object-fit:cover;display:block;
                transition:transform .8s cubic-bezier(.2,.7,.3,1)}
.photo-main:hover img{transform:scale(1.03)}
.photo-main .zoom{
  position:absolute;right:12px;bottom:12px;background:rgba(43,33,28,.62);color:var(--cream);
  font-size:8.5px;letter-spacing:.22em;text-transform:uppercase;text-indent:.22em;
  padding:7px 12px;opacity:0;transition:opacity .3s;pointer-events:none;
}
.photo-main:hover .zoom,.photo-main:focus-visible .zoom{opacity:1}
.photo-main:focus-visible{outline:2px solid var(--caramel-dp);outline-offset:3px}

.thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:11px}
.thumbs .thumb{
  position:relative;padding:0;border:0;background:transparent;aspect-ratio:1;
  cursor:pointer;opacity:.6;transition:opacity .25s;
}
.thumbs .thumb img{
  width:100%;height:100%;object-fit:cover;display:block;background:var(--cocoa);
  -webkit-mask:url(../images/wave.svg) center/100% 100% no-repeat;
  mask:url(../images/wave.svg) center/100% 100% no-repeat;
}
/* the same brown outline as the big one, drawn over each thumbnail */
.thumbs .thumb::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:var(--frame-line,#4A3830);opacity:.75;
  -webkit-mask:url(../images/wave-line.svg) center/100% 100% no-repeat;
  mask:url(../images/wave-line.svg) center/100% 100% no-repeat;
}
.thumbs .thumb:hover{opacity:.85}
.thumbs .thumb[aria-pressed="true"]{opacity:1}
.thumbs .thumb[aria-pressed="true"]::after{opacity:1}
.thumbs .thumb:focus-visible{outline:2px solid var(--caramel-dp);outline-offset:3px}

/* the full-screen photograph viewer */
.lightbox{
  position:fixed;inset:0;z-index:120;background:rgba(28,21,18,.94);
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;
  padding:clamp(14px,3vw,36px);opacity:0;transition:opacity .24s;
}
.lightbox[hidden]{display:none}
.lightbox.open{opacity:1}
.lb-fig{margin:0;display:grid;place-items:center;gap:12px;min-width:0;min-height:0}
.lb-fig img{max-width:100%;max-height:82vh;object-fit:contain;display:block;
            box-shadow:0 30px 70px rgba(0,0,0,.5)}
.lb-fig figcaption{color:var(--cream);opacity:.6;font-size:10px;letter-spacing:.22em;
                   text-transform:uppercase;text-indent:.22em}
.lb-close{
  position:absolute;top:clamp(10px,2vw,22px);right:clamp(10px,2vw,22px);
  background:none;border:0;color:var(--cream);font-size:34px;line-height:1;
  cursor:pointer;opacity:.72;padding:6px 12px;
}
.lb-close:hover{opacity:1}
.lb-nav{
  background:none;border:0;color:var(--cream);font-size:44px;line-height:1;cursor:pointer;
  opacity:.5;padding:10px 6px;transition:opacity .2s;
}
.lb-nav:hover{opacity:1}
.lb-close:focus-visible,.lb-nav:focus-visible{outline:2px solid var(--caramel);outline-offset:2px}
@media(max-width:600px){
  .lightbox{grid-template-columns:1fr}
  .lb-nav{display:none}
}
.info h1{font-family:'Prata',serif;font-weight:400;font-size:clamp(26px,3.6vw,38px);
         line-height:1.22;margin-top:14px}
.info .it{font-style:italic;color:var(--caramel-dp);font-size:13px;margin-top:6px}
.info > p,.info .copy p{font-size:14px;opacity:.8;margin-top:16px;max-width:50ch}

/* ── THE LITTLE HEART LIST ───────────────────────────────────────────────
   The bullets under a product's writing, from the bullets list in
   catalogue.js. The heart is drawn by the stylesheet rather than typed
   into the words, so a screen reader reads a proper list instead of
   saying "white heart suit" five times. */
.copy ul.hearts{list-style:none;margin-top:18px;max-width:50ch}
.copy ul.hearts li{position:relative;padding-left:24px;font-size:14px;opacity:.85;
  line-height:1.65;margin-top:9px}
.copy ul.hearts li::before{content:'\2661';position:absolute;left:0;top:-1px;
  color:var(--caramel-dp);font-size:15px;opacity:.9}
.info .copy{margin-top:6px}
.info .price{font-family:'Prata',serif;font-size:22px;margin-top:18px;color:var(--caramel-dp)}
.info .price small{display:block;font-family:'Poppins',sans-serif;font-size:11px;
                   letter-spacing:.14em;text-transform:uppercase;opacity:.55;margin-top:6px;color:var(--ink)}
.spec-h{font-size:10px;letter-spacing:.28em;text-transform:uppercase;font-weight:400;
        margin-top:34px;color:var(--caramel-dp);text-indent:.28em}
.spec-h .req{color:var(--ink);opacity:.4;letter-spacing:.1em}

.spec{margin-top:32px;border-top:1px solid var(--line-l);display:grid;
      grid-template-columns:auto 1fr;gap:0 24px}
.spec dt{font-size:10px;letter-spacing:.22em;text-transform:uppercase;opacity:.55;
         padding:13px 0;border-bottom:1px solid var(--line-l);white-space:nowrap}
.spec dd{font-size:13px;opacity:.8;padding:13px 0;border-bottom:1px solid var(--line-l)}

.ticks{list-style:none;margin-top:16px}
.ticks li{font-size:13.5px;opacity:.78;padding:5px 0}
.ticks li::before{content:"+";color:var(--caramel-dp);margin-right:11px}

/* ── form fields ── */
.field{margin-top:14px}
.field label{display:block;font-size:10px;letter-spacing:.22em;text-transform:uppercase;
             opacity:.55;margin-bottom:7px}
.field input,.field select,.field textarea{
  width:100%;font-family:inherit;font-size:14px;font-weight:300;color:var(--ink);
  background:var(--white);border:1px solid var(--line-l);padding:11px 13px;border-radius:0;
  transition:border-color .2s;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--caramel-dp)}
.field textarea{min-height:88px;resize:vertical}
.field .hint{font-size:11px;opacity:.5;margin-top:6px;font-style:italic}
.qty-row{display:flex;gap:14px;align-items:flex-end;margin-top:18px}
.qty-row .field{margin-top:0;width:96px;flex:0 0 auto}
.qty-row .btn{flex:1 1 auto;text-align:center;padding-top:13px;padding-bottom:13px}

/* ==========================================================
   THE COLOUR PICKER + ANIMATED PRODUCT PREVIEW
   ========================================================== */

.picker{--board-c:#4A332A;--word-c:#FCFBF8;--name-c:#FCFBF8;--border-c:#FCFBF8}

.stage{
  background:linear-gradient(170deg,var(--cream-2),var(--cream));
  border:1px solid var(--line-l);
  display:grid;place-items:center;padding:clamp(24px,5vw,48px);
  aspect-ratio:1;position:relative;overflow:hidden;
}
.stage::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 80% at 50% 0%,rgba(255,255,255,.55),transparent 60%);
}
.stage .board{width:min(78%,340px);height:auto}

/* the board itself */
.board{filter:drop-shadow(0 18px 34px rgba(43,33,28,.20));display:block}
.board .frame{fill:var(--board-c);transition:fill .55s cubic-bezier(.4,0,.2,1)}
.board .surface{fill:var(--white)}
/* the layer showing round the edge of a two-layer piece, like the cross */
.board .border{fill:var(--border-c,#FCFBF8);transition:fill .55s cubic-bezier(.4,0,.2,1)}
/* The panel of a reward jar is CLEAR acrylic, not frosted, so it is drawn
   as a faint sheet rather than a white one: enough to read as a surface,
   sheer enough that the page shows through it the way a bench would. */
.board .glass{fill:rgba(252,251,248,.34)}
/* the engraved date on the cross, cut from the border sheet */
.board .stamp text{fill:var(--border-c,#FCFBF8);font-family:'Poppins',sans-serif;font-weight:300;
                   opacity:.95;filter:drop-shadow(0 1px 1px rgba(43,33,28,.28))}
/* The raised name. White acrylic by default, but on the school boards and the
   milestone cards the customer can have it cut in any colour from the range,
   which is what --name-c carries. It never follows the panel colour on its own.
   The soft shadow stands in for the raised edge, so a pale name still reads on
   a pale panel. */
.board .word,
.board .letter{
  fill:var(--name-c,var(--word-c));font-family:var(--word-f,'Bubble Candy'),system-ui,sans-serif;
  font-weight:800;transition:fill .45s cubic-bezier(.4,0,.2,1);
  filter:drop-shadow(0 1.5px 1.4px rgba(43,33,28,.34));
}
/* the small print on the pieces: MONTHS under a number, the school board labels */
.board .sub{fill:var(--word-c);font-family:'Poppins',sans-serif;font-weight:400;opacity:.92;
            filter:drop-shadow(0 1px 1.2px rgba(43,33,28,.3))}
.board .tiny{fill:var(--word-c);font-family:'Poppins',sans-serif;font-weight:400;opacity:.94;
             filter:drop-shadow(0 1px 1.2px rgba(43,33,28,.3))}
/* this one sits on the white badge, so it stays dark whatever the panel colour */
.board .micro{fill:#3A2F29;font-family:'Prata',Georgia,serif;font-style:italic}
.board .rule{stroke:rgba(43,33,28,.10);stroke-width:1.5}
.board .gloss{fill:rgba(255,255,255,.18)}

/* the pair — two boards side by side in one stage */
.pair-stage{display:flex;gap:5%;align-items:center;justify-content:center;width:100%}
.pair-stage .board{width:45%}

/* the swap animation — a soft lift + sheen when a new colour is chosen */
@keyframes boardSwap{
  0%  {transform:translateY(0)    rotate(0deg)     scale(1)}
  35% {transform:translateY(-9px) rotate(-1.1deg)  scale(1.028)}
  70% {transform:translateY(2px)  rotate(.35deg)   scale(.996)}
  100%{transform:translateY(0)    rotate(0deg)     scale(1)}
}
.board.swap{animation:boardSwap .68s cubic-bezier(.34,1.3,.5,1)}

@keyframes sheenPass{
  0%  {opacity:0;transform:translateX(-130%) skewX(-18deg)}
  22% {opacity:.85}
  100%{opacity:0;transform:translateX(230%) skewX(-18deg)}
}
.stage .sheen{
  position:absolute;top:-12%;left:0;width:34%;height:124%;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.75),transparent);
  opacity:0;
}
.stage .sheen.run{animation:sheenPass .78s ease-out}

/* the swatch row */
.swatch-row{list-style:none;display:flex;flex-wrap:wrap;gap:15px 16px;margin-top:14px}
.swatch-row button{
  background:none;border:none;padding:0;cursor:pointer;font-family:inherit;
  font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:inherit;opacity:.58;
  display:flex;flex-direction:column;align-items:center;gap:8px;width:60px;line-height:1.35;
  transition:opacity .2s;text-align:center;
}
.swatch-row button .nm{display:block;min-height:2.7em}
.swatch-row button .chip{
  width:42px;height:42px;border-radius:50%;display:block;position:relative;
  box-shadow:inset 0 0 0 1px rgba(43,33,28,.18), inset -5px -6px 12px rgba(0,0,0,.18),
             inset 4px 5px 10px rgba(255,255,255,.22);
  transition:transform .25s cubic-bezier(.34,1.4,.5,1),box-shadow .25s;
}
.swatch-row button:hover{opacity:1}
.swatch-row button:hover .chip{transform:scale(1.09)}
.swatch-row button[aria-pressed="true"]{opacity:1;color:var(--caramel-dp)}
.swatch-row button[aria-pressed="true"] .chip{
  transform:scale(1.12);
  box-shadow:inset 0 0 0 1px rgba(43,33,28,.18), inset -5px -6px 12px rgba(0,0,0,.18),
             inset 4px 5px 10px rgba(255,255,255,.22),
             0 0 0 3px var(--cream),0 0 0 4px var(--caramel-dp);
}
.swatch-row button:focus-visible .chip{outline:2px solid var(--caramel-dp);outline-offset:5px}

/* the font row */
.font-row{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.font-row button{
  background:var(--white);border:1px solid var(--line-l);cursor:pointer;
  padding:9px 16px;font-size:15px;color:var(--ink);transition:border-color .2s,background .2s;
}
.font-row button:hover{border-color:var(--caramel)}
.font-row button[aria-pressed="true"]{border-color:var(--caramel-dp);background:var(--cream-2)}
.font-row button:focus-visible{outline:2px solid var(--caramel-dp);outline-offset:2px}

/* ── stand or magnets, on the boards and the reward jars ─────────────────
   Same shape as the font buttons, set in the page face rather than the
   lettering faces, because these are words to read, not letterforms. */
.pick-row{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.pick-row button{
  background:var(--white);border:1px solid var(--line-l);cursor:pointer;
  font-family:inherit;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  text-indent:.14em;color:var(--ink);padding:12px 20px;
  transition:border-color .2s,background .2s;
}
.pick-row button:hover{border-color:var(--caramel)}
.pick-row button[aria-pressed="true"]{border-color:var(--caramel-dp);background:var(--cream-2)}
.pick-row button:focus-visible{outline:2px solid var(--caramel-dp);outline-offset:2px}

@media(prefers-reduced-motion:reduce){
  .board,.board .frame,.board .word,.swatch-row button .chip{animation:none!important;transition:none!important}
  .stage .sheen{display:none}
}

/* ==========================================================================
   THE HOME SHOWCASE — one full-width picture, nothing clickable in it
   NOT CURRENTLY USED. The band was removed from index.html; these rules are
   kept so it can be put back without rebuilding it.
   ========================================================================== */

.showcase{padding:0}
.showcase-frame{
  position:relative;margin:0;overflow:hidden;
  background:linear-gradient(168deg,#F2EADE 0%,#E9DECE 55%,#DFD0BC 100%);
  min-height:clamp(440px,56vw,680px);
  display:grid;place-items:center;
}
/* a soft pool of light behind the pieces, so the drawn scene reads as a photograph */
.showcase-frame::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(72% 58% at 50% 26%,rgba(255,255,255,.72),transparent 68%),
    radial-gradient(90% 70% at 50% 108%,rgba(143,111,82,.16),transparent 62%);
}
.showcase-photo{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2;display:block;
}

.showcase-scene{
  --board-c:#4A332A;--word-c:#FCFBF8;
  position:relative;z-index:1;
  display:flex;align-items:center;justify-content:center;
  gap:clamp(16px,3.5vw,54px);
  padding:clamp(40px,6vw,78px) 20px clamp(196px,23vw,252px);
}
.showcase-scene .board{width:clamp(112px,15.5vw,214px);height:auto}
.showcase-scene .board:first-child{transform:rotate(-3.2deg) translateY(-8px)}
.showcase-scene .board:last-child{transform:rotate(2.4deg) translateY(16px)}

.showcase-caption{
  position:absolute;left:0;right:0;bottom:0;z-index:3;
  padding:clamp(46px,7vw,86px) 0 clamp(26px,3.6vw,44px);
  background:linear-gradient(to top,
    rgba(240,232,220,.99) 0%,
    rgba(240,232,220,.97) 42%,
    rgba(240,232,220,.55) 74%,
    rgba(240,232,220,0) 100%);
}
.showcase-caption .eb{color:var(--caramel-dp)}
.showcase-caption h2{
  font-family:'Prata',serif;font-weight:400;
  font-size:clamp(24px,3.6vw,40px);line-height:1.2;margin-top:15px;max-width:30ch;
}
.showcase-caption h2 em{font-style:normal;color:var(--caramel-dp)}
.showcase-caption p{margin-top:14px;font-size:14px;opacity:.75;max-width:50ch}

/* taller and calmer on a phone */
@media(max-width:640px){
  .showcase-frame{min-height:clamp(430px,112vw,580px)}
  .showcase-scene{gap:12px;padding:clamp(26px,6vw,46px) 18px clamp(172px,42vw,212px)}
  .showcase-scene .board{width:clamp(112px,31vw,158px)}
}

/* the slow colour change. To stop it, delete the block marked "showcase
   colour cycle" at the bottom of index.html — nothing else depends on it. */
.showcase-scene .board{
  transition:transform .8s cubic-bezier(.34,1.1,.5,1);
}
.showcase-scene .board .frame,
.showcase-scene .board .word{transition:fill 1.1s ease}
@media(prefers-reduced-motion:reduce){
  .showcase-scene .board,
  .showcase-scene .board .frame,
  .showcase-scene .board .word{transition:none}
}

/* ── two buttons side by side under the hero ── */
.cta-pair{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}

/* ── the custom-work band on the home page ── */
.custom-band .sec-head h2{max-width:26ch}
.custom-band .sec-head p.note{opacity:.72;max-width:60ch}
.custom-grid{display:grid;gap:1px;background:var(--line-d);border:1px solid var(--line-d);margin-top:8px}
@media(min-width:640px){.custom-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.custom-grid{grid-template-columns:repeat(4,1fr)}}
.custom-card{
  background:var(--cocoa);padding:clamp(24px,3vw,32px);text-decoration:none;color:var(--cream);
  display:block;transition:background .28s;
}
.custom-card:hover,.custom-card:focus-visible{background:var(--cocoa-2)}
.custom-card:focus-visible{outline:2px solid var(--caramel);outline-offset:-4px}
.custom-card .n{
  display:block;font-size:10px;letter-spacing:.3em;color:var(--caramel);opacity:.75;margin-bottom:20px;
}
.custom-card h3{font-family:'Prata',serif;font-weight:400;font-size:19px;line-height:1.3}
.custom-card p{font-size:13px;opacity:.7;margin-top:11px;line-height:1.75}
.custom-foot{
  display:flex;flex-wrap:wrap;gap:18px 34px;align-items:center;justify-content:space-between;
  margin-top:clamp(28px,4vw,40px);
}
.custom-foot p{font-size:13px;opacity:.68;font-style:italic;max-width:52ch;margin:0}

/* the standalone colour chart (home / shop) */
.chart{list-style:none;display:flex;flex-wrap:wrap;gap:20px 22px;justify-content:center;margin:8px auto 0;max-width:660px}
.chart li{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;opacity:.7;
          display:flex;flex-direction:column;align-items:center;gap:9px;width:66px;text-align:center;line-height:1.4}
.chart li .chip{width:48px;height:48px;border-radius:50%;display:block;
  box-shadow:inset 0 0 0 1px rgba(43,33,28,.16), inset -5px -6px 13px rgba(0,0,0,.18),
             inset 4px 5px 11px rgba(255,255,255,.22)}

/* ==========================================================
   CART
   ========================================================== */

.cart-scrim{
  position:fixed;inset:0;z-index:50;background:rgba(43,33,28,.42);
  opacity:0;pointer-events:none;transition:opacity .35s;
}
.cart-scrim.open{opacity:1;pointer-events:auto}

.cart-drawer{
  position:fixed;top:0;right:0;bottom:0;z-index:60;width:min(420px,100%);
  background:var(--cream);border-left:1px solid var(--line-l);
  transform:translateX(102%);transition:transform .42s cubic-bezier(.4,0,.2,1);
  display:flex;flex-direction:column;
}
.cart-drawer.open{transform:none;box-shadow:-24px 0 60px rgba(43,33,28,.18)}
.cart-head{display:flex;align-items:center;justify-content:space-between;
           padding:20px 24px;border-bottom:1px solid var(--line-l);flex:0 0 auto}
.cart-head h2{font-family:'Prata',serif;font-weight:400;font-size:18px}
.cart-close{background:none;border:none;cursor:pointer;font-size:22px;line-height:1;
            color:var(--ink);opacity:.5;padding:4px 6px;font-family:inherit}
.cart-close:hover{opacity:1}
.cart-body{flex:1 1 auto;overflow-y:auto;padding:6px 24px}
.cart-foot{flex:0 0 auto;padding:20px 24px 24px;border-top:1px solid var(--line-l)}

.cart-empty{text-align:center;padding:54px 10px;opacity:.6;font-size:13.5px}
.cart-empty .it{font-style:italic;color:var(--caramel-dp);display:block;margin-bottom:10px}

.ci{display:grid;grid-template-columns:56px 1fr auto;gap:14px;padding:18px 0;
    border-bottom:1px solid var(--line-l);align-items:start}
.ci .sw{width:56px;height:56px;background:var(--cocoa);position:relative;overflow:hidden}
.ci .sw i{position:absolute;inset:0;display:block}
.ci .sw b{position:absolute;left:22%;top:9%;width:56%;height:82%;background:var(--white);
          border-radius:3px;display:block}
.ci h4{font-family:'Prata',serif;font-weight:400;font-size:14.5px;line-height:1.35}
.ci .meta{font-size:11px;opacity:.62;margin-top:5px;line-height:1.6}
.ci .qty{font-size:11px;opacity:.62;margin-top:5px}
.ci .right{text-align:right;white-space:nowrap}
.ci .amt{font-size:13.5px}
.ci .rm{background:none;border:none;cursor:pointer;font-family:inherit;font-size:9.5px;
        letter-spacing:.18em;text-transform:uppercase;color:var(--ink);opacity:.42;
        margin-top:8px;padding:2px 0;border-bottom:1px solid transparent}
.ci .rm:hover{opacity:.9;border-bottom-color:currentColor}

.totals{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px;font-size:13px}
.totals .lbl{opacity:.6}
.totals.grand{font-family:'Prata',serif;font-size:19px;margin:12px 0 4px}
.cart-foot .fine{margin:10px 0 16px;display:block}
.cart-note{font-size:11.5px;opacity:.55;margin-top:12px;text-align:center;line-height:1.6}

/* full cart page */
.cart-page{display:grid;gap:clamp(30px,5vw,56px);align-items:start}
@media(min-width:900px){.cart-page{grid-template-columns:1.5fr 1fr}}
.summary{background:var(--cream-2);padding:clamp(24px,3.5vw,34px);border:1px solid var(--line-l)}
.summary h2{font-family:'Prata',serif;font-weight:400;font-size:20px;margin-bottom:18px}

.notice{border-left:2px solid var(--caramel-dp);padding:12px 0 12px 18px;
        font-size:13px;opacity:.8;margin-top:20px}
.notice.warn{border-left-color:#B04A3A}
/* the standing lead-time note, and the "I can source any colour" line.
   Both fill themselves from catalogue.js — see data-note in site.js. */
.notice.lead{border-left-color:#D4989A;margin-top:12px}
.note.sourcing{text-align:center;max-width:62ch;margin:14px auto 0;
  font-size:13.5px;opacity:.78}


/* ══ THE SHOP PAGE ══════════════════════════════════════════════════════
   Every collection is a band: its name, its blurb, then its pieces. Adding a
   product to the catalogue makes its band longer. Adding a collection adds a
   band. Nothing here needs touching for either. */
.coll-band{padding:clamp(46px,6vw,72px) 0}
.coll-band:first-child{padding-top:clamp(52px,7vw,84px)}
.coll-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:24px;
  flex-wrap:wrap;margin-bottom:clamp(26px,3.4vw,40px);
}
.coll-head h2{font-family:'Prata',serif;font-weight:400;
  font-size:clamp(24px,3.4vw,34px);margin-top:12px}
.coll-head .note{font-size:13.5px;opacity:.72;margin-top:10px;max-width:56ch}
.coll-all{
  font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;text-indent:.24em;
  color:var(--caramel-dp);text-decoration:none;border-bottom:1px solid currentColor;
  padding-bottom:3px;white-space:nowrap;
}
.coll-all:hover{color:var(--ink)}
.coll-soon{
  background:var(--cocoa);color:var(--cream);aspect-ratio:16/5;
  display:grid;place-items:center;gap:10px;text-align:center;
}
.coll-soon span{font-family:'Prata',serif;font-size:clamp(20px,3vw,30px);
  letter-spacing:.2em;text-indent:.2em}
.coll-soon em{font-style:italic;font-size:12px;color:var(--caramel);opacity:.85}

/* On a phone the shop bands go two across. One piece per screen turns seven
   products into a very long scroll, and these cards carry only a name, a line
   and a price, so they take the narrower column happily. The collection pages
   stay one across, because those cards also carry a blurb and a button. */
@media(max-width:699px){
  .coll-band .prod-grid{grid-template-columns:1fr 1fr;gap:18px 14px}
  .coll-band .prod h3{font-size:15.5px;margin-top:13px;line-height:1.25}
  .coll-band .prod .it{font-size:11px;margin-top:3px}
  .coll-band .prod .price{font-size:14px;margin-top:7px}
  .coll-head{margin-bottom:24px}
}

/* ══ THE SHOP PAGE, THE SOFT VERSION ════════════════════════════════════
   The same bands, dressed up: everything centred, a handwritten line above
   the heading, the photos cut with a scalloped edge, a small heart between
   the pieces, and one big button at the bottom of each collection.

   All of it hangs off  .coll-band.soft  in shop.html. Take that one word out
   and the plain layout above comes straight back — nothing else changes. */
.coll-band.soft{padding:clamp(52px,7vw,86px) 0}

.soft .coll-head{
  display:block;text-align:center;position:relative;
  margin-bottom:clamp(28px,3.6vw,44px);
}
.soft .coll-head .hand{
  display:flex;align-items:center;justify-content:center;gap:11px;
  font-family:'Sunshine','Segoe Script',cursive;font-size:clamp(23px,2.9vw,30px);
  line-height:1.1;color:var(--caramel-dp);
}
.soft .coll-head .hand svg{width:17px;height:17px;flex:none;color:#D9A6A5}
.soft .coll-head h2{
  font-family:'Prata',serif;font-weight:400;color:var(--cocoa-2);
  font-size:clamp(29px,4.6vw,48px);line-height:1.12;margin-top:8px;
}
.soft .coll-head .note{
  font-size:14px;opacity:.74;margin:12px auto 0;max-width:52ch;line-height:1.62;
}
/* the bow, tucked into the top corner of the heading block */
.soft .coll-head .bow{
  position:absolute;right:0;top:6px;width:clamp(46px,6vw,74px);height:auto;
  color:#D4989A;opacity:1;pointer-events:none;
}
@media(max-width:820px){.soft .coll-head .bow{display:none}}

/* ── the wavy frame ────────────────────────────────────────────────────
   The photo is cut to a soft wave, and the same wave is drawn again just
   outside it as a thin brown line. Two files do the work:
     images/wave.svg       the shape, used as a mask on the photo
     images/wave-line.svg  the same shape as an outline, used as a mask on
                           a coloured block — so the line colour is set here
                           in CSS, not inside the file.
   Change --frame-line to recolour the outline. Both files are one path
   each: to make the wave deeper or shallower, ask and I will redraw them. */
/* no padding on purpose — the outline sits ON the edge of the photo, so
   there is no cream gap between the picture and the brown line */
.shot-wrap.framed{display:block;position:relative}
.shot-wrap.framed .shot{
  -webkit-mask-image:url(../images/wave.svg);mask-image:url(../images/wave.svg);
  -webkit-mask-size:100% 100%;mask-size:100% 100%;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  border-radius:0;
}
.shot-wrap.framed::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:var(--frame-line,#4A3830);
  -webkit-mask:url(../images/wave-line.svg) center/100% 100% no-repeat;
  mask:url(../images/wave-line.svg) center/100% 100% no-repeat;
}
/* a small bow tied on the top corner of some of the frames */
.shot-wrap .cnr-bow,.coll-box .cnr-bow{
  position:absolute;top:-1%;left:-0.5%;z-index:5;pointer-events:none;
  width:clamp(46px,17%,78px);color:var(--frame-line,#4A3830);
  transform:rotate(-15deg);transform-origin:center;
}
.shot-wrap .cnr-bow svg,.coll-box .cnr-bow svg{width:100%;height:auto;display:block}
@media(max-width:520px){
  .shot-wrap .cnr-bow{width:30px;top:-6px;left:-7px}
}
.soft .prod{text-align:center}
.soft .prod h3{margin-top:18px;font-size:clamp(19px,2.3vw,25px)}
.soft .prod .it{font-size:13px}
.soft .prod .price{font-size:16.5px;margin-top:9px}

/* "More designs coming soon" — the wording lives in catalogue.js as
   moreSoon. Empty it there and this line disappears site-wide. */
.more-soon{
  margin-top:7px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  text-indent:.18em;color:var(--caramel-dp);opacity:.72;
}
.prod-detail .more-soon{margin-top:12px}

/* "or 4 payments of ... with Afterpay". Hidden until instalments.on is
   true in catalogue.js. */
.instal{
  margin-top:8px;font-size:13px;color:var(--caramel-dp);opacity:.9;
  letter-spacing:.01em;
}
.instal::before{content:"◇ ";opacity:.55}

/* a small heart in the gap between two pieces, level with the photos */
/* .prod-grid.soft too, because the collection pages put the class on the
   grid itself rather than on a band around it */
.soft .prod-grid,.prod-grid.soft{--g:clamp(30px,4.4vw,52px);column-gap:var(--g)}
.soft .shot-wrap{position:relative}
.soft .prod + .prod .shot-wrap::before{
  content:"";position:absolute;top:50%;left:calc(-1 * var(--g) / 2);
  width:19px;height:19px;transform:translate(-50%,-50%);
  background:#F2938A;opacity:.9;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21C5 15.6 2 12.3 2 8.8 2 6.1 4.1 4 6.7 4 8.4 4 10 4.9 12 7c2-2.1 3.6-3 5.3-3C19.9 4 22 6.1 22 8.8c0 3.5-3 6.8-10 12.2z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21C5 15.6 2 12.3 2 8.8 2 6.1 4.1 4 6.7 4 8.4 4 10 4.9 12 7c2-2.1 3.6-3 5.3-3C19.9 4 22 6.1 22 8.8c0 3.5-3 6.8-10 12.2z'/%3E%3C/svg%3E") center/contain no-repeat;
}
/* A collection with one or two pieces keeps the same card size as a full row
   of three and sits in the middle, rather than hanging off the left edge. */
@media(min-width:1000px){
  .coll-band.soft .prod-grid.one{grid-template-columns:calc((100% - 2 * var(--g)) / 3);justify-content:center}
  .coll-band.soft .prod-grid.two{grid-template-columns:repeat(2,calc((100% - 2 * var(--g)) / 3));justify-content:center}
}
@media(min-width:700px) and (max-width:999px){
  .coll-band.soft .prod-grid.one{grid-template-columns:calc((100% - var(--g)) / 2);justify-content:center}
}
@media(max-width:699px){
  .soft .prod-grid{--g:16px}
  .coll-band.soft .prod-grid.one{grid-template-columns:calc((100% - var(--g)) / 2);justify-content:center}
  .soft .prod + .prod .shot-wrap::before{display:none}
}

/* the handwritten line that closes each collection, with a flourish either
   side. There is no button here on purpose — every piece is already on this
   page, and the collection pages are still reachable from the Shop menu. */
.soft .coll-tag{
  display:flex;align-items:center;justify-content:center;gap:clamp(12px,2.6vw,26px);
  margin-top:clamp(26px,3.4vw,40px);text-align:center;
}
.soft .coll-tag .sq{width:clamp(52px,10vw,120px);height:16px;color:#DDB2B1;flex:none}
.soft .coll-tag .sq:last-child{transform:scaleX(-1)}
@media(max-width:560px){.soft .coll-tag .sq{display:none}}
.soft .coll-tag span{
  font-family:'Sunshine','Segoe Script',cursive;font-size:clamp(21px,2.6vw,27px);
  line-height:1.25;color:var(--caramel-dp);opacity:.92;
}
.soft .coll-tag .hrt{color:#D9A6A5;font-family:inherit;font-size:inherit}

/* ── the same treatment on the home page tiles ─────────────────────────
   Add or remove the word  soft  on  <div class="tiles soft" id="homeTiles">
   in index.html to turn this on and off. */
.tiles.soft{grid-template-columns:1fr 1fr;gap:clamp(26px,3.6vw,44px)}
@media(min-width:900px){.tiles.soft{grid-template-columns:repeat(3,1fr)}}
.tiles.soft .tile{text-align:center}
.tiles.soft .tile h3{margin-top:18px;font-size:clamp(18px,2.2vw,23px)}
.tiles.soft .tile .hand{
  display:block;margin-top:4px;
  font-family:'Sunshine','Segoe Script',cursive;font-size:clamp(17px,2vw,21px);
  line-height:1.3;color:var(--caramel-dp);opacity:.9;
}
.tiles.soft .tile .it{margin-top:2px}
.tiles.soft .tile p{margin-left:auto;margin-right:auto}
.tiles.soft .tile .go{margin-top:12px}
.tiles.soft .flag{top:20px;left:20px}


/* ── the token chooser on a reward jar ─────────────────────────────────── */
.token-row{list-style:none;display:flex;flex-wrap:wrap;gap:16px 18px;margin-top:14px}
.token-row button{
  background:none;border:0;padding:0;cursor:pointer;font-family:inherit;
  display:grid;justify-items:center;gap:8px;width:76px;
  font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);
  opacity:.62;transition:opacity .2s,color .2s;
}
.token-row button .disc{
  display:grid;place-items:center;width:52px;height:52px;border-radius:50%;
  background:var(--cream-2);border:1px solid var(--line-l);
  transition:transform .25s,border-color .25s,box-shadow .25s;
}
.token-row button .nm{display:block;line-height:1.35;min-height:2.5em}
.token-row button:hover{opacity:1}
.token-row button:hover .disc{transform:scale(1.07)}
.token-row button[aria-pressed="true"]{opacity:1;color:var(--caramel-dp)}
.token-row button[aria-pressed="true"] .disc{
  border-color:var(--caramel-dp);box-shadow:0 0 0 3px rgba(198,166,138,.28);
}
.token-row button:focus-visible .disc{outline:2px solid var(--caramel-dp);outline-offset:4px}

/* ── the shop's jump row ───────────────────────────────────────────────────
   Small links above the bands so nobody has to scroll past three collections
   to reach the one they came for. It sticks under the header as you go. */
.jump{
  position:sticky;top:0;z-index:30;
  background:rgba(240,232,220,.94);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line-l);
}
.jump ul{
  list-style:none;display:flex;flex-wrap:wrap;gap:6px 26px;
  padding:14px 0;margin:0;justify-content:center;
}
.jump a{
  display:inline-flex;align-items:baseline;gap:7px;text-decoration:none;
  font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ink);opacity:.6;padding:4px 0;
  border-bottom:1px solid transparent;transition:opacity .2s,border-color .2s,color .2s;
}
.jump a span{font-size:9px;letter-spacing:0;opacity:.5}
.jump a:hover{opacity:1}
.jump a[aria-current="true"]{opacity:1;color:var(--caramel-dp);border-bottom-color:currentColor}
.jump a.soon{opacity:.38}
.jump a:focus-visible{outline:2px solid var(--caramel-dp);outline-offset:3px}
@media(max-width:600px){
  .jump ul{gap:4px 16px;padding:11px 0}
  .jump a{font-size:9px;letter-spacing:.14em}
}
/* the bands are jump targets, so they must clear the two sticky bars */
.coll-band{scroll-margin-top:112px}

/* Every product card is the same width in every band, whether the collection
   holds two pieces or four. A two-product band used to get wide columns and
   a four-product band narrow ones, which made the images different sizes down
   the page. */
@media(min-width:700px) and (max-width:999px){
  .coll-band .prod-grid{grid-template-columns:1fr 1fr}
}
@media(min-width:1000px){
  .coll-band .prod-grid.three{grid-template-columns:repeat(3,1fr)}
}

/* ══════════════════════════════════════════════════════════════════════
   THE HOME PAGE HERO
   The wordmark and the headline in the middle, one cut-out piece leaning in
   from each corner. Four in five people used to land here and leave without
   ever reaching the shop; the fix was not better words, it was showing the
   actual pieces before anyone has to scroll or read.

   Cream ground rather than the old cocoa, because a piece cut out of its
   background needs light behind it to read as an object.

   Everything is sized off the width of the hero, so the whole arrangement
   scales together. To move a piece, change the corner values on its pc
   class. To swap which piece sits where, change the src in index.html. The
   cutouts are in images/cut/ as .webp with transparent backgrounds.
   ══════════════════════════════════════════════════════════════════════ */
/* One ground for the hero and the best sellers together. The clipping lives
   here rather than on the hero, so a piece leaning out of the hero carries
   on into the band below instead of being sliced at the join. */
.cream-field{
  position:relative;overflow:hidden;background:var(--cream);color:var(--ink);
}
/* Light pooling near the top, the way it does on a cloth by a window, so the
   words sit in the brightest part and the edges fall away. */
.cream-field::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(85% 42% at 50% 24%, rgba(255,253,250,.72) 0%,
                                         rgba(255,253,250,.28) 44%,
                                         rgba(255,253,250,0) 74%),
    radial-gradient(80% 40% at 50% 100%, rgba(198,166,138,.13) 0%,
                                          rgba(198,166,138,0) 72%);
}
/* A woven grain over the top, drawn by the browser from the line below: no
   image to load, and nothing photographed to go out of date. */
.cream-field::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  opacity:.055;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:200px 200px;
}
/* the hero itself is now just the middle of that field */
.hero.shop-hero{
  background:transparent;color:var(--ink);position:relative;overflow:visible;
  padding:clamp(34px,5vw,64px) 0;
  display:flex;align-items:center;
  /* shorter than it used to be: the product cutouts in the corners are
     gone, so the words no longer need the room, and the Lolly Letters
     band underneath comes into view sooner */
  min-height:clamp(460px,62vh,660px);
}
/* the best sellers sit on the same ground, so no band of its own */
.cream-field .home-shop{background:transparent;position:relative;z-index:2}
.hero.shop-hero .wrap{position:relative;z-index:3;padding-top:0;padding-bottom:0;width:100%}

/* ── the four pieces ── */
/* Capped and centred, and deliberately narrower than the page: on a wide
   screen the corners would otherwise drift out to the edges and leave the
   words marooned in the middle. Widen this one number to spread the pieces
   apart again. */
.sh-pieces{
  position:absolute;top:0;bottom:0;left:50%;transform:translateX(-50%);
  width:100%;max-width:1180px;z-index:1;pointer-events:none;
}
.sh-pieces .pc{
  position:absolute;width:auto;max-width:none;height:auto;
  filter:drop-shadow(0 16px 26px rgba(43,33,28,.20));
}
/* sized off the HEIGHT of the hero, not its width: these are tall pieces,
   and on a wide screen a width-based size makes them enormous */
/* the two jars sit fully inside the top edge, because a jar with its lid
   sliced off reads as a mistake. The boards below are allowed to run off
   the bottom, which reads as a crop. */
.sh-pieces .pc1{left:-6%;  top:6%;      height:48%; transform:rotate(-16deg)}
.sh-pieces .pc2{right:-7%; top:5%;      height:50%; transform:rotate(15deg)}
.sh-pieces .pc3{left:-9%;  bottom:-12%; height:50%; transform:rotate(13deg)}
/* the lilac jar mirrors the pink one across the page rather than leaning the
   same way, so the four pieces read as scattered instead of stacked */
.sh-pieces .pc4{right:-9%; bottom:-11%; height:50%; transform:rotate(16deg)}
/* A fifth piece filling the gap down the left side, leaning in from off the
   edge and sitting BEHIND the other four — z-index:0 on purpose. The sheer
   fabric in its photograph lies across the jar's right-hand edge, so the
   cutout follows the fabric rather than the acrylic there. Tucking that edge
   under the notes board hides it. If you ever reshoot this jar with nothing
   draped over it, the piece can come forward.

   It is also the one that goes if the pile ever looks crowded: delete this
   rule and its line in index.html. */
.sh-pieces .pc5{left:-19%; top:31%;  height:45%; transform:rotate(-7deg); z-index:-1}

/* ── the words ── */
.hero.shop-hero .sh-words{
  max-width:34rem;margin:0 auto;text-align:center;position:relative;z-index:3;
}
.hero.shop-hero .mark{
  font-family:'Prata',serif;font-size:clamp(17px,2.1vw,23px);
  letter-spacing:.3em;text-indent:.3em;text-transform:uppercase;color:var(--cocoa-2);
}
/* max-width:none because the dark hero caps its paragraphs at 44ch, which
   at this size would fold the line in half */
.hero.shop-hero .eb,
.hero.shop-hero .made{max-width:none}
.hero.shop-hero .eb{
  display:block;margin-top:9px;font-size:clamp(8.5px,1vw,10px);
  letter-spacing:.28em;text-indent:.28em;text-transform:uppercase;
  color:var(--caramel-dp);opacity:.9;
}
.hero.shop-hero .rule{
  display:block;width:46px;height:1px;margin:clamp(16px,2vw,22px) auto;
  background:var(--caramel);opacity:.7;
}
.hero.shop-hero h1{
  font-family:'Prata',serif;font-weight:400;color:var(--cocoa-2);
  font-size:clamp(34px,5.6vw,62px);line-height:1.1;margin:0;max-width:none;
}
.hero.shop-hero h1 em{
  display:block;font-style:italic;color:var(--caramel-dp);margin-top:2px;
}
.hero.shop-hero .hrt{
  display:block;width:20px;height:auto;margin:clamp(14px,1.8vw,20px) auto 0;
  color:var(--caramel-dp);opacity:.75;
}
.hero.shop-hero .cats{
  margin-top:clamp(14px,1.8vw,20px);font-size:clamp(9px,1vw,10.5px);
  letter-spacing:.24em;text-indent:.24em;text-transform:uppercase;
  line-height:2.1;opacity:.62;max-width:none;
}
.hero.shop-hero .cats i{font-style:normal;opacity:.45;margin:0 3px}
.hero.shop-hero .cta-pair{
  margin-top:clamp(18px,2.2vw,26px);
  display:flex;gap:9px;flex-direction:column;align-items:center;
}
.hero.shop-hero .cta-pair .btn{
  min-width:min(300px,78vw);text-align:center;
  padding-top:12px;padding-bottom:12px;
}
/* the outline button sits over the pieces, so it needs a ground of its own
   rather than letting a board show through the middle of it */
.hero.shop-hero .cta-pair .btn:not(.solid){background:var(--cream)}
/* warm brown here rather than the near-black used elsewhere: on a cream
   ground beside cut acrylic it reads softer, and it is the caramel already
   in the palette rather than a new colour */
.hero.shop-hero .cta-pair .btn.solid{
  background:var(--caramel-dp);border-color:var(--caramel-dp);color:var(--cream);
}
.hero.shop-hero .cta-pair .btn.solid:hover,
.hero.shop-hero .cta-pair .btn.solid:focus-visible{
  background:var(--cocoa-2);border-color:var(--cocoa-2);
}
.hero.shop-hero .made{
  margin-top:16px;font-size:9.5px;letter-spacing:.22em;text-indent:.22em;
  text-transform:uppercase;opacity:.45;
}

/* On a phone the pieces shrink into the corners rather than crowding the
   words, and the buttons go full width. */
@media(max-width:760px){
  .hero.shop-hero{min-height:0;padding:clamp(56px,14vw,84px) 0 clamp(20px,6vw,36px)}
  /* On a phone the pieces sit at the very corners, above and below the
     words rather than beside them, so they stay a decent size and most of
     each one is actually on the screen. */
  .sh-pieces{max-width:none}
  /* four corners is already a full frame on a phone, so the fifth sits out */
  .sh-pieces .pc5{display:none}
  .sh-pieces .pc1{left:-6%;  top:0;        height:24%}
  .sh-pieces .pc2{right:-8%; top:-1%;      height:25%}
  .sh-pieces .pc3{left:-9%;  bottom:-6%;   height:24%}
  .sh-pieces .pc4{right:-8%; bottom:-5%;   height:24%}
  .hero.shop-hero .sh-words{max-width:19.5rem}
  .hero.shop-hero .sh-words{max-width:22rem}
  .hero.shop-hero h1{font-size:clamp(29px,8.4vw,40px)}
  .hero.shop-hero .cta-pair .btn{min-width:0;width:100%}
}
@media(max-width:420px){.hero.shop-hero .cats{line-height:2.3}}

/* ══ THE SHOP, ON THE FRONT PAGE ════════════════════════════════════════
   Every piece with its price, one click from the top of the site. Same card
   as the shop page, so nothing has to be kept in step by hand. On a phone it
   goes two across for the same reason the shop bands do: nine products one
   per screen is a very long scroll. */
.home-shop{padding-top:clamp(38px,5vw,64px)}
.home-shop .sec-head{text-align:center;margin-bottom:clamp(30px,4vw,46px)}
.home-shop .sec-head .eb{justify-content:center}
.home-shop .sec-head h2,
.home-shop .sec-head .note{margin-left:auto;margin-right:auto}
.home-shop .prod p{margin-left:auto;margin-right:auto}
.home-shop-foot{text-align:center;margin-top:clamp(34px,4.4vw,56px)}
@media(max-width:699px){
  .home-shop .prod-grid{grid-template-columns:1fr 1fr;gap:22px 14px}
  .home-shop .prod h3{font-size:15.5px;margin-top:13px;line-height:1.25}
  .home-shop .prod .it{font-size:11px;margin-top:3px}
  .home-shop .prod .price{font-size:14px;margin-top:7px}
  .home-shop .prod .instal{font-size:10.5px;margin-top:5px}
  /* an odd last piece would sit alone in the left column with a gap beside
     it, so it takes the full width and centres instead */
  .home-shop .prod-grid .prod:last-child:nth-child(odd){
    grid-column:1 / -1;max-width:64%;margin-left:auto;margin-right:auto;
  }
}

/* ══ THE OPTION DROPDOWNS ═══════════════════════════════════════════════
   Every choice on a product page is one of these: a closed box showing what
   is chosen, and a list underneath showing each option with a small picture
   of it. Built in site.js under THE OPTION DROPDOWNS. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
         clip:rect(0 0 0 0);white-space:nowrap;border:0}

.sel{position:relative;display:block;margin-top:10px}
.sel-btn{
  width:100%;display:flex;align-items:center;gap:11px;text-align:left;
  font-family:inherit;font-size:14px;font-weight:300;color:var(--ink);
  background:var(--white);border:1px solid var(--line-l);padding:10px 12px;
  cursor:pointer;transition:border-color .2s;
}
.sel-btn:hover{border-color:var(--caramel)}
.sel-btn:focus-visible{outline:none;border-color:var(--caramel-dp)}
.sel[data-open="true"] .sel-btn{border-color:var(--caramel-dp)}
.sel-caret{width:12px;height:8px;flex:0 0 auto;margin-left:auto;opacity:.5;
           transition:transform .18s}
.sel[data-open="true"] .sel-caret{transform:rotate(180deg)}
.sel-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
          line-height:1.3}

/* the little picture: a colour circle, a token, a letter set in the font */
.sel-face{flex:0 0 auto;width:26px;height:26px;display:flex;align-items:center;
          justify-content:center;overflow:hidden}
.sel-face svg{width:100%;height:100%;display:block}
.sel-face .dot{width:22px;height:22px;border-radius:50%;display:block;
               box-shadow:inset 0 0 0 1px rgba(43,33,28,.16)}

.sel-list{
  position:absolute;z-index:40;left:0;right:0;top:calc(100% + 4px);
  max-height:298px;overflow:auto;list-style:none;margin:0;padding:5px 0;
  background:var(--white);border:1px solid var(--line-l);
  box-shadow:0 14px 34px rgba(43,33,28,.16);
}
.sel-list li{
  display:flex;align-items:center;gap:11px;padding:8px 12px;cursor:pointer;
  font-size:14px;font-weight:300;line-height:1.3;
}
.sel-list li:hover,.sel-list li:focus{background:var(--cream);outline:none}
.sel-list li[aria-selected="true"]{background:var(--cream)}
.sel-list li[aria-selected="true"] .sel-name::after{
  content:"✓";margin-left:8px;color:var(--caramel-dp);font-size:12px}
.sel-list .sel-note{margin-left:auto;font-size:11px;opacity:.5;font-style:italic;
                    white-space:nowrap}
@media(max-width:520px){
  .sel-list .sel-note{display:none}
  .sel-list{max-height:250px}
}

/* ══ THE NAME PREVIEW ═══════════════════════════════════════════════════
   No drawing of the piece any more, just the wording itself set in the font
   and the colour chosen, so nobody has to guess what Madina looks like with
   their child's name in it. Hidden until something is typed. */
.name-prev{
  margin-top:14px;background:var(--white);border:1px solid var(--line-l);
  padding:22px 18px;text-align:center;overflow:hidden;
}
.name-prev .word{
  display:block;line-height:1.18;word-break:break-word;
  font-size:38px;transition:color .25s;
}
.name-prev .cap{
  display:block;margin-top:12px;font-family:'Poppins',sans-serif;font-size:9.5px;
  letter-spacing:.24em;text-transform:uppercase;opacity:.42;color:var(--ink);
}
@media(max-width:520px){.name-prev{padding:18px 14px}.name-prev .word{font-size:30px}}

/* a colourway circle: the jar on one half, the tokens on the other */
.sel-face .dot.duo{box-shadow:inset 0 0 0 1px rgba(43,33,28,.22)}

/* the name preview stands on its own now, so it needs its own top margin
   when the block above it is a heading rather than a dropdown */
#namePrev{margin-top:20px}

/* ══ THE COLLECTION BOXES ═══════════════════════════════════════════════
   The shop page is a set of named boxes, one per collection, cut with the
   same scalloped edge as the photographs. No picture inside on purpose: a
   collection holds several pieces and one photo can only ever sell one of
   them. Built in shop.html under THE COLLECTIONS. */
.coll-boxes{padding:clamp(30px,4.5vw,56px) 0 clamp(48px,6vw,84px)}
/* minmax(0,1fr), not 1fr: a box with an aspect-ratio would otherwise claim
   a minimum width off its own content and push the row wider than the page */
.box-grid{display:grid;gap:clamp(20px,3vw,34px)}
@media(min-width:640px){.box-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1000px){.box-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

.coll-box{
  position:relative;text-decoration:none;color:var(--ink);
  /* the box centres its own words: a percentage height on the inner block
     would collapse against min-height and drop the text out of the shape */
  display:flex;align-items:center;justify-content:center;
  /* a minimum height rather than a fixed ratio, so a long collection name
     makes its box taller and the whole row grows with it, instead of the
     words spilling out of the scalloped edge */
  min-height:clamp(186px,15vw,232px);min-width:0;
  padding:clamp(20px,2.2vw,30px);
  /* opacity is in here as well as transform: this rule sits after .rv in the
     file, so a transition naming only transform would cancel the fade the
     boxes arrive with and they would snap onto the page instead */
  transition:transform .35s cubic-bezier(.3,1,.4,1), opacity .65s ease;
}
/* the scalloped fill and its outline, the same two shapes the photo frames
   use, so nothing new has to be drawn */
.coll-box .bx,.coll-box .ln{position:absolute;inset:0;pointer-events:none}
.coll-box .bx{
  background:var(--white);
  -webkit-mask:url(../images/wave.svg) center/100% 100% no-repeat;
  mask:url(../images/wave.svg) center/100% 100% no-repeat;
}
.coll-box .ln{
  background:var(--frame-line,#4A3830);
  -webkit-mask:url(../images/wave-line.svg) center/100% 100% no-repeat;
  mask:url(../images/wave-line.svg) center/100% 100% no-repeat;
}
.coll-box .in{
  position:relative;z-index:2;width:100%;
  display:flex;flex-direction:column;align-items:center;
  text-align:center;gap:7px;
}
.coll-box .it{font-style:italic;color:var(--caramel-dp);font-size:12.5px}
.coll-box .nm{
  font-family:'Prata',serif;font-weight:400;color:var(--cocoa-2);
  font-size:clamp(20px,2.5vw,27px);line-height:1.2;max-width:14ch;
}
.coll-box .hand{
  font-family:'Hailey','Segoe Script',cursive;font-size:15px;
  color:var(--caramel-dp);opacity:.85;max-width:22ch;line-height:1.3;
}
.coll-box .go{
  margin-top:6px;font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;
  text-indent:.22em;color:var(--ink);opacity:.5;
}
/* ── THE BOWS ──────────────────────────────────────────────────────────
   Bigger than the ones on the photographs, in chocolate rather than the
   frame brown, and lifted clear of the box with a soft shadow so they read
   as sitting in front of it rather than printed on it. Which boxes get one
   is decided by  i % 3  in shop.html: drop that condition for a bow on
   every box, or change the number for fewer. */
.coll-box .cnr-bow{
  width:clamp(74px,30%,124px);color:var(--cocoa);
  top:-9%;left:-6%;transform:rotate(-16deg);z-index:6;
  filter:drop-shadow(0 5px 7px rgba(43,33,28,.24));
  transition:transform .35s cubic-bezier(.3,1,.4,1);
}
.coll-box:hover .cnr-bow{transform:rotate(-8deg) scale(1.05)}
/* Once the boxes sit three across, the right-hand one leans the other way so
   a row never looks stamped out by machine. Only from 1000px up: in a single
   column a mirrored bow would hang off the edge of a phone. */
@media(min-width:1000px){
  .box-grid > .coll-box:nth-child(3n) .cnr-bow{
    left:auto;right:-6%;transform:rotate(16deg) scaleX(-1);
  }
  .box-grid > .coll-box:nth-child(3n):hover .cnr-bow{
    transform:rotate(8deg) scaleX(-1) scale(1.05);
  }
}
@media(max-width:520px){
  .coll-box .cnr-bow{width:66px;top:-15px;left:-8px}
}

/* the "new arrival" stamp — sits in the same corner the bow would use,
   for whichever collection currently carries isNew in catalogue.js */
.coll-box .new-sign{
  position:absolute;width:clamp(64px,26%,100px);
  top:-9%;left:-6%;color:var(--caramel-dp);z-index:6;
  transform:rotate(-11deg);
  filter:drop-shadow(0 5px 7px rgba(43,33,28,.22));
  transition:transform .35s cubic-bezier(.3,1,.4,1);
}
.coll-box .new-sign svg{width:100%;height:100%;display:block}
.coll-box:hover .new-sign{transform:rotate(-6deg) scale(1.06)}
@media(max-width:520px){
  .coll-box .new-sign{width:58px;top:-14px;left:-8px}
}

.coll-box:hover{transform:translateY(-4px)}
.coll-box:hover .nm{color:var(--caramel-dp)}
.coll-box:focus-visible{outline:2px solid var(--caramel-dp);outline-offset:6px}

/* a collection with nothing in it yet reads as quiet, not broken */
.coll-box.soon{cursor:default}
.coll-box.soon .bx{background:var(--cream)}
.coll-box.soon .nm,.coll-box.soon .it{opacity:.55}
.coll-box.soon:hover{transform:none}

@media(max-width:520px){
  .coll-box{aspect-ratio:1.5;padding:22px}
  .coll-box .hand{font-size:14px}
}
@media(prefers-reduced-motion:reduce){.coll-box{transition:none}}

/* the instalment line sits tight under the total, part of the same number */
.instal.under-total{
  margin-top:6px;text-align:right;font-size:12.5px;
  padding-bottom:12px;border-bottom:1px solid var(--line-l);
}
.drawer .instal.under-total{border-bottom:0;padding-bottom:4px}

/* ══ THE BOWS BEHIND THE BOXES ══════════════════════════════════════════
   Chocolate bows scattered over the shop page, behind the collection boxes.
   The boxes are solid, so a bow that lands under one simply does not show;
   what you see are the ones in the gaps and the margins, which is what
   makes it read as scattered by hand rather than tiled by a machine.

   Each bow takes four numbers:
     --t  how far down the section, --l how far across, both per cent
     --s  its size,                 --r how far it leans
   Change those to move one. Add another by copying an .f line and adding a
   matching <svg class="bg-bow fN"> in shop.html. */
.coll-boxes{position:relative;overflow:hidden}
.coll-boxes .wrap{position:relative;z-index:2}

.bow-field{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  color:var(--cocoa);
}
.bow-field .bg-bow{
  position:absolute;display:block;
  top:var(--t);left:var(--l);width:var(--s);height:auto;aspect-ratio:80/58;
  transform:translate(-50%,-50%) rotate(var(--r));
  opacity:var(--o,.13);
}
.bow-field .f1 {--t:5%;  --l:4%;   --s:78px; --r:-18deg; --o:.30}
.bow-field .f2 {--t:14%; --l:96%;  --s:94px; --r:13deg;  --o:.26}
.bow-field .f3 {--t:30%; --l:50%;  --s:58px; --r:-7deg;  --o:.20}
.bow-field .f4 {--t:44%; --l:2%;   --s:84px; --r:22deg;  --o:.28}
.bow-field .f5 {--t:57%; --l:97%;  --s:66px; --r:-26deg; --o:.24}
.bow-field .f6 {--t:72%; --l:26%;  --s:54px; --r:9deg;   --o:.18}
.bow-field .f7 {--t:88%; --l:8%;   --s:80px; --r:-12deg; --o:.28}
.bow-field .f8 {--t:93%; --l:70%;  --s:90px; --r:17deg;  --o:.24}
.bow-field .f9 {--t:22%; --l:31%;  --s:48px; --r:31deg;  --o:.17}
.bow-field .f10{--t:9%;  --l:68%;  --s:62px; --r:24deg;  --o:.22}
.bow-field .f11{--t:36%; --l:78%;  --s:50px; --r:-16deg; --o:.18}
.bow-field .f12{--t:52%; --l:36%;  --s:66px; --r:11deg;  --o:.19}
.bow-field .f13{--t:64%; --l:62%;  --s:56px; --r:-29deg; --o:.21}
.bow-field .f14{--t:78%; --l:94%;  --s:74px; --r:19deg;  --o:.26}
.bow-field .f15{--t:40%; --l:16%;  --s:46px; --r:-23deg; --o:.16}
.bow-field .f16{--t:97%; --l:32%;  --s:60px; --r:7deg;   --o:.22}
.bow-field .f17{--t:2%;  --l:40%;  --s:52px; --r:-11deg; --o:.18}
.bow-field .f18{--t:84%; --l:48%;  --s:48px; --r:27deg;  --o:.17}

/* fewer and smaller on a phone, where there is far less room between the
   boxes and a crowd of them would fight the words */
@media(max-width:700px){
  .bow-field .bg-bow{--s:52px}
  .bow-field .f3,.bow-field .f6,.bow-field .f9,
  .bow-field .f12,.bow-field .f13,.bow-field .f15,.bow-field .f18{display:none}
  .bow-field .f1{--l:8%}
  .bow-field .f2{--l:92%}
  .bow-field .f4{--l:6%}
  .bow-field .f5{--l:94%}
  .bow-field .f8{--l:78%}
}

/* ══ THE BOWS ON THE HERO ═══════════════════════════════════════════════
   The same bow as the shop page, scattered over the cream behind the pieces
   and the words. Fainter here, and kept out of the middle band where the
   headline sits, so it never competes with the words.

   Each bow takes four numbers:
     --t  how far down the hero, --l how far across, both per cent
     --s  its size,              --r how far it leans
   Change those to move one. */
.bow-field.hero-bows{z-index:0}
/* the hero bows cover the whole field, hero and best sellers together */
.cream-field > .bow-field{position:absolute;inset:0}
.hero-bows .h1 {--t:12%; --l:20%; --s:66px; --r:-17deg; --o:.22}
.hero-bows .h2 {--t:26%; --l:76%; --s:82px; --r:14deg;  --o:.20}
.hero-bows .h3 {--t:50%; --l:12%; --s:54px; --r:26deg;  --o:.18}
.hero-bows .h4 {--t:44%; --l:88%; --s:62px; --r:-21deg; --o:.20}
.hero-bows .h5 {--t:74%; --l:24%; --s:74px; --r:9deg;   --o:.22}
.hero-bows .h6 {--t:82%; --l:70%; --s:58px; --r:-13deg; --o:.20}
.hero-bows .h7 {--t:7%;  --l:52%; --s:46px; --r:22deg;  --o:.16}
.hero-bows .h8 {--t:93%; --l:46%; --s:68px; --r:-8deg;  --o:.18}
.hero-bows .h9 {--t:18%; --l:40%; --s:44px; --r:12deg;  --o:.14}
.hero-bows .h10{--t:34%; --l:30%; --s:52px; --r:-25deg; --o:.17}
.hero-bows .h11{--t:62%; --l:82%; --s:50px; --r:18deg;  --o:.18}
.hero-bows .h12{--t:88%; --l:14%; --s:56px; --r:-20deg; --o:.20}
.hero-bows .h13{--t:58%; --l:60%; --s:42px; --r:29deg;  --o:.13}
.hero-bows .h14{--t:4%;  --l:84%; --s:60px; --r:-14deg; --o:.19}
.hero-bows .h15{--t:70%; --l:6%;  --s:64px; --r:8deg;   --o:.21}
.hero-bows .h16{--t:96%; --l:78%; --s:54px; --r:-9deg;  --o:.17}

/* on a phone the pieces already fill the corners, so only a few stay */
@media(max-width:760px){
  .hero-bows .bg-bow{--s:46px}
  .hero-bows .h2,.hero-bows .h4,.hero-bows .h7,.hero-bows .h9,
  .hero-bows .h10,.hero-bows .h13,.hero-bows .h14,.hero-bows .h16{display:none}
  .hero-bows .h1{--l:16%}
  .hero-bows .h5{--l:20%}
  .hero-bows .h6{--l:76%}
}

/* "Pictured in Bubblegum Burst" — which colourway the photograph above
   shows, so nobody orders one colour having looked at another. The wording
   lives in imageNotes on the product in catalogue.js. */
.shot-note{
  margin-top:10px;text-align:center;font-size:11px;font-style:italic;
  letter-spacing:.02em;color:var(--caramel-dp);opacity:.85;
}

/* ══ ONE CARD WIDTH, WHATEVER THE COLLECTION HOLDS ══════════════════════
   A collection of two used to draw its pieces half the page wide while a
   collection of three drew them a third, so the same board looked bigger on
   one page than another. This caps the card and centres the row instead, so
   every piece is the same size across the whole shop. Change the 330px to
   make every card bigger or smaller at once. */
@media(min-width:700px){
  .prod-grid.even{
    grid-template-columns:repeat(auto-fit,minmax(0,330px));
    justify-content:center;
  }
}

/* ══ THE PLAYFUL HOME PAGE ══════════════════════════════════════════════
   Pastel blobs, a big rounded headline, hand drawn flowers and hearts, and
   a pink band of little promises. The colours are the --pl lines just
   below; the rounded headline font is Sour Gummy, kept in /fonts. */
@font-face{font-family:'Sour Gummy';font-weight:800;font-display:swap;src:url(../fonts/sour-gummy-800.woff2) format('woff2')}
@font-face{font-family:'Sour Gummy';font-weight:600;font-display:swap;src:url(../fonts/sour-gummy-600.woff2) format('woff2')}
:root{
  --pl-bg:#F8F1EA;--pl-mauve:#5A3A2E;--pl-rose:#DE4086;--pl-rose-dp:#C42F72;--pl-green:#2EB2AA;
  /* the logo's own colours */
  --lg-salmon:#F2938A;--lg-teal:#2EB2AA;--lg-butter:#F7D677;--lg-butter-dp:#E9B949;--lg-lilac:#BFA0DD;--lg-rasp:#DE4086;--lg-blue:#86AED6;--lg-brown:#5A3A2E;
  --pl-pink:#FBD9D5;--pl-lilac:#E6DAF4;--pl-cream:#FBEFC9;--pl-sage:#CDEDE9;--pl-peach:#DCE8F5;
  --pink-band:#FBE1DD;--paper:#FBF6EF;
  --blob-dream:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M99.5 50.2C99.5 51.2 99.5 52.1 99.5 53.0C99.5 53.9 99.4 54.9 99.3 55.8C99.2 56.7 99.1 57.6 98.9 58.5C98.8 59.4 98.6 60.3 98.4 61.2C98.3 62.1 98.1 63.0 97.9 64.0C97.7 64.9 97.5 65.8 97.3 66.7C97.2 67.6 97.0 68.5 96.8 69.5C96.7 70.4 96.5 71.3 96.3 72.3C96.1 73.2 96.0 74.2 95.7 75.2C95.5 76.1 95.3 77.1 94.9 78.0C94.6 78.9 94.3 79.8 93.9 80.7C93.4 81.6 93.0 82.4 92.4 83.2C91.9 84.0 91.3 84.7 90.6 85.4C90.0 86.1 89.3 86.8 88.5 87.4C87.8 88.0 87.0 88.5 86.2 89.0C85.4 89.5 84.6 90.0 83.8 90.4C83.0 90.9 82.2 91.3 81.4 91.7C80.6 92.2 79.8 92.6 79.0 93.0C78.2 93.4 77.4 93.8 76.6 94.1C75.8 94.5 75.0 94.9 74.2 95.2C73.4 95.5 72.5 95.8 71.7 96.1C70.9 96.3 70.1 96.5 69.2 96.7C68.4 96.9 67.5 97.0 66.7 97.1C65.8 97.2 65.0 97.2 64.1 97.2C63.3 97.2 62.4 97.2 61.6 97.2C60.8 97.1 59.9 97.1 59.1 97.0C58.3 97.0 57.5 97.0 56.7 97.0C55.9 97.0 55.2 97.0 54.4 97.0C53.6 97.1 52.8 97.2 52.1 97.3C51.3 97.4 50.5 97.5 49.8 97.7C49.0 97.9 48.2 98.1 47.4 98.3C46.6 98.4 45.8 98.6 45.0 98.8C44.1 99.0 43.3 99.1 42.5 99.2C41.6 99.3 40.8 99.4 39.9 99.5C39.1 99.5 38.2 99.5 37.4 99.5C36.5 99.5 35.6 99.4 34.8 99.3C33.9 99.3 33.0 99.1 32.2 99.0C31.3 98.9 30.4 98.8 29.5 98.7C28.6 98.5 27.7 98.4 26.7 98.3C25.8 98.1 24.9 98.0 23.9 97.9C23.0 97.7 22.0 97.5 21.0 97.3C20.0 97.1 19.0 96.9 18.1 96.6C17.1 96.3 16.2 96.0 15.3 95.5C14.4 95.1 13.5 94.6 12.7 94.1C11.8 93.5 11.1 92.9 10.4 92.2C9.6 91.4 9.0 90.7 8.4 89.8C7.8 89.0 7.3 88.1 6.8 87.2C6.3 86.3 5.9 85.4 5.5 84.4C5.1 83.5 4.8 82.5 4.5 81.5C4.1 80.6 3.8 79.6 3.5 78.6C3.2 77.7 2.9 76.7 2.6 75.8C2.4 74.8 2.1 73.9 1.9 72.9C1.6 72.0 1.4 71.0 1.2 70.1C1.0 69.1 0.8 68.1 0.7 67.2C0.6 66.2 0.5 65.2 0.5 64.3C0.5 63.3 0.5 62.3 0.5 61.4C0.6 60.4 0.7 59.4 0.8 58.5C1.0 57.5 1.1 56.6 1.3 55.7C1.4 54.7 1.6 53.8 1.8 52.9C1.9 52.0 2.1 51.1 2.2 50.2C2.3 49.4 2.4 48.5 2.5 47.6C2.5 46.7 2.6 45.8 2.6 45.0C2.6 44.1 2.6 43.2 2.6 42.3C2.6 41.4 2.6 40.5 2.6 39.6C2.7 38.7 2.7 37.8 2.7 36.8C2.8 35.9 2.9 35.0 3.0 34.1C3.2 33.2 3.3 32.3 3.6 31.4C3.8 30.5 4.0 29.6 4.3 28.7C4.6 27.9 5.0 27.0 5.3 26.2C5.7 25.3 6.1 24.5 6.5 23.7C6.9 22.8 7.3 22.0 7.7 21.2C8.1 20.3 8.5 19.5 8.9 18.7C9.3 17.8 9.8 17.0 10.2 16.2C10.7 15.3 11.1 14.5 11.6 13.7C12.1 12.9 12.6 12.1 13.2 11.3C13.8 10.6 14.4 9.9 15.0 9.2C15.7 8.5 16.4 7.9 17.1 7.4C17.9 6.8 18.7 6.4 19.5 5.9C20.3 5.5 21.2 5.2 22.1 4.9C22.9 4.6 23.8 4.3 24.7 4.1C25.6 3.9 26.5 3.7 27.4 3.6C28.3 3.4 29.2 3.3 30.0 3.1C30.9 2.9 31.7 2.8 32.6 2.6C33.4 2.5 34.2 2.3 35.1 2.1C35.9 1.9 36.7 1.7 37.5 1.5C38.3 1.4 39.1 1.2 39.9 1.0C40.7 0.9 41.6 0.8 42.4 0.7C43.2 0.6 44.0 0.5 44.8 0.5C45.7 0.5 46.5 0.5 47.3 0.5C48.1 0.6 48.9 0.7 49.8 0.7C50.6 0.8 51.4 0.9 52.2 1.0C53.0 1.1 53.8 1.2 54.6 1.3C55.4 1.4 56.2 1.5 57.0 1.5C57.8 1.6 58.7 1.6 59.5 1.6C60.3 1.6 61.2 1.6 62.0 1.5C62.9 1.5 63.8 1.5 64.7 1.5C65.6 1.4 66.5 1.4 67.4 1.5C68.3 1.5 69.2 1.5 70.1 1.6C71.0 1.8 71.9 1.9 72.8 2.1C73.7 2.3 74.6 2.6 75.4 3.0C76.3 3.3 77.1 3.7 77.9 4.1C78.7 4.6 79.5 5.0 80.3 5.6C81.1 6.1 81.8 6.6 82.5 7.2C83.3 7.7 84.0 8.3 84.7 8.9C85.5 9.5 86.2 10.1 86.9 10.7C87.6 11.4 88.3 12.0 89.0 12.7C89.7 13.3 90.4 14.0 91.0 14.7C91.7 15.4 92.3 16.2 92.8 16.9C93.4 17.7 93.9 18.6 94.4 19.4C94.9 20.3 95.3 21.2 95.6 22.1C96.0 23.0 96.3 24.0 96.5 24.9C96.7 25.9 96.9 26.9 97.1 27.8C97.2 28.8 97.3 29.8 97.4 30.8C97.5 31.8 97.5 32.7 97.6 33.7C97.7 34.7 97.8 35.6 97.9 36.5C97.9 37.5 98.0 38.4 98.1 39.3C98.3 40.2 98.4 41.1 98.5 42.0C98.6 42.9 98.8 43.8 98.9 44.7C99.0 45.7 99.2 46.6 99.3 47.5C99.3 48.4 99.4 49.3 99.5 50.2Z'/%3E%3C/svg%3E");
  --blob-r1:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M99.5 49.8C99.5 51.5 99.5 53.2 99.4 54.9C99.3 56.6 99.1 58.4 98.9 60.1C98.6 61.8 98.2 63.5 97.8 65.1C97.3 66.8 96.8 68.4 96.1 70.0C95.5 71.6 94.8 73.2 94.0 74.7C93.2 76.2 92.3 77.7 91.3 79.1C90.3 80.5 89.3 81.9 88.2 83.1C87.1 84.4 85.9 85.6 84.7 86.7C83.4 87.9 82.1 88.9 80.8 89.9C79.5 90.9 78.1 91.8 76.7 92.6C75.2 93.5 73.8 94.2 72.3 94.9C70.8 95.5 69.3 96.1 67.8 96.7C66.3 97.2 64.7 97.6 63.2 98.0C61.7 98.4 60.1 98.6 58.5 98.9C57.0 99.1 55.4 99.3 53.9 99.4C52.3 99.5 50.7 99.5 49.2 99.5C47.6 99.5 46.0 99.5 44.5 99.3C42.9 99.2 41.4 99.1 39.8 98.8C38.3 98.6 36.7 98.2 35.2 97.8C33.7 97.4 32.1 96.9 30.7 96.3C29.2 95.8 27.7 95.1 26.3 94.3C24.9 93.6 23.5 92.7 22.2 91.8C20.9 90.9 19.6 89.9 18.4 88.9C17.2 87.8 16.0 86.6 14.9 85.4C13.8 84.2 12.8 83.0 11.9 81.7C10.9 80.4 10.0 79.0 9.2 77.6C8.4 76.2 7.6 74.8 6.9 73.3C6.2 71.8 5.6 70.3 5.1 68.8C4.5 67.3 4.0 65.7 3.5 64.2C3.1 62.6 2.7 61.1 2.4 59.5C2.0 57.9 1.7 56.3 1.5 54.7C1.3 53.0 1.1 51.4 0.9 49.8C0.7 48.1 0.6 46.5 0.5 44.8C0.5 43.1 0.4 41.4 0.5 39.7C0.6 38.0 0.7 36.2 0.9 34.5C1.1 32.8 1.5 31.1 1.9 29.4C2.3 27.6 2.8 25.9 3.4 24.3C4.1 22.6 4.8 21.0 5.7 19.5C6.5 17.9 7.5 16.4 8.5 15.0C9.6 13.6 10.7 12.2 12.0 11.0C13.2 9.8 14.6 8.6 16.0 7.6C17.4 6.6 18.9 5.7 20.4 4.9C21.9 4.1 23.5 3.4 25.1 2.8C26.7 2.2 28.3 1.8 30.0 1.4C31.6 1.1 33.2 0.9 34.9 0.7C36.5 0.5 38.2 0.5 39.8 0.5C41.4 0.5 43.0 0.6 44.5 0.7C46.1 0.9 47.6 1.1 49.2 1.3C50.7 1.5 52.2 1.7 53.7 2.0C55.2 2.3 56.6 2.6 58.1 2.9C59.6 3.3 61.0 3.7 62.5 4.1C63.9 4.5 65.3 5.0 66.7 5.5C68.2 6.1 69.6 6.6 71.0 7.2C72.4 7.9 73.7 8.6 75.1 9.3C76.5 10.0 77.8 10.8 79.1 11.7C80.4 12.6 81.7 13.5 83.0 14.5C84.2 15.6 85.4 16.6 86.5 17.8C87.7 18.9 88.8 20.2 89.8 21.5C90.8 22.7 91.8 24.1 92.7 25.5C93.6 26.9 94.4 28.4 95.1 29.9C95.8 31.5 96.4 33.0 97.0 34.6C97.5 36.3 98.0 37.9 98.3 39.6C98.7 41.2 99.0 42.9 99.2 44.6C99.4 46.3 99.5 48.0 99.5 49.8Z'/%3E%3C/svg%3E");
  --blob-r2:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M99.5 50.7C99.5 52.5 99.4 54.2 99.3 55.9C99.2 57.6 99.0 59.3 98.7 61.0C98.5 62.7 98.1 64.4 97.7 66.1C97.2 67.7 96.7 69.4 96.1 71.0C95.5 72.6 94.7 74.2 93.9 75.7C93.1 77.2 92.2 78.6 91.3 80.0C90.3 81.4 89.2 82.7 88.1 83.9C87.0 85.1 85.7 86.3 84.5 87.3C83.2 88.4 81.9 89.4 80.6 90.3C79.2 91.1 77.8 91.9 76.4 92.6C75.0 93.4 73.5 94.0 72.1 94.5C70.6 95.1 69.1 95.6 67.7 96.0C66.2 96.4 64.7 96.8 63.2 97.1C61.8 97.4 60.3 97.7 58.8 97.9C57.4 98.1 55.9 98.3 54.4 98.5C52.9 98.6 51.5 98.8 50.0 98.9C48.5 99.1 47.0 99.2 45.5 99.3C44.0 99.4 42.4 99.5 40.8 99.5C39.3 99.5 37.7 99.5 36.1 99.4C34.5 99.2 32.8 99.1 31.2 98.8C29.6 98.5 28.0 98.1 26.4 97.6C24.7 97.1 23.1 96.6 21.6 95.8C20.0 95.1 18.5 94.3 17.0 93.4C15.6 92.4 14.1 91.3 12.8 90.2C11.5 89.0 10.3 87.7 9.2 86.3C8.0 84.9 7.0 83.4 6.1 81.9C5.2 80.3 4.4 78.7 3.7 77.0C3.0 75.3 2.4 73.6 2.0 71.8C1.5 70.1 1.2 68.3 0.9 66.5C0.7 64.8 0.6 63.0 0.5 61.2C0.4 59.4 0.5 57.6 0.6 55.9C0.7 54.2 0.8 52.4 1.0 50.7C1.2 49.0 1.4 47.4 1.7 45.7C2.0 44.0 2.3 42.4 2.7 40.8C3.1 39.1 3.5 37.5 4.0 36.0C4.5 34.4 5.1 32.8 5.7 31.3C6.3 29.8 7.0 28.2 7.7 26.8C8.5 25.3 9.3 23.9 10.2 22.5C11.0 21.1 12.0 19.8 13.0 18.5C14.0 17.2 15.0 16.0 16.1 14.8C17.3 13.7 18.4 12.6 19.7 11.5C20.9 10.5 22.2 9.5 23.5 8.7C24.8 7.8 26.2 7.0 27.6 6.2C28.9 5.5 30.4 4.8 31.8 4.3C33.3 3.7 34.8 3.2 36.3 2.7C37.7 2.3 39.3 2.0 40.8 1.7C42.3 1.4 43.8 1.2 45.4 1.0C46.9 0.8 48.4 0.7 50.0 0.6C51.5 0.5 53.1 0.5 54.6 0.5C56.2 0.5 57.8 0.6 59.4 0.7C60.9 0.9 62.5 1.1 64.1 1.4C65.7 1.7 67.3 2.0 68.8 2.5C70.4 3.0 71.9 3.6 73.4 4.2C74.9 4.9 76.4 5.6 77.9 6.5C79.3 7.3 80.7 8.3 82.0 9.3C83.4 10.3 84.7 11.5 85.9 12.7C87.1 13.9 88.2 15.2 89.3 16.5C90.4 17.9 91.3 19.3 92.2 20.8C93.1 22.3 94.0 23.8 94.7 25.4C95.4 27.0 96.0 28.6 96.6 30.3C97.2 31.9 97.6 33.6 98.0 35.3C98.4 37.0 98.7 38.7 98.9 40.4C99.2 42.1 99.3 43.9 99.4 45.6C99.5 47.3 99.5 49.0 99.5 50.7Z'/%3E%3C/svg%3E");
}
body:has(#mainHero.pl-hero){background:var(--pl-bg)}
.mk{display:block;width:100%;height:100%;overflow:hidden;
  -webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center}
.mk img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.3,1)}

/* the pink pill button */
.pill-btn{display:inline-flex;align-items:center;gap:14px;background:var(--pl-rose);color:#FFFDFB;
  font-family:'Poppins',sans-serif;font-size:13px;letter-spacing:.28em;text-transform:uppercase;text-decoration:none;
  padding:17px 34px 17px 38px;border-radius:999px;box-shadow:0 10px 22px rgba(222,64,134,.28);
  transition:transform .3s cubic-bezier(.3,1.4,.5,1),background .3s}
.pill-btn:hover{background:var(--pl-rose-dp);transform:translateY(-2px) rotate(-1deg)}
.pill-btn .arr{width:20px;height:auto}
.explore{display:inline-flex;align-items:center;gap:10px;font-size:11px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--cocoa-2);text-decoration:none;white-space:nowrap}
.explore .arr{width:18px;height:auto;transition:transform .3s ease}
.explore:hover .arr{transform:translateX(4px)}

/* ── the hero ── */
.hero.pl-hero{position:relative;display:block;min-height:0;padding:0;overflow:hidden;
  background:var(--pl-bg);color:var(--cocoa-2);height:clamp(460px,44vw,600px)}
.pl-photo{position:absolute;top:0;right:0;bottom:0;width:64%;display:block}
.pl-photo img{width:100%;height:100%;object-fit:cover;object-position:60% 50%;display:block}
.pl-shape{position:absolute;top:0;left:0;height:100%;width:49%;fill:var(--pl-bg);pointer-events:none}
.pl-bottom{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:clamp(30px,4vw,56px);fill:var(--pl-bg);pointer-events:none}
.pl-wrap{position:relative;height:100%;display:flex;align-items:center;max-width:1240px}
.pl-words{position:relative;width:min(620px,47%);padding:0 0 30px}
.pl-hero h1{font-family:'Sour Gummy','Poppins',sans-serif;font-weight:800;color:var(--pl-mauve);
  font-size:clamp(40px,5.1vw,70px);line-height:1;letter-spacing:-.01em;transform:rotate(-3deg);transform-origin:left center}
.pl-hero h1 span{display:block;padding-left:.3em}
.pl-sub{margin-top:clamp(20px,2.4vw,30px);font-size:clamp(10.5px,1vw,12.5px);letter-spacing:.2em;white-space:nowrap;text-transform:uppercase;color:var(--cocoa-2);padding-left:1.4em}
.pl-sub i{font-style:normal;opacity:.55;margin:0 .5em}
.pl-hero .pill-btn{margin-top:clamp(22px,2.6vw,32px);margin-left:3.4em}
.pl-hero .dd{position:absolute;pointer-events:none}
.pl-hero .fl1{width:clamp(34px,3.6vw,50px);left:-9%;top:-6%;color:var(--pl-green);transform:rotate(-14deg)}
.pl-hero .fl2{width:clamp(36px,3.8vw,54px);right:12%;top:30%;color:var(--pl-rose);transform:rotate(12deg)}
.pl-hero .fl3{width:clamp(36px,3.8vw,54px);left:-4%;top:58%;color:var(--lg-butter-dp);transform:rotate(20deg)}
.pl-hero .hrt-dd{width:clamp(22px,2.4vw,32px);right:4%;top:2%;color:var(--lg-salmon);transform:rotate(14deg)}
.pl-hero .squig{width:clamp(90px,10vw,140px);left:-16%;bottom:-2%;color:var(--lg-blue)}
.pl-note{position:absolute;right:4%;top:9%;z-index:2;font-family:'Hailey','Segoe Script',cursive;
  font-size:clamp(20px,2.2vw,28px);color:var(--cocoa-2);transform:rotate(-6deg);pointer-events:none;
  text-shadow:0 1px 8px rgba(255,255,255,.85)}
.pl-note .h{display:inline-block;width:.8em;vertical-align:middle;color:var(--pl-rose)}
.pl-note .h svg{width:100%;display:block}
.pl-note .curl{position:absolute;width:40px;right:18%;top:100%;color:var(--cocoa-2)}
.pl-note .curl svg{width:100%;display:block}

/* ── shop by category: a photo on a pastel blob ── */
.pl-cats{padding:clamp(18px,2.6vw,34px) 0 clamp(16px,2vw,26px)}
.pl-cats .wrap{max-width:1300px}
.cat-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(10px,1.6vw,22px)}
.cat-card{position:relative;display:block;text-align:center;text-decoration:none;color:var(--cocoa-2)}
.cat-bub{position:relative;display:block;aspect-ratio:1;transition:transform .45s cubic-bezier(.3,1.4,.5,1)}
.cat-card:hover .cat-bub{transform:translateY(-6px) rotate(-3deg)}
.cat-card.tilt:hover .cat-bub{transform:translateY(-6px) rotate(3deg)}
.cb-bg{position:absolute;inset:0;width:100%;height:100%}
.cat-card.tilt .cb-bg{transform:rotate(90deg) scaleX(-1)}
.tone-pink .cb-bg{fill:var(--pl-pink)} .tone-lilac .cb-bg{fill:var(--pl-lilac)} .tone-cream .cb-bg{fill:var(--pl-cream)}
.tone-sage .cb-bg{fill:var(--pl-sage)} .tone-peach .cb-bg{fill:var(--pl-peach)}
.cat-ph{position:absolute;inset:14%;display:block;overflow:hidden;
  -webkit-mask:var(--blob-r1) center/100% 100% no-repeat;mask:var(--blob-r1) center/100% 100% no-repeat;
  box-shadow:0 8px 16px rgba(74,56,48,.12)}
.cat-card.tilt .cat-ph{-webkit-mask-image:var(--blob-r2);mask-image:var(--blob-r2)}
.cat-ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s ease}
.cat-card:hover .cat-ph img{transform:scale(1.06)}
.cat-bub .ticks{position:absolute;width:24%;left:-4%;top:-4%;color:var(--pl-rose);transform:rotate(-14deg)}
.cat-bub .leaf{position:absolute;width:20%;right:-2%;top:0;color:var(--lg-butter-dp);transform:rotate(18deg)}
.cat-word{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:'Hailey','Segoe Script',cursive;font-size:clamp(28px,3vw,42px);color:var(--pl-rose-dp);transform:rotate(-12deg)}
.cat-card.custom .ticks{left:auto;right:-4%;transform:scaleX(-1) rotate(-14deg)}
.cat-new{position:absolute;top:2%;right:-2%;background:var(--pl-rose);color:#fff;font-family:'Hailey','Segoe Script',cursive;
  font-size:18px;line-height:1;padding:6px 12px 7px;border-radius:999px;transform:rotate(10deg);box-shadow:0 5px 10px rgba(222,64,134,.3)}
.cat-name{display:block;margin-top:12px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;line-height:1.7}

/* ── the pink band of promises ── */
.pl-trust{padding:clamp(18px,2.4vw,30px) 0}
.pl-trust .wrap{max-width:1300px}
.trust-band{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--pink-band);
  border-radius:48px 60px 44px 64px / 60px 44px 64px 48px;padding:clamp(20px,2.4vw,30px) clamp(16px,3vw,40px)}
.trust-band p{display:flex;align-items:center;justify-content:center;gap:clamp(12px,1.6vw,22px);
  font-size:11px;letter-spacing:.24em;text-transform:uppercase;line-height:1.7;color:var(--cocoa-2);padding:4px 10px}
.trust-band p + p{border-left:1.5px solid rgba(90,58,46,.35)}
.trust-band .ic{flex:none;width:32px;color:var(--pl-rose-dp)}
.trust-band .ic.wide{width:40px}
.trust-band .ic svg{width:100%;height:auto;display:block}

/* ── best sellers ── */
.pl-best{padding:clamp(30px,4vw,54px) 0 clamp(56px,6vw,90px)}
.pl-best .wrap{max-width:1300px}
.best-head{display:flex;align-items:center;gap:22px;margin-bottom:clamp(18px,2.4vw,28px)}
.best-head h2{font-family:'Sour Gummy','Poppins',sans-serif;font-weight:800;color:var(--pl-green);
  font-size:clamp(34px,4.2vw,56px);line-height:1;margin-right:auto;display:flex;align-items:flex-start;gap:6px}
.best-head h2 .ticks{width:.55em;color:var(--pl-rose);margin-top:-.15em}
.best-hrt{width:30px;color:var(--pl-rose)}
.best-hrt svg{width:100%;display:block}
.fav-wrap{position:relative}
.fav-track{--g:clamp(12px,1.6vw,20px);display:grid;grid-auto-flow:column;
  grid-auto-columns:calc((100% - 4 * var(--g)) / 5);gap:var(--g);
  overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:6px 2px 12px}
.fav-track::-webkit-scrollbar{display:none}
.fav-card{scroll-snap-align:start;display:block;text-decoration:none;color:var(--cocoa-2)}
.fav-pic{position:relative;display:block;aspect-ratio:.92;border-radius:14px;overflow:hidden;
  background:var(--pl-cream);box-shadow:0 10px 22px rgba(74,56,48,.10)}
.fav-pic img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.3,1)}
.fav-card:hover .fav-pic img{transform:scale(1.05)}
.fav-tag{position:absolute;top:12px;left:12px;background:rgba(255,253,251,.94);color:var(--cocoa-2);
  font-size:10px;letter-spacing:.2em;text-transform:uppercase;padding:7px 13px;border-radius:999px}
.fav-name{display:block;font-family:'Sour Gummy','Poppins',sans-serif;font-weight:600;font-size:clamp(17px,1.6vw,20px);margin-top:12px;color:var(--cocoa-2)}
.fav-price{display:block;font-size:13px;margin-top:4px;opacity:.75}
.fav-btn{position:absolute;top:calc(50% - 50px);z-index:3;width:44px;height:44px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;cursor:pointer;background:#FFFDFB;color:var(--cocoa-2);
  border:1px solid var(--line-l);box-shadow:0 8px 18px rgba(74,56,48,.12);transition:opacity .3s}
.fav-btn svg{width:20px;height:20px}
.fav-btn.prev{left:-22px}.fav-btn.next{right:-22px}
.fav-btn.off{opacity:0;pointer-events:none}

/* ── custom work: dream it, I'll make it ── */
.st-tag{position:absolute;z-index:4;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--cocoa-2);pointer-events:none}
.st-bg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 8px 14px rgba(74,56,48,.14))}
.st-in{position:relative;display:block}
.st-in .h{display:inline-block;width:14px;vertical-align:middle;color:var(--pl-rose-dp)}
.st-in .h svg{width:100%;height:auto;display:block}
.st-tag .st-in{font-family:'Hailey','Segoe Script',cursive;font-size:clamp(17px,1.7vw,21px);line-height:1.2;padding:0 4px}
.dream{position:relative;z-index:3;background:var(--paper);padding:clamp(56px,7vw,96px) 0 clamp(60px,7vw,100px)}
.wave-edge{position:absolute;left:0;top:-15px;width:100%;height:16px;fill:var(--paper);display:block}
.dream-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr) minmax(0,.55fr);
  gap:clamp(26px,3.6vw,54px);align-items:center;max-width:1200px}
.dream-pic{position:relative;margin-left:3%}
.dream-blob{display:block;aspect-ratio:1.08;filter:drop-shadow(0 20px 30px rgba(74,56,48,.14))}
.dream-blob .mk{-webkit-mask-image:var(--blob-dream);mask-image:var(--blob-dream)}
.dream-blob:hover img{transform:scale(1.03)}
.dream-pic .st-left{width:clamp(130px,13vw,166px);aspect-ratio:1.2;left:-5%;top:-4%;transform:rotate(-9deg)}
.dream-words .eb{color:var(--pl-rose-dp)}
.dream-words h2{font-family:'Sour Gummy','Poppins',sans-serif;font-weight:800;font-size:clamp(38px,4.8vw,62px);
  line-height:1;margin-top:16px;color:var(--pl-mauve)}
.dream-words h2 em{font-style:normal;color:var(--pl-green);display:block}
.dream-words p{margin-top:18px;font-size:14px;line-height:1.75;opacity:.82;max-width:40ch}
.dream-words .chips{display:flex;flex-wrap:wrap;gap:8px;opacity:1}
.chips span{border-radius:999px;padding:7px 14px;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--cocoa-2)}
.chips span:nth-child(4n+1){background:var(--pl-pink)} .chips span:nth-child(4n+2){background:var(--pl-lilac)}
.chips span:nth-child(4n+3){background:var(--pl-sage)} .chips span:nth-child(4n+4){background:var(--pl-peach)}
.dream-words .pill-btn{margin-top:26px}
.dream-words .fine{font-size:11.5px;opacity:.6;margin-top:12px}
.polaroid{position:relative;background:#FFFEFB;padding:12px 12px 46px;transform:rotate(4deg);
  box-shadow:0 18px 32px rgba(74,56,48,.16),0 2px 4px rgba(74,56,48,.08)}
.polaroid img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;display:block}
.polaroid .daisy{position:absolute;width:62px;top:-26px;right:-20px;transform:rotate(18deg);filter:drop-shadow(0 4px 6px rgba(74,56,48,.18))}
.polaroid .daisy svg{width:100%;height:auto;display:block}
.polaroid .st-small{width:clamp(120px,11vw,150px);aspect-ratio:1.5;right:-18%;bottom:-8%;transform:rotate(-8deg)}
.polaroid .st-small .st-in{font-size:clamp(15px,1.4vw,18px)}

@media(max-width:1100px){
  .cat-grid{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:26px}
  .fav-track{grid-auto-columns:calc((100% - 3 * var(--g)) / 3.4)}
}
@media(max-width:1000px){
  .dream-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .polaroid{grid-column:2;justify-self:center;width:62%;margin-top:-10px}
  .trust-band{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:14px}
  .trust-band p:nth-child(3){border-left:0}
}
@media(max-width:860px){
  .hero.pl-hero{height:auto;display:flex;flex-direction:column-reverse}
  .pl-photo{position:relative;width:100%;height:auto;aspect-ratio:1.35}
  .pl-shape{display:none}
  .pl-bottom{top:auto}
  .pl-wrap{display:block;height:auto;padding-top:34px;padding-bottom:30px}
  .pl-words{width:100%;text-align:center;padding:0}
  .pl-hero h1{transform:rotate(-2deg);transform-origin:center}
  .pl-hero h1 span{padding-left:0}
  .pl-sub{padding-left:0;white-space:normal}
  .pl-hero .pill-btn{margin-left:0}
  .pl-hero .fl1{left:2%;top:-4%}.pl-hero .fl2{right:2%;top:-2%}
  .pl-hero .fl3,.pl-hero .squig{display:none}
  .pl-hero .hrt-dd{right:14%;top:auto;bottom:22%}
  .pl-note{top:7%;bottom:auto;right:5%;font-size:22px}
  .pl-note .curl{display:none}
}
@media(max-width:700px){
  .cat-grid{display:grid;grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:34%;
    overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:10px 4px 6px;gap:14px}
  .cat-grid::-webkit-scrollbar{display:none}
  .cat-card{scroll-snap-align:start}
  .cat-name{font-size:10px;letter-spacing:.18em}
  .trust-band{grid-template-columns:1fr 1fr;border-radius:32px}
  .trust-band p{flex-direction:column;text-align:center;gap:8px;font-size:9.5px;letter-spacing:.18em}
  .trust-band p + p{border-left:0}
  .fav-track{grid-auto-columns:62%}
  .fav-btn{display:none}
  .best-head .best-hrt{display:none}
  .dream-grid{grid-template-columns:1fr;gap:34px}
  .dream-words{text-align:center}
  .dream-words .eb{justify-content:center}
  .dream-words p{margin-left:auto;margin-right:auto}
  .dream-words .chips{justify-content:center}
  .polaroid{grid-column:auto;width:62%;margin:6px auto 20px}
  .polaroid .st-small{right:-24%}
}

/* ══ PLAYFUL, EVERYWHERE ════════════════════════════════════════════════
   The home page look carried through the rest of the site: the warm pastel
   ground, rounded bubbly headings, pink pill buttons, soft pastel bands in
   place of the old dark ones, and a mauve footer. Everything here overrides
   the calmer styles higher up this file, so deleting this one block brings
   the old look straight back. */
body{background:var(--pl-bg)}
header{background:rgba(248,241,234,.94)}
.shot{background:var(--pl-cream)}

/* headings in the bubbly font */
.banner h1,.hero:not(.pl-hero):not(.open-hero) h1,.sec-head h2,.sec-head h1,.enq h2,.about-grid h2,
.info h1,.coll-boxes .shop-head h1,.shop-head h1{
  font-family:'Sour Gummy','Poppins',sans-serif;font-weight:800;color:var(--pl-mauve);
  letter-spacing:0;line-height:1.08}
.banner h1 em,.sec-head h2 em,.about-grid h2 em,.enq h2 em,.hero:not(.pl-hero) h1 em{font-style:normal;color:var(--pl-green)}
.sec-head h2{font-size:clamp(30px,4vw,46px)}
.info h1{font-size:clamp(32px,4vw,46px)}
.row h3,.prod h3,.steps h3{font-family:'Sour Gummy','Poppins',sans-serif;font-weight:600;color:var(--cocoa-2)}
.prod h3{font-size:clamp(19px,2vw,23px)}
.sec-head .eb,.about-grid .eb,.banner .eb,.enq .eb,.row h3 span,.row .it{color:var(--pl-rose-dp)}

/* buttons become pills */
.btn{border-radius:999px;border:1.5px solid var(--pl-rose);color:var(--pl-rose-dp);
  padding:14px 28px;font-size:10.5px;background:rgba(255,253,251,.6)}
.btn:hover,.btn:focus-visible{background:var(--pl-rose);border-color:var(--pl-rose);color:#FFFDFB}
.btn.solid{background:var(--pl-rose);border-color:var(--pl-rose);color:#FFFDFB;box-shadow:0 8px 18px rgba(222,64,134,.25)}
.btn.solid:hover,.btn.solid:focus-visible{background:var(--pl-rose-dp);border-color:var(--pl-rose-dp)}
.btn.on-dark{border-color:var(--pl-rose);color:var(--pl-rose-dp)}
.btn.on-dark:hover,.btn.on-dark:focus-visible{background:var(--pl-rose);color:#FFFDFB}

/* the page banners: a pastel band with blobs and a scalloped bottom edge */
.banner,.hero:not(.pl-hero):not(.open-hero){position:relative;overflow:hidden;
  background:linear-gradient(160deg,#FBE1DD 0%,#E6DAF4 100%);color:var(--cocoa-2)}
.banner::before,.hero:not(.pl-hero):not(.open-hero)::before{
  content:"";position:absolute;width:clamp(220px,30vw,420px);aspect-ratio:1;right:-4%;top:-30%;
  background:var(--pl-lilac);border-radius:58% 42% 55% 45% / 48% 60% 40% 52%;opacity:.8;pointer-events:none}
.banner::after,.hero:not(.pl-hero):not(.open-hero)::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:16px;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 16'%3E%3Cpath d='M0 16V10Q15 -2 30 10T60 10V16Z' fill='%23F8F1EA'/%3E%3C/svg%3E") repeat-x left bottom/60px 16px}
.banner .wrap,.hero:not(.pl-hero) .wrap{position:relative;z-index:1}
.banner .wrap::before{content:"";position:absolute;width:44px;height:44px;right:clamp(20px,12vw,200px);bottom:-18px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none' stroke='%23DE4086' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cg transform='translate(20 20)'%3E%3Cpath d='M0-4C-6-8-6-17 0-18C6-17 6-8 0-4Z'/%3E%3Cpath d='M0-4C-6-8-6-17 0-18C6-17 6-8 0-4Z' transform='rotate(72)'/%3E%3Cpath d='M0-4C-6-8-6-17 0-18C6-17 6-8 0-4Z' transform='rotate(144)'/%3E%3Cpath d='M0-4C-6-8-6-17 0-18C6-17 6-8 0-4Z' transform='rotate(216)'/%3E%3Cpath d='M0-4C-6-8-6-17 0-18C6-17 6-8 0-4Z' transform='rotate(288)'/%3E%3Ccircle r='3.6'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;
  transform:rotate(14deg);pointer-events:none}
.banner h1{margin-top:16px}
.banner p,.hero:not(.pl-hero) p{opacity:.85;color:var(--cocoa-2)}
.hero:not(.pl-hero) .big{-webkit-text-stroke:1px rgba(90,58,46,.25)}

/* the old dark bands, now soft pastel panels */
section.tint{background:#F3E6DE}
section.dark{background:var(--pl-lilac);color:var(--cocoa-2)}
.enq{background:transparent;color:var(--cocoa-2);padding-top:clamp(30px,4vw,50px)}
.enq > .wrap{background:var(--pink-band);border-radius:52px 64px 48px 70px / 64px 48px 70px 52px;
  padding:clamp(34px,5vw,64px) clamp(26px,5vw,70px);position:relative;overflow:hidden}
.enq > .wrap::after{content:"";position:absolute;width:clamp(120px,16vw,200px);aspect-ratio:1;right:-30px;bottom:-40px;
  background:var(--pl-peach);border-radius:52% 48% 40% 60% / 55% 45% 55% 45%;opacity:.9}
.enq > .wrap > *{position:relative;z-index:1}
.enq p{opacity:.85}
.enq .mail{color:var(--pl-rose-dp)}
.steps{border-top-color:rgba(90,58,46,.25)}
.steps h3{color:var(--cocoa-2)}
.custom-card{background:#FFFDFB;color:var(--cocoa-2);border-radius:26px;box-shadow:0 10px 22px rgba(74,56,48,.08)}
.custom-card:hover,.custom-card:focus-visible{background:var(--pl-pink)}

/* the SEMPRE brand panel on the about pages: a lilac blob */
.plate{background:var(--pl-lilac);border-radius:56% 44% 48% 52% / 46% 54% 46% 54%;aspect-ratio:1;max-width:400px}
.plate .inner{color:var(--pl-mauve)}
.plate .word{font-family:'Sour Gummy','Poppins',sans-serif;font-weight:800;letter-spacing:.06em;font-size:clamp(34px,5vw,54px)}
.plate .rule{background:var(--pl-rose)}
.plate .sub,.plate .it{color:var(--pl-rose-dp)}

/* photo frames: the scalloped edge in a softer mauve */
body{--frame-line:#5A3A2E}
.cart-drawer h2{font-family:'Sour Gummy','Poppins',sans-serif;font-weight:800;color:var(--pl-mauve);font-size:26px}
.cart-drawer{background:var(--pl-bg)}
.pull{border-left-color:var(--pl-rose)}

/* the shop page: bigger bubbles, with the handwritten line under each */
.shop-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(30px,3.6vw,50px) clamp(18px,3vw,40px);max-width:1080px;margin:0 auto}
.shop-grid .cat-name{font-size:12px;margin-top:16px}
.cat-line{display:block;font-family:'Hailey','Segoe Script',cursive;font-size:17px;color:var(--pl-rose-dp);line-height:1.25;margin-top:4px}
.cat-go{display:block;font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;opacity:.6;margin-top:6px}
.cat-card.soon{cursor:default}
.cat-card.soon .cat-ph img{filter:grayscale(.4) brightness(.95);opacity:.8}
.cat-card.soon:hover .cat-bub{transform:none}
.soon-tag{background:var(--pl-mauve)}
.coll-boxes .shop-head{margin-bottom:clamp(28px,4vw,48px)}
.shop-head h1{font-size:clamp(38px,5vw,60px);margin-top:10px}
.shop-head .eb{color:var(--pl-rose-dp)}

/* the footer goes mauve */
footer{background:var(--pl-mauve);color:#FFF8F4;border-top:0;position:relative}
footer::before{content:"";position:absolute;left:0;right:0;top:-15px;height:16px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 16'%3E%3Cpath d='M0 16V10Q15 -2 30 10T60 10V16Z' fill='%235A3A2E'/%3E%3C/svg%3E") repeat-x left bottom/60px 16px}
.foot{opacity:.9}
.foot a:hover{color:var(--pl-pink)}

@media(max-width:1000px){.shop-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){
  .shop-grid{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-columns:auto;overflow:visible;padding:0;gap:30px 16px}
  .enq > .wrap{margin:0 16px;padding:34px 24px}
}

/* ══ PRODUCT PHOTOS AS PLAYFUL TILES ════════════════════════════════════
   The scalloped edge and its outline are switched off for product photos,
   which now match the home page tiles: soft rounded corners, a gentle
   shadow and a white pill (NEW or BEST SELLER) in the corner. On the
   product page the big photo sits on a pastel blob. */
.prod .shot-wrap.framed .shot,.prod .shot{
  -webkit-mask:none;mask:none;border-radius:18px;aspect-ratio:.92;
  background:var(--pl-cream);box-shadow:0 10px 22px rgba(74,56,48,.10)}
.prod .shot-wrap.framed::after{display:none}
.prod .cnr-bow{display:none}
.prod .shot img{border-radius:18px}
.prod .price{font-family:'Poppins',sans-serif;font-size:14px;color:var(--cocoa-2);opacity:.8}
.prod .it{color:var(--pl-rose-dp)}
.fav-tag{z-index:3}

/* the photo itself is cut to a soft blob, the same wobbly shape family as
   the lilac one behind it */
.photo-main{-webkit-mask:var(--blob-dream) center/100% 100% no-repeat;mask:var(--blob-dream) center/100% 100% no-repeat;
  border-radius:0;background:var(--pl-cream);box-shadow:none;z-index:1}
.photo-wrap{filter:drop-shadow(0 16px 26px rgba(74,56,48,.14))}
.photo-main .zoom{right:auto;left:50%;bottom:9%;transform:translateX(-50%)}
.photo-wrap{isolation:isolate}
/* the blob the photo sits on: big enough that a good chunk of it shows,
   pushed down and to the right, with a little pink one peeking out the
   top left corner */
/* the lilac one is the very same blob shape as the photo, just a bit
   bigger, nudged down and to the right and turned a touch */
.photo-wrap::before{content:"";position:absolute;z-index:0;inset:-3% -8% -9% -3%;
  background:var(--pl-lilac);border-radius:0;
  -webkit-mask:var(--blob-dream) center/100% 100% no-repeat;mask:var(--blob-dream) center/100% 100% no-repeat;
  transform:rotate(-5deg)}
.photo-wrap::after{content:"";display:block;position:absolute;z-index:0;width:30%;aspect-ratio:1;
  top:-8%;left:-8%;right:auto;bottom:auto;height:auto;background:var(--pl-pink);
  border-radius:0;transform:rotate(12deg);
  -webkit-mask:var(--blob-dream) center/100% 100% no-repeat;mask:var(--blob-dream) center/100% 100% no-repeat}
.photo-main .zoom{border-radius:999px;background:rgba(255,253,251,.92);color:var(--cocoa-2)}
.thumbs{margin-top:10px}
/* the little ones are round blobs; the one showing gets a pink blob behind it */
.thumbs .thumb img{-webkit-mask:var(--blob-r1) center/100% 100% no-repeat;mask:var(--blob-r1) center/100% 100% no-repeat;
  border-radius:0;background:var(--pl-cream);position:relative;z-index:1}
.thumbs .thumb:nth-child(even) img,.thumbs .thumb:nth-child(even)::before{-webkit-mask-image:var(--blob-r2);mask-image:var(--blob-r2)}
.thumbs .thumb::after{display:none}
.thumbs .thumb::before{content:"";position:absolute;inset:-10%;z-index:0;
  -webkit-mask:var(--blob-r1) center/100% 100% no-repeat;mask:var(--blob-r1) center/100% 100% no-repeat;
  background:var(--pl-pink);transform:rotate(-8deg) scale(.6);opacity:0;transition:opacity .25s,transform .35s cubic-bezier(.3,1.4,.5,1)}
.thumbs .thumb[aria-pressed="true"]::before{opacity:1;transform:rotate(-8deg) scale(1)}
.thumbs{margin-top:clamp(26px,4vw,44px)}
.gallery{padding:8px 0 0 8px}
@media(max-width:700px){
  .photo-wrap::before{inset:-2% -1% -6% -2%}
  .photo-wrap::after{width:26%;top:-5%;left:-5%}
}
/* a cart line for a piece with no colour to pick shows its photo */
.line .sw.ph img,.ci .sw.ph img{width:100%;height:100%;object-fit:cover;display:block;border-radius:10px}
.line .sw.ph,.ci .sw.ph{border-radius:10px;background:var(--pl-cream)}

/* nothing decorative is ever allowed to push the page sideways on a phone */
main{overflow-x:clip}

/* ══ THE PRODUCT PAGE, CLOUD STYLE ══════════════════════════════════════
   The big photo is cut to a cloud with a soft pink halo of the same shape
   around it, arrows either side to flick through the photos, a pink
   handwritten sticker on the corner and a few doodles scattered round.
   The small photos underneath go back to the scalloped edge, with a brown
   outline on the one showing. The name is back in Prata with a heart. */
:root{--blob-cloud:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M98.0 49.9L98.2 50.6L98.3 51.2L98.4 51.9L98.6 52.5L98.7 53.2L98.8 53.8L98.9 54.5L99.0 55.2L99.1 55.9L99.2 56.5L99.2 57.2L99.3 57.9L99.4 58.6L99.4 59.3L99.4 60.0L99.5 60.7L99.5 61.4L99.5 62.1L99.5 62.8L99.5 63.5L99.5 64.2L99.4 64.9L99.4 65.6L99.3 66.3L99.3 67.0L99.2 67.7L99.1 68.4L99.0 69.1L98.9 69.8L98.8 70.6L98.7 71.3L98.6 72.0L98.4 72.7L98.3 73.4L98.1 74.1L97.9 74.9L97.8 75.6L97.6 76.3L97.4 77.0L97.2 77.7L96.9 78.4L96.7 79.1L96.5 79.8L96.4 80.6L96.4 81.5L96.3 82.4L96.3 83.3L96.2 84.2L96.1 85.1L96.0 86.0L95.9 86.8L95.7 87.7L95.5 88.5L95.2 89.4L94.9 90.2L94.6 90.9L94.2 91.7L93.8 92.4L93.4 93.1L92.9 93.7L92.3 94.3L91.7 94.8L91.1 95.4L90.5 95.8L89.8 96.3L89.1 96.6L88.3 97.0L87.6 97.3L86.8 97.6L86.0 97.8L85.1 98.0L84.3 98.1L83.4 98.3L82.6 98.4L81.7 98.4L80.9 98.5L80.0 98.5L79.1 98.5L78.3 98.5L77.4 98.5L76.5 98.4L75.7 98.4L74.9 98.3L74.0 98.2L73.2 98.1L72.4 98.0L71.6 97.9L70.8 97.8L70.0 97.6L69.2 97.5L68.5 97.4L67.8 97.4L67.1 97.5L66.5 97.7L65.8 97.8L65.2 98.0L64.6 98.1L63.9 98.2L63.3 98.4L62.6 98.5L62.0 98.6L61.4 98.7L60.7 98.8L60.1 98.9L59.5 99.0L58.8 99.1L58.2 99.2L57.5 99.2L56.9 99.3L56.3 99.4L55.6 99.4L55.0 99.4L54.3 99.5L53.7 99.5L53.1 99.5L52.4 99.5L51.8 99.5L51.1 99.5L50.5 99.4L49.9 99.4L49.2 99.4L48.6 99.3L48.0 99.3L47.3 99.2L46.7 99.1L46.1 99.0L45.4 98.9L44.8 98.8L44.2 98.7L43.6 98.6L42.9 98.5L42.3 98.4L41.7 98.3L41.1 98.1L40.5 98.0L39.8 97.9L39.2 97.7L38.6 97.6L38.0 97.5L37.3 97.5L36.6 97.6L35.9 97.8L35.2 97.9L34.5 98.0L33.8 98.1L33.0 98.3L32.3 98.4L31.5 98.5L30.8 98.6L30.0 98.7L29.2 98.8L28.5 98.9L27.7 98.9L26.9 99.0L26.1 99.0L25.3 99.1L24.5 99.1L23.6 99.1L22.8 99.1L22.0 99.0L21.2 99.0L20.4 98.9L19.6 98.8L18.7 98.7L17.9 98.5L17.1 98.4L16.3 98.2L15.6 98.0L14.8 97.7L14.0 97.4L13.3 97.1L12.6 96.7L11.9 96.4L11.3 95.9L10.6 95.5L10.0 94.9L9.5 94.4L8.9 93.8L8.4 93.2L8.0 92.5L7.6 91.9L7.2 91.1L6.8 90.4L6.5 89.6L6.3 88.8L6.0 88.0L5.8 87.2L5.5 86.5L5.1 85.8L4.8 85.1L4.4 84.5L4.1 83.8L3.8 83.1L3.5 82.3L3.3 81.6L3.0 80.9L2.8 80.1L2.6 79.4L2.4 78.6L2.2 77.9L2.1 77.1L2.0 76.4L1.8 75.6L1.7 74.9L1.6 74.1L1.5 73.4L1.5 72.6L1.4 71.9L1.4 71.1L1.3 70.4L1.3 69.6L1.3 68.9L1.3 68.2L1.3 67.4L1.3 66.7L1.3 66.0L1.4 65.2L1.4 64.5L1.5 63.8L1.5 63.1L1.6 62.4L1.6 61.7L1.7 61.0L1.8 60.3L1.9 59.6L2.0 59.0L2.1 58.3L2.2 57.6L2.3 56.9L2.4 56.3L2.5 55.6L2.7 55.0L2.8 54.3L2.9 53.7L3.0 53.0L3.0 52.4L2.8 51.8L2.7 51.2L2.5 50.6L2.4 49.9L2.2 49.3L2.1 48.7L1.9 48.0L1.8 47.4L1.7 46.7L1.5 46.1L1.4 45.4L1.3 44.7L1.2 44.1L1.1 43.4L1.0 42.7L0.9 42.0L0.8 41.4L0.8 40.7L0.7 40.0L0.6 39.3L0.6 38.6L0.6 37.9L0.5 37.2L0.5 36.5L0.5 35.8L0.5 35.0L0.5 34.3L0.5 33.6L0.6 32.9L0.6 32.2L0.7 31.5L0.7 30.7L0.8 30.0L0.9 29.3L1.0 28.6L1.1 27.8L1.2 27.1L1.3 26.4L1.4 25.6L1.6 24.9L1.7 24.2L1.9 23.4L2.1 22.7L2.3 22.0L2.5 21.2L2.7 20.5L2.9 19.8L3.0 18.9L2.9 18.0L2.9 17.1L3.0 16.2L3.0 15.3L3.1 14.4L3.2 13.5L3.3 12.6L3.5 11.7L3.6 10.8L3.9 10.0L4.2 9.1L4.5 8.4L4.9 7.6L5.3 6.9L5.7 6.2L6.2 5.5L6.7 4.9L7.3 4.3L7.9 3.8L8.6 3.3L9.3 2.9L10.0 2.5L10.8 2.1L11.6 1.8L12.4 1.5L13.2 1.3L14.0 1.1L14.9 0.9L15.8 0.8L16.6 0.7L17.5 0.7L18.4 0.6L19.3 0.6L20.2 0.6L21.0 0.6L21.9 0.7L22.8 0.7L23.7 0.8L24.5 0.9L25.4 1.0L26.2 1.1L27.0 1.3L27.9 1.4L28.7 1.5L29.5 1.7L30.3 1.8L31.1 2.0L31.8 2.0L32.4 1.8L33.1 1.7L33.7 1.6L34.4 1.5L35.1 1.4L35.7 1.3L36.4 1.2L37.0 1.1L37.7 1.0L38.3 0.9L38.9 0.8L39.6 0.8L40.2 0.7L40.9 0.7L41.5 0.6L42.2 0.6L42.8 0.5L43.5 0.5L44.1 0.5L44.8 0.5L45.4 0.5L46.0 0.5L46.7 0.5L47.3 0.6L48.0 0.6L48.6 0.6L49.2 0.7L49.9 0.8L50.5 0.8L51.1 0.9L51.8 1.0L52.4 1.1L53.0 1.2L53.6 1.3L54.2 1.4L54.9 1.5L55.5 1.7L56.1 1.8L56.7 1.9L57.3 2.1L57.9 2.2L58.5 2.4L59.1 2.5L59.7 2.6L60.3 2.8L60.9 2.9L61.5 3.1L62.2 3.1L62.9 3.0L63.6 2.8L64.3 2.7L65.0 2.6L65.7 2.5L66.4 2.4L67.1 2.2L67.9 2.1L68.6 2.0L69.4 1.9L70.2 1.9L70.9 1.8L71.7 1.7L72.5 1.6L73.3 1.6L74.1 1.6L74.9 1.5L75.7 1.5L76.5 1.5L77.3 1.5L78.1 1.6L78.9 1.6L79.8 1.7L80.6 1.8L81.4 1.9L82.2 2.1L83.0 2.3L83.8 2.5L84.5 2.7L85.3 2.9L86.0 3.2L86.7 3.6L87.4 3.9L88.1 4.3L88.8 4.8L89.4 5.3L90.0 5.8L90.5 6.3L91.0 6.9L91.5 7.5L92.0 8.2L92.4 8.9L92.7 9.6L93.1 10.4L93.3 11.1L93.6 11.9L93.8 12.7L94.2 13.4L94.6 14.0L95.0 14.7L95.4 15.3L95.7 16.0L96.0 16.7L96.4 17.4L96.6 18.1L96.9 18.8L97.2 19.6L97.4 20.3L97.6 21.0L97.8 21.8L98.0 22.5L98.1 23.3L98.3 24.0L98.4 24.7L98.5 25.5L98.7 26.2L98.8 27.0L98.8 27.7L98.9 28.5L99.0 29.2L99.0 30.0L99.0 30.7L99.1 31.5L99.1 32.2L99.1 32.9L99.1 33.7L99.1 34.4L99.0 35.1L99.0 35.8L98.9 36.5L98.9 37.3L98.8 38.0L98.7 38.7L98.7 39.4L98.6 40.1L98.5 40.8L98.4 41.4L98.3 42.1L98.2 42.8L98.1 43.5L97.9 44.1L97.8 44.8L97.7 45.5L97.6 46.1L97.4 46.8L97.5 47.4L97.6 48.0L97.7 48.6L97.9 49.3Z'/%3E%3C/svg%3E");--blob-sticker:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M97.0 49.8L97.5 51.1L97.9 52.4L98.3 53.7L98.6 55.1L98.9 56.5L99.2 57.9L99.4 59.3L99.5 60.7L99.5 62.1L99.5 63.5L99.3 64.9L99.1 66.3L98.8 67.7L98.5 69.1L98.0 70.4L97.4 71.7L96.8 72.9L96.1 74.1L95.3 75.3L94.5 76.4L93.5 77.4L92.6 78.4L91.5 79.4L90.4 80.2L89.3 81.1L88.1 81.8L86.9 82.5L86.4 83.7L85.8 85.1L85.2 86.4L84.6 87.6L83.9 88.8L83.1 90.0L82.2 91.1L81.3 92.2L80.3 93.1L79.3 94.0L78.2 94.9L77.0 95.6L75.8 96.3L74.6 96.8L73.3 97.3L71.9 97.7L70.6 98.0L69.2 98.2L67.9 98.4L66.5 98.4L65.1 98.4L63.7 98.3L62.3 98.1L61.0 97.9L59.6 97.6L58.3 97.3L57.0 96.9L55.7 96.5L54.5 96.1L53.3 95.6L52.1 96.0L51.0 96.5L49.8 97.0L48.6 97.4L47.3 97.8L46.1 98.2L44.8 98.6L43.5 98.9L42.2 99.1L40.9 99.3L39.5 99.4L38.2 99.5L36.9 99.5L35.5 99.4L34.2 99.2L32.9 98.9L31.6 98.6L30.3 98.2L29.1 97.6L27.9 97.1L26.7 96.4L25.6 95.6L24.6 94.8L23.5 93.9L22.6 93.0L21.7 91.9L20.8 90.9L20.0 89.8L19.3 88.6L18.6 87.4L17.4 86.9L16.1 86.4L14.8 85.8L13.6 85.2L12.4 84.5L11.3 83.7L10.2 82.8L9.1 81.9L8.2 81.0L7.3 79.9L6.5 78.8L5.7 77.6L5.0 76.4L4.5 75.2L4.0 73.9L3.6 72.5L3.2 71.2L3.0 69.8L2.8 68.4L2.7 67.0L2.7 65.6L2.8 64.2L2.9 62.7L3.1 61.4L3.3 60.0L3.6 58.6L3.9 57.3L4.2 56.0L4.6 54.7L5.0 53.4L4.6 52.2L4.1 51.0L3.6 49.8L3.1 48.5L2.6 47.2L2.2 45.9L1.7 44.6L1.4 43.2L1.1 41.8L0.8 40.4L0.7 39.0L0.5 37.6L0.5 36.2L0.5 34.8L0.7 33.3L0.9 31.9L1.1 30.6L1.5 29.2L2.0 27.9L2.5 26.6L3.1 25.3L3.9 24.1L4.6 22.9L5.5 21.8L6.4 20.8L7.4 19.8L8.5 18.9L9.6 18.0L10.7 17.2L11.9 16.4L12.4 15.1L12.9 13.8L13.5 12.4L14.2 11.1L14.9 9.8L15.7 8.6L16.5 7.5L17.5 6.4L18.5 5.4L19.6 4.5L20.7 3.7L21.9 3.0L23.2 2.3L24.5 1.8L25.8 1.3L27.2 1.0L28.6 0.7L30.0 0.6L31.4 0.5L32.8 0.5L34.3 0.6L35.7 0.8L37.1 1.1L38.5 1.4L39.9 1.7L41.2 2.2L42.5 2.6L43.8 3.1L45.1 3.6L46.3 4.2L47.4 3.9L48.6 3.5L49.8 3.1L51.0 2.7L52.2 2.4L53.4 2.1L54.7 1.8L55.9 1.6L57.2 1.4L58.5 1.3L59.8 1.2L61.1 1.2L62.4 1.2L63.7 1.4L65.0 1.6L66.3 1.8L67.5 2.2L68.7 2.6L69.9 3.1L71.1 3.7L72.3 4.3L73.4 5.0L74.4 5.8L75.4 6.6L76.4 7.5L77.3 8.5L78.2 9.5L79.0 10.5L79.8 11.6L80.5 12.7L81.8 13.2L83.1 13.6L84.4 14.1L85.7 14.7L87.0 15.3L88.2 16.0L89.3 16.8L90.4 17.6L91.5 18.6L92.5 19.5L93.4 20.6L94.2 21.7L95.0 22.9L95.6 24.1L96.2 25.4L96.7 26.7L97.1 28.1L97.4 29.5L97.6 30.9L97.8 32.3L97.8 33.7L97.8 35.1L97.7 36.6L97.6 38.0L97.4 39.4L97.1 40.8L96.8 42.1L96.4 43.5L96.0 44.8L95.6 46.1L96.0 47.3L96.5 48.5Z'/%3E%3C/svg%3E")}
.photo-main{-webkit-mask:var(--blob-cloud) center/100% 100% no-repeat;mask:var(--blob-cloud) center/100% 100% no-repeat;aspect-ratio:1}
/* the whole photo shows: square frame for square photos, and the cloud's
   bumps only nibble the very edge, which is background in every shot */
.photo-wrap{filter:none}
.photo-wrap::before{inset:-3.4% -3% -3.8% -3.2%;background:var(--pl-pink);transform:none;
  -webkit-mask-image:var(--blob-cloud);mask-image:var(--blob-cloud)}
.photo-wrap::after{display:none}
.gallery{padding:26px 22px 0 26px}
.pd-arrow{position:absolute;top:50%;z-index:5;width:46px;height:46px;border-radius:50%;border:0;cursor:pointer;
  transform:translateY(-50%);background:#FFFDFB;color:var(--cocoa-2);display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 16px rgba(74,56,48,.16);transition:transform .25s}
.pd-arrow:hover{transform:translateY(-50%) scale(1.08)}
.pd-arrow svg{width:20px;height:20px}
.pd-arrow.prev{left:-12px}.pd-arrow.next{right:-12px}
.pd-arrow[hidden]{display:none}
.pd-sticker{position:absolute;z-index:6;width:clamp(120px,30%,170px);aspect-ratio:1.08;left:-5%;top:-8%;
  display:flex;align-items:center;justify-content:center;text-align:center;transform:rotate(-8deg);pointer-events:none}
.pd-sticker::before{content:"";position:absolute;inset:0;background:var(--pl-pink);
  -webkit-mask:var(--blob-sticker) center/100% 100% no-repeat;mask:var(--blob-sticker) center/100% 100% no-repeat;
  filter:drop-shadow(0 6px 10px rgba(74,56,48,.1))}
.pd-sticker span{position:relative;font-family:'Hailey','Segoe Script',cursive;font-size:clamp(18px,1.9vw,23px);line-height:1.1;color:var(--cocoa-2)}
.pd-sticker i{display:block;width:16px;height:16px;margin:4px auto 0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30' fill='none' stroke='%23DE4086' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 26C6 18 4 13 6 9c2-4 7-4 9 1 2-5 7-5 9-1 2 4 0 9-9 17Z'/%3E%3C/svg%3E") center/contain no-repeat}
.pd-dd{position:absolute;z-index:6;pointer-events:none;color:var(--pl-rose)}
.pd-dd svg{width:100%;height:auto;display:block}
.pd-dd.hrt{width:clamp(34px,4vw,50px);right:0;top:-6%;transform:rotate(12deg)}
.pd-dd.tk1{width:36px;right:-6%;top:14%;transform:rotate(80deg)}
.pd-dd.fl{width:clamp(40px,4.6vw,58px);right:-2%;bottom:-6%;transform:rotate(-12deg)}
.pd-dd.tk2{width:34px;left:-6%;bottom:0;transform:rotate(-100deg)}

/* the small photos: scalloped, with a brown outline on the one showing */
.thumbs{grid-template-columns:repeat(4,1fr);gap:12px;margin-top:clamp(30px,4vw,46px)}
.thumbs .thumb{aspect-ratio:1;opacity:1}
.thumbs .thumb img{-webkit-mask:url(../images/wave.svg) center/100% 100% no-repeat;mask:url(../images/wave.svg) center/100% 100% no-repeat}
.thumbs .thumb:nth-child(even) img{-webkit-mask-image:url(../images/wave.svg);mask-image:url(../images/wave.svg)}
.thumbs .thumb::before{display:none}
.thumbs .thumb::after{display:block;opacity:0;background:var(--cocoa-2);z-index:2}
.thumbs .thumb[aria-pressed="true"]::after{opacity:1}
.thumbs .thumb:not([aria-pressed="true"]) img{opacity:.85}

/* the words beside it */
.info .eb i{font-style:normal;text-transform:uppercase;letter-spacing:.34em;font-size:10.5px}
.info .eb{color:var(--cocoa-2);opacity:.8}
.info h1{font-family:'Prata',serif;font-weight:400;color:var(--cocoa-2);font-size:clamp(38px,4.6vw,58px);line-height:1.1}
.info h1 .nw{white-space:nowrap}
.info h1 .h1-hrt{display:inline-block;width:.62em;height:.62em;margin-left:.3em;vertical-align:.1em;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30' fill='none' stroke='%23DE4086' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 26C6 18 4 13 6 9c2-4 7-4 9 1 2-5 7-5 9-1 2 4 0 9-9 17Z'/%3E%3C/svg%3E") center/contain no-repeat;transform:rotate(12deg)}
.info .price{font-size:clamp(28px,3vw,38px);margin-top:12px;color:var(--caramel-dp)}

/* straight choices shown as buttons, like Frame style */
.choice-btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px}
.choice-btn{display:inline-flex;align-items:center;gap:12px;min-width:150px;padding:9px 22px 9px 9px;cursor:pointer;
  border:1.5px solid rgba(62,46,39,.2);border-radius:12px;background:#FFFDFB;font-family:inherit;font-size:14px;color:var(--cocoa-2)}
.choice-btn.no-sw{padding:12px 22px;min-width:0}
.choice-btn[aria-pressed="true"]{border-color:var(--cocoa-2);box-shadow:0 0 0 1px var(--cocoa-2)}
.choice-btn .sw{width:32px;height:32px;border-radius:50%;background:var(--sw);border:1px solid rgba(62,46,39,.12);flex:none}

/* the cart as a little bag with the count on it */
.cart-btn{font-size:0;letter-spacing:0;gap:0;width:40px;height:40px;justify-content:center;opacity:1}
.cart-btn::before{content:"";width:26px;height:26px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233E2E27' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1 12H6L5 8Z'/%3E%3Cpath d='M9 8V6a3 3 0 0 1 6 0v2'/%3E%3C/svg%3E") center/contain no-repeat}
.cart-btn .count{position:absolute;top:0;right:-2px;min-width:19px;height:19px;font-size:10px;padding:0 5px;background:var(--pl-rose);color:#fff}
.cart-btn .count[data-empty="true"]{background:var(--pl-rose);color:#fff;opacity:1}
@media(max-width:820px){
  .bar{position:relative}
  .bar nav .cart-btn{position:absolute;right:clamp(14px,4vw,28px);top:14px}
}
@media(max-width:700px){
  .gallery{padding:22px 10px 0 12px}
  .pd-arrow{width:40px;height:40px}.pd-arrow.prev{left:-6px}.pd-arrow.next{right:-6px}
  .pd-dd.tk1,.pd-dd.tk2{display:none}
  .thumbs{gap:8px}
}

/* ══ CLOUD PHOTOS, EVERYWHERE ═══════════════════════════════════════════
   Every photo tile on the site now matches the product page: the photo is
   cut to the same cloud shape, with a soft halo of the same shape around
   it. The photo itself is what carries the shape (not its box), so the
   halo can sit behind it. Square boxes for square photos, so nothing
   important gets cropped. */

/* collection cards, the "more in this collection" row, the about and
   custom page photos */
.shot-wrap.framed .shot,.prod .shot,.prod .shot-wrap.framed .shot,.fav-pic{
  -webkit-mask:none;mask:none;overflow:visible;background:none;box-shadow:none;border-radius:0;
  position:relative;isolation:isolate}
.prod .shot,.fav-pic{aspect-ratio:1}
.shot-wrap.framed::after{display:none}
.shot-wrap.framed .shot img,.prod .shot img,.fav-pic img{
  position:relative;z-index:1;border-radius:0;
  -webkit-mask:var(--blob-cloud) center/100% 100% no-repeat;mask:var(--blob-cloud) center/100% 100% no-repeat}
.shot-wrap.framed .shot::before,.prod .shot::before,.fav-pic::before{
  content:"";position:absolute;z-index:0;inset:-3.6% -3.2% -4% -3.4%;background:var(--pl-pink);
  -webkit-mask:var(--blob-cloud) center/100% 100% no-repeat;mask:var(--blob-cloud) center/100% 100% no-repeat}
/* a tile lifts a little rather than zooming, so the shape stays put */
a.shot:hover img,.fav-card:hover .fav-pic img{transform:none}
.shot-wrap.framed .shot,.prod .shot,.fav-pic{transition:transform .35s cubic-bezier(.3,1.4,.5,1)}
a.shot:hover,.fav-card:hover .fav-pic,.prod:hover .shot{transform:translateY(-4px) rotate(-.6deg)}
.shot .ph{z-index:0;background:none}
/* the NEW / BEST SELLER pill sits a little further in, clear of the bumps */
.fav-tag{top:7%;left:7%;z-index:3}
/* a little breathing room so the halo never touches its neighbour */
.prod-grid{row-gap:clamp(40px,5vw,60px)}
.fav-track{padding:14px 10px 16px}

/* names and prices on the cards, the same as on the product page */
.prod h3,.fav-name{font-family:'Prata',serif;font-weight:400;color:var(--cocoa-2)}
.prod h3{font-size:clamp(20px,2vw,24px);margin-top:22px}
.fav-name{font-size:clamp(17px,1.6vw,20px);margin-top:18px}
.prod .price,.fav-price{font-family:'Prata',serif;color:var(--caramel-dp);opacity:1}
.prod .price{font-size:18px}
.fav-price{font-size:16px}

/* the category bubbles: the photo in a cloud, on a pastel cloud */
.cb-bg{display:none}
.cat-bub::before{content:"";position:absolute;inset:0;background:var(--tone,var(--pl-pink));
  -webkit-mask:var(--blob-cloud) center/100% 100% no-repeat;mask:var(--blob-cloud) center/100% 100% no-repeat}
.cat-card.tilt .cat-bub::before{transform:rotate(6deg)}
.cat-card:not(.tilt) .cat-bub::before{transform:rotate(-5deg)}
.tone-pink{--tone:var(--pl-pink)} .tone-lilac{--tone:var(--pl-lilac)} .tone-cream{--tone:var(--pl-cream)}
.tone-sage{--tone:var(--pl-sage)} .tone-peach{--tone:var(--pl-peach)}
.cat-ph,.cat-card.tilt .cat-ph{inset:7%;box-shadow:none;
  -webkit-mask:var(--blob-cloud) center/100% 100% no-repeat;mask:var(--blob-cloud) center/100% 100% no-repeat}

/* the custom work photo on the home page */
.dream-blob{position:relative;isolation:isolate;filter:none}
.dream-blob .mk{position:relative;z-index:1;-webkit-mask-image:var(--blob-cloud);mask-image:var(--blob-cloud)}
.dream-blob::before{content:"";position:absolute;z-index:0;inset:-3% -3% -3.4% -3%;background:var(--pl-pink);
  -webkit-mask:var(--blob-cloud) center/100% 100% no-repeat;mask:var(--blob-cloud) center/100% 100% no-repeat}
.dream-blob{aspect-ratio:1}


/* ══ ...BUT NOT ALL THE SAME SHAPE ══════════════════════════════════════
   Five shapes take turns down every row of photos, so neighbours never
   match: the product page cloud, a scalloped stamp, a soft wobbly square,
   a chunky big-bump cloud and a puffy pillow. The halo behind each one is
   the same shape as its own photo, in a colour that takes turns too
   (pink, lilac, peach, sage). To add a shape, add a --shape line and a
   nth-child line below. */
:root{
  --shape-1:var(--blob-cloud);
  --shape-2:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M98.5 50.0L98.8 50.6L99.0 51.3L99.2 51.9L99.4 52.6L99.5 53.3L99.5 53.9L99.5 54.6L99.4 55.2L99.2 55.9L99.1 56.5L98.8 57.1L98.6 57.8L98.3 58.4L98.3 59.0L98.6 59.7L98.8 60.5L99.0 61.2L99.2 61.9L99.4 62.6L99.5 63.4L99.5 64.1L99.5 64.8L99.4 65.5L99.3 66.1L99.1 66.8L98.8 67.4L98.6 68.1L98.3 68.7L98.3 69.4L98.5 70.3L98.8 71.1L99.0 72.0L99.2 72.9L99.3 73.7L99.4 74.6L99.4 75.4L99.4 76.2L99.3 77.0L99.2 77.7L98.9 78.5L98.7 79.2L98.4 79.9L98.1 80.6L98.0 81.4L98.2 82.5L98.4 83.5L98.6 84.6L98.7 85.6L98.7 86.7L98.7 87.6L98.5 88.6L98.3 89.4L98.0 90.2L97.6 91.0L97.1 91.7L96.6 92.3L95.9 92.8L95.2 93.2L94.7 93.9L94.4 94.7L94.0 95.5L93.5 96.2L93.0 96.9L92.3 97.4L91.6 97.8L90.8 98.2L89.9 98.4L89.0 98.5L88.0 98.6L86.9 98.5L85.9 98.4L84.8 98.3L83.7 98.1L82.8 98.1L82.1 98.4L81.4 98.7L80.7 99.0L79.9 99.2L79.1 99.4L78.3 99.5L77.5 99.5L76.7 99.5L75.8 99.4L74.9 99.3L74.0 99.1L73.1 98.8L72.2 98.6L71.3 98.3L70.6 98.3L70.0 98.5L69.3 98.8L68.7 99.0L68.0 99.2L67.3 99.3L66.6 99.4L65.9 99.4L65.2 99.4L64.5 99.3L63.8 99.2L63.0 99.0L62.3 98.8L61.6 98.5L60.8 98.2L60.2 98.2L59.6 98.4L59.0 98.7L58.3 98.9L57.7 99.1L57.1 99.2L56.4 99.3L55.8 99.4L55.1 99.3L54.5 99.2L53.8 99.1L53.2 98.9L52.5 98.7L51.9 98.4L51.3 98.1L50.6 98.1L50.0 98.4L49.4 98.6L48.7 98.9L48.1 99.0L47.4 99.2L46.8 99.3L46.1 99.3L45.5 99.3L44.9 99.2L44.2 99.0L43.6 98.9L43.0 98.6L42.4 98.4L41.8 98.1L41.2 98.1L40.5 98.3L39.7 98.6L39.0 98.8L38.3 99.0L37.6 99.2L36.9 99.3L36.2 99.3L35.5 99.3L34.8 99.2L34.2 99.0L33.5 98.9L32.9 98.6L32.3 98.4L31.7 98.1L31.0 98.1L30.1 98.3L29.3 98.6L28.4 98.8L27.6 99.0L26.7 99.2L25.9 99.3L25.1 99.3L24.3 99.3L23.5 99.2L22.8 99.0L22.0 98.8L21.3 98.6L20.6 98.3L19.9 98.0L19.1 97.9L18.1 98.2L17.0 98.4L16.0 98.5L14.9 98.6L13.9 98.7L12.9 98.7L12.0 98.5L11.2 98.3L10.3 98.0L9.6 97.7L8.9 97.2L8.3 96.6L7.8 96.0L7.3 95.3L6.7 94.8L5.9 94.5L5.1 94.1L4.3 93.7L3.7 93.1L3.2 92.5L2.7 91.8L2.4 91.0L2.2 90.1L2.0 89.2L1.9 88.2L2.0 87.1L2.1 86.1L2.2 85.0L2.4 83.9L2.3 83.0L2.0 82.3L1.7 81.6L1.4 80.9L1.2 80.1L1.0 79.4L0.9 78.6L0.8 77.7L0.8 76.9L0.9 76.0L1.0 75.1L1.2 74.3L1.4 73.4L1.6 72.5L1.9 71.6L1.9 70.8L1.7 70.2L1.4 69.5L1.1 68.9L1.0 68.2L0.8 67.6L0.7 66.9L0.7 66.2L0.7 65.4L0.8 64.7L0.9 64.0L1.1 63.2L1.3 62.5L1.5 61.7L1.8 61.0L1.8 60.3L1.5 59.7L1.3 59.1L1.1 58.5L0.9 57.8L0.7 57.2L0.6 56.6L0.6 55.9L0.6 55.2L0.7 54.6L0.8 53.9L1.0 53.2L1.2 52.6L1.5 51.9L1.7 51.3L1.8 50.6L1.5 50.0L1.2 49.4L1.0 48.7L0.8 48.1L0.6 47.4L0.5 46.7L0.5 46.1L0.5 45.4L0.6 44.8L0.8 44.1L0.9 43.5L1.2 42.9L1.4 42.2L1.7 41.6L1.7 41.0L1.4 40.3L1.2 39.5L1.0 38.8L0.8 38.1L0.6 37.4L0.5 36.6L0.5 35.9L0.5 35.2L0.6 34.5L0.7 33.9L0.9 33.2L1.2 32.6L1.4 31.9L1.7 31.3L1.7 30.6L1.5 29.7L1.2 28.9L1.0 28.0L0.8 27.1L0.7 26.3L0.6 25.4L0.6 24.6L0.6 23.8L0.7 23.0L0.8 22.3L1.1 21.5L1.3 20.8L1.6 20.1L1.9 19.4L2.0 18.6L1.8 17.5L1.6 16.5L1.4 15.4L1.3 14.4L1.3 13.3L1.3 12.4L1.5 11.4L1.7 10.6L2.0 9.8L2.4 9.0L2.9 8.3L3.4 7.7L4.1 7.2L4.8 6.8L5.3 6.1L5.6 5.3L6.0 4.5L6.5 3.8L7.0 3.1L7.7 2.6L8.4 2.2L9.2 1.8L10.1 1.6L11.0 1.5L12.0 1.4L13.1 1.5L14.1 1.6L15.2 1.7L16.3 1.9L17.2 1.9L17.9 1.6L18.6 1.3L19.3 1.0L20.1 0.8L20.9 0.6L21.7 0.5L22.5 0.5L23.3 0.5L24.2 0.6L25.1 0.7L26.0 0.9L26.9 1.2L27.8 1.4L28.7 1.7L29.4 1.7L30.0 1.5L30.7 1.2L31.3 1.0L32.0 0.8L32.7 0.7L33.4 0.6L34.1 0.6L34.8 0.6L35.5 0.7L36.2 0.8L37.0 1.0L37.7 1.2L38.4 1.5L39.2 1.8L39.8 1.8L40.4 1.6L41.0 1.3L41.7 1.1L42.3 0.9L42.9 0.8L43.6 0.7L44.2 0.6L44.9 0.7L45.5 0.8L46.2 0.9L46.8 1.1L47.5 1.3L48.1 1.6L48.7 1.9L49.4 1.9L50.0 1.6L50.6 1.4L51.3 1.1L51.9 1.0L52.6 0.8L53.2 0.7L53.9 0.7L54.5 0.7L55.1 0.8L55.8 1.0L56.4 1.1L57.0 1.4L57.6 1.6L58.2 1.9L58.8 1.9L59.5 1.7L60.3 1.4L61.0 1.2L61.7 1.0L62.4 0.8L63.1 0.7L63.8 0.7L64.5 0.7L65.2 0.8L65.8 1.0L66.5 1.1L67.1 1.4L67.7 1.6L68.3 1.9L69.0 1.9L69.9 1.7L70.7 1.4L71.6 1.2L72.4 1.0L73.3 0.8L74.1 0.7L74.9 0.7L75.7 0.7L76.5 0.8L77.2 1.0L78.0 1.2L78.7 1.4L79.4 1.7L80.1 2.0L80.9 2.1L81.9 1.8L83.0 1.6L84.0 1.5L85.1 1.4L86.1 1.3L87.1 1.3L88.0 1.5L88.8 1.7L89.7 2.0L90.4 2.3L91.1 2.8L91.7 3.4L92.2 4.0L92.7 4.7L93.3 5.2L94.1 5.5L94.9 5.9L95.7 6.3L96.3 6.9L96.8 7.5L97.3 8.2L97.6 9.0L97.8 9.9L98.0 10.8L98.1 11.8L98.0 12.9L97.9 13.9L97.8 15.0L97.6 16.1L97.7 17.0L98.0 17.7L98.3 18.4L98.6 19.1L98.8 19.9L99.0 20.6L99.1 21.4L99.2 22.3L99.2 23.1L99.1 24.0L99.0 24.9L98.8 25.7L98.6 26.6L98.4 27.5L98.1 28.4L98.1 29.2L98.3 29.8L98.6 30.5L98.9 31.1L99.0 31.8L99.2 32.4L99.3 33.1L99.3 33.8L99.3 34.6L99.2 35.3L99.1 36.0L98.9 36.8L98.7 37.5L98.5 38.3L98.2 39.0L98.2 39.7L98.5 40.3L98.7 40.9L98.9 41.5L99.1 42.2L99.3 42.8L99.4 43.4L99.4 44.1L99.4 44.8L99.3 45.4L99.2 46.1L99.0 46.8L98.8 47.4L98.5 48.1L98.3 48.7L98.2 49.4Z'/%3E%3C/svg%3E");
  --shape-3:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M99.4 49.9L99.4 50.6L99.4 51.3L99.5 51.9L99.5 52.6L99.5 53.3L99.5 54.0L99.5 54.6L99.5 55.3L99.5 56.0L99.5 56.7L99.5 57.4L99.5 58.0L99.4 58.7L99.4 59.4L99.4 60.1L99.3 60.8L99.3 61.5L99.2 62.2L99.2 62.9L99.1 63.6L99.0 64.3L98.9 64.9L98.9 65.6L98.8 66.3L98.7 67.0L98.6 67.7L98.5 68.4L98.3 69.2L98.2 69.9L98.1 70.6L97.9 71.3L97.8 72.0L97.6 72.7L97.5 73.4L97.3 74.1L97.1 74.8L96.9 75.5L96.7 76.2L96.5 76.9L96.3 77.6L96.0 78.3L95.8 79.0L95.5 79.7L95.2 80.4L94.9 81.0L94.6 81.7L94.3 82.4L94.0 83.0L93.6 83.7L93.2 84.3L92.9 85.0L92.5 85.6L92.1 86.2L91.6 86.8L91.2 87.4L90.7 88.0L90.3 88.5L89.8 89.1L89.3 89.6L88.7 90.2L88.2 90.7L87.7 91.1L87.1 91.6L86.5 92.1L85.9 92.5L85.3 92.9L84.7 93.3L84.1 93.7L83.5 94.1L82.8 94.5L82.2 94.8L81.5 95.1L80.9 95.4L80.2 95.7L79.5 96.0L78.9 96.3L78.2 96.5L77.5 96.7L76.8 97.0L76.1 97.2L75.4 97.4L74.7 97.6L74.0 97.7L73.3 97.9L72.6 98.1L72.0 98.2L71.3 98.3L70.6 98.5L69.9 98.6L69.2 98.7L68.5 98.8L67.8 98.9L67.1 99.0L66.5 99.0L65.8 99.1L65.1 99.2L64.4 99.2L63.7 99.3L63.1 99.3L62.4 99.4L61.7 99.4L61.1 99.4L60.4 99.4L59.8 99.5L59.1 99.5L58.5 99.5L57.8 99.5L57.1 99.5L56.5 99.5L55.9 99.5L55.2 99.5L54.6 99.5L53.9 99.5L53.3 99.4L52.7 99.4L52.0 99.4L51.4 99.4L50.7 99.3L50.1 99.3L49.5 99.3L48.9 99.2L48.2 99.2L47.6 99.2L47.0 99.1L46.3 99.1L45.7 99.0L45.1 99.0L44.5 98.9L43.8 98.9L43.2 98.8L42.6 98.8L41.9 98.7L41.3 98.7L40.7 98.6L40.0 98.6L39.4 98.5L38.8 98.4L38.1 98.4L37.5 98.3L36.9 98.2L36.2 98.2L35.6 98.1L34.9 98.0L34.3 97.9L33.6 97.8L33.0 97.8L32.3 97.7L31.6 97.6L31.0 97.5L30.3 97.4L29.6 97.3L29.0 97.2L28.3 97.0L27.6 96.9L26.9 96.8L26.3 96.6L25.6 96.5L24.9 96.3L24.2 96.2L23.5 96.0L22.9 95.8L22.2 95.6L21.5 95.4L20.8 95.1L20.2 94.9L19.5 94.6L18.8 94.4L18.2 94.1L17.5 93.8L16.9 93.5L16.3 93.1L15.6 92.8L15.0 92.4L14.4 92.0L13.8 91.6L13.2 91.2L12.7 90.7L12.1 90.3L11.6 89.8L11.1 89.3L10.6 88.8L10.1 88.2L9.6 87.7L9.2 87.1L8.8 86.5L8.4 85.9L8.0 85.3L7.6 84.7L7.2 84.1L6.9 83.4L6.6 82.8L6.3 82.1L6.0 81.4L5.7 80.7L5.5 80.1L5.3 79.4L5.0 78.7L4.8 78.0L4.7 77.3L4.5 76.6L4.3 75.8L4.2 75.1L4.1 74.4L3.9 73.7L3.8 73.0L3.7 72.3L3.6 71.6L3.5 70.9L3.5 70.2L3.4 69.5L3.3 68.8L3.3 68.1L3.2 67.4L3.2 66.7L3.2 66.0L3.1 65.4L3.1 64.7L3.1 64.0L3.0 63.4L3.0 62.7L3.0 62.0L3.0 61.4L3.0 60.7L2.9 60.1L2.9 59.4L2.9 58.8L2.9 58.1L2.9 57.5L2.9 56.9L2.8 56.2L2.8 55.6L2.8 55.0L2.8 54.3L2.7 53.7L2.7 53.1L2.7 52.4L2.6 51.8L2.6 51.2L2.5 50.6L2.5 49.9L2.4 49.3L2.4 48.7L2.3 48.0L2.3 47.4L2.2 46.8L2.2 46.1L2.1 45.5L2.0 44.8L1.9 44.2L1.9 43.5L1.8 42.8L1.7 42.2L1.6 41.5L1.6 40.8L1.5 40.2L1.4 39.5L1.3 38.8L1.2 38.1L1.2 37.4L1.1 36.6L1.0 35.9L0.9 35.2L0.9 34.5L0.8 33.7L0.7 33.0L0.7 32.2L0.6 31.5L0.6 30.7L0.6 29.9L0.5 29.2L0.5 28.4L0.5 27.6L0.5 26.8L0.5 26.0L0.5 25.2L0.6 24.4L0.6 23.6L0.7 22.8L0.8 22.0L0.9 21.2L1.0 20.4L1.1 19.6L1.3 18.8L1.4 18.0L1.6 17.2L1.8 16.4L2.1 15.6L2.3 14.8L2.6 14.1L2.9 13.3L3.3 12.6L3.6 11.9L4.0 11.2L4.4 10.5L4.8 9.8L5.3 9.2L5.8 8.5L6.3 7.9L6.8 7.3L7.4 6.8L7.9 6.2L8.5 5.7L9.2 5.2L9.8 4.8L10.5 4.3L11.1 3.9L11.8 3.5L12.5 3.2L13.3 2.8L14.0 2.5L14.7 2.3L15.5 2.0L16.3 1.8L17.0 1.6L17.8 1.4L18.6 1.2L19.4 1.0L20.2 0.9L21.0 0.8L21.8 0.7L22.5 0.6L23.3 0.6L24.1 0.5L24.9 0.5L25.7 0.5L26.5 0.5L27.2 0.5L28.0 0.5L28.8 0.6L29.5 0.6L30.3 0.6L31.0 0.7L31.8 0.7L32.5 0.8L33.2 0.9L33.9 0.9L34.7 1.0L35.4 1.1L36.1 1.2L36.8 1.2L37.4 1.3L38.1 1.4L38.8 1.5L39.5 1.6L40.1 1.7L40.8 1.7L41.4 1.8L42.1 1.9L42.7 2.0L43.3 2.1L44.0 2.1L44.6 2.2L45.2 2.3L45.8 2.3L46.4 2.4L47.1 2.5L47.7 2.5L48.3 2.6L48.9 2.6L49.5 2.7L50.1 2.7L50.7 2.8L51.3 2.8L51.9 2.8L52.5 2.9L53.1 2.9L53.7 2.9L54.3 3.0L54.9 3.0L55.5 3.0L56.1 3.1L56.7 3.1L57.3 3.1L58.0 3.1L58.6 3.1L59.2 3.2L59.8 3.2L60.4 3.2L61.1 3.2L61.7 3.3L62.3 3.3L63.0 3.3L63.6 3.4L64.2 3.4L64.9 3.4L65.5 3.5L66.2 3.5L66.9 3.6L67.5 3.6L68.2 3.7L68.8 3.8L69.5 3.8L70.2 3.9L70.9 4.0L71.5 4.1L72.2 4.2L72.9 4.4L73.6 4.5L74.2 4.6L74.9 4.8L75.6 5.0L76.3 5.1L76.9 5.3L77.6 5.5L78.3 5.8L79.0 6.0L79.6 6.3L80.3 6.5L80.9 6.8L81.6 7.1L82.2 7.4L82.8 7.8L83.4 8.1L84.0 8.5L84.6 8.9L85.2 9.3L85.8 9.7L86.3 10.2L86.9 10.6L87.4 11.1L87.9 11.6L88.4 12.1L88.9 12.6L89.3 13.2L89.8 13.7L90.2 14.3L90.6 14.9L91.0 15.5L91.4 16.1L91.8 16.7L92.1 17.3L92.5 17.9L92.8 18.6L93.1 19.2L93.4 19.9L93.7 20.5L94.0 21.2L94.2 21.8L94.5 22.5L94.7 23.2L95.0 23.8L95.2 24.5L95.4 25.2L95.6 25.9L95.8 26.5L96.0 27.2L96.2 27.9L96.3 28.6L96.5 29.2L96.7 29.9L96.8 30.6L97.0 31.3L97.1 31.9L97.2 32.6L97.4 33.3L97.5 34.0L97.6 34.6L97.7 35.3L97.8 36.0L98.0 36.6L98.1 37.3L98.2 38.0L98.3 38.6L98.4 39.3L98.4 40.0L98.5 40.6L98.6 41.3L98.7 41.9L98.8 42.6L98.8 43.3L98.9 43.9L99.0 44.6L99.0 45.3L99.1 45.9L99.2 46.6L99.2 47.3L99.3 47.9L99.3 48.6L99.3 49.3Z'/%3E%3C/svg%3E");
  --shape-4:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M99.3 50.0L99.3 50.7L99.4 51.3L99.4 52.0L99.4 52.7L99.5 53.3L99.5 54.0L99.5 54.7L99.5 55.3L99.5 56.0L99.5 56.7L99.5 57.3L99.5 58.0L99.4 58.7L99.4 59.4L99.4 60.0L99.3 60.7L99.3 61.4L99.2 62.1L99.2 62.8L99.1 63.5L99.0 64.1L98.9 64.8L98.8 65.5L98.7 66.2L98.6 66.9L98.5 67.6L98.4 68.3L98.2 68.9L98.1 69.6L97.9 70.3L97.8 71.0L97.6 71.7L97.4 72.4L97.2 73.0L97.0 73.7L96.8 74.4L96.6 75.1L96.3 75.7L96.1 76.4L95.8 77.1L95.5 77.7L95.2 78.4L94.9 79.0L94.6 79.6L94.3 80.3L93.9 80.9L93.5 81.5L93.1 82.1L92.7 82.6L92.3 83.2L91.8 83.8L91.4 84.3L91.2 85.0L90.9 85.8L90.7 86.5L90.4 87.2L90.1 87.9L89.8 88.6L89.4 89.3L89.0 89.9L88.6 90.5L88.2 91.1L87.7 91.7L87.2 92.3L86.7 92.8L86.2 93.3L85.6 93.8L85.1 94.3L84.5 94.7L83.9 95.1L83.2 95.5L82.6 95.9L82.0 96.3L81.3 96.6L80.6 96.9L79.9 97.2L79.2 97.4L78.6 97.7L77.9 97.9L77.1 98.1L76.4 98.3L75.7 98.5L75.0 98.6L74.3 98.8L73.6 98.9L72.8 99.0L72.1 99.1L71.4 99.2L70.7 99.3L70.0 99.3L69.3 99.4L68.5 99.4L67.8 99.5L67.1 99.5L66.4 99.5L65.7 99.5L65.0 99.5L64.3 99.5L63.6 99.5L62.9 99.4L62.3 99.4L61.6 99.4L60.9 99.3L60.2 99.3L59.6 99.2L58.9 99.2L58.2 99.1L57.6 99.0L56.9 98.9L56.3 98.8L55.6 98.8L55.0 98.7L54.4 98.6L53.7 98.5L53.1 98.4L52.5 98.2L51.8 98.1L51.2 98.0L50.6 97.9L50.0 97.8L49.4 97.7L48.8 97.5L48.2 97.4L47.6 97.3L47.0 97.1L46.4 97.0L45.8 96.9L45.2 96.7L44.6 96.6L44.0 96.5L43.4 96.3L42.8 96.2L42.2 96.4L41.6 96.5L40.9 96.7L40.3 96.9L39.6 97.0L38.9 97.2L38.2 97.4L37.6 97.5L36.9 97.7L36.2 97.8L35.4 98.0L34.7 98.1L34.0 98.2L33.3 98.4L32.5 98.5L31.8 98.6L31.0 98.7L30.2 98.8L29.5 98.9L28.7 99.0L27.9 99.0L27.1 99.1L26.3 99.1L25.5 99.2L24.7 99.2L23.9 99.2L23.1 99.2L22.3 99.1L21.5 99.1L20.7 99.0L19.9 98.9L19.0 98.8L18.2 98.6L17.5 98.4L16.7 98.3L15.9 98.0L15.1 97.8L14.4 97.5L13.6 97.2L12.9 96.9L12.2 96.5L11.5 96.1L10.9 95.7L10.2 95.2L9.6 94.7L9.0 94.2L8.4 93.6L7.9 93.1L7.4 92.4L6.9 91.8L6.5 91.2L6.1 90.5L5.7 89.8L5.3 89.0L5.0 88.3L4.7 87.5L4.5 86.7L4.2 85.9L4.0 85.1L3.8 84.3L3.7 83.5L3.6 82.7L3.4 81.8L3.4 81.0L3.3 80.1L3.3 79.3L3.2 78.5L3.2 77.6L3.2 76.8L3.3 76.0L3.3 75.1L3.4 74.3L3.4 73.5L3.5 72.7L3.6 71.9L3.7 71.1L3.8 70.3L3.9 69.5L4.0 68.8L4.1 68.0L4.0 67.4L3.8 66.7L3.6 66.1L3.5 65.5L3.3 64.8L3.1 64.2L3.0 63.6L2.8 62.9L2.7 62.3L2.5 61.7L2.4 61.0L2.3 60.4L2.1 59.7L2.0 59.1L1.9 58.5L1.8 57.8L1.7 57.2L1.6 56.5L1.4 55.9L1.4 55.2L1.3 54.6L1.2 53.9L1.1 53.3L1.0 52.6L0.9 52.0L0.9 51.3L0.8 50.7L0.7 50.0L0.7 49.3L0.6 48.7L0.6 48.0L0.6 47.3L0.5 46.7L0.5 46.0L0.5 45.3L0.5 44.7L0.5 44.0L0.5 43.3L0.5 42.7L0.5 42.0L0.6 41.3L0.6 40.6L0.6 40.0L0.7 39.3L0.7 38.6L0.8 37.9L0.8 37.2L0.9 36.5L1.0 35.9L1.1 35.2L1.2 34.5L1.3 33.8L1.4 33.1L1.5 32.4L1.6 31.7L1.8 31.1L1.9 30.4L2.1 29.7L2.2 29.0L2.4 28.3L2.6 27.6L2.8 27.0L3.0 26.3L3.2 25.6L3.4 24.9L3.7 24.3L3.9 23.6L4.2 22.9L4.5 22.3L4.8 21.6L5.1 21.0L5.4 20.4L5.7 19.7L6.1 19.1L6.5 18.5L6.9 17.9L7.3 17.4L7.7 16.8L8.2 16.2L8.6 15.7L8.8 15.0L9.1 14.2L9.3 13.5L9.6 12.8L9.9 12.1L10.2 11.4L10.6 10.7L11.0 10.1L11.4 9.5L11.8 8.9L12.3 8.3L12.8 7.7L13.3 7.2L13.8 6.7L14.4 6.2L14.9 5.7L15.5 5.3L16.1 4.9L16.8 4.5L17.4 4.1L18.0 3.7L18.7 3.4L19.4 3.1L20.1 2.8L20.8 2.6L21.4 2.3L22.1 2.1L22.9 1.9L23.6 1.7L24.3 1.5L25.0 1.4L25.7 1.2L26.4 1.1L27.2 1.0L27.9 0.9L28.6 0.8L29.3 0.7L30.0 0.7L30.7 0.6L31.5 0.6L32.2 0.5L32.9 0.5L33.6 0.5L34.3 0.5L35.0 0.5L35.7 0.5L36.4 0.5L37.1 0.6L37.7 0.6L38.4 0.6L39.1 0.7L39.8 0.7L40.4 0.8L41.1 0.8L41.8 0.9L42.4 1.0L43.1 1.1L43.7 1.2L44.4 1.2L45.0 1.3L45.6 1.4L46.3 1.5L46.9 1.6L47.5 1.8L48.2 1.9L48.8 2.0L49.4 2.1L50.0 2.2L50.6 2.3L51.2 2.5L51.8 2.6L52.4 2.7L53.0 2.9L53.6 3.0L54.2 3.1L54.8 3.3L55.4 3.4L56.0 3.5L56.6 3.7L57.2 3.8L57.8 3.6L58.4 3.5L59.1 3.3L59.7 3.1L60.4 3.0L61.1 2.8L61.8 2.6L62.4 2.5L63.1 2.3L63.8 2.2L64.6 2.0L65.3 1.9L66.0 1.8L66.7 1.6L67.5 1.5L68.2 1.4L69.0 1.3L69.8 1.2L70.5 1.1L71.3 1.0L72.1 1.0L72.9 0.9L73.7 0.9L74.5 0.8L75.3 0.8L76.1 0.8L76.9 0.8L77.7 0.9L78.5 0.9L79.3 1.0L80.1 1.1L81.0 1.2L81.8 1.4L82.5 1.6L83.3 1.7L84.1 2.0L84.9 2.2L85.6 2.5L86.4 2.8L87.1 3.1L87.8 3.5L88.5 3.9L89.1 4.3L89.8 4.8L90.4 5.3L91.0 5.8L91.6 6.4L92.1 6.9L92.6 7.6L93.1 8.2L93.5 8.8L93.9 9.5L94.3 10.2L94.7 11.0L95.0 11.7L95.3 12.5L95.5 13.3L95.8 14.1L96.0 14.9L96.2 15.7L96.3 16.5L96.4 17.3L96.6 18.2L96.6 19.0L96.7 19.9L96.7 20.7L96.8 21.5L96.8 22.4L96.8 23.2L96.7 24.0L96.7 24.9L96.6 25.7L96.6 26.5L96.5 27.3L96.4 28.1L96.3 28.9L96.2 29.7L96.1 30.5L96.0 31.2L95.9 32.0L96.0 32.6L96.2 33.3L96.4 33.9L96.5 34.5L96.7 35.2L96.9 35.8L97.0 36.4L97.2 37.1L97.3 37.7L97.5 38.3L97.6 39.0L97.7 39.6L97.9 40.3L98.0 40.9L98.1 41.5L98.2 42.2L98.3 42.8L98.4 43.5L98.6 44.1L98.6 44.8L98.7 45.4L98.8 46.1L98.9 46.7L99.0 47.4L99.1 48.0L99.1 48.7L99.2 49.3Z'/%3E%3C/svg%3E");
  --shape-5:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M98.8 50.3L98.9 50.9L99.0 51.6L99.1 52.2L99.1 52.9L99.2 53.6L99.3 54.2L99.3 54.9L99.4 55.6L99.4 56.2L99.4 56.9L99.5 57.6L99.5 58.3L99.5 58.9L99.5 59.6L99.5 60.3L99.5 61.0L99.4 61.7L99.4 62.3L99.4 63.0L99.3 63.7L99.2 64.4L99.2 65.1L99.1 65.8L99.0 66.5L98.9 67.2L98.7 67.8L98.6 68.5L98.5 69.2L98.3 69.9L98.1 70.6L97.9 71.2L97.7 71.9L97.5 72.6L97.3 73.3L97.1 73.9L96.8 74.6L96.5 75.2L96.3 75.9L96.0 76.5L95.7 77.1L95.3 77.8L95.0 78.4L94.7 79.0L94.3 79.6L93.9 80.2L93.5 80.8L93.1 81.4L92.7 81.9L92.3 82.5L91.8 83.0L91.3 83.6L90.9 84.1L90.4 84.6L89.9 85.1L89.4 85.6L88.8 86.0L88.3 86.5L87.8 86.9L87.2 87.4L86.6 87.8L86.1 88.2L85.5 88.6L84.9 89.0L84.3 89.3L83.7 89.7L83.1 90.0L82.4 90.4L81.8 90.7L81.2 91.0L80.6 91.3L79.9 91.5L79.3 91.8L78.6 92.1L78.0 92.3L77.3 92.5L76.7 92.8L76.0 93.0L75.4 93.2L74.7 93.4L74.1 93.6L73.5 93.8L72.8 94.0L72.2 94.1L71.5 94.3L70.9 94.5L70.2 94.6L69.6 94.8L69.0 94.9L68.3 95.1L67.7 95.2L67.1 95.3L66.4 95.5L65.8 95.6L65.2 95.7L64.6 95.9L63.9 96.0L63.3 96.1L62.7 96.2L62.1 96.4L61.5 96.5L60.8 96.6L60.2 96.7L59.6 96.8L59.0 96.9L58.4 97.1L57.8 97.2L57.1 97.3L56.5 97.4L55.9 97.5L55.3 97.6L54.7 97.7L54.1 97.8L53.4 97.9L52.8 98.0L52.2 98.1L51.6 98.2L50.9 98.3L50.3 98.4L49.7 98.5L49.1 98.6L48.4 98.7L47.8 98.7L47.1 98.8L46.5 98.9L45.9 99.0L45.2 99.1L44.6 99.1L43.9 99.2L43.2 99.2L42.6 99.3L41.9 99.3L41.3 99.4L40.6 99.4L39.9 99.5L39.2 99.5L38.6 99.5L37.9 99.5L37.2 99.5L36.5 99.5L35.8 99.5L35.2 99.4L34.5 99.4L33.8 99.4L33.1 99.3L32.4 99.2L31.7 99.2L31.0 99.1L30.3 99.0L29.6 98.9L28.9 98.8L28.2 98.6L27.6 98.5L26.9 98.3L26.2 98.1L25.5 98.0L24.8 97.8L24.1 97.5L23.5 97.3L22.8 97.1L22.1 96.8L21.5 96.6L20.8 96.3L20.2 96.0L19.5 95.6L18.9 95.3L18.3 95.0L17.7 94.6L17.1 94.2L16.5 93.8L15.9 93.4L15.3 93.0L14.7 92.6L14.2 92.1L13.7 91.6L13.1 91.2L12.6 90.7L12.1 90.2L11.6 89.6L11.2 89.1L10.7 88.6L10.3 88.0L9.8 87.4L9.4 86.9L9.0 86.3L8.6 85.7L8.3 85.1L7.9 84.4L7.6 83.8L7.2 83.2L6.9 82.6L6.6 81.9L6.3 81.3L6.0 80.6L5.8 80.0L5.5 79.3L5.3 78.7L5.1 78.0L4.8 77.3L4.6 76.7L4.4 76.0L4.2 75.3L4.1 74.7L3.9 74.0L3.7 73.3L3.6 72.7L3.4 72.0L3.3 71.4L3.1 70.7L3.0 70.0L2.9 69.4L2.7 68.7L2.6 68.1L2.5 67.4L2.4 66.8L2.3 66.1L2.2 65.5L2.1 64.8L2.0 64.2L1.9 63.5L1.8 62.9L1.8 62.3L1.7 61.6L1.6 61.0L1.5 60.4L1.5 59.7L1.4 59.1L1.3 58.5L1.3 57.8L1.2 57.2L1.1 56.6L1.1 55.9L1.0 55.3L1.0 54.7L0.9 54.1L0.9 53.4L0.8 52.8L0.8 52.2L0.8 51.5L0.7 50.9L0.7 50.3L0.7 49.6L0.6 49.0L0.6 48.4L0.6 47.7L0.6 47.1L0.5 46.5L0.5 45.8L0.5 45.2L0.5 44.5L0.5 43.9L0.5 43.3L0.5 42.6L0.5 42.0L0.5 41.3L0.6 40.7L0.6 40.0L0.6 39.3L0.7 38.7L0.7 38.0L0.8 37.4L0.8 36.7L0.9 36.0L1.0 35.4L1.1 34.7L1.2 34.1L1.3 33.4L1.4 32.7L1.5 32.1L1.6 31.4L1.8 30.7L1.9 30.1L2.1 29.4L2.2 28.7L2.4 28.1L2.6 27.4L2.8 26.8L3.0 26.1L3.2 25.5L3.5 24.8L3.7 24.2L4.0 23.5L4.3 22.9L4.5 22.2L4.8 21.6L5.2 21.0L5.5 20.4L5.8 19.8L6.2 19.2L6.5 18.6L6.9 18.0L7.3 17.4L7.7 16.9L8.1 16.3L8.6 15.8L9.0 15.2L9.5 14.7L10.0 14.2L10.4 13.7L10.9 13.2L11.4 12.7L12.0 12.3L12.5 11.8L13.0 11.4L13.6 11.0L14.1 10.5L14.7 10.1L15.3 9.7L15.9 9.4L16.5 9.0L17.0 8.6L17.7 8.3L18.3 8.0L18.9 7.7L19.5 7.3L20.1 7.1L20.7 6.8L21.4 6.5L22.0 6.2L22.6 6.0L23.3 5.7L23.9 5.5L24.6 5.2L25.2 5.0L25.8 4.8L26.5 4.6L27.1 4.4L27.8 4.2L28.4 4.0L29.1 3.8L29.7 3.7L30.4 3.5L31.0 3.3L31.6 3.2L32.3 3.0L32.9 2.9L33.6 2.7L34.2 2.6L34.9 2.5L35.5 2.3L36.1 2.2L36.8 2.1L37.4 2.0L38.1 1.9L38.7 1.7L39.4 1.6L40.0 1.5L40.6 1.5L41.3 1.4L41.9 1.3L42.6 1.2L43.2 1.1L43.9 1.0L44.5 1.0L45.2 0.9L45.8 0.9L46.5 0.8L47.1 0.8L47.8 0.7L48.4 0.7L49.1 0.6L49.7 0.6L50.4 0.6L51.0 0.5L51.7 0.5L52.3 0.5L53.0 0.5L53.6 0.5L54.3 0.5L55.0 0.5L55.6 0.5L56.3 0.6L56.9 0.6L57.6 0.6L58.3 0.7L58.9 0.7L59.6 0.8L60.3 0.9L60.9 0.9L61.6 1.0L62.3 1.1L62.9 1.2L63.6 1.3L64.2 1.5L64.9 1.6L65.6 1.7L66.2 1.9L66.9 2.0L67.5 2.2L68.2 2.4L68.9 2.6L69.5 2.8L70.2 3.0L70.8 3.2L71.4 3.4L72.1 3.7L72.7 3.9L73.3 4.2L74.0 4.5L74.6 4.8L75.2 5.1L75.8 5.4L76.4 5.7L77.0 6.0L77.6 6.4L78.2 6.7L78.8 7.1L79.4 7.5L79.9 7.9L80.5 8.3L81.0 8.7L81.5 9.1L82.1 9.6L82.6 10.0L83.1 10.5L83.6 11.0L84.1 11.5L84.5 12.0L85.0 12.5L85.5 13.0L85.9 13.5L86.3 14.0L86.7 14.6L87.2 15.1L87.5 15.7L87.9 16.3L88.3 16.8L88.7 17.4L89.0 18.0L89.3 18.6L89.7 19.2L90.0 19.8L90.3 20.4L90.6 21.0L90.9 21.6L91.2 22.2L91.4 22.8L91.7 23.4L92.0 24.0L92.2 24.6L92.5 25.3L92.7 25.9L92.9 26.5L93.1 27.1L93.4 27.7L93.6 28.4L93.8 29.0L94.0 29.6L94.2 30.2L94.4 30.8L94.6 31.5L94.8 32.1L94.9 32.7L95.1 33.3L95.3 33.9L95.5 34.6L95.6 35.2L95.8 35.8L96.0 36.4L96.1 37.0L96.3 37.6L96.4 38.3L96.6 38.9L96.8 39.5L96.9 40.1L97.0 40.8L97.2 41.4L97.3 42.0L97.5 42.6L97.6 43.3L97.7 43.9L97.8 44.5L98.0 45.1L98.1 45.8L98.2 46.4L98.3 47.1L98.4 47.7L98.5 48.3L98.6 49.0L98.7 49.6Z'/%3E%3C/svg%3E");
}
:is(.prod,.fav-card,.cat-card):nth-child(5n+1){--shape:var(--shape-1)}
:is(.prod,.fav-card,.cat-card):nth-child(5n+2){--shape:var(--shape-2)}
:is(.prod,.fav-card,.cat-card):nth-child(5n+3){--shape:var(--shape-3)}
:is(.prod,.fav-card,.cat-card):nth-child(5n+4){--shape:var(--shape-4)}
:is(.prod,.fav-card,.cat-card):nth-child(5n+5){--shape:var(--shape-5)}
:is(.prod,.fav-card):nth-child(4n+1){--halo:var(--pl-pink)}
:is(.prod,.fav-card):nth-child(4n+2){--halo:var(--pl-lilac)}
:is(.prod,.fav-card):nth-child(4n+3){--halo:var(--pl-peach)}
:is(.prod,.fav-card):nth-child(4n+4){--halo:var(--pl-sage)}

.shot-wrap.framed .shot img,.prod .shot img,.fav-pic img,
.shot-wrap.framed .shot::before,.prod .shot::before,.fav-pic::before,
.cat-bub::before,.cat-ph,.cat-card.tilt .cat-ph{
  -webkit-mask-image:var(--shape,var(--blob-cloud));mask-image:var(--shape,var(--blob-cloud))}
.shot-wrap.framed .shot::before,.prod .shot::before,.fav-pic::before{background:var(--halo,var(--pl-pink))}

/* the home hero now shows the single Lolly Letters photo, which is tall.
   The photo takes the right hand side at a portrait-ish shape so all four
   letters show, and its own left edge is cut into a soft wave (so the old
   cream shape laid over it is no longer needed). */
.hero.pl-hero{height:clamp(540px,53vw,700px)}
.pl-shape{display:none}
.pl-photo{width:47%;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M16 0C4 12 8 26 14 38C20 52 2 62 5 76C8 90 17 94 13 100L100 100L100 0Z'/%3E%3C/svg%3E") center/100% 100% no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M16 0C4 12 8 26 14 38C20 52 2 62 5 76C8 90 17 94 13 100L100 100L100 0Z'/%3E%3C/svg%3E") center/100% 100% no-repeat}
.pl-photo img{object-position:50% 48%}
.pl-words{width:min(640px,52%)}
.pill-btn{white-space:nowrap}
@media(max-width:860px){
  .hero.pl-hero{height:auto}
  .pl-photo{width:100%;aspect-ratio:.9;-webkit-mask:none;mask:none}
  .pl-photo img{object-position:50% 50%}
  .pl-note{top:auto;bottom:calc(111vw - 64px);right:5%}
}
/* the "just launched!" note sits on the cream beside the photo, not on it,
   so it stays readable against the brown letters */
.pl-note{right:auto;left:42%;top:8%;text-shadow:none}
.pl-note .curl{right:auto;left:62%;transform:scaleX(-1) rotate(-20deg)}
.pl-hero .fl2{right:-4%;top:-10%}
@media(max-width:860px){
  .pl-note{left:auto;right:5%;top:14px;bottom:auto;font-size:21px}
  .pl-note .curl{display:none}
}
.pd-sticker[hidden]{display:none}

/* ══ THE HOME PAGE ON A PHONE, LAID OUT LIKE THE COMPUTER ═══════════════
   Same composition as the big screen, just smaller: the words on the left,
   the letters photo on the right with its wavy edge, the promises in one
   row of four, and more of the best sellers showing at once. */
@media(max-width:860px){
  .hero.pl-hero{display:block;height:clamp(360px,104vw,560px)}
  .pl-photo{position:absolute;top:0;right:0;bottom:0;width:47%;aspect-ratio:auto;
    -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M16 0C4 12 8 26 14 38C20 52 2 62 5 76C8 90 17 94 13 100L100 100L100 0Z'/%3E%3C/svg%3E") center/100% 100% no-repeat;
    mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M16 0C4 12 8 26 14 38C20 52 2 62 5 76C8 90 17 94 13 100L100 100L100 0Z'/%3E%3C/svg%3E") center/100% 100% no-repeat}
  .pl-photo img{object-position:50% 48%}
  .pl-bottom{top:auto;bottom:-1px}
  .pl-wrap{display:flex;align-items:center;height:100%;padding:0 0 0 clamp(14px,4vw,24px)}
  .pl-words{width:55%;text-align:left;padding:0 0 18px}
  .pl-hero h1{font-size:clamp(25px,7.6vw,46px);transform:rotate(-3deg);transform-origin:left center}
  .pl-hero h1 span{padding-left:.25em}
  .pl-sub{white-space:normal;font-size:clamp(8px,2.2vw,11px);letter-spacing:.16em;line-height:1.9;padding-left:.8em;margin-top:14px}
  .pl-sub i{margin:0 .25em}
  .pl-hero .pill-btn{margin:16px 0 0 .8em;padding:11px 18px 11px 20px;font-size:clamp(9px,2.4vw,12px);letter-spacing:.2em;gap:8px}
  .pl-hero .pill-btn .arr{width:15px}
  .pl-hero .fl1{display:block;width:26px;left:1%;top:-10%}
  .pl-hero .fl2{display:block;width:26px;right:-2%;top:-12%}
  .pl-hero .fl3{display:block;width:24px;left:-6%;top:62%}
  .pl-hero .squig,.pl-hero .hrt-dd{display:none}
  .pl-note{left:38%;right:auto;top:5%;bottom:auto;font-size:clamp(15px,4.2vw,22px)}
  .pl-note .curl{display:none}

  /* the four promises in one row, icons above */
  .trust-band{grid-template-columns:repeat(4,minmax(0,1fr));border-radius:30px;padding:16px 8px}
  .trust-band p{flex-direction:column;text-align:center;gap:6px;font-size:clamp(7px,2vw,9.5px);letter-spacing:.12em;padding:2px 4px}
  .trust-band p + p{border-left:1.5px solid rgba(90,58,46,.3)}
  .trust-band p:nth-child(3){border-left:1.5px solid rgba(90,58,46,.3)}
  .trust-band .ic{width:22px}.trust-band .ic.wide{width:28px}

  /* more of the row showing at once, like the computer */
  .fav-track{grid-auto-columns:40%}
  .cat-grid:not(.shop-grid){grid-auto-columns:26%}
}
@media(max-width:860px){
  .pl-hero h1{font-size:clamp(28px,8.6vw,46px);line-height:1}
  .pl-sub{font-size:clamp(7.5px,2vw,10.5px);letter-spacing:.13em;line-height:2}
  .pl-note{display:none}
  .best-head h2{font-size:clamp(28px,8vw,40px)}
}
@media(max-width:860px){
  .pl-hero .pl-sub{font-size:clamp(7.5px,2.1vw,10.5px);margin-top:14px}
}
@media(max-width:860px){
  .pl-hero .pl-sub{white-space:nowrap;font-size:clamp(6.8px,1.85vw,10.5px);letter-spacing:.1em;padding-left:.6em}
}
/* "just launched!" sits in the cream just left of the photo, with its arrow
   curling up and across into the letters */
.pl-note{left:34%;top:auto;bottom:17%;transform:rotate(-6deg)}
.pl-note .curl{display:block;position:absolute;left:100%;right:auto;top:-34px;width:clamp(56px,6vw,84px);
  margin-left:4px;transform:none;color:var(--cocoa-2)}
.pl-note{font-size:clamp(22px,2.5vw,32px)}
.pl-note .curl{width:clamp(64px,7.5vw,108px);top:-44px}

/* the little pink note under a personalisation box (colour reassurance) */
.pd-callout{margin-top:12px;background:var(--pl-pink);color:var(--cocoa-2);border-radius:18px 22px 16px 24px;
  padding:12px 16px 12px 44px;font-size:13px;line-height:1.55;position:relative}
.pd-callout::before{content:"";position:absolute;left:14px;top:13px;width:20px;height:20px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30' fill='none' stroke='%23C42F72' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 26C6 18 4 13 6 9c2-4 7-4 9 1 2-5 7-5 9-1 2 4 0 9-9 17Z'/%3E%3C/svg%3E") center/contain no-repeat}
.pd-callout[hidden]{display:none}

/* ══ SMOOTHER LOADING ═══════════════════════════════════════════════════
   Category bubbles and best seller tiles rise into place as you scroll,
   like everything else. Photos fade in as they arrive. And the little lift
   and tilt on hover only happens with a real mouse, so tiles don't jump
   about when a finger taps or scrolls past them on a phone. */
html.tiles-flow :is(.cat-card,.fav-card):not(.in){opacity:0;transform:translateY(16px)}
html.tiles-flow :is(.cat-card,.fav-card){transition:opacity .7s ease,transform .7s ease}
html.img-fade img:not(.ld){opacity:0}
html.img-fade img{transition:opacity .45s ease}
@media (hover:none){
  a.shot:hover,.fav-card:hover .fav-pic,.prod:hover .shot,.cat-card:hover .cat-bub,.cat-card.tilt:hover .cat-bub,
  .coll-box:hover,.pill-btn:hover{transform:none}
  .cat-card:hover .cat-ph img,.fav-card:hover .fav-pic img{transform:none}
}
@media (prefers-reduced-motion:reduce){
  html.tiles-flow :is(.cat-card,.fav-card):not(.in){opacity:1;transform:none}
  html.img-fade img:not(.ld){opacity:1}
}

/* ══ BUILD THEIR NAME (Lolly Letters) ═══════════════════════════════════
   The name box, the three styles as buttons, the colour dropdown, and the
   live preview on a pastel cloud. The letters are drawn in the bubble font
   in their own colour, with the style laid over the top: little raised dots
   for polka, a knitted chevron for chunky knit, a soft shine for smooth. */
.nb{margin-bottom:6px}
.nb .spec-h{margin-top:22px}
.nb .spec-h:first-child{margin-top:4px}
.nb-name{width:100%;margin-top:10px;padding:14px 18px;border:1.5px solid rgba(62,46,39,.18);border-radius:16px;
  background:#FFFDFB;font-family:'Bubble Candy','Sour Gummy',sans-serif;font-size:26px;letter-spacing:.08em;
  color:var(--cocoa-2);text-transform:uppercase}
.nb-name::placeholder{font-family:'Poppins',sans-serif;font-size:14px;letter-spacing:.06em;text-transform:none;color:rgba(62,46,39,.4)}
.nb-name:focus{outline:none;border-color:var(--pl-rose);box-shadow:0 0 0 3px rgba(222,64,134,.18)}
.nb .hint{margin-top:8px}
.nb-other{margin-top:12px}
.nb-rainbow{background:conic-gradient(#F7BFCB,#F3D77C,#8FD6A5,#9CC4EC,#C4B2E3,#F7BFCB)!important}

/* the style texture, shared by the little button circles and the letters */
.tex-smooth{--tex:linear-gradient(165deg,rgba(255,255,255,.62) 0 16%,rgba(255,255,255,0) 46%,rgba(0,0,0,.07) 100%)}
.tex-polka{--tex:radial-gradient(circle at 42% 40%,rgba(255,255,255,.55) 0 18%,rgba(0,0,0,.12) 30%,rgba(0,0,0,0) 36%) 0 0/.24em .24em,
                linear-gradient(165deg,rgba(255,255,255,.4) 0 14%,rgba(255,255,255,0) 44%)}
.tex-knit{--tex:repeating-linear-gradient(62deg,rgba(255,255,255,.34) 0 .028em,rgba(255,255,255,0) .028em .085em),
               repeating-linear-gradient(-62deg,rgba(0,0,0,.13) 0 .028em,rgba(0,0,0,0) .028em .085em),
               linear-gradient(165deg,rgba(255,255,255,.3) 0 14%,rgba(255,255,255,0) 44%)}
.nb-l-sw{width:32px;height:32px;border-radius:50%;flex:none;font-size:110px;
  background:var(--tex),var(--c,#F7BFCB);border:1px solid rgba(62,46,39,.12)}
.nb-tex .choice-btn{min-width:0;padding-right:20px}

/* the live preview */
.nb-stage{position:relative;margin-top:26px;padding:46px 22px 22px;isolation:isolate;text-align:center}
.nb-stage::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(160deg,#FBE1DD,#E6DAF4);
  -webkit-mask:var(--blob-cloud) center/100% 100% no-repeat;mask:var(--blob-cloud) center/100% 100% no-repeat}
.nb-tag{position:absolute;top:16px;left:50%;transform:translateX(-50%) rotate(-3deg);display:inline-flex;align-items:center;gap:6px;
  font-family:'Hailey','Segoe Script',cursive;font-size:21px;color:var(--pl-rose-dp);white-space:nowrap}
.nb-tag svg{width:15px;height:15px}
.nb-letters{--fs:72px;display:flex;justify-content:center;align-items:flex-end;flex-wrap:nowrap;gap:0;
  min-height:calc(var(--fs) * 1.25);padding:6px 0 2px}
.nb-empty{align-self:center;font-family:'Hailey','Segoe Script',cursive;font-size:24px;color:rgba(62,46,39,.38)}
.nb-l{background:none;border:0;padding:0 .02em;cursor:pointer;font-size:var(--fs);line-height:1;position:relative;
  transition:transform .3s cubic-bezier(.3,1.5,.5,1)}
.nb-l span{display:block;font-family:'Bubble Candy','Sour Gummy',sans-serif;font-weight:400;
  background:var(--tex),var(--c);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 2px 0 rgba(62,46,39,.10)) drop-shadow(0 7px 9px rgba(74,56,48,.20))}
.nb-l.is-pale span{filter:drop-shadow(0 0 1px rgba(62,46,39,.35)) drop-shadow(0 7px 9px rgba(74,56,48,.20))}
.nb-l.is-other span{background:var(--tex),conic-gradient(from 30deg,#F7BFCB,#F3D77C,#8FD6A5,#9CC4EC,#C4B2E3,#F7BFCB);
  -webkit-background-clip:text;background-clip:text}
.nb-l:hover{transform:translateY(-3px)}
.nb-l[aria-pressed="true"]{transform:translateY(-8px) rotate(-3deg)}
.nb-l[aria-pressed="true"]::after{content:"";position:absolute;left:50%;bottom:-16px;width:14px;height:13px;transform:translateX(-50%);
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 22'%3E%3Cpath d='M12 20.5C5.4 15.3 2.6 12.1 2.6 8.7 2.6 6 4.7 3.9 7.3 3.9c1.7 0 3.2.9 4.7 2.9 1.5-2 3-2.9 4.7-2.9 2.6 0 4.7 2.1 4.7 4.8 0 3.4-2.8 6.6-9.4 11.8z' fill='%23DE4086'/%3E%3C/svg%3E") center/contain no-repeat}
.nb-l:focus-visible{outline:2px dashed var(--pl-rose);outline-offset:4px;border-radius:8px}
.nb-picked{margin-top:20px;font-size:12.5px;color:var(--cocoa-2);opacity:.8;min-height:1.5em}
.nb-tools{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:12px}
.nb-tool{display:inline-flex;align-items:center;gap:7px;border:1.5px solid var(--pl-rose);background:rgba(255,253,251,.85);
  color:var(--pl-rose-dp);border-radius:999px;padding:9px 16px;font-family:inherit;font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;cursor:pointer;transition:background .25s,color .25s}
.nb-tool svg{width:13px;height:13px}
.nb-tool:hover{background:var(--pl-rose);color:#fff}
.nb-total{margin-top:16px;text-align:center;font-family:'Prata',serif;font-size:17px;color:var(--cocoa-2);min-height:1.4em}
.nb-total b{font-weight:400;color:var(--caramel-dp);font-size:20px}
.info .price .per{font-family:'Poppins',sans-serif;font-size:13px;letter-spacing:.06em;color:var(--cocoa-2);opacity:.7}
@media(max-width:700px){
  .nb-stage{padding:42px 10px 18px}
  .nb-tag{font-size:18px}
}
.nb-tex .choice-btn .nb-l-sw{background:var(--tex),var(--c,#F7BFCB);font-size:64px}
.nb .hint{font-size:12px;font-style:italic;opacity:.7;line-height:1.6}
@media(max-width:700px){
  .nb-tex{gap:8px}
  .nb-tex .choice-btn{padding:7px 14px 7px 7px;font-size:13px;gap:8px}
  .nb-tex .choice-btn .nb-l-sw{width:26px;height:26px}
}

/* ══ THE LOGO ═══════════════════════════════════════════════════════════
   The colourful "sempre" sticker with STUDIO underneath, as an image
   (images/logo.webp). The full size original is images/logo-full.png. */
.logo{display:block;line-height:0;letter-spacing:0;text-indent:0}
.logo img{display:block;height:clamp(62px,6.4vw,84px);width:auto}
@media(max-width:820px){.logo img{height:58px}}
@media(max-width:420px){.logo img{height:52px}}

/* ══ LOGO COLOURS ═══════════════════════════════════════════════════════
   The big headings are little stickers, like the logo: a logo colour with a
   white outline and a soft shadow. The colours themselves are the --lg
   lines near the top of THE PLAYFUL HOME PAGE. */
.pill-btn,.btn.solid{box-shadow:0 8px 18px rgba(222,64,134,.25)}
.pl-hero h1,.best-head h2,.dream-words h2,.banner h1,.shop-head h1,.hero:not(.pl-hero):not(.open-hero) h1{
  -webkit-text-stroke:.16em #fff;paint-order:stroke fill;filter:drop-shadow(0 6px 8px rgba(90,58,46,.15))}
.pl-hero h1{color:var(--lg-rasp)}
.pl-hero h1 span{color:var(--lg-teal)}
.best-head h2{color:var(--lg-teal)}
.dream-words h2{color:var(--lg-salmon)}
.dream-words h2 em{color:var(--lg-blue)}
.banner h1,.shop-head h1,.hero:not(.pl-hero):not(.open-hero) h1{color:var(--lg-rasp)}
.banner h1 em,.hero:not(.pl-hero):not(.open-hero) h1 em{color:var(--lg-teal)}
.sec-head h2 em,.about-grid h2 em,.enq h2 em{color:var(--lg-rasp)}
.pl-hero .fl1{color:var(--lg-teal)}
.pl-hero .fl2{color:var(--lg-rasp)}
.cat-bub .ticks{color:var(--lg-rasp)}
.pd-dd{color:var(--lg-rasp)}
.pd-dd.fl{color:var(--lg-teal)}
.pd-dd.tk1,.pd-dd.tk2{color:var(--lg-butter-dp)}
/* the promises band icons take turns through the logo colours */
.trust-band p:nth-child(1) .ic{color:var(--lg-rasp)}
.trust-band p:nth-child(2) .ic{color:var(--lg-teal)}
.trust-band p:nth-child(3) .ic{color:var(--lg-butter-dp)}
.trust-band p:nth-child(4) .ic{color:var(--lg-blue)}
/* the halo colours behind photos, from the logo */
:is(.prod,.fav-card):nth-child(4n+3){--halo:#FBEFC9}
:is(.prod,.fav-card):nth-child(4n+4){--halo:#CDEDE9}

/* the "a name from home" panel shows the logo on a soft lilac blob */
.plate .plate-logo{width:78%;height:auto;margin:0 auto;display:block}
.plate .it{margin-top:18px;color:var(--pl-rose-dp)}

.coll-boxes .shop-head h1{color:var(--lg-rasp);-webkit-text-stroke:.16em #fff;paint-order:stroke fill;filter:drop-shadow(0 6px 8px rgba(90,58,46,.15))}

/* the cart summary as a soft white card */
.summary{background:#FFFDFB;border:0;border-radius:28px;box-shadow:0 14px 30px rgba(74,56,48,.08)}
.summary h2{font-family:'Sour Gummy','Poppins',sans-serif;font-weight:800;color:var(--lg-teal);font-size:26px}
/* ══ PRODUCT NAMES AS STICKERS ══════════════════════════════════════════ */
.info h1{font-family:'Sour Gummy','Poppins',sans-serif;font-weight:800;color:var(--lg-rasp);
  font-size:clamp(38px,4.6vw,56px);line-height:1.04;letter-spacing:0;
  -webkit-text-stroke:.16em #fff;paint-order:stroke fill;filter:drop-shadow(0 6px 8px rgba(90,58,46,.15))}
.info h1 .nw{color:var(--lg-teal)}
.info .price{display:inline-block;margin-top:16px;font-family:'Sour Gummy','Poppins',sans-serif;font-weight:800;
  font-size:clamp(22px,2.2vw,28px);color:var(--lg-brown);background:#FFFDFB;padding:6px 20px 7px;border-radius:999px;
  box-shadow:0 0 0 3px #fff,0 6px 14px rgba(90,58,46,.14);transform:rotate(-2deg)}
.info .price .per{font-family:'Poppins',sans-serif;font-weight:400}
/* the names on the product cards: little stickers too, taking turns in
   the logo colours */
.prod h3,.fav-name{font-family:'Sour Gummy','Poppins',sans-serif;font-weight:800;
  -webkit-text-stroke:.14em #fff;paint-order:stroke fill;filter:drop-shadow(0 3px 4px rgba(90,58,46,.14))}
.prod h3{font-size:clamp(22px,2.2vw,27px)}
.fav-name{font-size:clamp(19px,1.8vw,22px)}
:is(.prod,.fav-card):nth-child(5n+1) :is(h3,.fav-name){color:var(--lg-rasp)}
:is(.prod,.fav-card):nth-child(5n+2) :is(h3,.fav-name){color:var(--lg-teal)}
:is(.prod,.fav-card):nth-child(5n+3) :is(h3,.fav-name){color:var(--lg-salmon)}
:is(.prod,.fav-card):nth-child(5n+4) :is(h3,.fav-name){color:var(--lg-blue)}
:is(.prod,.fav-card):nth-child(5n+5) :is(h3,.fav-name){color:#B08ADB}
.prod h3 a{color:inherit}
.prod .price,.fav-price{font-family:'Sour Gummy','Poppins',sans-serif;font-weight:600;color:var(--lg-brown)}

/* ══ THE SHOP PAGE ══════════════════════════════════════════════════════
   Each collection's name is a sticker in a logo colour, with its
   handwritten line under it and a little "have a look" pill. Then the four
   steps as cards with big numbered stickers. */
.shop-sub{margin-top:10px;font-family:'Hailey','Segoe Script',cursive;font-size:clamp(20px,2.2vw,26px);color:var(--lg-brown);
  display:inline-flex;align-items:center;gap:8px}
.shop-sub svg{width:16px;height:16px;color:var(--lg-rasp)}
.shop-head{text-align:center}
.shop-grid .cat-card{padding-bottom:6px}
.shop-grid .cat-card:hover .cat-bub{transform:translateY(-6px) rotate(-4deg)}
.shop-grid .cat-name{font-family:'Sour Gummy','Poppins',sans-serif;font-weight:800;text-transform:none;letter-spacing:0;text-indent:0;
  font-size:clamp(19px,1.9vw,24px);line-height:1.1;margin-top:18px;
  -webkit-text-stroke:.14em #fff;paint-order:stroke fill;filter:drop-shadow(0 3px 4px rgba(90,58,46,.14))}
.shop-grid .cat-card:nth-child(5n+1) .cat-name{color:var(--lg-rasp)}
.shop-grid .cat-card:nth-child(5n+2) .cat-name{color:var(--lg-teal)}
.shop-grid .cat-card:nth-child(5n+3) .cat-name{color:var(--lg-salmon)}
.shop-grid .cat-card:nth-child(5n+4) .cat-name{color:var(--lg-blue)}
.shop-grid .cat-card:nth-child(5n+5) .cat-name{color:#B08ADB}
.shop-grid .cat-line{color:var(--lg-brown);opacity:.85;font-size:18px;margin-top:6px}
.shop-grid .cat-go{display:inline-flex;align-items:center;gap:6px;margin-top:12px;opacity:1;font-size:9.5px;letter-spacing:.18em;
  color:var(--lg-rasp);border:1.5px solid currentColor;border-radius:999px;padding:7px 14px;background:rgba(255,253,251,.7);
  transition:background .25s,color .25s}
.shop-grid .cat-go::after{content:"\2192";font-size:13px;letter-spacing:0}
.shop-grid a.cat-card:hover .cat-go{background:var(--lg-rasp);color:#fff;border-color:var(--lg-rasp)}
.shop-grid .cat-card.soon .cat-go{color:var(--lg-brown);opacity:.55}
.shop-grid .cat-card.soon .cat-go::after{content:""}
.shop-grid .cat-card.soon .cat-name{color:#B08ADB}
/* the bows behind the cards, in the logo colours */
.coll-boxes .bg-bow{color:var(--lg-lilac)}
.coll-boxes .bg-bow:nth-of-type(3n+1){color:var(--lg-salmon)}
.coll-boxes .bg-bow:nth-of-type(3n+2){color:var(--lg-teal)}
.coll-boxes .bow-field .bg-bow{opacity:calc(var(--o,.2) * 1.3)}

/* the four steps */
.sticker-h{color:var(--lg-teal)!important;-webkit-text-stroke:.16em #fff;paint-order:stroke fill;filter:drop-shadow(0 5px 7px rgba(90,58,46,.14))}
.step-cards{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2vw,26px)}
.step-card{position:relative;background:#FFFDFB;border-radius:30px 36px 28px 40px / 36px 28px 40px 30px;padding:46px 22px 24px;
  text-align:center;box-shadow:0 12px 26px rgba(74,56,48,.07);margin-top:28px}
.step-card:nth-child(even){transform:rotate(1deg)}
.step-card:nth-child(odd){transform:rotate(-1deg)}
.step-n{position:absolute;top:-30px;left:50%;transform:translateX(-50%) rotate(-6deg);width:60px;height:60px;display:grid;place-items:center;
  font-family:'Sour Gummy','Poppins',sans-serif;font-weight:800;font-size:34px;color:#fff;border-radius:50%;
  box-shadow:0 0 0 5px #fff,0 8px 14px rgba(90,58,46,.18)}
.step-card:nth-child(1) .step-n{background:var(--lg-rasp)}
.step-card:nth-child(2) .step-n{background:var(--lg-teal)}
.step-card:nth-child(3) .step-n{background:var(--lg-butter-dp)}
.step-card:nth-child(4) .step-n{background:var(--lg-blue)}
.step-card h3{font-family:'Sour Gummy','Poppins',sans-serif;font-weight:800;font-size:22px;color:var(--lg-brown)}
.step-card p{font-size:13px;line-height:1.7;opacity:.82;margin-top:10px}
.step-card .it{display:block;margin-top:12px;font-style:italic;font-size:12px;color:var(--lg-rasp)}
@media(max-width:1000px){.step-cards{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:46px}}
@media(max-width:520px){
  .step-cards{grid-template-columns:1fr;row-gap:44px}
  .shop-grid .cat-name{font-size:18px}
  .shop-grid .cat-line{font-size:16px}
}
.step-cards{align-items:start}
.step-card [data-note]{font-size:12px;opacity:.7}
@media(max-width:700px){
  .shop-grid .cat-go{white-space:nowrap;font-size:8px;letter-spacing:.08em;padding:6px 10px;gap:4px}
}
/* three across on a computer so a collection of three sits in one row */
@media(min-width:1000px){
  .prod-grid.even{grid-template-columns:repeat(auto-fit,minmax(0,300px));column-gap:clamp(26px,3vw,44px)}
}

/* ══ EASIER TO READ ═════════════════════════════════════════════════════
   The line that says what each collection is was in the handwritten font,
   small and faint. It is now plain, a comfortable size and full strength.
   The descriptions on the product cards get the same treatment. */
.shop-grid .cat-line{font-family:'Poppins',sans-serif;font-weight:400;font-size:14px;line-height:1.5;
  color:var(--cocoa-2);opacity:1;margin:8px auto 0;max-width:24ch}
.prod p:not(.price):not(.instal):not(.it):not(.more-soon){font-size:14px;line-height:1.6;opacity:1;color:var(--cocoa-2)}
.prod .it{font-size:13px}
@media(max-width:520px){
  .shop-grid .cat-line{font-size:13px;max-width:none}
}
.shop-grid .cat-line::first-letter{text-transform:uppercase}

/* ── DROPDOWN GROUP HEADINGS (the Lolly Letters colour families) ───────── */
.sel-list li.sel-group{cursor:default;margin-top:4px;padding:9px 16px 6px;
  font-family:'Sour Gummy','Poppins',sans-serif;font-weight:800;font-size:13px;letter-spacing:.02em;
  color:var(--lg-raspberry-dp,#C42F72);background:var(--white);border-bottom:1px solid rgba(90,58,46,.08);padding:9px 12px 6px}
.sel-list li.sel-group:hover{background:var(--white)}

/* ══ THE COLOUR CHART (/colours) ════════════════════════════════════════
   Each colour family sits on a soft blob-cornered card with its name as a
   sticker, and every colour is a shiny little lolly. Matte ones are flat,
   silk ones get a sweep of shine and a tag. Drawn by assets/home-cards.js. */
.cc-page{padding-bottom:clamp(30px,4vw,50px)}
.cc-intro{max-width:620px;margin:0 auto clamp(26px,3.5vw,40px);text-align:center;font-size:15px;line-height:1.7;color:var(--lg-brown)}
.cc-intro b{font-weight:500}
.cc-families{display:grid;gap:clamp(18px,2.4vw,26px)}
.cc-family{position:relative;background:#FFFDFB;border-radius:34px 42px 30px 46px;
  padding:clamp(26px,3vw,34px) clamp(16px,3vw,34px) clamp(20px,2.6vw,28px);
  box-shadow:0 10px 26px rgba(90,58,46,.08)}
.cc-families .cc-family:nth-child(even){border-radius:44px 30px 46px 32px}
.cc-fam-name{position:absolute;top:-16px;left:clamp(18px,3vw,34px);margin:0;
  font-family:'Sour Gummy','Poppins',sans-serif;font-weight:800;font-size:clamp(21px,2.4vw,26px);line-height:1;
  color:var(--fam,var(--lg-rasp));-webkit-text-stroke:.16em #fff;paint-order:stroke fill;
  filter:drop-shadow(0 4px 5px rgba(90,58,46,.13));transform:rotate(-2deg)}
.cc-families .cc-family:nth-child(even) .cc-fam-name{transform:rotate(1.5deg)}
.cc-family.tone-rasp{--fam:var(--lg-rasp);background:#FFF6F8}
.cc-family.tone-salmon{--fam:var(--lg-salmon);background:#FFF5F0}
.cc-family.tone-butter{--fam:var(--lg-butter-dp);background:#FFFAEB}
.cc-family.tone-teal{--fam:var(--lg-teal);background:#F2FBF9}
.cc-family.tone-blue{--fam:var(--lg-blue);background:#F3F8FD}
.cc-family.tone-lilac{--fam:#A784CF;background:#F9F4FD}
.cc-family.tone-brown{--fam:var(--lg-brown);background:#FBF6F1}
.cc-family.tone-grey{--fam:#9C8E86;background:#F8F6F4}
.cc-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:18px 10px}
.cc-chip{display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px}
.cc-dot{--c:#ddd;width:64px;height:64px;border-radius:50%;display:block;flex:none;
  background:radial-gradient(circle at 33% 28%,rgba(255,255,255,.62) 0,rgba(255,255,255,.18) 22%,rgba(255,255,255,0) 40%),var(--c);
  box-shadow:inset -5px -7px 0 rgba(0,0,0,.07),0 6px 12px rgba(90,58,46,.14);
  transition:transform .25s cubic-bezier(.3,1.6,.5,1)}
.cc-chip.is-pale .cc-dot{box-shadow:inset -5px -7px 0 rgba(0,0,0,.05),inset 0 0 0 1.5px rgba(90,58,46,.12),0 6px 12px rgba(90,58,46,.12)}
.cc-chip.is-matte .cc-dot{background:var(--c);box-shadow:inset -4px -5px 0 rgba(0,0,0,.06),0 5px 10px rgba(90,58,46,.12)}
.cc-chip.is-silk .cc-dot,.cc-chip.is-sparkly .cc-dot{
  background:linear-gradient(125deg,rgba(255,255,255,0) 25%,rgba(255,255,255,.55) 42%,rgba(255,255,255,0) 58%),
             radial-gradient(circle at 33% 28%,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 36%),var(--c)}
@media (hover:hover){.cc-chip:hover .cc-dot{transform:translateY(-4px) rotate(-8deg) scale(1.06)}}
.cc-name{font-size:13px;line-height:1.3;color:var(--lg-brown);font-weight:400;max-width:12ch}
.cc-fin{margin-top:-3px;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--pl-rose-dp);
  background:#fff;border:1px solid rgba(222,64,134,.3);border-radius:999px;padding:2px 8px}
.cc-else{display:flex;align-items:center;gap:18px;max-width:640px;margin:clamp(26px,3.5vw,40px) auto 0;
  background:var(--pl-pink);border-radius:30px 40px 28px 44px;padding:20px 24px}
.cc-else h3{margin:0 0 4px;font-family:'Sour Gummy','Poppins',sans-serif;font-weight:800;font-size:20px;color:var(--pl-rose-dp)}
.cc-else p{margin:0;font-size:14px;line-height:1.6;color:var(--lg-brown)}
.cc-else b{font-weight:500}
.cc-rainbow{background:conic-gradient(#F2938A,#F7D677,#8FD6A5,#86AED6,#BFA0DD,#DE4086,#F2938A)}
.cc-cta{text-align:center;margin-top:clamp(24px,3vw,34px)}
.cc-acrylic{padding:clamp(20px,3vw,40px) 0 clamp(30px,4vw,50px)}
.cc-acrylic .cc-family{max-width:820px;margin:0 auto;background:#FFFDFB}
.cc-fine{text-align:center;max-width:560px;margin:0 auto clamp(40px,5vw,64px);padding:0 16px}
.pd-callout-link{color:var(--pl-rose-dp);font-weight:500;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
@media (max-width:560px){
  .cc-grid{grid-template-columns:repeat(3,1fr);gap:16px 6px}
  .cc-dot{width:54px;height:54px}
  .cc-name{font-size:12px}
  .cc-else{flex-direction:column;text-align:center;padding:20px}
}

/* ── THE LITTLE LINK PILL AT THE TOP OF A COLLECTION (Lolly Letters colours) */
.banner .c-link{margin-top:16px}
.c-pill{display:inline-flex;align-items:center;gap:10px;padding:9px 18px 9px 10px;border-radius:999px;
  background:#FFFDFB;border:1.5px solid rgba(222,64,134,.35);color:var(--pl-rose-dp);
  font-size:13px;font-weight:500;letter-spacing:.02em;text-decoration:none;
  box-shadow:0 6px 14px rgba(222,64,134,.12);transition:transform .2s,box-shadow .2s}
.c-pill-dot{width:22px;height:22px;border-radius:50%;flex:none;
  background:conic-gradient(#F2938A,#F7D677,#8FD6A5,#86AED6,#BFA0DD,#DE4086,#F2938A)}
@media (hover:hover){.c-pill:hover{transform:translateY(-2px);box-shadow:0 9px 18px rgba(222,64,134,.18)}}

/* the "overseas shipping is coming soon" note on the cart */
.ship-soon{margin:2px 0 14px;font-size:12.5px;line-height:1.5}

/* ══ THE ADD BUTTON THAT FOLLOWS YOU (phones, product pages) ════════════ */
.follow-bar{display:none}
@media (max-width:760px){
  .follow-bar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:60;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom));
    background:rgba(255,253,251,.96);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
    border-top:1px solid rgba(90,58,46,.1);box-shadow:0 -8px 22px rgba(90,58,46,.1);
    transform:translateY(110%);transition:transform .28s ease;pointer-events:none}
  .follow-bar.on{transform:none;pointer-events:auto}
  .fb-in{display:flex;align-items:center;gap:12px;max-width:560px;margin:0 auto}
  .fb-txt{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}
  .fb-name{font-family:'Sour Gummy','Poppins',sans-serif;font-weight:800;font-size:15px;color:var(--lg-brown);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .fb-price{font-size:13px;color:var(--lg-brown);opacity:.8}
  .follow-bar .fb-btn{flex:none;padding:13px 22px;font-size:10.5px}
  .fb-msg{margin:0 auto 9px;max-width:560px;background:var(--pl-pink);color:var(--pl-rose-dp);
    border-radius:14px;padding:9px 13px;font-size:13px;line-height:1.45}
  html.has-follow-bar footer{padding-bottom:calc(84px + env(safe-area-inset-bottom))}
}
@media (prefers-reduced-motion:reduce){.follow-bar{transition:none}}

/* the big textured letters: a soft, bumpy, boucle-like surface (an
   SVG noise tile, lit from the top left, so it looks raised) */
.tex-bumpy{--tex:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='b' x='0' y='0'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.22' numOctaves='3' seed='7' stitchTiles='stitch'/%3E%3CfeDiffuseLighting lighting-color='%23fff' surfaceScale='2.4' diffuseConstant='1'%3E%3CfeDistantLight azimuth='225' elevation='48'/%3E%3C/feDiffuseLighting%3E%3CfeColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  1.5 0 0 0 -.95'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23b)'/%3E%3C/svg%3E") 0 0/.55em .55em,
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='b' x='0' y='0'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.22' numOctaves='3' seed='7' stitchTiles='stitch'/%3E%3CfeDiffuseLighting lighting-color='%23fff' surfaceScale='2.4' diffuseConstant='1'%3E%3CfeDistantLight azimuth='225' elevation='48'/%3E%3C/feDiffuseLighting%3E%3CfeColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  -1.4 0 0 0 1.05'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23b)'/%3E%3C/svg%3E") 0 0/.55em .55em,
  linear-gradient(165deg,rgba(255,255,255,.3) 0 14%,rgba(255,255,255,0) 44%,rgba(0,0,0,.06) 100%)}

/* ══ ICONS IN THE LOLLY LETTERS (hearts, dinosaurs, cars) ═══════════════ */
.nb-icons{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:-4px 0 18px}
.nb-icons-lbl{font-size:13px;color:var(--lg-brown);margin-right:2px}
.nb-addic{display:inline-flex;align-items:center;gap:7px;padding:7px 13px 7px 9px;border-radius:999px;
  background:#FFFDFB;border:1.5px solid rgba(222,64,134,.35);color:var(--pl-rose-dp);font:inherit;font-size:13px;cursor:pointer}
.nb-addic:hover,.nb-addic:focus-visible{background:var(--pl-pink)}
.nb-addic-sh,.ch-ic{width:20px;height:20px;flex:none;background:var(--pl-rose);
  -webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center}
.ch-ic{background:var(--lg-brown);margin-right:2px}
.nb-free{font-size:.85em;color:var(--pl-rose-dp)}
/* the icon in the live preview, coloured and textured like the letters */
.nb-l .nb-icw{display:block;background:none;-webkit-background-clip:border-box;background-clip:border-box;color:inherit;
  font-size:var(--fs);padding:0 .04em .06em;
  filter:drop-shadow(0 2px 0 rgba(62,46,39,.10)) drop-shadow(0 7px 9px rgba(74,56,48,.20))}
.nb-l .nb-ic{display:block;width:.82em;height:.82em;background:var(--tex),var(--c);
  -webkit-background-clip:border-box;background-clip:border-box;filter:none;
  -webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center bottom;mask-position:center bottom}
.nb-l.is-pale .nb-icw{filter:drop-shadow(0 0 1px rgba(62,46,39,.35)) drop-shadow(0 7px 9px rgba(74,56,48,.20))}
.nb-l.is-other .nb-ic{background:var(--tex),conic-gradient(from 30deg,#F7BFCB,#F3D77C,#8FD6A5,#9CC4EC,#C4B2E3,#F7BFCB)}

/* Clearer buying information, keeping the studio palette. */
.info .copy,.fine,.instal,.breadcrumb,.crumbs{color:#514139;opacity:1}
.info .copy{font-weight:400}
.buy-reassurance{margin-top:18px;padding:20px;background:#fffaf5;border:1px solid #d6c7bd;border-radius:18px;color:#514139;font-size:13px;line-height:1.65}
.buy-reassurance p{margin-top:8px}.buy-reassurance a{display:inline-block;margin-top:10px;text-decoration:underline;font-weight:500}
.mobile-product-intro{display:none}.hero-offer{max-width:36ch;margin:14px 0;font-size:16px;line-height:1.6;color:#514139}
.delivery-link{font-size:13px;margin:15px 0;text-align:center}
@media(max-width:899px){.mobile-product-intro{display:block}.prod-detail{gap:22px}.mobile-product-intro h1{font-size:34px}.mobile-product-intro .eb{font-size:9px}.mobile-product-intro .price{margin-top:8px}.mobile-product-intro .instal{margin-top:8px}.thumbs{gap:8px}.info .copy{font-size:14px}}

.mobile-benefit{font-size:13px;color:#514139;font-weight:400;line-height:1.6;margin-top:12px}
