:root{
    --cream:#F5EEE1;
    --cream-2:#EFE5D3;
    --paper:#FBF6EE;
    --ink:#2C1452;
    --ink-2:#4B356F;
    --ink-soft:rgba(44,20,82,.66);
    --teal:#12A6B0;
    --teal-ink:#0C7C86;
    --pink:#E33869;
    --pink-ink:#C42553;
    --line:rgba(44,20,82,.14);
    --shadow-sm:0 2px 8px rgba(44,20,82,.08);
    --shadow-md:0 14px 34px -14px rgba(44,20,82,.30);
    --shadow-lg:0 30px 60px -22px rgba(44,20,82,.38);
    --r:18px;
    --maxw:1180px;
  }
  .brand-badge{background-image:url(../assets/logo.png)}

  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{
    margin:0;
    background:var(--cream);
    color:var(--ink);
    font-family:"Poppins",system-ui,sans-serif;
    font-size:17px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  a{color:inherit;text-decoration:none}
  img{max-width:100%;display:block}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}

  h1,h2,h3{margin:0;line-height:1.08;letter-spacing:-.01em}
  .eyebrow{
    font-family:"Poppins";font-weight:700;text-transform:uppercase;
    letter-spacing:.22em;font-size:12.5px;color:var(--teal-ink);
    display:inline-flex;align-items:center;gap:10px;
  }
  .eyebrow::before{content:"";width:26px;height:2px;background:var(--teal);border-radius:2px;display:inline-block}
  .script{font-family:"Sacramento",cursive;color:var(--pink);font-weight:400;letter-spacing:.5px;line-height:.9}

  .btn{
    display:inline-flex;align-items:center;gap:9px;justify-content:center;
    font-family:"Poppins";font-weight:700;font-size:15px;letter-spacing:.01em;
    padding:15px 26px;border-radius:999px;cursor:pointer;border:2px solid transparent;
    transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
    white-space:nowrap;
  }
  .btn-primary{background:var(--pink);color:#fff;box-shadow:0 10px 22px -10px var(--pink)}
  .btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 30px -12px var(--pink)}
  .btn-ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
  .btn-ghost:hover{background:var(--ink);color:var(--cream);transform:translateY(-2px)}
  .btn svg{width:18px;height:18px}

  /* dotted divider echoing the brand's dotted lines */
  .dotline{height:0;border:0;border-top:3px dotted var(--teal);opacity:.6;margin:0}

  /* ---------- announcement ---------- */
  .announce{
    background:var(--ink);color:var(--cream);
    font-size:13px;font-weight:600;letter-spacing:.03em;
    text-align:center;padding:9px 16px;
  }
  .announce b{color:#fff}
  .announce .dot{color:var(--teal);margin:0 12px;font-weight:800}

  /* ---------- nav ---------- */
  header.nav{position:sticky;top:0;z-index:60;background:rgba(245,238,225,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
  .nav-inner{display:flex;align-items:center;gap:18px;height:74px}
  .brandmark{display:flex;align-items:center;gap:11px;margin-right:auto}
  .brandmark .badge-sm{width:46px;height:46px;background-size:contain;background-repeat:no-repeat;background-position:center;flex:none}
  .brandmark .wordmark{font-family:"Poppins";font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:19px;color:var(--ink);line-height:1}
  .brandmark .wordmark span{color:var(--teal-ink)}
  nav.links{display:flex;align-items:center;gap:28px}
  nav.links a{font-weight:600;font-size:15px;color:var(--ink-2);transition:color .15s}
  nav.links a:hover{color:var(--pink-ink)}
  .cart{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:14px;color:var(--ink);border:2px solid var(--ink);padding:9px 16px;border-radius:999px;transition:.18s}
  .cart:hover{background:var(--ink);color:var(--cream)}
  .cart svg{width:17px;height:17px}
  .menu-btn{display:none;background:none;border:0;cursor:pointer;color:var(--ink);padding:8px}
  .menu-btn svg{width:26px;height:26px}

  /* ---------- hero ---------- */
  .hero{position:relative;padding:66px 0 40px;overflow:hidden}
  .hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
  .hero h1{
    font-family:"Poppins";font-weight:800;text-transform:none;
    font-size:clamp(38px,5.4vw,66px);letter-spacing:-.02em;color:var(--ink);
    margin:18px 0 6px;
  }
  .hero h1 em{font-style:normal;color:var(--teal-ink)}
  .hero .headscript{font-family:"Sacramento",cursive;color:var(--pink);font-size:clamp(30px,4.4vw,48px);display:block;margin-top:-4px;transform:rotate(-2deg);transform-origin:left}
  .hero p.lede{font-size:18.5px;color:var(--ink-soft);max-width:34ch;margin:20px 0 30px}
  .hero-cta{display:flex;gap:14px;flex-wrap:wrap}
  .hero-proof{display:flex;gap:22px;margin-top:30px;flex-wrap:wrap}
  .hero-proof span{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;color:var(--ink-2)}
  .hero-proof svg{width:16px;height:16px;color:var(--teal)}

  /* hero visual: badge + fanned tile hand */
  .hero-art{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:440px}
  .hero-badge{width:min(320px,72%);aspect-ratio:1;background-size:contain;background-repeat:no-repeat;background-position:center;filter:drop-shadow(0 24px 40px rgba(44,20,82,.22));animation:floaty 6s ease-in-out infinite}
  .hand{display:flex;justify-content:center;align-items:flex-end;margin-top:-6px}
  .hand .tile{margin:0 -12px;transform-origin:bottom center}
  .hand .tile:nth-child(1){transform:rotate(-16deg) translateY(14px)}
  .hand .tile:nth-child(2){transform:rotate(-8deg) translateY(4px)}
  .hand .tile:nth-child(3){transform:rotate(0deg)}
  .hand .tile:nth-child(4){transform:rotate(8deg) translateY(4px)}
  .hand .tile:nth-child(5){transform:rotate(16deg) translateY(14px)}
  .hand .tile{animation:dealIn .55s cubic-bezier(.2,.8,.25,1) backwards}
  .hand .tile:nth-child(1){animation-delay:.05s}
  .hand .tile:nth-child(2){animation-delay:.15s}
  .hand .tile:nth-child(3){animation-delay:.25s}
  .hand .tile:nth-child(4){animation-delay:.35s}
  .hand .tile:nth-child(5){animation-delay:.45s}

  /* floating brand doodles */
  .doodle{position:absolute;opacity:.9;pointer-events:none}
  .doodle svg{width:100%;height:100%}
  .d1{top:8%;left:2%;width:46px;color:var(--teal);animation:floaty 7s ease-in-out infinite}
  .d2{bottom:12%;right:4%;width:40px;color:var(--pink);animation:floaty 5.5s ease-in-out .6s infinite}

  /* ---------- mahjong tile component ---------- */
  .tile{
    width:74px;height:100px;border-radius:12px;flex:none;position:relative;
    background:linear-gradient(#FEFCF7,#F2E9D8);
    box-shadow:inset 0 2px 0 rgba(255,255,255,.9), inset 0 -12px 0 rgba(0,0,0,.03), 0 10px 20px -8px rgba(44,20,82,.35);
    border:1px solid rgba(44,20,82,.10);
    display:flex;align-items:center;justify-content:center;
  }
  .tile::after{content:"";position:absolute;left:6px;right:6px;bottom:6px;height:5px;border-radius:4px;background:var(--tile-base,var(--teal));opacity:.85}
  .tile .ic{width:52%;height:52%;color:var(--tile-c,var(--teal))}
  .tile .ic svg{width:100%;height:100%;display:block}

  /* ---------- section shell ---------- */
  section{position:relative}
  .band{padding:76px 0}
  .band-alt{background:var(--cream-2)}
  .sec-head{max-width:640px}
  .sec-head h2{font-family:"Poppins";font-weight:800;font-size:clamp(28px,3.6vw,42px);letter-spacing:-.02em;margin:14px 0 0}
  .sec-head h2 .script{font-size:1.35em;display:inline-block;margin-left:2px;transform:translateY(6px)}

  /* ---------- category row ---------- */
  .cats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:36px}
  .cat{
    background:var(--paper);border:1px solid var(--line);border-radius:var(--r);
    padding:26px 24px;display:flex;align-items:center;gap:18px;transition:transform .2s ease,box-shadow .2s ease;
  }
  .cat:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
  .cat .cat-ic{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;flex:none;color:#fff}
  .cat .cat-ic svg{width:28px;height:28px}
  .cat .cat-ic.t{background:var(--teal)} .cat .cat-ic.p{background:var(--pink)} .cat .cat-ic.i{background:var(--ink)}
  .cat h3{font-size:18px;font-weight:700}
  .cat p{margin:2px 0 0;font-size:13.5px;color:var(--ink-soft)}
  .cat .arrow{margin-left:auto;color:var(--ink-2);transition:transform .2s}
  .cat:hover .arrow{transform:translateX(4px);color:var(--pink)}

  /* ---------- product grid ---------- */
  .prod-top{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
  .products{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:38px}
  .card{
    background:var(--paper);border:1px solid var(--line);border-radius:var(--r);
    overflow:hidden;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease;
  }
  .card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
  .card .thumb{
    position:relative;aspect-ratio:4/3;display:grid;place-items:center;
    background:radial-gradient(120% 120% at 50% 20%, #fff 0%, var(--cream-2) 78%);
    border-bottom:1px solid var(--line);
  }
  .card .thumb .tile{transform:rotate(-4deg);transition:transform .25s ease}
  .card:hover .thumb .tile{transform:rotate(0) translateY(-3px)}
  .card .thumb .tag{position:absolute;top:12px;left:12px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:5px 11px;border-radius:999px;background:var(--ink);color:var(--cream)}
  .card .thumb .tag.new{background:var(--pink)}
  .card .thumb .tag.mi{background:var(--teal)}
  .card .body{padding:20px 20px 22px;display:flex;flex-direction:column;flex:1}
  .card .body h3{font-size:18.5px;font-weight:700}
  .card .body p{margin:6px 0 0;font-size:14px;color:var(--ink-soft);flex:1}
  .card .foot{display:flex;align-items:center;justify-content:space-between;margin-top:18px}
  .card .price{font-family:"Fraunces",serif;font-weight:600;font-size:22px;color:var(--ink)}
  .add{border:2px solid var(--ink);background:transparent;color:var(--ink);font-family:"Poppins";font-weight:700;font-size:13px;padding:9px 16px;border-radius:999px;cursor:pointer;transition:.16s}
  .add:hover{background:var(--pink);border-color:var(--pink);color:#fff}

  /* ---------- story ---------- */
  .story{background:var(--ink);color:var(--cream);border-radius:0;overflow:hidden}
  .story-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:56px;align-items:center;padding:78px 0}
  .story-art{position:relative;display:grid;place-items:center;min-height:340px}
  .story-art .ring{position:absolute;inset:6%;border:2px dashed rgba(255,255,255,.22);border-radius:50%}
  .story-badge{width:min(300px,80%);aspect-ratio:1;background-size:contain;background-repeat:no-repeat;background-position:center;background-color:var(--cream);border-radius:50%;padding:8%;box-shadow:var(--shadow-lg);animation:floaty 6.5s ease-in-out infinite}
  .story .eyebrow{color:#7fe1e8}
  .story .eyebrow::before{background:var(--teal)}
  .story h2{font-family:"Fraunces",serif;font-weight:500;font-size:clamp(28px,3.4vw,40px);letter-spacing:-.01em;color:#fff;margin:16px 0 22px}
  .story h2 .script{color:var(--pink);font-size:1.5em}
  .story-copy p{font-family:"Fraunces",serif;font-weight:400;font-size:18.5px;line-height:1.72;color:rgba(245,238,225,.9);margin:0 0 18px;max-width:60ch}
  .story-copy p:last-child{margin-bottom:0}
  .story-copy em{font-style:italic;color:#fff}
  .signoff{font-family:"Sacramento",cursive;color:#7fe1e8;font-size:34px;margin-top:26px;line-height:1}

  /* ---------- values ---------- */
  .values{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:40px}
  .value{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:30px 26px}
  .value .vic{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;color:#fff;margin-bottom:18px}
  .value .vic svg{width:28px;height:28px}
  .value:nth-child(1) .vic{background:var(--teal)}
  .value:nth-child(2) .vic{background:var(--pink)}
  .value:nth-child(3) .vic{background:var(--ink)}
  .value h3{font-size:19px;font-weight:700;margin-bottom:8px}
  .value p{margin:0;font-size:15px;color:var(--ink-soft)}

  /* ---------- newsletter ---------- */
  .news{background:var(--cream-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .news-inner{padding:70px 0;text-align:center;max-width:620px;margin:0 auto}
  .news h2{font-family:"Poppins";font-weight:800;font-size:clamp(26px,3.4vw,38px);letter-spacing:-.02em}
  .news h2 .script{color:var(--pink);font-size:1.4em}
  .news p{color:var(--ink-soft);margin:12px auto 26px;max-width:44ch}
  .news form{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
  .news input{
    font-family:"Poppins";font-size:15px;padding:15px 20px;border-radius:999px;border:2px solid var(--ink);
    background:var(--paper);color:var(--ink);width:min(320px,72vw);
  }
  .news input:focus{outline:3px solid rgba(18,166,176,.4);outline-offset:1px;border-color:var(--teal)}
  .news .thanks{font-family:"Fraunces",serif;font-size:20px;color:var(--teal-ink);font-weight:500}

  /* ---------- footer ---------- */
  footer{background:var(--cream);padding:64px 0 30px}
  .foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:36px}
  .foot-brand .badge-sm{width:64px;height:64px;background-size:contain;background-repeat:no-repeat;background-position:center;margin-bottom:14px}
  .foot-brand p{font-size:14px;color:var(--ink-soft);max-width:30ch;margin:0 0 16px}
  .socials{display:flex;gap:10px}
  .socials a{width:40px;height:40px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;color:var(--ink);transition:.18s}
  .socials a:hover{background:var(--ink);color:var(--cream);border-color:var(--ink);transform:translateY(-2px)}
  .socials svg{width:18px;height:18px}
  .foot-col h4{font-size:12.5px;text-transform:uppercase;letter-spacing:.14em;color:var(--teal-ink);margin:0 0 16px;font-weight:700}
  .foot-col a{display:block;font-size:14.5px;color:var(--ink-2);margin-bottom:11px;transition:color .15s}
  .foot-col a:hover{color:var(--pink-ink)}
  .foot-bottom{margin-top:44px;padding-top:22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--ink-soft)}
  .foot-bottom .heart{color:var(--pink)}

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

  /* ---------- animations ---------- */
  @keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
  @keyframes dealIn{from{opacity:0;transform:translateY(40px) rotate(0) scale(.9)}}

  /* ---------- responsive ---------- */
  @media(max-width:900px){
    .hero-grid{grid-template-columns:1fr;gap:20px}
    .hero-art{min-height:auto;margin-top:8px}
    .hero-badge{width:230px}
    nav.links{display:none}
    .cart span.lbl{display:none}
    .menu-btn{display:block}
    .cats{grid-template-columns:1fr}
    .products{grid-template-columns:repeat(2,1fr)}
    .story-grid{grid-template-columns:1fr;gap:34px;padding:60px 0}
    .story-art{min-height:260px;order:-1}
    .values{grid-template-columns:1fr}
    .foot-grid{grid-template-columns:1fr 1fr}
    .mobile-menu.open{display:flex}
  }
  @media(max-width:560px){
    body{font-size:16px}
    .products{grid-template-columns:1fr 1fr;gap:14px}
    .card .body{padding:16px}
    .card .body h3{font-size:16px}
    .hand .tile{width:58px;height:80px;margin:0 -14px}
    .foot-grid{grid-template-columns:1fr 1fr}
    .foot-brand{grid-column:1/-1}
  }

  /* mobile menu */
  .mobile-menu{display:none;flex-direction:column;gap:2px;padding:10px 24px 20px;background:var(--cream);border-bottom:1px solid var(--line)}
  .mobile-menu a{padding:12px 4px;font-weight:600;color:var(--ink-2);border-bottom:1px solid var(--line)}
  .mobile-menu a:last-child{border-bottom:0}

  @media(prefers-reduced-motion:reduce){
    *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
    .reveal{opacity:1;transform:none}
  }
