:root{--ink:#322d35;--muted:#756f79;--pink:#f5a7bc;--purple:#bca5e5;--cream:#fffaf6;--line:#e9e2e1}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);font-family:Prompt,Arial,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}h1,h2,h3,p{margin-top:0}.announcement{height:34px;background:#f8d9e2;display:flex;justify-content:center;align-items:center;gap:12px;font-size:11px;letter-spacing:.02em}.announcement span{color:#c46e8a}.site-header{height:88px;max-width:1450px;margin:auto;padding:0 5.5%;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:inline-flex;gap:10px;align-items:center;font-family:'DM Sans',sans-serif;font-weight:800;font-size:29px;letter-spacing:-1.9px;line-height:.8}.brand small{display:block;letter-spacing:3.5px;font-size:8px;margin-top:8px;font-weight:700}.brand-mark{font-size:33px;color:#e9a0b8;animation:rotate-flower 28s linear infinite}.brand-dot{color:#e9a0b8}.site-header nav{display:flex;gap:32px;font-size:12px;font-weight:500}.site-header nav a:hover{color:#bd7291}.header-cta,.btn{display:inline-flex;align-items:center;justify-content:center;gap:22px;border-radius:100px;transition:transform .25s,background .25s;border:0;font-size:12px;font-weight:600}.header-cta{background:#f8dce6;padding:15px 21px}.btn:hover,.header-cta:hover{transform:translateY(-3px)}.menu-toggle{display:none;background:none;border:0;font-size:26px}.hero{max-width:1450px;margin:auto;min-height:630px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:30px;padding:34px 5.5% 85px}.eyebrow{font-family:'DM Sans',sans-serif;letter-spacing:2.6px;font-size:10px;font-weight:800;color:#a7738e}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#e8a0b6;margin-right:7px}.hero h1{font-family:'DM Sans',sans-serif;font-size:clamp(56px,6.3vw,100px);line-height:1.02;letter-spacing:-5.5px;margin:27px 0 22px;font-weight:800}.hero h1 em,.section h2 em{font-family:Georgia,serif;font-weight:400;color:#cc8baf;letter-spacing:-3px}.hero h1 .happy{font-size:.66em;letter-spacing:-3.5px;white-space:nowrap}.flower-small{font-size:.4em;vertical-align:top;color:#e5a3bf;margin-left:5px;display:inline-block;animation:rotate-flower 22s linear infinite}.hero-copy>p{font-size:14px;line-height:2;max-width:430px;color:#736b73}.hero-actions{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}.btn{padding:17px 25px}.btn-primary{background:#e9a7bf;color:#332a35}.btn-primary:hover{background:#e39ab5}.btn-outline{border:1px solid #d9b7c6}.hero-notes{display:flex;flex-wrap:wrap;gap:20px;margin-top:36px;color:#93838c;font-size:10px}.hero-art{height:540px;position:relative;display:grid;place-items:center}.hero-image{width:min(92%,510px);height:500px;overflow:hidden;border-radius:47% 47% 43% 43% / 32% 33% 29% 30%;background:#f7e4e8;transform:rotate(3deg)}.hero-image img{height:100%;width:100%;object-fit:cover;transform:rotate(-3deg) scale(1.1)}.hero-sticker{position:absolute;top:10%;right:0;background:#f7f0a9;width:112px;height:112px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:11px;line-height:1.5;transform:rotate(14deg);box-shadow:0 12px 30px #8d6e7425}.hero-sticker strong{font-family:Georgia,serif;font-size:21px}.flower-orbit{position:absolute;animation:float 5s ease-in-out infinite}.orbit-one{font-size:88px;color:#d3b9e8;bottom:1%;left:-2%}.orbit-two{font-size:43px;color:#edbb8d;top:3%;left:2%;animation-delay:-2s}.hero-caption{position:absolute;bottom:-17px;right:5%;font-family:Georgia,serif;font-style:italic;font-size:15px;color:#ad8495}.ticker{overflow:hidden;background:#e9a9c0;padding:16px 0;color:#40313d;font-family:'DM Sans',sans-serif;font-weight:800;font-size:13px;letter-spacing:3px;white-space:nowrap}.ticker div{width:max-content;animation:marquee 42s linear infinite}.section{padding:110px max(5.5%,calc((100vw - 1300px)/2))}.section-top{display:flex;align-items:end;justify-content:space-between;gap:24px}.section h2{font-family:'DM Sans',sans-serif;font-weight:800;font-size:clamp(40px,5vw,70px);line-height:1.12;letter-spacing:-3px;margin:14px 0 16px}.section-top p,.about-copy>p{font-size:13px;color:var(--muted);line-height:1.9}.heading-flower{font-size:.55em;color:#e7b7a7;display:inline-block;animation:rotate-flower 24s linear infinite}.catalog-note{font-family:Georgia,serif;font-style:italic;color:#ae8eaa;font-size:15px;white-space:nowrap}.filters{display:flex;gap:10px;margin:37px 0 30px;flex-wrap:wrap}.filter{border:1px solid #e7dbe0;background:transparent;border-radius:50px;padding:12px 23px;font-size:12px;color:#5c515b}.filter.active{background:#e9a9c0;border-color:#e9a9c0;font-weight:600}.filter span{margin-left:12px}.product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 18px}.product-card{animation:reveal .55s both;animation-delay:var(--delay)}.product-image{display:block;position:relative;border:0;background:#f7e8e6;width:100%;aspect-ratio:3/3.65;overflow:hidden;border-radius:140px 140px 24px 24px;padding:0}.product-image img{height:100%;width:100%;object-fit:cover;transition:transform .65s}.product-image:hover img{transform:scale(1.07)}.image-arrow{position:absolute;right:14px;bottom:14px;background:#fffdf3;border-radius:50%;width:38px;height:38px;display:grid;place-items:center;font-size:20px}.product-meta{display:flex;justify-content:space-between;gap:5px;margin:14px 0 6px;color:#a18995;font-family:'DM Sans',sans-serif;font-size:9px;font-weight:700;letter-spacing:.6px}.product-name{display:flex;justify-content:space-between;width:100%;border:0;background:none;padding:0;text-align:left;font-family:'DM Sans',sans-serif;font-size:23px;letter-spacing:-.8px;font-weight:800;color:var(--ink)}.product-name span{font-size:18px;font-weight:400}.product-card p{font-size:11px;color:#8d7e87;margin:4px 0 0}.product-price{margin-top:8px;font-size:12px;font-weight:700}.catalog-footer{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:47px;font-size:12px;color:#8d7983}.catalog-footer a{font-weight:600;text-decoration:underline;text-underline-offset:4px;color:#ba7694}.empty{grid-column:1/-1;padding:60px;text-align:center;color:#a08594}.about{background:#f7edf0;display:grid;grid-template-columns:1fr 1.1fr;gap:9%;align-items:center}.about-art{position:relative;min-height:520px;display:grid;place-items:center}.about-image{width:82%;height:490px;border-radius:47% 47% 24px 24px;overflow:hidden;background:#e8dfeb;transform:rotate(-4deg)}.about-image img{width:100%;height:100%;object-fit:cover;transform:rotate(4deg) scale(1.1)}.floating-flower{position:absolute;z-index:2;animation:float 5s ease-in-out infinite}.f1{font-size:100px;color:#e4b3cd;left:-2%;top:4%}.f2{font-size:65px;color:#c1a7e0;right:3%;bottom:5%;animation-delay:-1.5s}.about-tag{position:absolute;bottom:5%;left:3%;background:#f3e7a3;border-radius:80px;padding:18px 23px;transform:rotate(-9deg);font-family:Georgia,serif;font-style:italic;font-size:16px}.about-copy h2{font-size:clamp(39px,4.3vw,64px)}.about-copy>p{max-width:500px}.features{margin-top:26px;display:grid;gap:8px}.feature{display:flex;gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid #e6d9df}.feature:last-child{border-bottom:0}.feature-icon{flex:0 0 52px;height:52px;display:grid;place-items:center;border-radius:19px}.feature-icon svg{width:31px;height:31px;fill:none;stroke:#544557;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.icon-pink{background:#f5c4d5}.icon-lilac{background:#d9c8ee}.icon-yellow{background:#f6e8aa}.feature strong{font-family:'DM Sans',sans-serif;font-size:16px}.feature p{font-size:11px;color:#7b6e78;margin:2px 0 0;line-height:1.6}.contact{background:#e5d5ed;text-align:center;position:relative;overflow:hidden;min-height:480px;display:flex;align-items:center;justify-content:center;flex-direction:column}.contact h2{font-size:clamp(60px,7.4vw,105px);line-height:.99;margin:22px 0 20px}.contact h2 em{color:#b77f9c}.contact>p{font-size:13px;max-width:450px;line-height:1.9}.btn-dark{background:#3d313e;color:#fff;margin:15px 0}.contact-sub{font-family:Georgia,serif;font-size:12px;color:#8c6e87;font-style:italic}.contact-flower{position:absolute;animation:float 6s ease-in-out infinite;pointer-events:none}.contact-flower.left{font-size:180px;left:3%;bottom:4%;color:#e7acc4}.contact-flower.right{font-size:155px;right:4%;top:4%;color:#c3a6e2;animation-delay:-3s}footer{padding:50px 5.5%;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px;font-size:11px;color:#847780}footer .brand{color:#322d35}footer>div{display:flex;gap:17px}footer small{font-size:10px}.modal[hidden]{display:none}.modal{position:fixed;inset:0;z-index:99;display:grid;place-items:center;padding:20px}.modal-backdrop{position:absolute;inset:0;background:#241b25bd;backdrop-filter:blur(6px)}.modal-dialog{position:relative;max-width:900px;width:100%;max-height:92vh;overflow:auto;background:#fffaf6;border-radius:30px;display:grid;grid-template-columns:1fr 1fr;box-shadow:0 20px 100px #241b2538}.modal-close{position:absolute;z-index:2;right:18px;top:14px;background:#fff;border:0;border-radius:50%;width:38px;height:38px;font-size:27px}.modal-gallery{padding:20px}.modal-gallery>img{width:100%;height:420px;object-fit:cover;border-radius:23px}.modal-thumbs{display:flex;gap:8px;margin-top:10px}.modal-thumbs button{width:58px;height:58px;padding:2px;border:2px solid transparent;background:none;border-radius:12px}.modal-thumbs button.selected{border-color:#db93ae}.modal-thumbs img{width:100%;height:100%;object-fit:cover;border-radius:8px}.modal-info{padding:80px 34px 34px;display:flex;align-items:flex-start;flex-direction:column;justify-content:center}.modal-info h2{font-family:'DM Sans',sans-serif;font-size:43px;letter-spacing:-2px;margin:16px 0}.modal-info p{font-size:13px;line-height:1.9;color:#81727b}.modal-info #modal-price{font-size:20px;font-weight:700;margin:15px 0}.modal-info small{font-size:10px;color:#99858e;margin-top:12px}@keyframes rotate-flower{to{transform:rotate(360deg)}}@keyframes float{50%{transform:translateY(-18px) rotate(12deg)}}@keyframes marquee{to{transform:translateX(-50%)}}@keyframes reveal{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1100px){.hero h1{font-size:65px}.product-grid{grid-template-columns:repeat(3,1fr)}.about{gap:4%}.site-header nav{gap:15px}}@media(max-width:760px){.announcement{font-size:9px;padding:0 10px;text-align:center}.site-header{height:70px;padding:0 5%}.site-header nav{display:none;position:absolute;top:104px;left:0;right:0;z-index:20;background:#fffaf6;padding:22px;box-shadow:0 15px 25px #322d3518;flex-direction:column}.site-header.menu-open nav{display:flex}.menu-toggle{display:block}.header-cta{margin-left:auto;font-size:10px;padding:11px 13px;gap:5px}.brand{font-size:23px}.brand-mark{font-size:26px}.hero{grid-template-columns:1fr;padding:40px 6% 65px;gap:20px}.hero h1{font-size:clamp(49px,10vw,77px);letter-spacing:-3.8px}.hero h1 .happy{letter-spacing:-2.5px}.hero-copy>p{font-size:12px}.hero-art{height:440px}.hero-image{height:410px;width:88%}.hero-sticker{right:0;width:90px;height:90px}.orbit-one{font-size:65px}.section{padding:76px 6%}.section-top{display:block}.catalog-note{display:none}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 12px}.product-image{border-radius:90px 90px 18px 18px}.product-name{font-size:19px}.product-meta{font-size:8px;flex-wrap:wrap}.about{grid-template-columns:1fr;gap:30px}.about-art{min-height:410px}.about-image{height:380px;width:75%}.contact{min-height:460px}.contact-flower.left{font-size:85px;left:-4%;bottom:8%}.contact-flower.right{font-size:85px;right:-4%;top:12%}footer{display:grid;gap:22px}.modal-dialog{grid-template-columns:1fr;max-width:500px}.modal-gallery>img{height:290px}.modal-info{padding:15px 25px 30px}.modal-info h2{font-size:31px;margin:8px 0}}@media(max-width:390px){.header-cta{display:none}.hero h1{font-size:47px}.hero-art{height:360px}.hero-image{height:340px}.section h2{font-size:40px}.product-name{font-size:17px}.filter{padding:10px 15px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}


/* IM-LUNA V2.1: compact, balanced spacing for mobile and desktop.
   Keeps the existing pastel style, bouquet gallery and Supabase functionality. */
.hero {
  min-height: 0;
  padding-top: 26px;
  padding-bottom: 44px;
  gap: 26px;
}
.hero h1 { margin-top: 20px; margin-bottom: 18px; }
.hero-copy > p { line-height: 1.75; margin-bottom: 0; }
.hero-actions { margin-top: 22px; }
.hero-notes { margin-top: 21px; gap: 9px 19px; }
.hero-art { height: 470px; }
.hero-image { height: 445px; }
.hero-caption { bottom: -5px; }
.ticker { padding: 12px 0; }
.section { padding-top: 72px; padding-bottom: 76px; }
.section h2 { margin-top: 11px; margin-bottom: 10px; }
.section-top p { margin-bottom: 0; line-height: 1.65; }
.filters { margin-top: 23px; margin-bottom: 24px; }
.catalog-footer { margin-top: 32px; }

@media (max-width: 760px) {
  .hero {
    padding: 22px 6% 27px;
    gap: 8px;
  }
  .hero h1 {
    font-size: clamp(43px, 10.5vw, 66px);
    line-height: 1.035;
    letter-spacing: -3.3px;
    margin: 15px 0 13px;
  }
  .hero h1 em { letter-spacing: -2.7px; }
  .hero h1 .happy { letter-spacing: -2.2px; }
  .hero-copy > p { font-size: 12px; line-height: 1.7; max-width: 37ch; }
  .hero-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    margin-top: 18px;
  }
  .hero-actions .btn {
    width: 100%;
    padding: 13px 8px;
    gap: 8px;
    font-size: 11px;
    white-space: nowrap;
  }
  .hero-notes { gap: 6px 15px; margin-top: 15px; font-size: 10px; }
  .hero-art { height: 325px; }
  .hero-image { width: min(82%, 350px); height: 302px; }
  .hero-sticker { top: 5%; right: 1%; width: 78px; height: 78px; font-size: 10px; }
  .hero-sticker strong { font-size: 18px; }
  .hero-caption { bottom: -2px; right: 3%; font-size: 13px; }
  .orbit-one { font-size: 57px; bottom: 2%; left: 0; }
  .orbit-two { font-size: 33px; top: 0; }
  .ticker { padding: 10px 0; font-size: 11px; letter-spacing: 2px; }
  .section { padding: 52px 6% 58px; }
  .catalog.section { padding-top: 40px; }
  .catalog .section-top h2 {
    font-size: clamp(37px, 9.4vw, 52px);
    letter-spacing: -2.5px;
    line-height: 1.09;
    margin: 8px 0 10px;
  }
  /* Prevent the decorative flower from wrapping onto its own empty line. */
  .catalog .heading-flower { display: none; }
  .section-top p { font-size: 12px; line-height: 1.65; }
  .catalog .filters {
    margin: 18px -6.8vw 20px 0;
    padding-right: 6.8vw;
    padding-bottom: 4px;
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    white-space: nowrap;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
  }
  .catalog .filters::-webkit-scrollbar { display: none; }
  .catalog .filter {
    flex: 0 0 auto;
    font-size: 11px;
    padding: 10px 14px;
    line-height: 1.25;
  }
  .catalog .filter span { margin-left: 6px; }
  .catalog-footer { margin-top: 27px; }
  .about { gap: 22px; }
  .about-art { min-height: 360px; }
  .about-image { height: 340px; }
}
@media (max-width: 390px) {
  .hero h1 { font-size: clamp(40px, 10.6vw, 43px); }
  .hero-art { height: 292px; }
  .hero-image { height: 272px; }
  .hero-notes { font-size: 9px; }
  .catalog .section-top h2 { font-size: 37px; }
  .catalog .filter { padding: 10px 12px; font-size: 10.5px; }
}

