/* Celebration: independent visual layer over the preserved classic stylesheet.
   White canvas, strawberry actions, peach / sky / lilac party panels.
   Motion and functional icons inherit the original interaction system. */
:root { --bg:#fff; --paper:#fff; --rose:#FB5C94; --rose-ink:#9f2659; --rose-dark:#f24e88; --text:#49334c; --muted:#715872; --line:#efdce9; --pink:#ffe1ef; --lilac:#eee3ff; }
body { background:#fff; }
:focus-visible { outline-color:var(--rose-ink); }
.text-button, .eyebrow, .section-label, .contact-line a, .availability-count,
.gift-price, .shop-link, .reserved-label, .gift-description summary,
.admin-nav a.selected, .admin-stats strong, .history time, .current-media>a,
.site-header nav>a:hover, .map-links>a:hover, .footer-links a:hover {
  color:var(--rose-ink);
}
.page-home main { overflow-x:clip; }
.decor { display:block; width:100%; height:100%; object-fit:contain; pointer-events:none; user-select:none; }
.brand > .decor { width:42px; height:42px; flex-shrink:0; }
.brand.small > .decor { width:30px; height:30px; }
.brand { color:var(--rose-ink); font-weight:900; }
.brand > .brand-wordmark { align-items:baseline; gap:.14em; line-height:1.15; white-space:nowrap; }
.brand-lead { color:#8952a8; font-weight:850; letter-spacing:normal; padding-inline-end:.1em; }
.brand-lead-end { color:#c05aaf; }
.brand-name { color:#de2e83; letter-spacing:-.05em; }
@supports (background-clip:text) {
  .brand-lead {
    background-image:linear-gradient(90deg,#6538b6 0%,#a747af 48%,#b445a6 77%);
    background-clip:text;
    color:transparent;
  }
}
.site-header nav>a:not(.nav-gifts) { padding:9px 16px; border-radius:99px; background:#fff0f7; color:#a42858; }
.site-header nav { gap:14px; }
.site-credit { color:var(--rose-ink); }
.nav-gifts { background:#ffe0ee; border-color:#ffd2e6; color:#a42858; }
.button { color:#fff; box-shadow:0 5px 0 #f5c1d5; }
.button:hover { background:var(--rose-dark); }
.button:active { transform:translateY(1px); box-shadow:0 2px 0 #f5c1d5; }
.button.secondary { color:var(--rose-ink); box-shadow:none; border-color:#e9b5cc; }
.button.secondary:hover { background:#fff0f7; }
.hero { padding-bottom:75px; }
.hero h1 { color:var(--rose); }
.hero h1>span:not(.headline-star) { color:#9551b6; }
.hero-invitation { font-size:22px; font-weight:700; }
.tiny-flower .decor { width:25px; height:25px; }
.headline-star { top:-42px; left:15px; }
.headline-star .decor { width:46px; height:46px; }
.hero-meta { gap:8px 16px; }
.hero-meta svg { color:var(--rose); }
.hero .map-links { gap:12px; }
.map-links>a { justify-content:center; padding:5px 11px; border-radius:99px; background:#fff0f7; color:#9b2855; }
.big-six { color:#ff8ab8; text-shadow:2px 2px 0 #ffbdd9,4px 4px 0 #ed72a0,6px 6px 0 #e56999,12px 15px 25px #ed629026; }
.birthday-art::before { content:''; position:absolute; inset:50px 20px 20px; background:radial-gradient(ellipse,#ffe1ef 0%,#fff0f7 42%,#fff 71%); z-index:-1; }
.balloon { background:none; box-shadow:none; border-radius:0; }
.balloon::before,.balloon::after { display:none; }
.balloon-one { width:145px; height:160px; left:0; top:35px; }
.balloon-two { width:100px; height:100px; right:-3px; top:135px; background:none; z-index:1; }
.art-flower .decor { width:140px; height:140px; }
.flower-a { bottom:30px; left:4px; }
.flower-b { right:-6px; bottom:0; }
.flower-b .decor { width:110px; height:110px; }
.spark-a .decor { width:64px; height:64px; }
.spark-b .decor { width:38px; height:38px; }
.art-heart .decor { width:44px; height:44px; }
.hero-video,.hero-poster { z-index:1; width:82%; margin-left:auto; }
.hero-media-decor {
  position:absolute;
  left:clamp(8px,.85vw,12px);
  top:calc(var(--hero-title-top, 26%) - .24em);
  bottom:22px;
  z-index:2;
  display:flex;
  flex-direction:column;
  font-size:clamp(168px,20.5vw,287px);
  pointer-events:none;
}
.hero-media-decor .media-six { position:static; font-size:inherit; }
.hero-media-ornaments {
  display:flex;
  flex:1;
  flex-direction:column;
  align-items:center;
  justify-content:space-evenly;
  gap:6px;
  min-height:0;
  margin-top:-.23em;
}
.hero-media-heart {
  width:min(.37em, 15svh);
  height:min(.37em, 15svh);
  min-height:0;
  transform:translateX(.14em) rotate(-13deg);
}
.hero-media-gift {
  width:min(.40em, 16svh);
  height:min(.40em, 16svh);
  min-height:0;
  transform:translate(.29em, -.06em) rotate(10deg);
}
.has-media .art-spark,.has-media .art-heart { z-index:2; }
.place-section { gap:70px; }
.place-art { background:linear-gradient(135deg,#ffe1eb,#ffc69f); }
.place-photo-flower { overflow:visible; }
.place-art.with-photo .place-photo-flower .decor { width:160px; height:160px; max-width:none; border-radius:0; object-fit:contain; filter:drop-shadow(0 4px 6px #bd487a20); }
.place-flower .decor { width:150px; height:150px; }
.place-star .decor { width:44px; height:44px; }
.place-copy h2 { color:#de2e83; }
.place-copy h3 + .event-details { margin-top:12px; }
.program-section { background:#fff; padding-inline:28px; }
.program-layout { background:linear-gradient(125deg,#d9f4ff 0%,#e8e3ff 48%,#ffd9eb 100%); padding:65px; border-radius:40px; gap:80px; }
.program-layout h2 { color:#724299; }
.program-decoration { width:145px; height:145px; margin-top:20px; }
.program-empty { padding:30px; background:#ffffff80; border:1px solid #ffffffb0; border-radius:28px; }
.program-empty>.decor { width:44px; height:44px; margin-bottom:20px; }
.timeline-row { border-color:#cfc4e2; }
.timeline-row time { color:#954287; }
.gift-invite { grid-template-columns:minmax(220px,.85fr) minmax(0,1.15fr); gap:45px; padding:55px; background:linear-gradient(120deg,#ffdcbf 0%,#ffcfdf 45%,#f0dcff 100%); border-radius:40px; overflow:hidden; }
.gift-invite h2 { color:#f0167a; }
.gift-invite p { color:#634665; }
.dreams-art { position:relative; min-height:360px; align-self:stretch; display:grid; align-items:center; isolation:isolate; }
.dreams-art::before { content:''; position:absolute; inset:30px 0; border-radius:48% 52% 44% 56%; background:#ffffff65; z-index:-1; }
.dreams-cake { width:100%; max-width:340px; margin:auto; transform:rotate(-7deg); }
.dreams-flower { position:absolute; width:95px; height:95px; right:-10px; top:0; transform:rotate(14deg); }
.dreams-star { position:absolute; width:60px; height:60px; left:-10px; top:20px; transform:rotate(-15deg); }
.dreams-heart { position:absolute; width:92px; height:92px; right:calc(50% + 72px); top:28%; transform:translateY(-50%) rotate(-14deg); }
.dreams-gift { position:absolute; width:110px; height:110px; right:-10px; bottom:0; transform:rotate(12deg); }
.dreams-confetti {
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(circle at 23% 15%, #eb579f 3px, transparent 4px),
    radial-gradient(circle at 74% 24%, #d976b4 2px, transparent 3px),
    radial-gradient(circle at 10% 36%, #c68def 3px, transparent 4px),
    radial-gradient(circle at 87% 48%, #ee85a6 4px, transparent 5px),
    radial-gradient(circle at 20% 60%, #f5ad51 3px, transparent 4px),
    radial-gradient(circle at 9% 78%, #ef7bb2 3px, transparent 4px),
    radial-gradient(circle at 79% 74%, #ba89e5 3px, transparent 4px),
    radial-gradient(circle at 35% 88%, #f6b354 2px, transparent 3px);
}
.dreams-portrait { width:100%; height:440px; object-fit:contain; position:relative; z-index:1; }
.has-portrait .dreams-gift { z-index:2; width:80px; height:80px; }
.has-portrait .dreams-flower { width:75px; height:75px; }
.social { color:#a8396f; border-color:#edc7dc; background:#fff; }
.social:hover { background:#ffe4f1; }
.wishlist-intro { position:relative; }
.wishlist-heading h1 { color:var(--rose); }
.inline-heart { display:inline-block; vertical-align:middle; margin-left:18px; transform:rotate(10deg); }
.inline-heart .decor { width:55px; height:55px; }
.wishlist-bottom>.wishlist-gift-note {
  max-width:740px;
  padding:18px 24px;
  border-radius:22px;
  background:#ffe1ef;
  color:#702747;
  font-weight:700;
  text-wrap:pretty;
}
.gift-picture { background:linear-gradient(135deg,#ffebd4,#ffcee3); }
.gift-picture.peach { background:linear-gradient(135deg,#ffe8c3,#ffcbdc); }
.gift-picture.lavender { background:linear-gradient(135deg,#dcf3ff,#e4d4ff); }
.gift-picture.pink { background:linear-gradient(135deg,#ffd9ec,#eed7ff); }
.gift-picture.yellow { background:linear-gradient(135deg,#fff2bd,#ffd6c7); }
.gift-illustration { background:none; width:165px; height:165px; border-radius:0; }
.gift-illustration>.decor { transform:rotate(9deg); }
.gift-card { border-color:#eddce8; box-shadow:0 6px 18px #c24d7907; }
.gift-card .gift-price { margin-top:8px; }
.gift-card .button { box-shadow:0 3px 0 #f5c1d5; }
.modal { background:#fff; }
.modal-symbol { background:linear-gradient(135deg,#ffe7d3,#ffd5ec); width:82px; height:82px; border-radius:26px; }
.modal-symbol>.decor { width:62px; height:62px; }
.my-gift-icon>.decor { width:56px; height:56px; }
.empty-state>.decor { width:100px; height:100px; margin:0 auto 25px; }
.sticky-save { background:#fffffff2; }
.sort-form select { background-color:#fff; }
.sort-form > label { margin-bottom:0; }
.admin-stats > div { align-items:center; }
.admin-filter select {
  appearance:none;
  padding-right:39px;
  background:#fff url('/assets/icons/caret-down.svg') right 13px center / 13px no-repeat;
}

@media (min-width:768px) {
  .page-home {
    --hero-header-height:clamp(72px, calc(20svh - 48px), 104px);
    --hero-padding:clamp(16px, calc(5svh - 14px), 36px);
    --hero-gap:clamp(14px, calc(8svh - 29px), 38px);
  }
  .page-home .site-header { height:var(--hero-header-height); }
  .hero {
    min-height:min(840px, calc(100svh - var(--hero-header-height)));
    padding-block:var(--hero-padding);
  }
  .hero .eyebrow { margin-bottom:var(--hero-gap); }
  .hero-invitation { margin:var(--hero-gap) 0 0; }
  .hero-actions {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:var(--hero-gap);
    padding-top:var(--hero-gap);
  }
  .hero-meta, .hero .map-links { margin:0; }
  .hero-art {
    align-self:center;
    min-height:0;
    height:clamp(280px, calc(100svh - var(--hero-header-height) - 2 * var(--hero-padding)), 620px);
  }
  .birthday-art { min-height:0; }
  .birthday-art .big-six {
    top:50%;
    left:clamp(35px, 6vw, 80px);
    font-size:clamp(260px, min(39vw, 60svh), 480px);
    transform:translateY(-50%) rotate(9deg);
  }
  .hero-video, .hero-poster { height:100%; max-height:570px; }
}
@media (min-width:768px) and (max-height:710px) {
  .hero h1 { font-size:clamp(58px, 13svh, 88px); }
  .spark-b { top:52%; }
}

@media (max-width:1050px) {
  .place-section { gap:50px; }
  .program-layout { padding:45px; gap:40px; }
  .gift-invite { padding:38px; gap:28px; }
  .dreams-art { min-height:310px; }
  .dreams-flower { width:75px; height:75px; }
  .dreams-gift { width:90px; height:90px; }
}
@media (768px <= width <= 1050px) {
  .hero-media-decor { left:clamp(7px,1.15vw,12px); font-size:clamp(168px,20vw,215px); }
}
@media (768px <= width <= 980px) {
  .hero-video, .hero-poster { width:70%; }
}
@media (max-width:767px) {
  .brand { font-size:22px; gap:7px; }
  .brand>.decor { width:35px; height:35px; }
  .brand.small>.decor { width:24px; height:24px; }
  .hero { padding-bottom:35px; }
  .hero h1 { font-size:clamp(68px,18vw,90px); }
  .hero-invitation { font-size:20px; }
  .hero .hero-art { order:2; margin-top:28px; }
  .hero:not(:has(.has-media)) .hero-art { order:4; }
  .hero .hero-actions { order:3; }
  .headline-star { top:-30px; left:12px; }
  .headline-star .decor { width:37px; height:37px; }
  .hero .map-links { margin-bottom:16px; }
  .big-six { font-size:310px; }
  .balloon-one { width:110px; height:115px; left:0; top:5px; }
  .balloon-two { width:78px; height:78px; right:0; top:110px; }
  .art-flower .decor { width:88px; height:88px; }
  .flower-a { bottom:26px; left:5px; }
  .flower-b { bottom:6px; right:0; }
  .flower-b .decor { width:76px; height:76px; }
  .spark-a .decor { width:47px; height:47px; }
  .spark-b .decor { width:30px; height:30px; }
  .hero-art.has-media { --hero-edge-inset:clamp(9px,3.3vw,21px); }
  .has-media .spark-a { right:min(14px, calc(var(--hero-edge-inset) - 2px)); }
  .has-media .spark-b { top:52%; left:auto; right:34px; transform:translateY(-50%); }
  .art-heart .decor { width:34px; height:34px; }
  .has-media .art-heart { left:24%; right:auto; bottom:6px; }
  .hero-media-decor { font-size:clamp(112px,30vw,184px); top:0; left:var(--hero-edge-inset); }
  .place-art.with-photo .place-photo-flower .decor { width:120px; height:120px; }
  .place-section { gap:40px; }
  .program-section { padding:35px 16px; }
  .program-layout { padding:32px 24px; gap:10px; border-radius:28px; }
  .program-empty { padding:22px; border-radius:22px; }
  .program-empty h3 { font-size:22px; }
  .program-empty p { font-size:14px; }
  .program-empty>.decor { width:35px; height:35px; margin-bottom:12px; }
  .gift-invite { grid-template-columns:1fr; padding:30px 24px; gap:30px; border-radius:28px; }
  .dreams-art { min-height:240px; width:100%; max-width:330px; margin:auto; }
  .dreams-cake { width:230px; height:240px; }
  .dreams-star { width:45px; height:45px; left:0; top:0; }
  .dreams-heart { width:72px; height:72px; right:calc(50% + 52px); }
  .dreams-gift { width:90px; height:90px; right:0; bottom:-7px; }
  .dreams-flower { width:66px; height:66px; top:5px; right:0; }
  .dreams-portrait { height:320px; }
  .gift-invite h2 { font-size:34px; }
  .inline-heart { margin-left:10px; }
  .inline-heart .decor { width:40px; height:40px; }
  .footer-separator, .button.reserve-trigger::before, .button.reserve-trigger>svg { display:none; }
  .button.reserve-trigger { grid-template-columns:auto; }
  .wishlist-bottom .share-buttons { flex-wrap:wrap; justify-content:center; }
  .gift-illustration { width:120px; height:120px; }
  .my-gift-icon>.decor { width:38px; height:38px; }
  .admin-stats { flex-wrap:wrap; gap:8px 12px; }
  .admin-stats > div { display:flex; gap:6px; }
  .admin-filter select { padding-right:34px; background-position:right 11px center; }
}
@media (max-width:360px) {
  .site-header .brand { font-size:19px; gap:4px; }
  .site-header .brand>span:not(.brand-wordmark) { gap:5px; }
  .brand>.decor { width:30px; height:30px; }
  .nav-gifts { padding:8px 11px; }
}
@media (prefers-reduced-motion:no-preference) {
  .art-spark .decor,.headline-star .decor,.place-star .decor,.dreams-star .decor { animation:star-twinkle 5.5s ease-in-out infinite; }
  .spark-b .decor,.dreams-star .decor { animation-delay:1.65s; }
  .headline-star .decor { animation-delay:2.7s; }
  .art-flower .decor,.place-flower .decor,.dreams-flower .decor { animation:flower-sway 8s ease-in-out infinite; }
  .flower-b .decor,.place-flower .decor { animation-delay:2s; }
  .art-heart .decor,.dreams-gift .decor,.dreams-heart .decor,.hero-media-heart .decor { animation:heart-lift 7s 1s ease-in-out infinite; }
  .hero-media-gift .decor { --lean:0deg; animation:balloon-sway 8s .4s ease-in-out infinite; }
  .place-photo-flower .decor { animation:place-flower-spin 16s linear infinite; }
  .brand>.decor { transition:transform .23s cubic-bezier(.2,.8,.2,1); }
  .brand:hover>.decor { transform:rotate(30deg); }
}
