:root{
  --plum-900:#241033;
  --plum-700:#4A1F72;
  --brand:#5B2D91;
  --brand-400:#7B3FA0;
  --lilac-100:#EFE7F7;
  --paper:#FAF7F5;
  --ink:#1E1622;
  --muted:#6B6270;
  --gold:#C79A3C;
  --wrap:1240px;
}
*,*::before,*::after{box-sizing:border-box;}
html,body{max-width:100%;overflow-x:hidden;}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:Inter,system-ui,sans-serif;font-size:17px;line-height:1.7;
  -webkit-font-smoothing:antialiased;overflow-wrap:break-word;
}
img,svg,iframe{max-width:100%;height:auto;display:block;}
h1,h2,h3{font-family:Cardo,Georgia,serif;font-weight:400;margin:0;line-height:1.08;}
p{margin:0 0 1.1em;}
a{color:var(--brand);}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 22px;width:100%;}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.skip{position:absolute;left:-9999px;}
.skip:focus{left:12px;top:12px;z-index:200;background:#fff;padding:10px 14px;border-radius:4px;}
:focus-visible{outline:2px solid var(--brand-400);outline-offset:3px;}
*{min-width:0;}

/* buttons */
.btn{display:inline-block;font-family:Inter;font-weight:600;font-size:.94rem;letter-spacing:.02em;
  padding:14px 26px;border-radius:2px;text-decoration:none;transition:.25s;white-space:nowrap;}
.btn-solid{background:var(--brand);color:#fff;}
.btn-solid:hover{background:var(--brand-400);}
.btn-ghost-light{border:1px solid rgba(255,255,255,.55);color:#fff;}
.btn-ghost-light:hover{background:#fff;color:var(--plum-900);}
.txtlink{display:inline-flex;gap:.5em;align-items:center;font-family:Inter;font-weight:600;
  font-size:.9rem;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;
  color:#fff;border-bottom:1px solid var(--gold);padding-bottom:4px;}
.txtlink.dark{color:var(--brand);}
.txtlink.light{color:#EFE7F7;}
.txtlink:hover{border-bottom-color:currentColor;}
.cta-row{margin-top:26px;}

/* promo */
.promo{background:var(--plum-700);color:#EFE7F7;font-size:.82rem;}
.promo-in{display:flex;align-items:center;gap:12px;justify-content:center;padding:8px 22px;}
.promo p{margin:0;text-align:center;}
.promo a{color:#fff;}
.promo .ph{opacity:.55;font-size:.72rem;}
.promo-x{background:none;border:0;color:inherit;font-size:1.2rem;line-height:1;cursor:pointer;padding:2px 6px;}

/* header */
.site-head{position:sticky;top:0;z-index:130;background:rgba(250,247,245,.94);
  backdrop-filter:blur(8px);border-bottom:1px solid rgba(91,45,145,.14);transition:.3s;}
.head-in{display:flex;align-items:center;gap:18px;padding-top:14px;padding-bottom:14px;transition:.3s;}
.site-head.small{box-shadow:0 10px 30px rgba(36,16,51,.08);}
.site-head.small .head-in{padding-top:7px;padding-bottom:7px;}
.brand{flex:0 0 auto;}
.brand img{height:56px;width:auto;transition:.3s;}
.site-head.small .brand img{height:42px;}
.nav{margin-left:auto;}
.drawer-cta{display:none;}
.nav-list{display:flex;gap:22px;list-style:none;margin:0;padding:0;align-items:center;}
.nav-list>li{position:relative;}
.nav-list>li>a{font-size:.93rem;font-weight:500;color:var(--ink);text-decoration:none;
  padding:8px 0;display:inline-block;border-bottom:1px solid transparent;}
.nav-list>li>a:hover{border-bottom-color:var(--brand);color:var(--brand);}
.sub-t{background:none;border:0;cursor:pointer;color:var(--muted);font-size:.7rem;padding:4px;}
.sub{position:absolute;top:100%;left:-14px;min-width:210px;background:#fff;list-style:none;
  margin:0;padding:10px 0;border:1px solid rgba(91,45,145,.15);box-shadow:0 18px 40px rgba(36,16,51,.13);
  opacity:0;visibility:hidden;transform:translateY(6px);transition:.2s;}
.has-sub:hover .sub,.has-sub.open .sub,.has-sub:focus-within .sub{opacity:1;visibility:visible;transform:none;}
.sub a{display:block;padding:9px 20px;font-size:.9rem;color:var(--ink);text-decoration:none;}
.sub a:hover{background:var(--lilac-100);color:var(--brand);}
.head-act{display:flex;align-items:center;gap:8px;flex:0 0 auto;}
.btn-shop{padding:11px 20px;background:var(--brand);color:#fff;font-size:.86rem;}
.btn-shop:hover{background:var(--brand-400);}
.icn{position:relative;background:none;border:0;cursor:pointer;color:var(--ink);
  width:40px;height:40px;display:grid;place-items:center;text-decoration:none;}
.icn svg{width:21px;height:21px;fill:currentColor;}
.cart-n{position:absolute;top:2px;right:2px;background:var(--brand);color:#fff;font-size:.6rem;
  font-weight:600;border-radius:999px;min-width:15px;height:15px;display:grid;place-items:center;padding:0 3px;}
.burger{display:none;background:none;border:0;width:42px;height:40px;cursor:pointer;padding:9px 7px;}
.burger span{display:block;height:1.6px;background:var(--ink);margin:5px 0;transition:.25s;}
.nav-scrim{position:fixed;inset:0;background:rgba(36,16,51,.5);z-index:120;}
.searchbar{border-top:1px solid rgba(91,45,145,.12);background:#fff;padding:14px 0;}
.searchform{display:flex;gap:8px;}
.searchform input{flex:1;padding:12px 14px;border:1px solid rgba(91,45,145,.25);
  font-family:Inter;font-size:.95rem;background:var(--paper);}
.searchform button{background:var(--brand);color:#fff;border:0;padding:0 22px;font-weight:600;cursor:pointer;}

/* hero */
.hero{position:relative;min-height:min(88vh,760px);display:flex;align-items:flex-end;overflow:hidden;background:var(--plum-900);}
.hero-media{position:absolute;inset:0;}
.hero-media .slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:62% 55%;opacity:0;transition:opacity 1.4s ease;}
.hero-media .slide[data-i="1"]{object-position:62% 48%;}
.hero-media .slide.is-on{opacity:1;}
.hero-scrim{position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(36,16,51,.95) 0%,rgba(36,16,51,.88) 28%,rgba(74,31,114,.5) 54%,rgba(36,16,51,.14) 80%);}
.hero-in{position:relative;padding-top:120px;padding-bottom:56px;}
.hero-copy{max-width:660px;}
.hero h1{color:#fff;font-size:clamp(2.5rem,6vw,5rem);line-height:1.03;letter-spacing:-.005em;
  text-shadow:0 2px 34px rgba(20,8,30,.35);}
.hero p{color:rgba(255,255,255,.88);font-size:1.06rem;max-width:52ch;margin-top:24px;}
.hero-cta{display:flex;flex-wrap:wrap;gap:18px 28px;align-items:center;margin-top:14px;}
.dots{display:flex;gap:22px;flex-wrap:wrap;margin-top:52px;}
.dots button{background:none;border:0;cursor:pointer;padding:0 0 8px;color:rgba(255,255,255,.55);
  font-family:Inter;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  border-bottom:1px solid rgba(255,255,255,.22);transition:.3s;}
.dots button[aria-selected="true"]{color:#fff;border-bottom-color:var(--gold);}

/* ribbon */
.ribbon{background:var(--plum-900);color:#EFE7F7;}
.ribbon-in{display:flex;align-items:center;gap:22px 34px;flex-wrap:wrap;justify-content:center;padding:18px 22px;}
.badges{display:flex;gap:14px;list-style:none;margin:0;padding:0;}
.badges img{height:52px;width:auto;background:#fff;border-radius:6px;padding:5px;object-fit:contain;}
.ribbon p{margin:0;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(239,231,247,.8);}

/* story */
.story{padding:120px 0 130px;overflow:hidden;}
.story-grid{display:grid;grid-template-columns:5fr 7fr;gap:70px;align-items:center;}
.story-img{margin:0;position:relative;}
.story-img img{width:100%;aspect-ratio:4/4.5;object-fit:cover;object-position:55% 50%;
  box-shadow:0 40px 80px rgba(36,16,51,.28);}
.story-copy h2{font-size:clamp(2rem,3.5vw,3.25rem);color:var(--brand);}
.story-copy>p{max-width:62ch;margin-top:22px;color:#2c2331;}
.pull{margin:56px 0 0;background:var(--lilac-100);padding:38px 40px;border-left:3px solid var(--brand);}
.pull p{font-family:Cardo,serif;font-size:clamp(1.35rem,2.2vw,1.9rem);line-height:1.3;color:var(--plum-700);margin:0 0 20px;}

/* pillars */
.pillars{background:var(--plum-900);color:#EFE7F7;padding:126px 0;
  background-image:radial-gradient(1100px 460px at 12% -8%,rgba(123,63,160,.42),transparent 70%);}
.pillars-head{max-width:640px;margin-bottom:66px;}
.pillars-head h2{color:#fff;font-size:clamp(2rem,3.5vw,3.25rem);}
.pillars-head p{color:rgba(239,231,247,.72);margin-top:14px;}
.pillar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;}
.pillar{padding:0 40px;border-left:1px solid rgba(239,231,247,.18);}
.pillar:first-child{padding-left:0;border-left:0;}
.pillar:last-child{padding-right:0;}
.pillar:nth-child(2){transform:translateY(26px);}
.pillar:nth-child(3){transform:translateY(52px);}
.num{font-family:Cardo,serif;font-size:2.6rem;color:var(--gold);display:block;line-height:1;}
.pillar h3{font-size:1.85rem;color:#fff;margin:14px 0 16px;}
.pillar p{color:rgba(239,231,247,.78);font-size:.98rem;}
.pillar ul{list-style:none;margin:22px 0 28px;padding:0;}
.pillar li{font-size:.86rem;letter-spacing:.06em;text-transform:uppercase;color:rgba(239,231,247,.62);
  padding:9px 0;border-top:1px solid rgba(239,231,247,.13);}

/* kathleen */
.kath{padding:150px 0 130px;background:linear-gradient(180deg,var(--paper),#F4EFF6);}
.kath-grid{display:grid;grid-template-columns:6fr 6fr;gap:64px;align-items:center;}
.kath-copy h2{font-size:clamp(2rem,3.5vw,3rem);color:var(--brand);margin-bottom:26px;}
.kath-copy p{font-family:Cardo,serif;font-size:1.18rem;line-height:1.62;max-width:58ch;}
.kath-img{margin:0;}
.kath-img img{width:100%;object-fit:cover;object-position:22% 42%;
  box-shadow:0 34px 74px rgba(36,16,51,.2);}

/* categories */
.cats{padding:110px 0;}
.cats-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;
  flex-wrap:wrap;margin-bottom:38px;}
.cats-head h2{font-size:clamp(2rem,3.5vw,3rem);color:var(--brand);}
.mosaic{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.tile{position:relative;overflow:hidden;display:block;background:var(--plum-900);
  aspect-ratio:1005/618;}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease;}
.tile::after{content:"";position:absolute;inset:0;background:rgba(91,45,145,0);transition:.4s;}
.tile:hover img{transform:scale(1.05);}
.tile:hover::after{background:rgba(91,45,145,.3);}
.t-a{grid-column:1/3;grid-row:1/3;aspect-ratio:auto;}
.t-b{grid-column:3;grid-row:1;}
.t-c{grid-column:3;grid-row:2;}
.t-d{grid-column:1;grid-row:3;}
.t-e{grid-column:2;grid-row:3;}
.t-f{grid-column:3;grid-row:3;}

/* testimonials */
.tst{padding:0 0 110px;}
.tst-in{border-top:1px solid rgba(91,45,145,.18);padding-top:64px;}
.tst h2{font-size:clamp(1.7rem,2.6vw,2.3rem);color:var(--brand);margin-bottom:28px;}
.tst-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:28px;}
.tst blockquote{margin:0;background:var(--lilac-100);padding:32px 32px 30px;font-family:Cardo,serif;
  font-size:1.1rem;color:var(--plum-700);position:relative;}
.tst blockquote::before{content:"“";font-family:Cardo,serif;font-size:3.2rem;line-height:.7;
  color:var(--brand);opacity:.35;display:block;margin-bottom:8px;}
.tst blockquote p{margin:0;}

/* wholesale */
.whl{background:var(--brand);color:#fff;}
.whl-in{display:flex;gap:34px;align-items:center;justify-content:space-between;flex-wrap:wrap;
  padding:74px 22px;}
.whl h2{font-size:clamp(1.8rem,3vw,2.6rem);color:#fff;margin-bottom:14px;}
.whl p{color:rgba(255,255,255,.88);max-width:60ch;margin:0;}

/* blog */
.blog{padding:112px 0;}
.blog-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;
  flex-wrap:wrap;margin-bottom:44px;}
.blog-head h2{font-size:clamp(2rem,3.5vw,3rem);color:var(--brand);}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:38px;}
.post-img{display:block;overflow:hidden;margin-bottom:20px;background:var(--lilac-100);}
.post-img img{width:100%;aspect-ratio:16/11;object-fit:cover;transition:transform .6s;}
.post-img:hover img{transform:scale(1.05);}
.post-type{aspect-ratio:16/11;display:flex;flex-direction:column;justify-content:center;
  align-items:center;background:var(--plum-700);color:#EFE7F7;text-decoration:none;gap:6px;
  background-image:radial-gradient(400px 200px at 30% 10%,rgba(123,63,160,.7),transparent 70%);}
.post-type span{font-family:Cardo,serif;font-size:3.4rem;color:var(--gold);line-height:1;}
.post-type em{font-family:Cardo,serif;font-style:normal;letter-spacing:.16em;
  text-transform:uppercase;font-size:.78rem;}
.post h3{font-size:1.5rem;margin-bottom:6px;}
.post h3 a{color:var(--ink);text-decoration:none;}
.post h3 a:hover{color:var(--brand);}
.meta{font-size:.82rem;color:var(--muted);margin-bottom:12px;}
.post>p{font-size:.97rem;color:#3a3141;}

/* closing */
.close{position:relative;min-height:460px;display:grid;place-items:center;overflow:hidden;background:var(--plum-900);}
.close-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 55%;}
.close::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(36,16,51,.5),rgba(36,16,51,.86));}
.close-in{position:relative;z-index:2;text-align:center;padding:100px 22px;}
.close h2{color:#fff;font-size:clamp(2rem,4.2vw,3.5rem);margin-bottom:34px;}

/* footer */
.foot{background:var(--plum-900);color:rgba(239,231,247,.82);padding:86px 0 32px;font-size:.94rem;}
.foot h3{font-family:Inter;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;
  color:#fff;margin-bottom:18px;font-weight:600;}
.foot a{color:rgba(239,231,247,.85);text-decoration:none;}
.foot a:hover{color:#fff;text-decoration:underline;}
.foot-grid{display:grid;grid-template-columns:2.1fr 1fr 1.1fr 1.4fr;gap:46px;}
.foot-logo{width:210px;background:#fff;border-radius:8px;padding:10px;margin-bottom:20px;}
.tag{font-family:Cardo,serif;font-size:1.05rem;line-height:1.6;}
.ph-line a{font-family:Cardo,serif;font-size:1.3rem;color:#fff;}
.foot-links ul{list-style:none;margin:0;padding:0;}
.foot-links li{padding:5px 0;}
.soc{display:flex;gap:12px;list-style:none;margin:0 0 24px;padding:0;flex-wrap:wrap;}
.soc a{display:grid;place-items:center;width:40px;height:40px;border:1px solid rgba(239,231,247,.28);
  color:var(--lilac-100);border-radius:50%;}
.soc svg{width:18px;height:18px;}
.soc a:hover{background:var(--brand-400);border-color:var(--brand-400);color:#fff;}
.foot-badges{display:flex;gap:10px;list-style:none;margin:0;padding:0;flex-wrap:wrap;}
.foot-badges img{height:44px;width:auto;background:#fff;border-radius:5px;padding:4px;object-fit:contain;}
.news{display:flex;gap:8px;flex-wrap:wrap;}
.news input{flex:1;min-width:150px;padding:12px 12px;border:1px solid rgba(239,231,247,.3);
  background:rgba(255,255,255,.06);color:#fff;font-family:Inter;font-size:.9rem;}
.news input::placeholder{color:rgba(239,231,247,.5);}
.news button{background:var(--brand-400);color:#fff;border:0;padding:0 20px;font-weight:600;cursor:pointer;}
.sig{font-family:"Alex Brush",cursive;font-size:2rem;color:rgba(239,231,247,.55);margin:18px 0 0;line-height:1;}
.foot-base{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  margin-top:56px;padding-top:24px;border-top:1px solid rgba(239,231,247,.16);font-size:.84rem;}
.foot-base p{margin:0;}

/* reveal */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .5s ease,transform .5s ease;}
.reveal.in{opacity:1;transform:none;}

/* responsive */
@media(min-width:1041px){
  .story-img{margin-left:-70px;}
  .kath-img{margin-right:-60px;}
}
@media(max-width:1040px){
  .story-grid,.kath-grid{grid-template-columns:1fr;gap:40px;}
  .kath-img{order:-1;}
  .pillar-grid{grid-template-columns:1fr;}
  .pillar{padding:34px 0;border-left:0;border-top:1px solid rgba(239,231,247,.18);transform:none!important;}
  .pillar:first-child{border-top:0;padding-top:0;}
  .kath{padding:100px 0;}
  .foot-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:900px){
  .burger{display:block;}
  .nav{position:fixed;inset:0 0 0 auto;width:min(360px,88%);background:var(--plum-900);
    padding:88px 26px 48px;transform:translateX(105%);transition:transform .35s ease;
    overflow-y:auto;z-index:140;display:flex;flex-direction:column;}
  .nav.open{transform:none;}
  .nav-list{flex-direction:column;align-items:stretch;gap:0;}
  .nav-list>li{border-bottom:1px solid rgba(239,231,247,.14);}
  .nav-list>li>a{color:#fff;font-size:1.08rem;padding:16px 0;font-family:Cardo,serif;}
  .drawer-cta{display:inline-block;margin-top:28px;text-align:center;}
  .sub-t{position:absolute;right:0;top:12px;color:#EFE7F7;font-size:1rem;padding:10px 12px;}
  .sub{position:static;opacity:1;visibility:visible;transform:none;background:transparent;
    border:0;box-shadow:none;padding:0 0 10px;display:none;}
  .has-sub.open .sub{display:block;}
  .sub a{color:rgba(239,231,247,.8);padding:10px 0;}
  .sub a:hover{background:none;color:#fff;}
  .btn-shop{padding:10px 15px;font-size:.8rem;}
  .brand img{height:42px;}
  .site-head.small .brand img{height:38px;}
  .blog-grid{grid-template-columns:1fr;gap:44px;}
  .mosaic{grid-template-columns:repeat(2,1fr);gap:12px;}
  .t-a{grid-column:1/3;grid-row:auto;aspect-ratio:1005/618;}
  .t-b,.t-c,.t-d,.t-e,.t-f{grid-column:auto;grid-row:auto;}
  .tst-grid{grid-template-columns:1fr;}
}
@media(max-width:640px){
  body{font-size:16px;}
  .story,.cats,.blog{padding:74px 0;}
  .kath{padding:74px 0;}
  .pillars{padding:78px 0;}
  .tst{padding-bottom:74px;}
  .tst-in{padding-top:48px;}
  .hero{min-height:auto;}
  .hero-in{padding-top:92px;padding-bottom:46px;}
  .hero h1{font-size:clamp(2.1rem,9vw,3rem);}
  .hero-media .slide{object-position:64% 50%;}
  .hero-cta{gap:16px 22px;}
  .dots{gap:14px;margin-top:34px;}
  .dots button{font-size:.66rem;}
  .pull{padding:26px 22px;margin-top:42px;}
  .story-img img{aspect-ratio:1/1.05;}
  .foot-grid{grid-template-columns:1fr;gap:38px;}
  .badges img{height:44px;}
  .ribbon-in{gap:14px;padding:16px 22px;}
  .ribbon p{text-align:center;font-size:.7rem;letter-spacing:.1em;}
  .whl-in{padding:58px 22px;}
  .close-in{padding:78px 22px;}
  .mosaic{grid-template-columns:1fr;gap:12px;}
  .t-a{grid-column:auto;}
  .cats-head{margin-bottom:26px;}
  .btn{padding:13px 22px;}
}
@media(max-width:430px){
  .icn-search{display:none;}
  .head-in{gap:6px;}
  .btn-shop{padding:10px 12px;font-size:.76rem;}
  .brand img{height:38px;}
  .promo .ph{display:none;}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;}
  .reveal{opacity:1;transform:none;}
}