:root{--ink:#392a3d;--purple:#9266a5;--lav:#d7b6e7;--pink:#f6cadf;--cream:#fff9f7}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-color:#bb91c5 #fff5fa;scrollbar-width:thin}body{margin:0;background:#f8edf5;color:var(--ink);font-family:'DM Sans',sans-serif;overflow-x:hidden}body.locked{overflow:hidden}button,input,textarea{font:inherit}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #8557a5;outline-offset:3px}.opening{position:fixed;inset:0;z-index:100;background:radial-gradient(ellipse at 30% 22%,#f6d4e8,#cba8da 55%,#9f7ab7);display:grid;place-items:center;overflow:hidden}.opening:before,.opening:after{content:'';position:absolute;top:-25%;bottom:-25%;width:60%;background:linear-gradient(125deg,#fff8fa50,#e7c7ef44);transform:rotate(16deg);border-radius:50%}.opening:before{left:-42%}.opening:after{right:-45%}.opening-inner{position:relative;z-index:2;text-align:center;color:#fff;width:min(92%,600px)}.tiny,.opening-note{font-size:11px;letter-spacing:.32em;font-weight:700}.opening-stars{font-size:65px;margin:15px 0;color:#fff5b9}.opening-script{font:clamp(65px,13vw,110px)/.9 'Great Vibes',cursive;margin:0;text-shadow:0 8px 30px #8a63a555}.opening h1{font:clamp(120px,25vw,210px)/.8 'DM Serif Display',serif;margin:10px 0;background:linear-gradient(#fff,#ffebf9 45%,#ba95c6 70%,#fff);background-clip:text;color:transparent;filter:drop-shadow(0 6px 9px #724b9255)}.opening-inner>p:not(.opening-script){letter-spacing:.24em;font-size:13px}.button{border:0;padding:19px 28px;font-size:12px;font-weight:700;letter-spacing:.14em}.button-dark{background:#35253b;color:white;box-shadow:0 12px 25px #422d4a33}.opening .button{margin:35px auto 26px;display:flex;gap:30px;align-items:center}.opening-note{display:block;letter-spacing:.13em;font-weight:400}.topline{display:flex;justify-content:space-between;max-width:840px;margin:auto;padding:22px 25px;font-size:11px;font-weight:700;letter-spacing:.2em}.poster{width:min(100% - 36px,790px);margin:0 auto;position:relative;overflow:hidden;border:10px solid #fff7f9;border-radius:16px;background:#fdf6fa;box-shadow:0 25px 85px #6f4b7e2c;text-align:center;isolation:isolate}.paper-grain{position:absolute;inset:0;z-index:-1;opacity:.3;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.62' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E")}.blob{position:absolute;z-index:-1;filter:blur(2px);opacity:.65}.blob-one{top:-130px;left:-180px;width:530px;height:620px;border-radius:43% 57% 60% 40%;background:radial-gradient(#e3b1df,#f9c7df 60%,transparent 70%);transform:rotate(18deg)}.blob-two{right:-210px;top:500px;width:530px;height:630px;border-radius:60% 40% 35% 65%;background:radial-gradient(#d8c2ed,#f7d6e6 65%,transparent 75%)}.poster-content{position:relative;z-index:3;padding:75px clamp(18px,7vw,75px) 44px}.eyebrow,.poster-footer{font-size:10px;font-weight:700;letter-spacing:.23em}.eyebrow span{color:#a879bd;margin:0 10px}.hero-copy{position:relative;margin:60px auto 0}.handwritten{font-family:'Great Vibes',cursive}.intro-line{font-size:clamp(36px,6vw,60px);margin:0;color:#8f629c;transform:rotate(-5deg)}.hero-name{font:clamp(76px,14vw,160px)/1 'DM Serif Display',serif;letter-spacing:-.06em;margin:0;color:#513354;text-shadow:2px 2px 0 #fff9}.dot{color:#bb8ec8}.birthday-script{font:clamp(49px,9vw,92px)/1 'Great Vibes',cursive;color:#965aa5;margin:-7px 0 0;transform:rotate(-4deg)}.birthday-script em{font-style:normal;color:#c58eae}.divider-star{display:flex;align-items:center;gap:16px;justify-content:center;color:#a67db6;font-size:25px;margin:10px 0}.divider-star span{width:100px;height:1px;background:#caa8cd}.invite-message{display:flex;flex-direction:column;align-items:center;gap:clamp(10px,2vw,19px);margin:14px auto 44px;max-width:620px;text-align:center}.invite-message-lead{display:block;max-width:530px;font:clamp(20px,3.2vw,29px)/1.35 'DM Serif Display',Georgia,serif;color:#392a3d}.invite-message-script{display:block;max-width:100%;font:clamp(35px,5.4vw,57px)/1 'Great Vibes',cursive;color:#9565a3;padding:.08em .1em .15em} @media(max-width:600px){.invite-message{gap:12px;margin:12px auto 35px}.invite-message-lead{font-size:clamp(20px,5.1vw,25px)}.invite-message-script{font-size:clamp(33px,8.4vw,45px);line-height:1}}.date-block{display:flex;justify-content:center;align-items:center;gap:20px;margin:30px auto 50px}.date-block span{font-size:clamp(10px,1.6vw,15px);letter-spacing:.12em;font-weight:700;line-height:1.7;min-width:90px;border-top:1px solid #a879b3;border-bottom:1px solid #a879b3;padding:10px 0}.date-block strong{font:clamp(100px,18vw,165px)/.9 'DM Serif Display',serif;color:#9569a6}.schedule{max-width:520px;margin:auto;border-top:1px solid #b995c144}.schedule-item{display:flex;text-align:left;gap:20px;padding:25px 0;border-bottom:1px solid #b995c144}.schedule-icon{font-size:30px;color:#b48ec0;line-height:1}.schedule-item small{font-size:11px;font-weight:700;letter-spacing:.17em;color:#9265a1}.schedule-item h3{font:clamp(24px,4vw,32px)/1.2 'DM Serif Display',serif;margin:4px 0}.schedule-item p{font-size:14px;margin:4px 0 10px}.schedule-item a{font-size:10px;letter-spacing:.13em;font-weight:700;text-decoration:underline;text-underline-offset:5px}.ornament{font-size:27px;color:#ac82ba;margin:40px auto 25px}.padrinos small{letter-spacing:.17em;font-size:10px;font-weight:700}.padrinos p{font:clamp(21px,3.5vw,29px)/1.35 'DM Serif Display',serif;margin:10px auto 38px}.padrinos span{font-family:'Great Vibes',cursive;color:#b67fbb;font-size:30px}.info-pills{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0 auto;max-width:610px}.info-pills>div{border:1px solid #b88ac55c;background:#fff9fd99;padding:22px 14px;min-width:0}.pill-icon{font-size:26px;color:#a775b4}.info-pills h3{font-size:10px;letter-spacing:.16em;margin:10px 0}.info-pills p{font:23px 'DM Serif Display',serif;margin:8px 0}.info-pills small{font-size:11px;line-height:1.5;display:block}.footer-script{font:clamp(39px,7vw,62px)/1 'Great Vibes',cursive;color:#9b6da9;margin:48px auto 30px}.poster-footer{font-size:9px}.glitter{position:absolute;z-index:2;color:#fff3ff;text-shadow:0 2px 2px #a778b7,0 0 20px #b68cc5;font-size:65px;pointer-events:none}.glitter-one{left:3%;top:4%;transform:rotate(-14deg)}.glitter-two{right:7%;top:11%;font-size:90px}.glitter-three{left:7%;top:34%;font-size:40px}.glitter-four{right:3%;top:47%;font-size:38px}.flower{position:absolute;z-index:1;color:#dca2ca;text-shadow:1px 2px #fff;font-size:90px;opacity:.8;pointer-events:none}.flower-one{top:31%;left:-35px;transform:rotate(15deg)}.flower-two{top:68%;right:-28px;font-size:75px}.disco{position:absolute;z-index:1;border-radius:50%;background:repeating-linear-gradient(0deg,transparent 0 14px,#66457588 14px 16px),repeating-linear-gradient(90deg,#ffeff7 0 16px,#aa7cb6 16px 18px,#e9a6d2 18px 33px);box-shadow:inset -25px -23px 35px #56315e99,inset 12px 10px 25px #fff,0 18px 25px #6b3b6840;pointer-events:none}.disco-one{width:210px;height:210px;right:-85px;top:-70px;transform:rotate(24deg)}.disco-two{width:125px;height:125px;left:-70px;top:850px;transform:rotate(-15deg)}.actions{max-width:780px;margin:70px auto;padding:0 20px 40px}.section-heading{text-align:center;margin-bottom:35px}.section-heading>span{font-size:10px;letter-spacing:.18em;color:#8f6b9d;font-weight:700}.section-heading h2{font:clamp(43px,8vw,73px)/1 'DM Serif Display',serif;margin:16px 0}.section-heading h2 em{color:#956ba8}.section-heading p{font-size:14px}.ticket{max-width:510px;margin:auto;background:linear-gradient(135deg,#f6d5e7,#e5c7ed);border:1px solid #d7b5dd;padding:26px 30px 28px;border-radius:16px;box-shadow:0 12px 30px #7e5c8520}.ticket-top{display:flex;justify-content:space-between;font-size:10px;font-weight:700;letter-spacing:.15em}.ticket-name{font:35px 'DM Serif Display',serif;text-align:center;margin:25px 0 5px}.ticket-number{text-align:center;display:flex;align-items:center;justify-content:center;gap:16px}.ticket-number strong{font:80px/1 'DM Serif Display',serif}.ticket-number span{font-size:10px;letter-spacing:.14em;font-weight:700;max-width:85px;text-align:left}.ticket-help{text-align:center;font-size:12px;line-height:1.5}.lookup-form{margin-top:23px}.lookup-form label,.field label,.field>.label{display:block;font-size:10px;letter-spacing:.16em;font-weight:700;margin-bottom:12px}.inline-field{display:flex;gap:8px}.inline-field input{min-width:0;flex:1;border:1px solid #ba95c4;background:#fff8;padding:12px}.inline-field button{background:#49334f;color:white;border:0;font-size:11px;font-weight:700;padding:0 17px}.form-status{font-size:12px;line-height:1.5}.rsvp-form{max-width:510px;margin:25px auto;background:#fff8fd;padding:32px;border:1px solid #ead7e9}.rsvp-form[hidden]{display:none}.field{margin-bottom:25px}.field input:not([type=radio]),.field textarea{width:100%;border:0;border-bottom:1px solid #c9b0cf;padding:12px 0;background:transparent;border-radius:0;outline-offset:2px}.field label span{font-weight:400;opacity:.7}.choices{display:flex;gap:20px;flex-wrap:wrap}.choices label{font-size:13px;letter-spacing:0;font-weight:500;margin:0;display:flex;gap:7px;align-items:center}.choices input{accent-color:#8d60a0}.stepper{display:flex;align-items:center;gap:20px}.stepper button{width:40px;height:40px;border:1px solid #ccb6d1;border-radius:50%;background:transparent;font-size:24px}.stepper output{font:30px 'DM Serif Display',serif;min-width:25px;text-align:center}.field small{display:block;margin-top:8px;font-size:11px}.confirm{width:100%}.demo-disclaimer{max-width:510px;margin:18px auto;text-align:center;font-size:11px;color:#796c7b;line-height:1.6}.page-footer{text-align:center;padding:30px 12px 60px}.page-footer div{font:54px 'Great Vibes',cursive;color:#946ca2}.page-footer div span{font:22px 'DM Serif Display',serif}.page-footer p{font-size:9px;letter-spacing:.15em}.music-control{position:fixed;z-index:50;bottom:18px;right:18px;background:#392a3ded;border:1px solid #ffffff55;color:#fff;border-radius:99px;padding:12px 16px;display:flex;align-items:center;gap:9px;box-shadow:0 8px 25px #513d6140;font-size:10px;letter-spacing:.12em;font-weight:700;backdrop-filter:blur(12px)}.music-icon{font-size:20px}.toast{position:fixed;z-index:200;left:50%;bottom:78px;transform:translateX(-50%) translateY(15px);background:#392a3d;color:white;padding:12px 20px;border-radius:12px;font-size:12px;max-width:90vw;text-align:center;opacity:0;pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}@media(max-width:600px){.poster{width:calc(100% - 20px);border-width:6px}.poster-content{padding:66px 17px 32px}.hero-copy{margin-top:42px}.hero-name{font-size:clamp(62px,18vw,112px)}.birthday-script{font-size:clamp(50px,13vw,80px)}.intro-line{font-size:clamp(36px,10vw,56px)}.eyebrow{font-size:8px}.date-block{gap:8px}.date-block span{min-width:76px;font-size:10px}.date-block strong{font-size:115px}.schedule-item{gap:12px}.schedule-item h3{font-size:25px}.info-pills{gap:8px}.info-pills>div{padding:16px 9px}.info-pills p{font-size:19px}.info-pills small{font-size:10px}.disco-one{width:150px;height:150px;right:-67px;top:-45px}.disco-two{width:95px;height:95px;left:-65px;top:720px}.glitter-one{font-size:40px}.glitter-two{font-size:48px}.glitter-three{font-size:28px}.flower-one{font-size:60px}.ticket,.rsvp-form{padding:22px 18px}.music-control{padding:11px;width:45px;height:45px;justify-content:center}.music-control #musicLabel{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;scroll-behavior:auto!important}}

.hero-copy-refined {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  z-index: 2;
}
.hero-copy-refined .hero-name { margin-bottom: 0; }
.hero-copy-refined .birthday-intro {
  font: 400 clamp(2.3rem, 6vw, 4.4rem)/1.3 'Great Vibes', cursive;
  letter-spacing: 0;
  color: #9565a3;
  margin: .12em auto .08em;
  padding: .12em .15em;
  max-width: 100%;
}
.birthday-photo-composition {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 30fr) minmax(0, 40fr) minmax(0, 30fr);
  align-items: center;
  width: 100%;
  max-width: 720px;
  margin: 0 auto 26px;
  padding: 18px 0 24px;
  container-type: inline-size;
  isolation: isolate;
}
.birthday-photo-composition .chrome-number {
  display: contents;
}
.birthday-photo-composition .chrome-digit {
  position: relative;
  z-index: 0;
  display: block;
  min-width: 0;
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: clamp(120px, 54cqw, 390px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -.055em;
  background: linear-gradient(155deg, #61466c 4%, #fff8fc 18%, #ae88bc 30%, #5b4268 42%, #f9e6f5 53%, #886198 66%, #fff 76%, #755280 88%, #d7b4da 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 7px 6px rgba(70, 42, 79, .24));
  pointer-events: none;
}
.birthday-photo-composition .chrome-digit:first-child {
  grid-column: 1;
  grid-row: 1;
  text-align: center;
  transform: translateX(5%);
}
.birthday-photo-composition .chrome-digit:last-child {
  grid-column: 3;
  grid-row: 1;
  text-align: center;
  transform: translateX(-9%);
}
.birthday-photo-composition .childhood-photo {
  grid-column: 2;
  grid-row: 1;
  position: relative;
  z-index: 1;
  width: 108%;
  max-width: none;
  justify-self: center;
  margin: 0;
  padding: 7px 7px 0;
  background: #fffafc;
  border: 5px solid #f4bdd7;
  box-shadow: 0 18px 35px rgba(93, 52, 99, .22);
  transform: rotate(-3deg);
}
.birthday-photo-composition .childhood-photo img {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  object-position: center 26%;
}
.birthday-photo-composition .childhood-photo figcaption {
  padding: 8px 0 10px;
  font: clamp(18px, 3vw, 28px)/1 'Great Vibes', cursive;
  color: #95649f;
}
@media (max-width: 600px) {
  .hero-copy-refined .birthday-intro {
    font-size: clamp(2rem, 8vw, 3.1rem);
  }
  .birthday-photo-composition {
    grid-template-columns: minmax(0, 30fr) minmax(0, 40fr) minmax(0, 30fr);
    padding: 12px 0 18px;
    margin-bottom: 20px;
  }
  .birthday-photo-composition .chrome-digit {
    font-size: clamp(120px, 54cqw, 320px);
  }
  .birthday-photo-composition .childhood-photo {
    width: 106%;
    padding: 5px 5px 0;
    border-width: 4px;
  }
  .birthday-photo-composition .childhood-photo figcaption {
    font-size: clamp(16px, 5vw, 23px);
  }
}

#rsvpStatus.rsvp-result {display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:27px 22px;margin-top:22px;border:1px solid #d9b8dc;border-radius:20px;background:linear-gradient(145deg,#fff9fd 0%,#f2e1f3 100%);box-shadow:0 12px 35px rgba(91,49,97,.12);color:#46304b;line-height:1.5;animation:rsvp-result-enter .45s ease-out both;}
#rsvpStatus.rsvp-result .rsvp-result-icon {display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:#76518a;color:white;box-shadow:0 5px 15px rgba(91,49,97,.18)}
#rsvpStatus.rsvp-result .rsvp-result-title {display:block;font-family:'DM Serif Display',Georgia,serif;font-size:clamp(1.65rem,5vw,2.15rem);font-weight:400;line-height:1.15;color:#51365d;}
#rsvpStatus.rsvp-result .rsvp-result-detail {display:block;max-width:30ch;font-size:1rem;color:#5d4b62;}
#rsvpStatus.rsvp-result.rsvp-result-declined {background:linear-gradient(145deg,#fffafc,#f6ecf5)}
#rsvpStatus.rsvp-result.rsvp-result-declined .rsvp-result-icon {background:#9a789c}
@keyframes rsvp-result-enter {from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){#rsvpStatus.rsvp-result{animation:none}}
