.adult-birthday-demo{--birthday-plum:oklch(29% .075 338);--birthday-plum-bright:oklch(45% .105 345);--birthday-black:oklch(13% .012 320);--birthday-paper:oklch(95% .018 78);--birthday-paper-deep:oklch(89% .03 69);--birthday-gold:oklch(75% .095 77);--birthday-rose:oklch(68% .065 28);--birthday-ink:oklch(20% .025 330);--birthday-shadow:0 28px 72px -28px color-mix(in oklab, var(--birthday-black) 92%, transparent);--invite-bg:var(--birthday-paper);--invite-fg:var(--birthday-ink);--invite-muted:color-mix(in oklab, var(--birthday-ink) 62%, transparent);--invite-accent:var(--birthday-plum-bright);--invite-panel:color-mix(in oklab, var(--birthday-paper) 84%, transparent);--invite-line:color-mix(in oklab, var(--birthday-gold) 48%, transparent);background:repeating-linear-gradient(90deg, transparent 0 28px, color-mix(in oklab, var(--birthday-gold) 4%, transparent) 29px), var(--birthday-black);width:100%;min-height:100dvh;color:var(--birthday-ink);font-family:var(--font-sans);letter-spacing:0;scrollbar-gutter:stable both-edges;--invitation-dock-safe-bottom:max(.75rem, env(safe-area-inset-bottom));overflow-x:clip}.adult-birthday-demo.is-locked{height:100dvh;overflow:hidden}.birthday-opening{z-index:70;background:radial-gradient(circle at 50% 22%, color-mix(in oklab, var(--birthday-plum-bright) 46%, transparent), transparent 34%), var(--birthday-black);color:var(--birthday-paper);perspective:1300px;place-items:center;padding:1rem;display:grid;position:fixed;inset:0;overflow:hidden}.birthday-opening__balloons{pointer-events:none;opacity:.74;position:absolute;inset:0}.birthday-opening__balloons span{aspect-ratio:.82;border:1px solid color-mix(in oklab, var(--birthday-gold) 55%, transparent);background:radial-gradient(circle at 32% 22%, color-mix(in oklab, var(--birthday-paper) 48%, transparent), color-mix(in oklab, var(--birthday-gold) 46%, transparent) 18%, color-mix(in oklab, var(--birthday-plum) 72%, transparent) 72%);width:clamp(7rem,25vw,14rem);box-shadow:inset -1.2rem -1.5rem 2.5rem color-mix(in oklab, var(--birthday-black) 50%, transparent), 0 1.5rem 3rem -2rem var(--birthday-black);border-radius:48% 52% 46% 54%/54% 52% 48% 46%;position:absolute}.birthday-opening__balloons span:first-child{top:-3rem;left:-3rem;transform:rotate(-12deg)}.birthday-opening__balloons span:nth-child(2){top:5%;right:-4rem;transform:rotate(14deg)scale(1.15)}.birthday-opening__balloons span:nth-child(3){bottom:-5rem;right:3%;transform:rotate(-5deg)scale(.8)}.birthday-folio{aspect-ratio:3/4.75;border:1px solid color-mix(in oklab, var(--birthday-gold) 72%, transparent);background:var(--birthday-plum);width:min(22rem,100vw - 2rem);box-shadow:var(--birthday-shadow), inset 0 0 0 .35rem color-mix(in oklab, var(--birthday-gold) 12%, transparent);transform-style:preserve-3d;position:absolute;overflow:hidden}.birthday-folio__portrait,.birthday-folio__portrait img,.birthday-folio__panel{position:absolute;inset:0}.birthday-folio__portrait{opacity:0;transform:scale(1.03)}.birthday-folio__portrait img{object-fit:cover;object-position:center 18%;width:100%;height:100%}.birthday-folio__panel{background:linear-gradient(100deg, var(--birthday-plum), color-mix(in oklab, var(--birthday-plum) 70%, var(--birthday-black)));border:1px solid color-mix(in oklab, var(--birthday-gold) 45%, transparent);width:50.2%}.birthday-folio__panel--left{transform-origin:0;right:auto}.birthday-folio__panel--right{transform-origin:100%;left:auto}.birthday-ribbon{z-index:4;background:linear-gradient(180deg, color-mix(in oklab, var(--birthday-rose) 72%, var(--birthday-paper)), var(--birthday-rose), color-mix(in oklab, var(--birthday-plum) 45%, var(--birthday-rose)));height:2.5rem;box-shadow:0 8px 18px -12px var(--birthday-black);place-items:center;display:grid;position:absolute;top:48%;left:-2%;right:-2%}.birthday-ribbon span{aspect-ratio:1;border:1px solid var(--birthday-gold);background:var(--birthday-plum);width:3.4rem;font-family:var(--font-display);color:var(--birthday-gold);border-radius:50%;place-items:center;font-size:1.35rem;display:grid}.birthday-opening__copy{z-index:8;width:min(25rem,100%);margin-bottom:max(1rem, env(safe-area-inset-bottom));text-align:center;background:color-mix(in oklab, var(--birthday-black) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);align-self:end;padding:1.15rem 1rem;position:relative}.birthday-opening__copy h1{color:var(--birthday-paper);margin-top:.35rem;font-size:clamp(2rem,9vw,3rem);line-height:.95}.birthday-opening__copy>p:nth-of-type(2){font-family:var(--font-display);color:var(--birthday-gold);margin-top:.45rem;font-size:1.15rem}.birthday-open-button{border-color:var(--birthday-gold);background:color-mix(in oklab, var(--birthday-black) 72%, transparent);min-height:3rem;color:var(--birthday-paper);margin-top:.8rem}.birthday-open-button:hover{background:var(--birthday-gold);color:var(--birthday-black)}.birthday-opening[data-state=opening] .birthday-ribbon{animation:.75s cubic-bezier(.4,0,.2,1) forwards birthday-ribbon-release}.birthday-opening[data-state=opening] .birthday-folio__panel--left{animation:1.75s cubic-bezier(.22,1,.36,1) .45s forwards birthday-folio-left}.birthday-opening[data-state=opening] .birthday-folio__panel--right{animation:1.75s cubic-bezier(.22,1,.36,1) .45s forwards birthday-folio-right}.birthday-opening[data-state=opening] .birthday-folio__portrait{animation:1.2s ease-out 1.15s forwards birthday-portrait-reveal}.birthday-opening[data-state=opening] .birthday-opening__copy{animation:.55s ease-in forwards birthday-copy-away}.birthday-suite{background:var(--birthday-paper);width:min(48rem,100%);box-shadow:0 0 80px color-mix(in oklab, var(--birthday-black) 85%, transparent);margin-inline:auto}.birthday-hero{background:var(--birthday-plum);min-height:100svh;color:var(--birthday-paper);position:relative;overflow:hidden}.birthday-hero>img{object-fit:cover;object-position:center 16%;width:100%;height:100%;position:absolute;inset:0}.birthday-hero__wash{background:linear-gradient(180deg, color-mix(in oklab, var(--birthday-black) 18%, transparent) 0 42%, color-mix(in oklab, var(--birthday-black) 42%, transparent) 62%, var(--birthday-black) 100%);position:absolute;inset:0}.birthday-hero__copy{z-index:2;padding:2rem 1.2rem max(2.4rem, env(safe-area-inset-bottom));text-align:center;position:absolute;bottom:0;left:0;right:0}.birthday-hero__copy h1{color:var(--birthday-paper);outline:none;margin-top:.45rem;font-size:clamp(3.4rem,15vw,6.5rem);line-height:.82}.birthday-hero__headline{font-family:var(--font-display);color:var(--birthday-gold);margin-top:1rem;font-size:clamp(1.25rem,5vw,2rem);font-style:italic}.birthday-hero__details{border-block:1px solid color-mix(in oklab, var(--birthday-gold) 54%, transparent);text-transform:uppercase;max-width:30rem;color:color-mix(in oklab, var(--birthday-paper) 86%, transparent);gap:.3rem;margin:1.25rem auto 0;padding-block:.8rem;font-size:.7rem;display:grid}.birthday-hero--no-photo{background:linear-gradient(150deg, var(--birthday-plum), var(--birthday-black));min-height:72svh}.birthday-kicker{text-transform:uppercase;color:var(--birthday-gold);font-size:.66rem}.birthday-script{font-family:var(--font-script);color:var(--birthday-plum-bright);font-size:clamp(2.3rem,9vw,4rem);line-height:1.15}.birthday-small-copy{color:color-mix(in oklab, var(--birthday-ink) 62%, transparent);margin-top:.75rem;line-height:1.6}.birthday-sheet,.birthday-vellum{isolation:isolate;text-align:center;padding:4.5rem 1.25rem;position:relative}.birthday-sheet{background:var(--birthday-paper)}.birthday-vellum{border-block:1px solid color-mix(in oklab, var(--birthday-gold) 55%, transparent);background:color-mix(in oklab, var(--birthday-paper) 91%, transparent);box-shadow:var(--birthday-shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);margin:-.5rem 0}.birthday-sheet h2,.birthday-vellum h2{max-width:36rem;margin:.5rem auto 0;font-size:clamp(2.5rem,10vw,4.5rem);line-height:.98}.birthday-note{padding-top:6rem;overflow:hidden}.birthday-note:before{z-index:-1;content:"";background:repeating-linear-gradient(15deg, transparent 0 8px, color-mix(in oklab, var(--birthday-gold) 6%, transparent) 9px);position:absolute;inset:0}.birthday-note__ribbon{background:linear-gradient(90deg, var(--birthday-plum), var(--birthday-rose), var(--birthday-plum));width:116%;height:.85rem;box-shadow:0 7px 12px -9px var(--birthday-black);position:absolute;top:1.8rem;left:-8%;transform:rotate(-1.5deg)}.birthday-note>p:not(.birthday-script):not(.birthday-note__signature){max-width:36rem;font-family:var(--font-display);margin:1.75rem auto 0;font-size:1.25rem;line-height:1.75}.birthday-note__signature{font-family:var(--font-script);color:var(--birthday-plum);margin-top:1.5rem;font-size:2.2rem}.birthday-countdown{background:linear-gradient(155deg, var(--birthday-plum), var(--birthday-black));color:var(--birthday-paper)}.birthday-countdown h2{color:var(--birthday-paper)}.birthday-countdown__grid{background:color-mix(in oklab, var(--birthday-gold) 48%, transparent);border:1px solid color-mix(in oklab, var(--birthday-gold) 55%, transparent);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;max-width:35rem;margin:2rem auto 0;display:grid}.birthday-countdown__grid div{background:color-mix(in oklab, var(--birthday-black) 86%, transparent);min-width:0;padding:1.25rem .35rem}.birthday-countdown__grid strong{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:2.65rem;font-weight:400;display:block}.birthday-countdown__grid span{text-transform:uppercase;color:var(--birthday-gold);margin-top:.25rem;font-size:.6rem;display:block}.birthday-soundtrack{background:color-mix(in oklab, var(--birthday-paper) 92%, var(--birthday-paper-deep));padding-block:3rem}.birthday-soundtrack__mark{justify-content:center;align-items:center;gap:.28rem;height:3.25rem;margin-bottom:1.2rem;display:flex}.birthday-soundtrack__mark span{background:var(--birthday-gold);border-radius:999px;width:.18rem;height:42%}.birthday-soundtrack__mark span:nth-child(2),.birthday-soundtrack__mark span:nth-child(3){height:86%}.birthday-soundtrack__controls{justify-content:center;align-items:center;gap:.4rem;max-width:33rem;margin:1.5rem auto 0;display:flex}.birthday-soundtrack__time{font-variant-numeric:tabular-nums;flex:1;align-items:center;gap:.55rem;min-width:0;font-size:.68rem;display:flex}.birthday-soundtrack__line{background:color-mix(in oklab, var(--birthday-gold) 58%, transparent);flex:1;min-width:2rem;height:1px}.birthday-round-button{border-color:color-mix(in oklab, var(--birthday-gold) 65%, transparent);min-width:2.75rem;min-height:2.75rem;color:var(--birthday-plum);border-radius:999px}.birthday-audio-error,.birthday-error{color:var(--destructive);margin-top:1rem}.birthday-music-dock{z-index:46;right:max(.75rem, env(safe-area-inset-right));bottom:var(--invitation-dock-safe-bottom);border:1px solid color-mix(in oklab, var(--birthday-gold) 64%, transparent);background:color-mix(in oklab, var(--birthday-paper) 94%, transparent);width:min(22rem,100vw - 1.5rem);min-height:3.5rem;box-shadow:var(--birthday-shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:.2rem;padding:.25rem;display:grid;position:fixed}.birthday-music-dock__copy{text-align:left;flex-direction:column;min-width:0;display:flex}.birthday-music-dock__copy span,.birthday-music-dock__copy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.birthday-music-dock__copy span{font-family:var(--font-display);font-size:1rem}.birthday-music-dock__copy small{color:color-mix(in oklab, var(--birthday-ink) 60%, transparent);font-size:.62rem}.adult-birthday-demo .guided-journey-dock[data-variant=birthday]{border-color:color-mix(in oklab, var(--birthday-gold) 64%, transparent);background:color-mix(in oklab, var(--birthday-paper) 94%, transparent);box-shadow:var(--birthday-shadow)}.adult-birthday-demo .guided-journey-dock[data-variant=birthday] .guided-journey-icon{color:var(--birthday-plum)}.birthday-moments{background:color-mix(in oklab, var(--birthday-paper) 94%, var(--birthday-paper-deep))}.birthday-moment-stage{border:1px solid color-mix(in oklab, var(--birthday-gold) 66%, transparent);background:var(--birthday-paper);max-width:31rem;box-shadow:var(--birthday-shadow);margin:2rem auto 0;padding:.55rem;position:relative}.birthday-moment-stage>img,.birthday-moment-placeholder{aspect-ratio:4/5;width:100%}.birthday-moment-stage>img{object-fit:cover;object-position:center 18%;display:block}.birthday-moment-stage>p{font-family:var(--font-display);color:var(--birthday-plum);padding:.8rem .5rem .35rem;font-size:1.05rem;font-style:italic}.birthday-moment-placeholder{background:linear-gradient(145deg, var(--birthday-plum), var(--birthday-black));color:var(--birthday-paper);flex-direction:column;justify-content:center;align-items:center;padding:2rem;display:flex}.birthday-placeholder-number{font-family:var(--font-display);color:color-mix(in oklab, var(--birthday-gold) 24%, transparent);font-size:5rem}.birthday-moment-placeholder strong{max-width:15rem;font-family:var(--font-display);font-size:1.8rem;font-weight:400;line-height:1}.birthday-moment-placeholder small{max-width:15rem;color:color-mix(in oklab, var(--birthday-paper) 70%, transparent);margin-top:1rem}.birthday-gallery-controls{justify-content:center;align-items:center;gap:.65rem;margin-top:1.5rem;display:flex}.birthday-gallery-controls>span{min-width:3.25rem;color:color-mix(in oklab, var(--birthday-ink) 62%, transparent);font-size:.72rem}.birthday-details{background:color-mix(in oklab, var(--birthday-plum) 7%, var(--birthday-paper))}.birthday-details__venue{border:1px solid color-mix(in oklab, var(--birthday-gold) 54%, transparent);text-align:left;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.9rem;max-width:30rem;margin:2rem auto 0;padding:1.25rem;display:grid}.birthday-details__venue svg{color:var(--birthday-plum)}.birthday-details__venue strong,.birthday-details__venue span{display:block}.birthday-details__venue strong{font-family:var(--font-display);font-size:1.5rem;font-weight:400}.birthday-details__venue span{color:color-mix(in oklab, var(--birthday-ink) 62%, transparent);margin-top:.2rem;font-size:.85rem}.birthday-details__actions{flex-wrap:wrap;justify-content:center;gap:.65rem;margin-top:1.2rem;display:flex}.birthday-details__actions>*{min-height:2.9rem}.birthday-notice{border:1px solid color-mix(in oklab, var(--birthday-gold) 55%, transparent);max-width:30rem;margin:1rem auto 0;padding:.8rem;font-size:.85rem}.birthday-detail-cards{gap:.75rem;max-width:35rem;margin:2.5rem auto 0;display:grid}.birthday-detail-cards div{border:1px solid color-mix(in oklab, var(--birthday-gold) 48%, transparent);background:color-mix(in oklab, var(--birthday-paper) 78%, transparent);padding:1.35rem}.birthday-detail-cards dt{font-family:var(--font-display);font-size:1.55rem}.birthday-detail-cards dd{color:color-mix(in oklab, var(--birthday-ink) 68%, transparent);margin-top:.5rem;line-height:1.6}.birthday-itinerary{background:linear-gradient(165deg, var(--birthday-black), var(--birthday-plum));color:var(--birthday-paper)}.birthday-itinerary h2{color:var(--birthday-paper)}.birthday-itinerary ol{border-top:1px solid color-mix(in oklab, var(--birthday-gold) 50%, transparent);max-width:34rem;margin:2.3rem auto 0}.birthday-itinerary li{border-bottom:1px solid color-mix(in oklab, var(--birthday-gold) 34%, transparent);text-align:left;grid-template-columns:2rem 5rem minmax(0,1fr);align-items:center;gap:.75rem;min-height:4.4rem;display:grid}.birthday-itinerary li>span{font-family:var(--font-display);color:var(--birthday-gold);font-size:1.2rem}.birthday-itinerary time{text-transform:uppercase;color:color-mix(in oklab, var(--birthday-paper) 68%, transparent);font-size:.7rem}.birthday-itinerary strong{min-width:0;font-family:var(--font-display);font-size:1.2rem;font-weight:400}.birthday-rsvp,.birthday-rsvp-wrap{background:color-mix(in oklab, var(--birthday-paper) 90%, var(--birthday-paper-deep))}.birthday-rsvp__form{text-align:left;gap:1.35rem;max-width:32rem;margin:2rem auto 0;display:grid}.birthday-rsvp__form label,.birthday-rsvp__form legend{text-transform:uppercase;color:var(--birthday-plum);font-size:.78rem}.birthday-rsvp__form label>input{background:color-mix(in oklab, var(--birthday-paper) 80%, transparent);min-height:2.9rem;margin-top:.5rem}.birthday-rsvp__form fieldset{border:0;padding:0}.birthday-rsvp__form fieldset>div{gap:.6rem;margin-top:.6rem;display:grid}.birthday-rsvp__form fieldset label{border:1px solid color-mix(in oklab, var(--birthday-gold) 48%, transparent);text-transform:none;min-height:3rem;color:var(--birthday-ink);align-items:center;gap:.7rem;padding:.75rem;display:flex}.birthday-rsvp__form>button{min-height:3rem}.birthday-rsvp__success svg{width:2rem;height:2rem;color:var(--birthday-plum);margin-inline:auto}.birthday-rsvp__success>p:not(.birthday-kicker){max-width:28rem;margin:1.25rem auto;line-height:1.6}.birthday-rsvp-wrap{padding:1.5rem 1.25rem 4.5rem}.birthday-rsvp-wrap .invite-rsvp{border:1px solid color-mix(in oklab, var(--birthday-gold) 52%, transparent);max-width:36rem;margin:0 auto;padding:2rem 1rem}.birthday-closing{min-height:65svh;padding:4rem 1.25rem calc(6rem + env(safe-area-inset-bottom));background:linear-gradient(150deg, color-mix(in oklab, var(--birthday-plum) 88%, var(--birthday-black)), var(--birthday-black));text-align:center;color:var(--birthday-paper);flex-direction:column;justify-content:center;align-items:center;display:flex}.birthday-closing h2{max-width:34rem;color:var(--birthday-paper);margin-top:.8rem;font-size:clamp(3rem,12vw,5.5rem);line-height:.9}.birthday-closing>p:nth-of-type(2){text-transform:uppercase;color:color-mix(in oklab, var(--birthday-paper) 68%, transparent);margin-top:1.3rem;font-size:.65rem}.birthday-closing__actions{flex-wrap:wrap;justify-content:center;gap:.65rem;margin-top:2rem;display:flex}.birthday-closing__actions button,.birthday-closing__actions a{border-color:var(--birthday-gold);min-height:2.9rem;color:var(--birthday-paper);background:0 0}@media (width>=640px){.adult-birthday-demo{--invitation-dock-safe-bottom:max(1rem, env(safe-area-inset-bottom))}.birthday-opening__copy{margin-bottom:2rem}.birthday-sheet,.birthday-vellum{padding:6rem 3.5rem}.birthday-countdown__grid{grid-template-columns:repeat(4,minmax(0,1fr))}.birthday-detail-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.birthday-music-dock{bottom:var(--invitation-dock-safe-bottom)}}@media (width>=900px){.birthday-folio{width:26rem}.birthday-opening__copy{text-align:right;background:0 0;width:20rem;margin:0;bottom:50%;right:calc(50% + 11rem);transform:translateY(50%)}.birthday-hero{min-height:min(58rem,100svh)}.birthday-hero>img{object-position:center 14%}}@media (prefers-reduced-motion:reduce){.birthday-opening[data-state=opening] :is(.birthday-ribbon,.birthday-folio__panel--left,.birthday-folio__panel--right,.birthday-folio__portrait,.birthday-opening__copy),.birthday-music-dock{animation-duration:1ms!important;animation-delay:0s!important}}@keyframes birthday-ribbon-release{to{opacity:0;transform:translate(115%)rotate(2deg)}}@keyframes birthday-folio-left{to{opacity:0;transform:translate(-102%)rotateY(-14deg)}}@keyframes birthday-folio-right{to{opacity:0;transform:translate(102%)rotateY(14deg)}}@keyframes birthday-portrait-reveal{to{opacity:1;transform:scale(1)}}@keyframes birthday-copy-away{to{opacity:0;transform:translateY(.5rem)}}
