.public-celebration{color:#302d29;background:#faf7ef;min-height:100svh;overflow-x:clip}html{scroll-behavior:smooth}.public-celebration :where(a,button):focus-visible{outline-offset:4px;outline:2px solid #ae432f}.public-celebration-nav{color:#70685f;border-bottom:1px solid #ddd6c9;justify-content:space-between;align-items:center;gap:25px;width:min(100% - 80px,1180px);min-height:82px;margin-inline:auto;font-size:10px;display:flex}.public-celebration-brand{color:#302d29;font-family:var(--font-editorial);letter-spacing:-1.5px;align-items:center;gap:8px;font-size:28px;font-weight:600;display:inline-flex}.public-celebration-brand svg{color:#ae432f;width:25px}.public-celebration-brand span{width:auto}.public-celebration-brand strong{color:#ae432f;font-weight:600}.public-kicker{letter-spacing:1.7px;font-size:8px;font-weight:700}.public-celebration-hero{grid-template-columns:1fr .92fr;align-items:center;gap:70px;width:min(100% - 80px,1180px);margin:70px auto;display:grid}.public-celebration-hero>*{animation:.6s cubic-bezier(.22,1,.36,1) both public-hero-enter}.public-celebration-hero>:last-child{animation-delay:.11s}@keyframes public-hero-enter{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.public-celebration-hero h1{max-width:650px;font-family:var(--font-editorial);letter-spacing:-.055em;overflow-wrap:anywhere;margin:17px 0 0;font-size:clamp(55px,7vw,98px);font-weight:400;line-height:.98}.public-name{font-family:var(--font-editorial);margin-top:24px;font-size:23px}.public-name em{color:#a54131;font-weight:400}.public-date{color:#70685f;align-items:center;gap:8px;margin-top:17px;font-size:12px;display:flex}.celebration-window{align-items:center;gap:10px;width:fit-content;margin-top:18px;display:flex}.celebration-window>span{letter-spacing:.8px;text-transform:uppercase;border-radius:999px;padding:5px 9px;font-size:8px;font-weight:750}.celebration-window.is-open>span{color:#526047;background:#e4eadc}.celebration-window.is-closed>span{color:#6f665f;background:#e4ddd5}.celebration-window p{color:#70685f;align-items:center;gap:6px;font-size:10px;display:flex}.celebration-window svg{width:13px}.birthday-card-experience{justify-items:center;gap:18px;min-width:0;display:grid}.birthday-card-paper{aspect-ratio:.88;color:#302d29;text-align:left;cursor:pointer;width:min(100%,430px);transform-style:preserve-3d;background:#f8eddc;border:11px solid #fffaf2;padding:0;transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s;display:block;position:relative;overflow:hidden;transform:rotate(2deg);box-shadow:9px 22px 45px #302d291a}.birthday-card-paper:not(:disabled):hover{transform:rotate(1deg)translateY(-4px);box-shadow:12px 21px 42px #302d291a}.birthday-card-paper:after{content:"";pointer-events:none;border:1px solid #d7c7b7;position:absolute;inset:0}.birthday-card-paper.is-turning{animation:.54s cubic-bezier(.3,.72,.25,1) birthday-card-turn}@keyframes birthday-card-turn{50%{opacity:.55;transform:rotate(2deg)rotateY(-88deg)}}.birthday-card-content{flex-direction:column;justify-content:center;min-height:100%;padding:clamp(30px,5vw,52px);display:flex}.birthday-card-content h2{font-family:var(--font-editorial);letter-spacing:-.055em;margin:11px 0 0;font-size:clamp(34px,4.2vw,54px);font-weight:400;line-height:.98}.birthday-card-content>p:last-child{color:#70685f;max-width:270px;margin-top:20px;font-size:12px;line-height:1.55}.birthday-card-greeting{background:#f8eddc;align-items:flex-start;padding:0;display:block;overflow:hidden}.birthday-card-preview{width:100%;height:100%;padding:clamp(25px,5vw,35px) clamp(27px,6vw,40px) clamp(31px,6vw,45px);position:relative}.birthday-card-preview .invitation{z-index:1;text-align:center;background:#f6d9c5;border:1px solid #d6b9a4;padding:clamp(16px,3vw,22px) clamp(18px,3vw,25px) clamp(15px,3vw,20px);position:relative;transform:rotate(4deg);box-shadow:7px 15px 35px #60402b12}.birthday-card-preview .invitation-underlay{background:#ddd5e2;border:1px solid #c3b7c9;position:absolute;inset:clamp(32px,7vw,40px) clamp(26px,7vw,38px) clamp(36px,7vw,45px);transform:rotate(-5deg)}.birthday-card-preview .invitation-top{letter-spacing:1.5px;border-bottom:1px solid #bd9c844f;justify-content:space-between;padding-bottom:clamp(9px,2vw,14px);font-size:clamp(5px,1vw,7px);display:flex}.birthday-card-preview .invitation-kicker{font-family:var(--font-editorial);margin-top:clamp(13px,4vw,23px);font-size:clamp(10px,2.5vw,15px);font-style:italic}.birthday-card-preview .invitation-title{color:#833e2f;font-family:var(--font-editorial);letter-spacing:-.075em;margin-top:clamp(9px,3vw,15px);font-size:clamp(34px,7.8vw,67px);line-height:.95}.birthday-card-preview .invitation-title em{font-weight:400}.birthday-card-preview .cake-illustration{width:95%;height:auto;margin:-5px auto -2px}.birthday-card-preview .invitation-note{font-family:var(--font-editorial);font-size:clamp(10px,2.5vw,15px);font-style:italic}.birthday-card-preview .invitation-bottom{letter-spacing:1px;border-top:1px solid #bd9c844f;justify-content:center;align-items:center;gap:8px;margin-top:clamp(10px,3vw,18px);padding-top:clamp(9px,2vw,14px);font-size:clamp(5px,1vw,6px);display:flex}.birthday-card-preview .preview-stamp{z-index:2;outline-offset:-7px;letter-spacing:1px;background:#e9dfb7;border-radius:50%;outline:1px dashed #87743f;flex-direction:column;justify-content:center;align-items:center;width:clamp(62px,16vw,102px);height:clamp(62px,16vw,102px);font-size:clamp(5px,1vw,7px);display:flex;position:absolute;top:clamp(4px,2vw,12px);right:clamp(3px,2vw,10px);transform:rotate(14deg)}.birthday-card-preview .preview-stamp strong{font-family:var(--font-editorial);font-size:clamp(23px,5vw,36px);font-style:italic;font-weight:400;line-height:1.05}.birthday-card-preview .preview-note{z-index:2;background:#fffcf5;border:1px solid #e1d7c9;align-items:center;gap:10px;padding:clamp(9px,3vw,16px) clamp(11px,3vw,19px);font-size:clamp(7px,1.7vw,10px);line-height:1.45;display:flex;position:absolute;bottom:clamp(30px,9vw,62px);left:clamp(3px,2vw,11px);transform:rotate(-7deg);box-shadow:2px 5px 15px #302d2909}.birthday-card-preview .preview-note svg{color:#ae432f;width:clamp(12px,3vw,17px)}.birthday-card-preview .preview-note em{font-family:var(--font-editorial);font-size:clamp(11px,2.5vw,16px)}.birthday-cake{width:128px;height:112px;margin-top:21px;position:relative}.birthday-cake i,.birthday-cake b{display:block;position:absolute}.birthday-cake i{background:#b45543;width:18px;height:36px;top:0}.birthday-cake i:first-child{left:28px}.birthday-cake i:nth-child(2){left:57px}.birthday-cake i:nth-child(3){left:86px}.birthday-cake b{background:#d78976;border-radius:3px;width:94px;height:34px;left:10px}.birthday-cake b:nth-child(4){background:#f2c8ac;top:36px}.birthday-cake b:nth-child(5){background:#d78976;top:61px}.birthday-cake b:nth-child(6){background:#f2c8ac;top:86px}.birthday-card-note{background:radial-gradient(circle at 80% 15%,#d8bdd6 0 8%,#0000 8.4%),#efe8d8;justify-content:flex-end}.birthday-card-note>svg{color:#a54a38;width:35px;height:35px;position:absolute;top:42px;right:40px}.birthday-card-note h2{font-size:clamp(30px,3.6vw,46px)}.birthday-card-photo{color:#fffaf2;background:#d9c7dc 50%/cover no-repeat;justify-content:flex-end}.birthday-card-photo:not(.has-image){color:#806987;align-items:center}.birthday-card-photo>svg{width:90px;height:90px}.birthday-card-photo.has-image:before{content:"";background:linear-gradient(#0000 35%,#302d29c7);position:absolute;inset:0}.birthday-card-photo>div{z-index:1;position:relative}.birthday-card-photo>div>p:last-child{color:inherit;font-family:var(--font-editorial);margin-top:8px;font-size:clamp(25px,3.2vw,38px);font-style:italic}.birthday-card-controls{align-items:center;gap:12px;display:flex}.birthday-card-controls p{color:#70685f;text-align:center;min-width:66px;font-size:9px}.public-wish-cta{color:#fff;min-height:52px;transition:background var(--duration-fast), transform var(--duration-fast);background:#ae432f;border:1px solid #0000;border-radius:5px;justify-content:center;align-items:center;gap:24px;margin-top:26px;padding:14px 23px;font-size:13px;font-weight:500;line-height:1.3;text-decoration:none;display:inline-flex}.public-wish-cta:hover{background:#913725;transform:translateY(-2px)}.public-wish-cta:active{transform:translateY(0)}.public-introduction{border-block:1px solid #ddd6c9;grid-template-columns:35px 1fr;gap:24px;width:min(100% - 80px,840px);margin:90px auto;padding-block:50px;display:grid}.public-introduction svg{color:#ae432f}.public-introduction p{white-space:pre-wrap;font-family:var(--font-editorial);letter-spacing:-.02em;font-size:clamp(22px,2.7vw,32px);line-height:1.35}.public-introduction:not(.is-expanded) p{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.public-note-toggle{color:#8f3d2f;margin-top:16px;padding-inline:0}.public-gallery,.public-wishes{width:min(100% - 80px,1180px);margin:100px auto}.public-section-heading{align-items:start;gap:14px;display:flex}.public-section-heading>svg{color:#ae432f;margin-top:4px}.public-section-heading h2{font-family:var(--font-editorial);letter-spacing:-.04em;margin:7px 0 0;font-size:clamp(34px,4.2vw,56px);font-weight:400}.public-photo-stack{grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:clamp(12px,2vw,26px);max-width:900px;margin-top:40px;display:grid}.public-photo-stack.is-single{max-width:840px;margin-inline:auto;display:block}.public-photo-stack.is-single .public-polaroid{width:100%;box-shadow:none;cursor:zoom-in;background:0 0;border:0;padding:0;display:block;transform:none}.public-photo-stack.is-single .public-polaroid:hover{box-shadow:none;transform:none}.public-photo-stack.is-single .public-polaroid>span{aspect-ratio:2.15;box-shadow:5px 16px 35px #302d2915}.public-polaroid{cursor:zoom-in;min-width:0;transition:transform var(--duration-fast), box-shadow var(--duration-fast);background:#fffaf2;border:1px solid #e4dbcf;padding:9px 9px 29px;box-shadow:3px 12px 25px #302d291c}.public-polaroid:hover{transform:translateY(-5px)rotate(0);box-shadow:7px 20px 34px #302d2922}.public-polaroid>span{aspect-ratio:.88;background:#eee5dc 50%/cover no-repeat;display:block}.public-polaroid:nth-child(3n+1){transform:rotate(-3deg)}.public-polaroid:nth-child(3n+2){transform:translateY(-14px)rotate(1.5deg)}.public-polaroid:nth-child(3n){transform:rotate(3deg)}.public-polaroid:only-child{grid-column:2}.celebration-lightbox{z-index:50;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.celebration-lightbox-backdrop{cursor:default;background:#302d29e8;position:absolute;inset:0}.celebration-lightbox-dialog{z-index:1;outline:none;width:min(100%,960px);position:relative}.celebration-lightbox-image{background:#1f1d1a 50%/contain no-repeat;border:10px solid #fffaf2;min-height:min(70svh,700px);box-shadow:0 24px 70px #0000004d}.celebration-lightbox-close{z-index:2;background:#fffaf2;position:absolute;top:16px;right:16px}.celebration-lightbox-controls{color:#fffaf2;justify-content:center;align-items:center;gap:13px;margin-top:15px;font-size:10px;display:flex}.public-wishes{background:#ddd7e5;border:1px solid #c9bfd0;padding:70px;scroll-margin-top:100px}.public-wish-grid{grid-template-columns:repeat(2,1fr);gap:18px;margin-top:38px;display:grid}.public-wish-form-shell{background:#fffaf2;border:1px solid #c9bfd0;grid-template-columns:.72fr 1.28fr;gap:55px;margin-top:42px;padding:40px;display:grid}.public-wish-form-intro>svg{color:#a54131;width:34px;height:34px;margin-bottom:22px}.public-wish-form-intro h3{font-family:var(--font-editorial);letter-spacing:-.035em;margin-top:9px;font-size:clamp(28px,3vw,39px);font-weight:400;line-height:1.08}.public-wish-form-intro div>p:last-child{color:#70685f;margin-top:13px;font-size:11px;line-height:1.7}.public-wish-field+.public-wish-field{margin-top:18px}.public-wish-field label{color:#514b45;margin-bottom:7px;font-size:11px;font-weight:650;display:block}.public-wish-field input,.public-wish-field textarea{transition:border-color var(--duration-fast), box-shadow var(--duration-fast), background var(--duration-fast);background:#faf7ef}.public-wish-field input:focus,.public-wish-field textarea:focus{background:#fffdf8;border-color:#ae432f;box-shadow:0 0 0 3px #ae432f1a}.public-wish-field textarea{resize:vertical}.public-wish-label-row{justify-content:space-between;align-items:center;gap:18px;display:flex}.public-wish-label-row span{color:#7c736b;font-size:9px}.wish-honeypot{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.public-wish-submit-row{align-items:center;gap:17px;margin-top:20px;display:flex}.public-wish-buttons{flex-wrap:wrap;gap:8px;display:flex}.public-wish-buttons button:first-child{color:#fff;background:#ae432f}.public-wish-buttons button:first-child:hover{background:#913725}.public-wish-buttons button:last-child{color:#843b2e;background:0 0;border-color:#c9a99e}.public-wish-buttons button:last-child:hover{background:#f0e4da}.public-wish-error,.public-wish-success{color:#a2322b;margin-top:6px;font-size:10px;line-height:1.5}.public-wish-success{color:#536047;align-items:center;gap:6px;margin-top:0;animation:.32s cubic-bezier(.22,1,.36,1) both public-wish-success-in;display:flex}@keyframes public-wish-success-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.public-wish-success svg{flex:0 0 15px;width:15px}.public-wish-spinner{animation:1s linear infinite public-wish-spin}@keyframes public-wish-spin{to{transform:rotate(360deg)}}.surprise-link-confirmation{background:#f0e9ef;border:1px solid #d8cddc;margin-top:20px;padding:18px}.surprise-link-confirmation>div:first-child>p:last-child{color:#70685f;margin-top:5px;font-size:10px}.surprise-link-confirmation>div:last-child{gap:8px;margin-top:13px;display:flex}.surprise-link-confirmation input{background:#fffaf2;min-width:0}.surprise-link-confirmation button{flex-shrink:0}.public-wish-grid .public-wish-card{background:#fffaf2;border-left:2px solid #ae432f;margin:0;padding:27px}.public-wish-card{flex-direction:column;justify-content:space-between;min-height:205px;display:flex}.public-wish-card.is-new{animation:.52s cubic-bezier(.22,1,.36,1) both public-wish-arrival}@keyframes public-wish-arrival{0%{opacity:0;transform:translateY(14px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.public-wish-grid .public-wish-card p{font-family:var(--font-editorial);font-size:20px;font-style:italic;line-height:1.45}.public-surprise-card{background:#f6e5d9!important;border-left-color:#9b4a39!important}.public-surprise-card>a{outline-offset:5px;flex-direction:column;justify-content:space-between;align-items:flex-start;gap:25px;min-height:100%;display:flex}.public-surprise-card>a>span{color:#843b2e;font-family:var(--font-editorial);font-size:31px;font-style:italic}.public-surprise-card>a:before{content:"A SEALED SURPRISE";color:#8c6d62;letter-spacing:1.3px;font-size:8px;font-weight:700}.public-wish-carousel{width:100%;min-width:0;max-width:100%;margin-top:38px;overflow:hidden}.public-wish-track{overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;scrollbar-width:none;grid-auto-columns:calc(33.3333% - 12px);grid-auto-flow:column;gap:18px;max-width:100%;display:grid;position:relative;overflow-x:auto}.public-wish-track::-webkit-scrollbar{display:none}.public-wish-track .public-wish-card{scroll-snap-align:start;background:#fffaf2;border-left:2px solid #ae432f;min-width:0;margin:0;padding:27px}.public-wish-track .public-wish-card p{overflow-wrap:anywhere;white-space:pre-wrap;font-family:var(--font-editorial);font-size:20px;font-style:italic;line-height:1.45}.public-wish-track .public-wish-card cite{color:#6f665f;margin-top:15px;font-size:11px;font-style:normal;display:block}.public-wish-track .public-surprise-card>a{min-height:149px}.public-wish-controls{color:#6f665f;justify-content:space-between;align-items:center;gap:18px;margin-top:15px;font-size:9px;display:flex}.public-wish-controls>div{gap:7px;display:flex}.public-wish-grid cite{color:#6f665f;margin-top:15px;font-size:11px;font-style:normal;display:block}.public-empty-note{background:#fffaf2;margin-top:35px;padding:35px}.public-empty-note p{font-family:var(--font-editorial);font-size:24px}.public-empty-note span{color:#70685f;margin-top:7px;font-size:10px;display:block}.public-gift{background:#ecd6c7;border:1px solid #dec1ad;border-radius:0;grid-template-columns:60px 1fr;align-items:start;gap:30px;width:min(100% - 80px,1180px);min-height:220px;margin:100px auto;padding:56px 70px;display:grid}.public-gift>svg{color:#934535}.public-gift h2{font-family:var(--font-editorial);margin:7px 0 12px;font-size:35px;font-weight:400}.public-gift-fields{gap:9px;margin-top:18px;display:grid}.public-gift-field{border-top:1px solid #cfae9a;justify-content:space-between;align-items:center;gap:18px;padding:11px 0;display:flex}.public-gift-field dt{color:#806155;letter-spacing:1px;text-transform:uppercase;font-size:8px;font-weight:700}.public-gift-field dd{overflow-wrap:anywhere;font-family:var(--font-editorial);color:#302d29;margin:4px 0 0;font-size:22px}.public-gift-field button{transition:transform var(--duration-fast), background var(--duration-fast);flex:none}.public-gift-field button:hover{transform:translateY(-1px)}.public-gift-note{color:#69584e;margin-top:18px;font-size:12px;line-height:1.6}.public-gift a{color:#843b2e;border-bottom:1px solid #9e6253;margin-top:20px;padding-bottom:3px;font-size:12px;display:inline-block}.public-celebration-footer{color:#70685f;border-top:1px solid #ddd6c9;justify-content:space-between;gap:30px;width:min(100% - 80px,1180px);margin:0 auto;padding-block:30px;font-size:10px;display:flex}.public-celebration-footer a{color:#8f3d2f}.public-celebration-loading{width:min(100% - 80px,1180px);margin-inline:auto;padding-top:35px}.public-loading-line,.public-loading-hero span{background:#e8dfd3;animation:1.6s ease-in-out infinite public-loading-pulse;display:block}.public-loading-line{width:190px;height:28px}.public-loading-hero{grid-template-columns:1fr .92fr;gap:70px;margin-top:70px;display:grid}.public-loading-hero span:first-child{height:280px}.public-loading-hero span:last-child{aspect-ratio:.88}@keyframes public-loading-pulse{50%{opacity:.48}}@media (max-width:1100px) and (min-width:761px){.public-wish-track{grid-auto-columns:calc(50% - 9px)}}@media (max-width:760px){.public-celebration-nav,.public-celebration-hero,.public-gallery,.public-wishes,.public-celebration-footer{width:calc(100% - 32px)}.public-celebration-nav>span{display:none}.public-celebration-hero{grid-template-columns:1fr;gap:42px;margin-block:45px 70px}.birthday-card-experience{width:min(100%,480px);margin-inline:auto}.public-introduction{grid-template-columns:1fr;width:calc(100% - 48px);margin-block:70px}.public-gallery,.public-wishes{margin-block:75px}.public-photo-stack{gap:10px}.public-wishes{padding:35px 22px}.public-wish-grid{grid-template-columns:1fr}.public-wish-track{grid-auto-columns:100%}.public-wish-form-shell{grid-template-columns:1fr;gap:28px;padding:28px 20px}.public-wish-submit-row{flex-direction:column;align-items:stretch}.public-wish-buttons{flex-direction:column}.public-wish-buttons button{width:100%}.surprise-link-confirmation>div:last-child{flex-direction:column;align-items:stretch}.surprise-link-confirmation button{width:100%}.public-gift{grid-template-columns:1fr;width:calc(100% - 32px);min-height:0;margin-block:75px;padding:35px 22px}.public-gift-field{align-items:flex-start}.public-celebration-loading{width:calc(100% - 32px)}.public-loading-hero{grid-template-columns:1fr;gap:22px;margin-top:45px}.public-loading-hero span:first-child{height:180px}.public-celebration-footer{flex-direction:column;gap:7px}}@media (max-width:520px){.birthday-card-paper{border-width:8px}.birthday-card-content{padding:28px}.birthday-cake{transform-origin:0 0;margin-bottom:-16px;transform:scale(.84)}.public-photo-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.public-polaroid:only-child{grid-column:1/-1;justify-self:center;width:min(74%,280px)}.celebration-lightbox{padding:16px}.celebration-lightbox-image{border-width:6px;min-height:58svh}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.public-wish-spinner,.public-loading-line,.public-loading-hero span{animation:none}.public-wish-track{scroll-behavior:auto}.birthday-card-paper,.public-polaroid,.public-wish-success,.public-wish-card.is-new,.public-celebration-hero>*{transition:none;animation:none}}