/* V2.2: replace clipped marquee with gentle blooming motion */
.ticker{display:none}
.bloom-strip{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:clamp(8px,1.8vw,22px);padding:17px 5%;background:#e9a9c0;overflow:hidden}
.bloom-chip{display:inline-flex;align-items:center;justify-content:center;gap:9px;white-space:nowrap;font-family:'DM Sans',sans-serif;font-size:clamp(9px,1vw,12px);font-weight:800;letter-spacing:1.35px;color:#443240;animation:bloom-bob 4.2s ease-in-out infinite}
.bloom-chip:nth-child(2){animation-delay:-1.4s}.bloom-chip:nth-child(3){animation-delay:-2.8s}
.bloom-flower{font-size:21px;color:#fff6e5;display:inline-block;line-height:1;animation:bloom-turn 7s ease-in-out infinite alternate}
.bloom-chip:nth-child(2) .bloom-flower{color:#fff2c5;animation-delay:-1.2s}.bloom-chip:nth-child(3) .bloom-flower{color:#e5d9ff;animation-delay:-2.3s}
@keyframes bloom-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes bloom-turn{0%{transform:rotate(-17deg) scale(.9)}50%{transform:rotate(16deg) scale(1.14)}100%{transform:rotate(-9deg) scale(1)}}
@media(max-width:760px){.bloom-strip{padding:13px 12px;gap:8px 15px}.bloom-chip{font-size:9px;letter-spacing:.55px;gap:5px}.bloom-flower{font-size:17px}}
@media(max-width:410px){.bloom-chip{font-size:8px}.bloom-strip{gap:7px 12px}}
@media(prefers-reduced-motion:reduce){.bloom-chip,.bloom-flower{animation:none!important}}
