.celebration-page{--event:#c44839;--event-paper:#fff5e9;--event-ink:#61392f;--event-soft:#f6d8cb;background:var(--event-paper);color:var(--event-ink)}.celebration-debut{--event:#bfa3da;--event-paper:#231e30;--event-ink:#f4e7f8;--event-soft:#3b304b}.celebration-golden{--event:#967334;--event-paper:#f7f1e6;--event-ink:#493e2b;--event-soft:#e7d9bd}.celebration-silver{--event:#799287;--event-paper:#eeeee7;--event-ink:#2d413e;--event-soft:#d2dbd3}.celebration-page p{color:inherit}.celebration-page h2 em{color:var(--event)}.event-wrap{width:min(1160px,calc(100% - 100px));margin-inline:auto}.event-eyebrow{font-size:9px;letter-spacing:2.5px;font-weight:500;line-height:1.7;color:var(--event)!important}.celebration-nav{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;border-bottom:1px solid color-mix(in srgb,var(--event) 25%,transparent);font-size:10px;letter-spacing:.3px}.celebration-brand{display:flex;gap:14px;align-items:center}.celebration-nav>div{display:flex;gap:26px}.event-date{display:flex;flex-direction:column;gap:4px;font-size:10px;letter-spacing:1.3px;text-transform:uppercase;line-height:1.8;margin:23px 0}.event-link{display:inline-flex;border:0;border-bottom:1px solid currentColor;background:transparent;padding:8px 0;font-size:11px;letter-spacing:.5px;color:inherit}.celebration-frame{margin:0;min-width:0}.celebration-frame button{border:0;padding:0;display:block;position:relative;width:100%;overflow:hidden;background:var(--event-soft)}.celebration-frame img{width:100%;height:100%;object-fit:cover;transition:transform .7s}.celebration-frame button:hover img{transform:scale(1.04)}.celebration-frame button>span{position:absolute;right:18px;bottom:18px;width:33px;height:33px;border-radius:50%;display:grid;place-items:center;background:#fff9eddd;color:#443d36;font-size:20px}.celebration-frame figcaption{font-size:10px;font-style:italic;margin-top:12px;opacity:.75}.event-details{display:grid;grid-template-columns:1.1fr 1fr;gap:12%;padding-block:90px;border-block:1px solid color-mix(in srgb,var(--event) 35%,transparent)}.event-details h2{font-size:49px;margin-top:15px}.event-details>div>p:not(.event-eyebrow){font-size:12px;line-height:1.9;max-width:440px}.event-details .event-link{margin-top:20px}.event-dress h3{font-size:32px;margin:15px 0}.event-palette{display:flex;gap:10px;margin-top:25px}.event-palette span{width:31px;height:31px;border-radius:50%;border:1px solid #00000012}.event-program{padding-block:95px}.event-program h2{margin:17px 0 38px}.program-items{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}.program-items article{border-top:1px solid color-mix(in srgb,var(--event) 35%,transparent);padding-top:20px;position:relative}.program-number{display:block;font-family:var(--serif);font-size:35px;color:var(--event);margin-bottom:25px}.program-items time{font-size:9px;letter-spacing:1.5px}.program-items h3{font-size:25px;margin:10px 0}.program-items p{font-size:12px;opacity:.7;line-height:1.9}.event-gallery{padding-block:40px 100px}.gallery-title{margin-bottom:40px}.gallery-title h2{margin:16px 0;font-size:55px}.gallery-title>p:last-child{font-size:11px;opacity:.7}.event-photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px 25px}.event-photo-grid .celebration-frame button{height:370px}.event-photo-grid .celebration-frame:nth-child(1) button{height:470px}.event-photo-grid .celebration-frame:nth-child(2){padding-top:100px}.event-photo-grid .celebration-frame:nth-child(3){padding-right:45px}.event-photo-grid .celebration-frame:nth-child(4){padding-left:45px}.event-closing{text-align:center;padding:90px 25px 110px;background:var(--event-soft)}.event-closing>span{font-size:40px;color:var(--event)}.event-closing h2{font-size:clamp(42px,5vw,68px);margin:22px auto;max-width:800px}.event-closing>p{font-family:var(--script);font-size:28px}.celebration-footer{padding:40px 5%;display:flex;justify-content:space-between;align-items:center;gap:30px}.celebration-footer>a{display:flex;align-items:center;gap:12px}.celebration-footer>a>span{font-size:6px;letter-spacing:1.3px}.celebration-footer strong{display:block;font-family:var(--serif);font-size:35px;letter-spacing:-1px;font-weight:400;line-height:1.1}.celebration-footer>p{font-size:10px;opacity:.65}
/* Birthday: oversized typography, a polaroid, and a playful scrapbook. */
.confetti-hero{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:6%;padding-block:65px 90px;align-items:center}.birthday-cover{position:relative}.birthday-cover h1{font-family:var(--serif);font-size:clamp(75px,9vw,135px);font-weight:600;letter-spacing:-5px;line-height:.86;margin:25px 0 40px}.birthday-cover h1>span{color:var(--event);font-style:italic}.birthday-polaroid{margin:0;background:#fffdf8;padding:14px 14px 22px;transform:rotate(4deg);box-shadow:0 15px 40px #69423216}.birthday-polaroid img{width:100%;height:550px;object-fit:cover}.birthday-polaroid figcaption{font-family:var(--serif);font-size:22px;font-style:italic;text-align:center;margin-top:14px}.birthday-sticker{position:absolute;right:0;top:8%;display:grid;place-content:center;border-radius:50%;width:100px;height:100px;background:#f9d65f;transform:rotate(-15deg);font-size:10px;font-weight:600;text-align:center;line-height:1.6;letter-spacing:1px}.birthday-spark{position:absolute;right:47%;bottom:65px;z-index:2;font-size:100px;color:#de593e;line-height:1}.birthday-marquee{overflow:hidden;white-space:nowrap;background:#dc583f;color:#fff3d4;padding:16px 0;text-align:center;font-size:12px;letter-spacing:3px}.birthday-note{display:grid;grid-template-columns:1fr 1fr;gap:12%;padding-block:100px 65px}.birthday-note h2{font-size:65px}.birthday-note p{font-size:13px;line-height:2}.birthday-note p+p{margin-top:18px;opacity:.7}.birthday-scrapbook{position:relative;display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:70px;padding-bottom:100px}.scrapbook-friends{transform:rotate(-3deg);background:#fffdf8;padding:12px 12px 18px}.scrapbook-friends button{height:430px}.scrapbook-cake{transform:rotate(4deg)}.scrapbook-cake button{height:310px}.scrapbook-note{position:absolute;bottom:58px;right:20%;font-family:var(--script);font-size:39px;line-height:1.2;color:var(--event);transform:rotate(-8deg)}
/* Debut: a moonlit cover and a symmetrical formal invitation. */
.debut-hero{height:calc(100svh - 78px);min-height:670px;position:relative;text-align:center;overflow:hidden}.debut-photo{position:absolute;inset:0}.debut-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 35%}.debut-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#211727e8,transparent 80%),linear-gradient(90deg,#291c333d,transparent)}.debut-title{position:absolute;bottom:95px;left:20px;right:20px}.debut-title h1{font-family:var(--script);font-size:clamp(110px,14vw,190px);font-weight:400;line-height:1;margin-top:15px}.debut-title .event-eyebrow{color:#f2deff!important}.debut-eighteen{font-family:var(--serif);font-style:italic;letter-spacing:5px;font-size:24px}.debut-scroll{position:absolute;bottom:35px;left:0;right:0;font-size:8px;letter-spacing:3px;color:#dcc3e8}.debut-letter{text-align:center;max-width:820px;padding-block:85px}.debut-ornament{font-size:53px;color:var(--event);display:block;margin-bottom:24px}.debut-letter h2{font-size:61px;line-height:1.1;margin:25px 0}.debut-letter>p:last-child{max-width:590px;margin:auto;font-size:14px;line-height:2;opacity:.8}.debut-diptych{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding-bottom:30px;align-items:center}.debut-diptych .celebration-frame:first-child button{height:480px;border-radius:220px 220px 0 0}.debut-diptych>div{text-align:center;padding:20px}.oversize-eighteen{font-family:var(--serif);font-size:140px;font-style:italic;line-height:1;color:#9078a3}.debut-diptych h2{font-size:43px;margin:25px 0}.debut-diptych p{font-size:12px;line-height:2;opacity:.75}.debut-diptych .celebration-frame:last-child{grid-column:1/-1;width:70%;margin:15px auto 0}.debut-diptych .celebration-frame:last-child button{height:390px}.celebration-debut .program-items{grid-template-columns:1fr 1fr}.celebration-debut .event-details{text-align:center;gap:10%;border:1px solid #aa8eba5e;padding:70px 55px}.celebration-debut .event-palette{justify-content:center}
/* Sixty: an heirloom portrait, a family photograph, and a letter of gratitude. */
.golden-hero{display:grid;grid-template-columns:1fr 1fr;gap:9%;padding-block:65px 80px;align-items:center}.golden-portrait{position:relative;padding:13px;border:1px solid #b394575e;border-radius:230px 230px 0 0}.golden-portrait img{width:100%;height:640px;object-fit:cover;border-radius:220px 220px 0 0}.golden-title{text-align:center}.golden-age{font-family:var(--serif);font-size:175px;line-height:.9;color:#b49358;display:block;margin:35px 0 0;font-style:italic}.golden-title h1{font-family:var(--script);font-size:100px;line-height:1.2;margin-top:-10px}.golden-subtitle{font-family:var(--serif);font-size:25px;font-style:italic}.golden-seal{position:absolute;bottom:25px;right:-30px;width:110px;height:110px;border-radius:50%;display:grid;place-content:center;text-align:center;background:#a78342;color:#fff7e7;box-shadow:0 0 0 6px #ead9b89c;font-size:8px;letter-spacing:1.7px;line-height:1.8;transform:rotate(-8deg)}.golden-letter{text-align:center;max-width:850px;padding-bottom:80px}.golden-letter h2{font-size:61px;margin:20px 0}.golden-letter>p:last-child{max-width:640px;margin:auto;font-size:14px;line-height:2}.golden-family{position:relative;margin-bottom:90px}.golden-family-photo button{height:700px}.golden-family-photo button:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#1e2114cf,transparent 85%);pointer-events:none}.golden-family blockquote{position:absolute;bottom:55px;left:10%;right:10%;max-width:820px;margin:0 auto;text-align:center;font-family:var(--serif);font-size:38px;line-height:1.35;color:#fff4db;pointer-events:none}.golden-family cite{display:block;font-size:19px;font-family:var(--script);margin-top:20px}.golden-table{display:grid;grid-template-columns:1.2fr 1fr;gap:70px;padding-top:90px;align-items:center}.golden-table .celebration-frame button{height:420px}.golden-table h2{font-size:48px;margin:20px 0}.golden-table p{font-size:13px;line-height:2}.celebration-golden .event-photo-grid{grid-template-columns:repeat(4,1fr);gap:20px}.celebration-golden .event-photo-grid .celebration-frame{padding:0}.celebration-golden .event-photo-grid .celebration-frame button{height:300px}
/* Anniversary: a magazine cover, wide margins, and photographic spreads. */
.silver-heading{position:relative;padding-block:50px 35px}.silver-heading h1{font-size:clamp(100px,15vw,215px);line-height:.8;letter-spacing:-7px;margin-top:30px;font-weight:400}.silver-heading h1 em{font-weight:400;color:#758e80}.silver-years{position:absolute;right:5%;bottom:45px;text-align:center;display:flex;flex-direction:column}.silver-years strong{font-family:var(--serif);font-size:130px;line-height:1;font-weight:400;font-style:italic}.silver-years span{font-size:9px;letter-spacing:3px}.silver-cover{margin:0 6%}.silver-cover img{height:700px;width:100%;object-fit:cover;object-position:50% 35%}.silver-cover figcaption{font-size:10px;font-style:italic;border-bottom:1px solid #71877950;padding:15px 0}.silver-story{display:grid;grid-template-columns:1.1fr 1fr;gap:10%;padding-block:85px}.silver-story h2{margin-top:20px;font-size:57px}.silver-story>div:last-child{padding-top:20px}.silver-story p{font-size:13px;line-height:2}.silver-story p+p{margin-top:20px;opacity:.75}.silver-spread{display:grid;grid-template-columns:1.2fr 1fr;gap:35px;position:relative;padding-bottom:80px;align-items:center}.silver-spread .celebration-frame:first-child button{height:520px}.silver-spread .celebration-frame:nth-child(2){padding-top:100px}.silver-spread .celebration-frame:nth-child(2) button{height:330px}.silver-spread>span{position:absolute;top:0;right:8%;font-family:var(--serif);font-style:italic;font-size:33px;line-height:1.2;color:#758b7e}.celebration-silver .event-photo-grid{grid-template-columns:repeat(2,1fr)}.celebration-silver .event-photo-grid .celebration-frame{padding:0}.celebration-silver .event-photo-grid .celebration-frame button{height:360px}
/* Automatic entrance, with a different reveal for each occasion. */
.celebration-gate{border:0;max-width:none;max-height:none;width:100%;height:100%;height:100dvh;margin:0;padding:0;background:transparent;color:var(--event-ink);overflow:hidden}.celebration-gate::backdrop{background:var(--event-paper)}.gate-panel{position:absolute;top:0;bottom:0;width:50.5%;background:var(--event-soft);transition:transform 1.4s cubic-bezier(.6,0,.2,1);z-index:0}.gate-panel-first{left:0;border-right:1px solid #a7808430}.gate-panel-last{right:0}.celebration-gate-copy{position:relative;z-index:1;min-height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:90px 25px;transition:opacity .4s,transform .7s}.gate-milestone{font-family:var(--serif);font-size:160px;font-style:italic;line-height:.9;margin-bottom:35px;color:var(--event)}.celebration-gate-copy h2{font-size:clamp(45px,6vw,80px);margin:20px 0}.celebration-gate-copy>p:not(.event-eyebrow){font-size:12px}.gate-auto{font-size:8px;letter-spacing:2px;margin-top:35px;opacity:.65}.celebration-skip,.celebration-gate-back{position:absolute;z-index:4;top:30px;font-size:10px;color:inherit}.celebration-skip{right:5%;border:1px solid currentColor;border-radius:30px;background:transparent;padding:9px 15px}.celebration-gate-back{left:5%;padding-block:9px}.celebration-gate.opening .gate-panel-first{transform:translateX(-102%)}.celebration-gate.opening .gate-panel-last{transform:translateX(102%)}.celebration-gate.opening .celebration-gate-copy{opacity:0;transform:translateY(-25px)}.celebration-confetti .gate-panel-first{background:#f4b9c8}.celebration-confetti .gate-panel-last{background:#ffe196}.celebration-confetti .opening .gate-panel-first{transform:translateY(-102%) rotate(-8deg)}.celebration-confetti .opening .gate-panel-last{transform:translateY(102%) rotate(8deg)}.celebration-debut .gate-panel{background:repeating-linear-gradient(90deg,#2f253c,#594060 15%,#38283e 30%)}.celebration-golden .gate-panel{width:100%;border:0;border-radius:0;transition:transform 1.4s ease,border-radius 1.4s}.celebration-golden .gate-panel-last{display:none}.celebration-golden .opening .gate-panel-first{transform:scale(0);border-radius:50%}.celebration-silver .opening .gate-panel-first{transform:translateY(-102%)}.celebration-silver .opening .gate-panel-last{transform:translateY(102%)}
.celebration-lightbox{border:0;background:#17171b;color:#fff7ed;max-width:1100px;width:94vw;padding:18px;max-height:94dvh}.celebration-lightbox::backdrop{background:#0b0b12e8}.celebration-lightbox>img{width:100%;height:75dvh;object-fit:contain}.lightbox-close{position:absolute;right:22px;top:20px;background:#15151abb;border:1px solid #ffffff60;color:white;border-radius:50%;width:40px;height:40px;font-size:24px;z-index:3}.celebration-lightbox-controls{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:15px}.celebration-lightbox-controls button{background:transparent;color:white;border:1px solid #ffffff40;border-radius:50%;width:40px;height:40px;flex:0 0 40px}.celebration-lightbox-controls p{text-align:center;font-size:11px}.celebration-missing{padding:100px 8%;text-align:center}.celebration-missing h1{font-size:50px;margin-bottom:30px}
@media(max-width:900px){.event-wrap{width:calc(100% - 60px)}.birthday-polaroid img{height:440px}.birthday-sticker{width:75px;height:75px;font-size:8px;right:-15px;top:0}.birthday-cover h1{font-size:95px}.birthday-note h2{font-size:53px}.golden-portrait img{height:540px}.golden-age{font-size:140px}.golden-title h1{font-size:78px}.event-details{gap:7%}.program-items{grid-template-columns:1fr 1fr}.golden-table{gap:35px}.silver-cover img{height:580px}.celebration-golden .event-photo-grid{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.event-wrap{width:calc(100% - 42px)}.celebration-nav{height:65px;padding:0 20px}.celebration-brand{gap:9px}.celebration-brand>span{font-size:8px}.celebration-nav>div{gap:14px;font-size:9px}.confetti-hero{grid-template-columns:1fr;gap:35px;padding-block:40px 65px}.birthday-cover h1{font-size:106px;letter-spacing:-4px}.birthday-cover .event-eyebrow{font-size:8px}.birthday-sticker{right:10px;top:40px;width:90px;height:90px;font-size:9px}.birthday-polaroid{margin:0 12px;padding:10px 10px 15px}.birthday-polaroid img{height:460px}.birthday-polaroid figcaption{font-size:19px}.birthday-spark{bottom:35px;right:0;font-size:75px}.birthday-marquee{font-size:9px;padding:12px 0}.birthday-note{grid-template-columns:1fr;gap:25px;padding-block:55px 40px}.birthday-note h2{font-size:54px}.birthday-scrapbook{grid-template-columns:1fr;gap:25px;padding:5px 10px 85px}.scrapbook-friends button{height:320px}.scrapbook-cake{width:85%;margin-left:auto}.scrapbook-cake button{height:250px}.scrapbook-note{bottom:35px;right:22%;font-size:34px}.event-details{grid-template-columns:1fr;gap:40px;padding-block:55px}.event-details h2{font-size:42px}.event-dress{border-top:1px solid #aa88883d;padding-top:30px}.event-program{padding-block:55px}.event-program h2{font-size:42px}.program-items{gap:30px 22px}.program-items h3{font-size:25px;line-height:1.1}.program-items p{font-size:11px}.program-number{margin-bottom:15px}.event-gallery{padding-block:35px 60px}.gallery-title h2{font-size:47px}.event-photo-grid{gap:25px 12px}.event-photo-grid .celebration-frame button,.celebration-silver .event-photo-grid .celebration-frame button,.celebration-golden .event-photo-grid .celebration-frame button{height:200px}.event-photo-grid .celebration-frame:nth-child(1) button{height:255px}.event-photo-grid .celebration-frame:nth-child(2){padding-top:55px}.event-photo-grid .celebration-frame:nth-child(3),.event-photo-grid .celebration-frame:nth-child(4){padding:0}.celebration-frame figcaption{font-size:9px;line-height:1.6}.event-closing{padding-block:55px 70px}.event-closing h2{font-size:43px;letter-spacing:-1px}.event-closing>p{font-size:26px}.celebration-footer{flex-direction:column;gap:20px;padding-block:35px}.debut-hero{height:calc(100svh - 65px);min-height:630px}.debut-photo img{object-position:50% 30%}.debut-title{bottom:75px}.debut-title h1{font-size:130px}.debut-letter{padding-block:55px}.debut-letter h2{font-size:45px}.debut-letter>p:last-child{font-size:12px}.debut-diptych{grid-template-columns:1fr;gap:10px}.debut-diptych .celebration-frame:first-child button{height:430px}.debut-diptych>div{padding:35px 0}.oversize-eighteen{font-size:110px}.debut-diptych h2{font-size:40px}.debut-diptych .celebration-frame:last-child{width:100%}.debut-diptych .celebration-frame:last-child button{height:270px}.celebration-debut .event-details{padding:40px 25px;gap:30px}.golden-hero{grid-template-columns:1fr;gap:40px;padding-block:40px 45px}.golden-portrait{margin:0 15px;padding:9px}.golden-portrait img{height:470px}.golden-seal{right:-20px;width:90px;height:90px;font-size:7px}.golden-title{display:flex;flex-direction:column;align-items:center}.golden-title .event-eyebrow{font-size:7px;letter-spacing:1.6px}.golden-age{font-size:120px;margin-top:20px}.golden-title h1{font-size:90px}.golden-letter{padding-bottom:45px}.golden-letter h2{font-size:48px}.golden-letter>p:last-child{font-size:12px}.golden-family{margin-bottom:50px}.golden-family-photo button{height:550px}.golden-family blockquote{font-size:28px;left:7%;right:7%;bottom:35px}.golden-table{grid-template-columns:1fr;gap:30px;padding-top:50px}.golden-table .celebration-frame button{height:300px}.golden-table h2{font-size:43px}.silver-heading{padding-block:35px}.silver-heading h1{font-size:112px;letter-spacing:-5px;line-height:.85}.silver-heading>.event-eyebrow{font-size:7px;letter-spacing:1.5px}.silver-years{right:0;bottom:38px}.silver-years strong{font-size:68px}.silver-years span{font-size:6px;letter-spacing:1.5px}.silver-cover{margin:0}.silver-cover img{height:540px}.silver-cover figcaption{margin-inline:21px;font-size:9px}.silver-story{grid-template-columns:1fr;gap:15px;padding-block:50px}.silver-story h2{font-size:47px}.silver-story>div:last-child{padding:0}.silver-spread{grid-template-columns:1fr;gap:25px;padding-bottom:50px}.silver-spread .celebration-frame:first-child button{height:330px}.silver-spread .celebration-frame:nth-child(2){padding:0 0 0 40px}.silver-spread .celebration-frame:nth-child(2) button{height:260px}.silver-spread>span{position:static;font-size:30px;text-align:center}.celebration-silver .event-photo-grid .celebration-frame,.celebration-golden .event-photo-grid .celebration-frame{padding:0}.gate-milestone{font-size:125px}.celebration-gate-copy h2{font-size:47px}.celebration-gate-copy .event-eyebrow{font-size:7px}.celebration-lightbox{width:100%;padding:12px}.celebration-lightbox>img{height:74dvh}.celebration-lightbox-controls p{font-size:10px}.lightbox-close{right:16px;top:16px}}
@media(prefers-reduced-motion:reduce){.gate-panel,.celebration-gate-copy,.celebration-frame img{transition:none!important}.celebration-gate.opening{visibility:hidden}}
