:root{--ink:#26231f;--paper:#f4f0e8;--soft:#ddd6cc;--taupe:#807970;--brown:#69564a;--night:#3d3a36}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:Manrope,Arial,sans-serif;font-size:16px;font-weight:300}img,video{display:block;width:100%}a{color:inherit}button{font:inherit}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.prototype-note{position:fixed;left:50%;bottom:14px;transform:translateX(-50%);z-index:20;padding:8px 15px;border:1px solid rgba(255,255,255,.38);border-radius:999px;background:rgba(43,40,36,.66);color:#fff;backdrop-filter:blur(14px);font-size:.7rem;letter-spacing:.08em;white-space:nowrap}.site-header{position:fixed;z-index:15;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:space-between;padding:24px clamp(20px,4vw,64px);color:#fff;background:transparent;border-bottom:1px solid transparent;transition:background-color .45s ease,color .35s ease,border-color .35s ease,padding .35s ease;will-change:background-color,color}.site-header.has-surface{padding-top:17px;padding-bottom:17px;border-bottom-color:rgba(80,70,62,.14);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.monogram{text-decoration:none;font:500 1.2rem/1 "Cormorant Garamond",serif;letter-spacing:.08em}.monogram span{padding:0 5px;font-family:"Marck Script",cursive;font-weight:400}.site-nav{display:flex;gap:28px;align-items:center}.site-nav a{text-decoration:none;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em}.nav-pill{border:1px solid currentColor;border-radius:999px;padding:10px 16px}.menu-button{display:none;border:0;background:transparent;padding:8px}.menu-button span:not(.sr-only){display:block;width:22px;height:1px;margin:5px 0;background:currentColor}
.hero{min-height:100svh;position:relative;display:grid;place-items:center;overflow:hidden;color:#fff}.hero-image,.hero-shade{position:absolute;inset:0;height:100%;object-fit:cover}.hero-image{filter:saturate(.48) sepia(.2) brightness(.78);object-position:center 56%;transform:scale(1.015);animation:breathe 16s ease-in-out infinite alternate}.hero-shade{background:linear-gradient(180deg,rgba(30,29,27,.38),rgba(55,51,46,.05) 43%,rgba(28,25,22,.56))}.hero-copy{z-index:1;width:min(880px,88vw);text-align:center;padding-bottom:6vh}.eyebrow{margin:0 0 20px;font-size:.66rem;text-transform:uppercase;letter-spacing:.32em}.eyebrow.dark{color:var(--taupe)}.hero h1{margin:0;display:flex;justify-content:center;align-items:center;gap:clamp(18px,4vw,55px);font:400 clamp(3.7rem,9vw,9rem)/.8 "Cormorant Garamond",serif;letter-spacing:.08em;text-transform:uppercase;text-shadow:0 2px 24px rgba(0,0,0,.2)}.hero h1 em{font:400 clamp(2.4rem,5vw,5rem)/1 "Marck Script",cursive;text-transform:lowercase;letter-spacing:0;transform:rotate(-8deg)}.date-lockup{margin:38px auto 0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:26px;width:min(520px,90%)}.date-lockup strong{font:400 clamp(2rem,4vw,3.4rem)/.82 "Cormorant Garamond",serif;letter-spacing:.15em}.date-lockup span{font-size:.58rem;text-transform:uppercase;letter-spacing:.2em;line-height:1.7}.date-lockup span:first-child{text-align:right}.date-lockup span:last-child{text-align:left}.countdown{position:absolute;z-index:2;bottom:34px;left:50%;transform:translateX(-50%);display:flex;padding:12px 20px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(40,36,32,.35);backdrop-filter:blur(14px)}.countdown div{min-width:64px;text-align:center;border-right:1px solid rgba(255,255,255,.26)}.countdown div:last-child{border-right:0}.countdown strong{display:block;font:400 1.25rem/1 "Cormorant Garamond",serif;letter-spacing:.09em}.countdown span{display:block;margin-top:4px;font-size:.48rem;text-transform:uppercase;letter-spacing:.12em}.scroll-cue{position:absolute;z-index:2;right:clamp(20px,4vw,64px);bottom:44px;text-decoration:none;font-size:.6rem;letter-spacing:.15em;text-transform:uppercase}.scroll-cue span{margin-left:7px}
.section-pad{padding:clamp(90px,13vw,170px) clamp(22px,7vw,110px)}.intro{text-align:center}.intro blockquote{margin:0 auto clamp(70px,9vw,130px);max-width:950px;font:italic 400 clamp(2rem,5vw,5.2rem)/1.05 "Cormorant Garamond",serif}.childhood-grid{display:grid;grid-template-columns:1fr minmax(100px,.4fr) 1fr;align-items:center;gap:clamp(18px,5vw,80px);max-width:1100px;margin:auto}.photo-slot{margin:0;text-align:left}.photo-slot.right{margin-top:120px}.photo-slot button{width:100%;aspect-ratio:4/5;display:grid;place-content:center;gap:12px;border:1px dashed #9f978d;background:linear-gradient(145deg,#ded9d1,#c9c1b7);color:#6c665f;cursor:default}.photo-slot button span:last-child{font-size:.67rem;text-transform:uppercase;letter-spacing:.13em}.slot-plus{font:300 2rem/1 "Cormorant Garamond",serif}.photo-slot figcaption{padding-top:12px;font:italic 400 1.05rem "Cormorant Garamond",serif}.story-mark{display:flex;flex-direction:column;gap:8px;color:var(--taupe);font:400 .65rem/1.2 Manrope,sans-serif;letter-spacing:.18em;text-transform:uppercase}.story-mark i{font:400 2.4rem/1 "Marck Script",cursive;text-transform:lowercase;letter-spacing:0;color:var(--brown)}.grown-up{position:relative;width:min(680px,90%);margin:clamp(80px,12vw,150px) auto 0;background:#ded9d1}.grown-up img{height:auto;aspect-ratio:auto;object-fit:contain;filter:saturate(.72) sepia(.08)}.grown-up p{position:absolute;left:50%;right:auto;bottom:-18px;width:min(92vw,980px);transform:translateX(-50%);margin:0;color:#fff;font:400 clamp(1.8rem,4vw,4rem) "Marck Script",cursive;text-shadow:0 2px 12px rgba(0,0,0,.35)}
.bride-gallery{display:grid;grid-template-columns:1.1fr .7fr .7fr;grid-template-rows:auto auto auto;gap:clamp(12px,2vw,30px);padding:clamp(80px,11vw,150px) clamp(22px,7vw,110px);background:#e1dcd5}.bride-title{align-self:end;padding:0 clamp(0px,3vw,45px) 30px 0}.bride-title h2{margin:0;font:400 clamp(4.8rem,11vw,11rem)/.72 "Cormorant Garamond",serif}.bride-title>p:last-child{margin:35px 0 0;max-width:410px;font:italic 400 clamp(1.35rem,2.2vw,2rem)/1.35 "Cormorant Garamond",serif}.bride-shot{margin:0;position:relative;overflow:hidden;background:#c7c0b7}.bride-shot img{height:100%;object-fit:cover;filter:saturate(.76) sepia(.08);transition:transform 1s ease,filter .5s ease}.bride-shot:hover img{transform:scale(1.025);filter:saturate(.92)}.bride-shot figcaption{position:absolute;left:14px;bottom:12px;padding:6px 9px;background:rgba(36,32,28,.55);color:#fff;font-size:.57rem;text-transform:uppercase;letter-spacing:.14em;backdrop-filter:blur(8px)}.shot-1{grid-column:2/4;aspect-ratio:1.5}.shot-1 img{object-position:center 36%}.shot-2{grid-column:1;grid-row:2/4;aspect-ratio:3/4}.shot-3,.shot-4,.shot-5,.shot-6{aspect-ratio:3/4}.shot-3 img{object-position:center 30%}.shot-5 img,.shot-6 img{object-position:center 20%}
.couple-gallery{background:var(--paper);text-align:center}.couple-heading{max-width:760px;margin:0 auto clamp(70px,9vw,120px)}.couple-heading h2{margin:0;font:400 clamp(5rem,12vw,12rem)/.72 "Cormorant Garamond",serif}.couple-heading>p:last-child{margin:38px 0 0;font:italic 400 clamp(1.4rem,2.5vw,2.3rem)/1.3 "Cormorant Garamond",serif}.couple-reel{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,2vw,28px);align-items:start}.couple-reel figure{margin:0;text-align:left}.couple-reel figure.lift{margin-top:70px}.couple-reel img{aspect-ratio:3/4;object-fit:cover;filter:saturate(.68) sepia(.08);transition:filter .4s ease,transform .8s ease}.couple-reel figure:hover img{filter:saturate(.9);transform:translateY(-5px)}.couple-reel figcaption{padding-top:12px;color:var(--taupe);font:italic 400 1rem "Cormorant Garamond",serif}
.film{background:var(--night);color:#fff;padding:clamp(80px,10vw,130px) clamp(22px,6vw,90px)}.film-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:35px}.film-heading h2{margin:0;font:400 clamp(2.8rem,6vw,6rem)/.9 "Cormorant Garamond",serif}.film-frame{position:relative;max-width:1200px;margin:auto}.film-frame video{aspect-ratio:16/9;object-fit:cover;background:#1f1d1b}.film-note{display:block;margin-top:12px;color:#c6bfb6;font-size:.64rem;letter-spacing:.12em;text-transform:uppercase}
.schedule{max-width:1100px;margin:auto}.schedule h2,.guests h2,.details h2{margin:0 0 60px;font:400 clamp(3.3rem,7vw,7rem)/.85 "Cormorant Garamond",serif}.timeline{position:relative;max-width:820px;margin-left:auto}.timeline:before{content:"";position:absolute;left:123px;top:12px;bottom:12px;width:1px;background:#bdb5ab}.timeline article{display:grid;grid-template-columns:100px 46px 1fr;align-items:start;min-height:150px}.timeline time{font:400 1.7rem "Cormorant Garamond",serif}.timeline .dot{position:relative;z-index:1;justify-self:center;width:9px;height:9px;margin-top:12px;border-radius:50%;background:var(--brown);box-shadow:0 0 0 8px var(--paper)}.timeline h3{margin:0 0 7px;font:400 1.85rem "Cormorant Garamond",serif}.timeline p{margin:0;color:#645f59;line-height:1.7}
.place{display:grid;grid-template-columns:.8fr 1.2fr;min-height:620px;background:#ded9d1}.place-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(60px,8vw,120px)}.place-copy h2{margin:0 0 10px;font:400 clamp(3rem,6vw,6rem)/1 "Cormorant Garamond",serif}.place-copy .venue{font:italic 400 1.65rem "Cormorant Garamond",serif;color:var(--brown)}.place-copy>p:not(.eyebrow):not(.venue){max-width:390px;line-height:1.7;color:#5d5852}.place-copy a{width:fit-content;margin-top:25px;padding-bottom:6px;text-decoration:none;border-bottom:1px solid currentColor;font-size:.74rem;text-transform:uppercase;letter-spacing:.12em}.place iframe{width:100%;height:100%;min-height:500px;border:0;filter:grayscale(1) sepia(.18) contrast(.85)}
.guests{text-align:center}.section-lead{max-width:620px;margin:-30px auto 65px;color:#67615b;line-height:1.7}.guest-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,2vw,28px);text-align:left}.guest-card.offset{margin-top:70px}.guest-photo{aspect-ratio:3/4;display:grid;place-items:center;background:#d6d0c8;border:1px dashed #9e968d;color:#746e67;font-size:.62rem;text-transform:uppercase;letter-spacing:.15em}.guest-photo.together{background:linear-gradient(155deg,#c6beb5,#eee9e2)}.guest-card h3{margin:15px 0 3px;font:400 1.5rem "Cormorant Garamond",serif}.guest-card p{margin:0;color:var(--taupe);font-size:.7rem}.quote-band{min-height:500px;display:grid;place-content:center;text-align:center;color:#fff;background:var(--brown);padding:60px 20px}.quote-band p{margin:0;font:italic 400 clamp(2.3rem,6vw,6rem)/.98 "Cormorant Garamond",serif}.quote-band span{margin-top:35px;font-size:.65rem;letter-spacing:.3em}
.details{max-width:1250px;margin:auto}.qr-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.qr-card{display:grid;grid-template-columns:minmax(145px,.62fr) 1fr;gap:clamp(22px,3vw,48px);align-items:center;padding:clamp(22px,4vw,50px);border:1px solid #bfb7ad}.gift-qr{background:#ded9d1;border-color:#ded9d1}.qr-frame{padding:13px;background:#fff;box-shadow:0 8px 30px rgba(60,52,44,.12)}.qr-frame img{image-rendering:pixelated}.card-number{margin:0 0 28px;color:var(--taupe);font-size:.64rem;letter-spacing:.2em}.qr-card h3{margin:0 0 13px;font:400 2rem/1 "Cormorant Garamond",serif}.qr-card p:not(.card-number){color:#615c56;line-height:1.65;font-size:.84rem}.qr-card a{display:inline-block;margin-top:12px;padding-bottom:5px;text-decoration:none;border-bottom:1px solid currentColor;font-size:.68rem;text-transform:uppercase;letter-spacing:.13em}
.closing{position:relative;min-height:75svh;display:grid;place-items:center;overflow:hidden;color:#fff;text-align:center}.closing:after{content:"";position:absolute;inset:0;background:rgba(37,34,30,.44)}.closing img{position:absolute;inset:0;height:100%;object-fit:cover;filter:grayscale(.25) sepia(.2)}.closing div{position:relative;z-index:1}.closing p{margin:0 0 16px;font-size:.67rem;letter-spacing:.28em;text-transform:uppercase}.closing h2{margin:0;font:400 clamp(3.7rem,9vw,9rem)/.9 "Cormorant Garamond",serif}.closing h2 em{font:400 .55em "Marck Script",cursive}.closing span{display:block;margin-top:30px;letter-spacing:.3em;font-size:.78rem}footer{display:flex;justify-content:space-between;padding:30px clamp(22px,5vw,70px);background:#25231f;color:#d8d1c8;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase}footer a{text-decoration:none}.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s ease}.reveal.visible{opacity:1;transform:none}@keyframes breathe{from{transform:scale(1.015)}to{transform:scale(1.07)}}
@media(max-width:860px){.site-header{padding:20px}.menu-button{display:block;color:inherit}.site-nav{position:fixed;inset:0;z-index:-1;display:flex;flex-direction:column;justify-content:center;gap:30px;background:rgba(38,35,31,.97);opacity:0;pointer-events:none;transition:opacity .3s}.site-nav.open{opacity:1;pointer-events:auto}.site-nav a{font:400 1.8rem "Cormorant Garamond",serif;text-transform:none}.hero h1{flex-direction:column;gap:0;font-size:clamp(3.4rem,17vw,6rem)}.hero h1 em{margin:-6px 0}.date-lockup{margin-top:26px;gap:13px}.date-lockup strong{font-size:2.2rem}.countdown{bottom:45px;padding:10px 11px}.countdown div{min-width:58px}.scroll-cue{display:none}.prototype-note{bottom:8px;font-size:.56rem}.childhood-grid{grid-template-columns:1fr 50px 1fr;gap:10px}.photo-slot.right{margin-top:50px}.story-mark{font-size:.5rem}.bride-gallery{grid-template-columns:1fr 1fr}.bride-title{grid-column:1/-1}.shot-1{grid-column:1/-1}.shot-2{grid-row:auto;aspect-ratio:3/4}.couple-reel{grid-template-columns:1fr 1fr}.couple-reel figure.lift{margin-top:35px}.film-heading{display:block}.place{grid-template-columns:1fr}.place iframe{min-height:420px}.guest-grid{grid-template-columns:1fr 1fr}.guest-card.offset{margin-top:35px}.qr-grid{grid-template-columns:1fr}}
@media(max-width:540px){.eyebrow{font-size:.58rem}.hero-copy{padding-bottom:12vh}.date-lockup span{font-size:.48rem}.countdown strong{font-size:1.05rem}.countdown span{font-size:.4rem}.countdown div{min-width:52px}.intro blockquote{font-size:2.1rem}.childhood-grid{grid-template-columns:1fr 1fr;align-items:start}.story-mark{grid-column:1/-1;grid-row:1;flex-direction:row;justify-content:center;align-items:center;margin-bottom:10px}.photo-slot.left{grid-column:1}.photo-slot.right{grid-column:2;margin-top:36px}.photo-slot button span:last-child{padding:0 8px;font-size:.55rem}.grown-up{width:100%}.grown-up img{aspect-ratio:4/5}.film{padding-left:0;padding-right:0}.film-heading,.film-note{padding-left:22px;padding-right:22px}.film-frame video{aspect-ratio:4/5}.timeline:before{left:83px}.timeline article{grid-template-columns:67px 32px 1fr;min-height:145px}.timeline time{font-size:1.35rem}.timeline h3{font-size:1.55rem}.timeline p{font-size:.82rem}.guest-grid{gap:12px}.guest-card h3{font-size:1.2rem}.qr-card{grid-template-columns:1fr}.qr-frame{max-width:210px}footer{flex-direction:column;gap:16px}}

/* Personal-photo and QR refinements */
.groom-gallery{display:grid;grid-template-columns:1.05fr .78fr .78fr;grid-template-rows:auto auto;gap:clamp(14px,2vw,30px);padding:clamp(80px,11vw,150px) clamp(22px,7vw,110px);background:#30373a;color:#f7f1e9}.groom-heading{align-self:end;padding:0 clamp(0px,3vw,45px) 30px 0}.groom-heading h2{margin:0;font:400 clamp(4.8rem,11vw,11rem)/.72 "Cormorant Garamond",serif}.groom-heading>p:last-child{margin:35px 0 0;max-width:450px;color:#d9d4cc;font:italic 400 clamp(1.3rem,2.1vw,1.95rem)/1.35 "Cormorant Garamond",serif}.groom-shot{position:relative;overflow:hidden;margin:0;background:#171d20}.groom-shot img{width:100%;height:100%;aspect-ratio:4/3;object-fit:contain;filter:saturate(.76);transition:transform .9s ease,filter .4s ease}.groom-shot:hover img{transform:scale(1.02);filter:saturate(.94)}.groom-main{grid-row:1/3;grid-column:1}.groom-main img{aspect-ratio:auto}.groom-shot figcaption{position:absolute;left:14px;bottom:12px;padding:6px 9px;background:rgba(18,20,21,.62);color:#fff;font-size:.57rem;text-transform:uppercase;letter-spacing:.14em;backdrop-filter:blur(8px)}
.couple-reel .wide-memory{grid-column:span 2}.couple-reel .wide-memory img{aspect-ratio:3/2;object-fit:contain;background:#ded8cf}
.photo-slot>img{width:100%;aspect-ratio:4/5;object-fit:contain;background:#ded9d1}
.grown-up img{height:auto;aspect-ratio:auto;object-fit:contain}
.grown-up p{left:50%;right:auto;bottom:24px;width:max-content;max-width:calc(100% - 36px);transform:translateX(-50%);padding:10px 22px 12px;border-radius:999px;background:rgba(45,40,36,.76);font-size:clamp(1.35rem,2.6vw,2.55rem);line-height:1.05;text-align:center;text-shadow:0 1px 5px rgba(0,0,0,.35);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.guest-photo{position:relative;overflow:hidden}.guest-photo img{width:100%;height:100%;object-fit:contain;background:#d6d0c8}.guest-photo .guest-memory{position:absolute;right:10px;bottom:10px;width:40%;height:auto;aspect-ratio:1/1;border:4px solid var(--paper);object-fit:cover;object-position:center 30%;box-shadow:0 7px 18px rgba(42,36,31,.2);transform:rotate(2deg)}
.qr-frame{position:relative;overflow:hidden;padding:18px;border:1px solid rgba(105,86,74,.18);border-radius:30px 30px 30px 8px;background:#f8f4ed;box-shadow:0 14px 38px rgba(60,52,44,.12)}.qr-frame:before{content:"Ж · Р";display:block;margin:0 0 10px;color:#8e8178;font:500 .58rem/1 Manrope,sans-serif;letter-spacing:.22em;text-align:center}.qr-frame:after{content:"";position:absolute;right:-34px;bottom:-34px;width:92px;height:92px;border:1px solid rgba(105,86,74,.19);border-radius:50%}.qr-frame-gift{border-radius:8px 30px 30px 30px;background:#eee7dd}.styled-qr{position:relative;z-index:1}.styled-qr svg,.styled-qr canvas{display:block;width:100%!important;height:auto!important;border-radius:18px}
@media(max-width:860px){.groom-gallery{grid-template-columns:1fr 1fr}.groom-heading{grid-column:1/-1}.groom-main{grid-row:auto;grid-column:1/-1}.groom-main img{max-height:720px}.couple-reel .wide-memory{grid-column:1/-1}}
@media(max-width:540px){.grown-up p{bottom:14px;max-width:calc(100% - 24px);padding:8px 14px 10px;font-size:1.25rem}.groom-gallery{grid-template-columns:1fr}.groom-heading,.groom-main{grid-column:1}.groom-shot img{aspect-ratio:auto}.qr-frame{max-width:230px;margin:auto}.guest-photo .guest-memory{right:6px;bottom:6px;border-width:3px}}

/* Full-screen photo viewer */
main img[src^="assets/"]{cursor:zoom-in}.photo-lightbox{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:clamp(18px,4vw,48px);border:0;background:rgba(27,25,23,.94);color:#fff}.photo-lightbox[open]{display:grid;grid-template-rows:1fr auto;place-items:center}.photo-lightbox::backdrop{background:rgba(27,25,23,.78);backdrop-filter:blur(12px)}.photo-lightbox img{width:auto;max-width:100%;height:auto;max-height:calc(100dvh - 110px);object-fit:contain;cursor:default;filter:none}.photo-lightbox p{margin:14px 0 0;color:#e7dfd6;font:italic 400 1.1rem "Cormorant Garamond",serif;text-align:center}.lightbox-close{position:fixed;z-index:2;top:18px;right:22px;width:44px;height:44px;border:1px solid rgba(255,255,255,.42);border-radius:50%;background:rgba(30,28,26,.38);color:#fff;font:300 1.8rem/1 Manrope,sans-serif;cursor:pointer;backdrop-filter:blur(8px)}
.photo-lightbox[open]{animation:lightbox-in .3s cubic-bezier(.2,.8,.2,1) both}.photo-lightbox[open]::backdrop{animation:backdrop-in .3s ease both}.photo-lightbox[open] img{animation:photo-in .38s cubic-bezier(.16,1,.3,1) both}.photo-lightbox.is-closing{animation:lightbox-out .24s ease both}.photo-lightbox.is-closing::backdrop{animation:backdrop-out .24s ease both}.photo-lightbox.is-closing img{animation:photo-out .24s ease both}@keyframes lightbox-in{from{opacity:0}to{opacity:1}}@keyframes lightbox-out{from{opacity:1}to{opacity:0}}@keyframes backdrop-in{from{background:rgba(27,25,23,0)}to{background:rgba(27,25,23,.78)}}@keyframes backdrop-out{from{background:rgba(27,25,23,.78)}to{background:rgba(27,25,23,0)}}@keyframes photo-in{from{opacity:0;transform:scale(.92) translateY(18px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes photo-out{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}

/* Calendar and family branches */
.calendar-save{display:grid;grid-template-columns:1fr auto;gap:32px;align-items:center;max-width:980px;margin:55px auto 90px;padding:28px 32px;border:1px solid #c8c0b6;background:#ece6dd;text-align:left}.calendar-save span{font-size:.68rem;text-transform:uppercase;letter-spacing:.16em;color:var(--taupe)}.calendar-save h3{margin:6px 0 7px;font:400 2rem/1 "Cormorant Garamond",serif}.calendar-save p{margin:0;color:#625d57;font-size:.84rem}.calendar-actions{display:flex;flex-direction:column;gap:9px}.calendar-button{display:block;min-width:230px;padding:12px 17px;border:1px solid var(--ink);background:var(--ink);color:#fff;text-decoration:none;text-align:center;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em}.calendar-button.secondary{background:transparent;color:var(--ink)}
.family-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;max-width:1320px;margin:auto;text-align:left}.family-panel{padding:clamp(24px,3vw,44px);border:1px solid #c7bfb5;overflow:hidden}.groom-family{background:#353b3d;color:#f4f0e8;border-color:#353b3d}.family-panel header{display:flex;gap:20px;align-items:flex-start;padding-bottom:30px;border-bottom:1px solid currentColor}.family-panel header>span{color:var(--taupe);font-size:.7rem;letter-spacing:.2em}.family-panel header p{margin:0 0 8px;font-size:.66rem;text-transform:uppercase;letter-spacing:.16em}.family-panel h3{margin:0;font:400 clamp(2rem,4vw,3.7rem)/.9 "Cormorant Garamond",serif}.groom-family header>span{color:#c8c2ba}.family-tree{padding-top:28px}.tree-level{position:relative;display:flex;flex-wrap:wrap;justify-content:center;gap:12px;padding:25px 4px 5px}.tree-level:first-child{padding-top:0}.tree-level:not(:first-child):before{content:"";position:absolute;top:0;left:50%;width:1px;height:25px;background:#b7ada2}.tree-level:not(:first-child):after{content:"";position:absolute;top:0;left:14%;right:14%;height:1px;background:#b7ada2}.tree-node{position:relative;flex:1 1 92px;max-width:145px;min-height:70px;display:grid;place-content:center;padding:12px 8px;border:1px solid #c8bfb4;background:rgba(255,255,255,.34);text-align:center}.tree-level:not(:first-child) .tree-node:before{content:"";position:absolute;left:50%;top:-13px;width:1px;height:13px;background:#b7ada2}.tree-node strong{display:block;font:400 1.15rem/1.05 "Cormorant Garamond",serif}.tree-node span{display:block;margin-top:5px;color:var(--taupe);font-size:.58rem;line-height:1.25;text-transform:uppercase;letter-spacing:.07em}.tree-node.primary,.tree-node.couple{background:#ded6cc;border-color:#9e9286}.tree-node.couple{box-shadow:inset 0 -3px 0 #846c5d}.groom-family .tree-node{border-color:rgba(255,255,255,.25);background:rgba(255,255,255,.05)}.groom-family .tree-node.primary,.groom-family .tree-node.couple{background:#f1ece4;color:#292725}.groom-family .tree-node span{color:#c8c2ba}.groom-family .tree-node.primary span,.groom-family .tree-node.couple span{color:#746d66}.groom-family .tree-level:before,.groom-family .tree-level:after,.groom-family .tree-node:before{background:rgba(255,255,255,.35)}.photo-node{grid-template-columns:42px 1fr;gap:8px;place-content:stretch;align-items:center;max-width:180px;text-align:left}.photo-node img{width:42px;height:50px;object-fit:cover;object-position:center 20%}.friends{max-width:1320px;margin:75px auto 0;padding:clamp(32px,5vw,66px);border-top:1px solid #c8bfb5;border-bottom:1px solid #c8bfb5;text-align:center}.friends h3{margin:10px 0 32px;font:400 clamp(2.6rem,6vw,5.2rem)/.9 "Cormorant Garamond",serif}.friends-list{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.friends-list span{padding:11px 18px;border:1px solid #aaa096;border-radius:999px;font:400 1.15rem "Cormorant Garamond",serif;background:#f8f4ed}
@media(max-width:860px){.calendar-save{grid-template-columns:1fr}.calendar-actions{flex-direction:row;flex-wrap:wrap}.family-grid{grid-template-columns:1fr}}
@media(max-width:540px){.calendar-save{margin:35px auto 65px;padding:22px 18px}.calendar-actions{display:grid}.calendar-button{min-width:0}.family-panel{padding:24px 16px}.tree-level{gap:8px}.tree-node{flex-basis:78px;min-height:64px;padding:10px 6px}.tree-node strong{font-size:1.05rem}.tree-node span{font-size:.5rem}.photo-node{grid-template-columns:34px 1fr}.photo-node img{width:34px;height:44px}.friends{margin-top:48px;padding:36px 12px}.friends-list{gap:7px}.friends-list span{padding:9px 13px;font-size:1rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
