:root{--night: #070e0b;--forest: #0d2418;--canopy: #122e1f;--shade: #193829;--gold: #c9a44a;--wheat: #dfc375;--ivory: #f4ede0;--ivory-7: rgba(244, 237, 224, .7);--ivory-5: rgba(244, 237, 224, .5);--ivory-3: rgba(244, 237, 224, .3);--gold-3: rgba(201, 164, 74, .3);--gold-15: rgba(201, 164, 74, .15);--gold-08: rgba(201, 164, 74, .08)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;background:var(--night)}body{background:var(--forest);color:var(--ivory);font-family:DM Sans,sans-serif;font-weight:300;line-height:1.7;overflow-x:hidden}nav{position:fixed;top:0;inset-inline:0;z-index:100;display:flex;justify-content:center;align-items:center;gap:1.25rem;padding:.875rem 2rem;background:#070e0beb;backdrop-filter:blur(16px);border-bottom:1px solid var(--gold-15)}nav a{text-decoration:none;font-size:.62rem;font-weight:400;letter-spacing:.28em;text-transform:uppercase;color:var(--ivory-5);transition:color .2s}nav a:hover,nav a:focus-visible{color:var(--gold);outline:none}.nav-sep{color:var(--gold);opacity:.25;font-size:1rem;line-height:1}#hero{min-height:100svh;display:flex;align-items:center;justify-content:center;padding:7rem 2rem 5rem;position:relative;background:radial-gradient(ellipse 70% 55% at 50% 45%,#23423066,#08120dbf),var(--forest);overflow:hidden}.hero-content{text-align:center;max-width:900px;animation:heroIn 1.3s cubic-bezier(.22,1,.36,1) both}.hero-eyebrow{font-size:.6rem;letter-spacing:.38em;text-transform:uppercase;color:var(--gold);opacity:.8;margin-bottom:2.75rem}.couple-name{font-family:Italiana,serif;font-size:clamp(2.8rem,8.5vw,7.5rem);font-weight:400;letter-spacing:.1em;line-height:1;color:var(--ivory)}.hero-rule{width:110px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:2.75rem auto;transform-origin:center;animation:ruleExpand 1.5s cubic-bezier(.4,0,.2,1) .55s both}.hero-dates{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.5rem 1.25rem;font-size:.63rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ivory-5)}.hero-dates-sep{color:var(--gold);opacity:.35}#countdown{background:var(--canopy);border-top:1px solid var(--gold-15);border-bottom:1px solid var(--gold-15);padding:6rem 2rem;text-align:center}.cdown-pair{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;max-width:960px;margin:0 auto}.cdown-pair-sep{width:1px;align-self:stretch;min-height:10rem;margin:0 3rem;background:linear-gradient(180deg,transparent,var(--gold) 20%,var(--gold) 80%,transparent);opacity:.18}.cdown-wrap{display:flex;flex-direction:column;align-items:center;gap:2.25rem}.cdown-main{display:flex;flex-direction:column;align-items:center;gap:1.25rem}.cdown-days{font-family:Italiana,serif;font-size:clamp(5.5rem,14vw,10rem);line-height:.82;color:var(--wheat);display:block;letter-spacing:-.02em}.cdown-label{font-size:.58rem;letter-spacing:.35em;text-transform:uppercase;color:var(--ivory-3);display:block}.cdown-hms{display:flex;align-items:flex-start;gap:.35rem}.cdown-unit{display:flex;flex-direction:column;align-items:center;min-width:50px}.cdown-num{font-family:Cormorant Garamond,serif;font-weight:300;font-size:1.6rem;line-height:1;color:var(--ivory-7)}.cdown-unit-label{font-size:.56rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ivory-3);margin-top:.4rem}.cdown-colon{font-family:Cormorant Garamond,serif;font-size:1.25rem;color:var(--gold);opacity:.3;align-self:flex-start;padding-top:.05em;padding-inline:.1rem}#events{background:var(--forest);padding:6.5rem 2rem}.eyebrow{text-align:center;font-size:.58rem;letter-spacing:.35em;text-transform:uppercase;color:var(--gold);opacity:.8;margin-bottom:.75rem}h2{font-family:Cormorant Garamond,serif;font-size:clamp(1.65rem,3.2vw,2.25rem);font-weight:300;font-style:italic;color:var(--ivory);text-align:center;margin-bottom:4rem}.events-layout{display:grid;grid-template-columns:1fr auto 1fr;max-width:900px;margin:0 auto}.event-card{background:var(--shade);border:1px solid var(--gold-15);padding:2.75rem 2.25rem;text-align:left;position:relative;transition:border-color .4s,transform .4s cubic-bezier(.22,1,.36,1),box-shadow .4s}.event-card:hover{border-color:var(--gold-3);transform:translateY(-6px);box-shadow:0 24px 56px #00000073,0 0 40px #c9a44a0f}.event-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.5}.event-tag{display:block;font-size:.56rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin-bottom:1.25rem}.event-date{font-family:Cormorant Garamond,serif;font-size:1.75rem;font-weight:300;font-style:italic;line-height:1.2;color:var(--ivory);margin-bottom:2rem}.event-dl{display:grid;grid-template-columns:auto 1fr;gap:.45rem 1rem;align-items:baseline}.event-dl dt{font-size:.53rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);opacity:.6}.event-dl dd{font-family:Cormorant Garamond,serif;font-style:italic;font-weight:300;font-size:.95rem;color:var(--ivory-5);line-height:1.55}.maps-link{display:block;margin-top:.35rem;font-family:DM Sans,sans-serif;font-style:normal;font-size:.5rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);text-decoration:none;opacity:.65;transition:opacity .2s}.maps-link:hover,.maps-link:focus-visible{opacity:1;outline:none}.events-bridge{display:flex;flex-direction:column;align-items:center;padding:0 1.75rem;gap:.6rem}.bridge-line{display:block;width:1px;flex:1;min-height:28px;background:linear-gradient(180deg,transparent,var(--gold),transparent);opacity:.2}.bridge-gap{font-size:.55rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);opacity:.55;writing-mode:vertical-rl;white-space:nowrap}#families{background:var(--canopy);border-top:1px solid var(--gold-15);padding:6.5rem 2rem}.families-layout{display:grid;grid-template-columns:1fr 1px 1fr;gap:0 4.5rem;max-width:800px;margin:0 auto;align-items:start}.family-rule{background:linear-gradient(180deg,transparent,var(--gold) 20%,var(--gold) 80%,transparent);opacity:.15;align-self:stretch}.family-side{text-align:left}.family-side--right{text-align:right}.family-heading{font-size:.56rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);opacity:.7;font-weight:400;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--gold-08)}.family-list{list-style:none;display:flex;flex-direction:column;gap:1.5rem}.family-list li{display:flex;flex-direction:column;gap:.15rem}.family-side--right .family-list li{align-items:flex-end}.member-role{font-size:.56rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ivory-3)}.member-name{font-family:Cormorant Garamond,serif;font-style:italic;font-weight:300;font-size:1.2rem;color:var(--ivory);line-height:1.25}footer{background:var(--night);border-top:1px solid var(--gold-15);text-align:center;padding:3rem 1.5rem}.footer-ornament{font-size:.45rem;color:var(--gold);opacity:.35;margin-bottom:1.5rem;letter-spacing:0}.footer-name{font-family:Italiana,serif;font-size:1.8rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);margin-bottom:.5rem}.footer-sub{font-size:.53rem;letter-spacing:.35em;text-transform:uppercase;color:var(--ivory-3);margin-bottom:2rem}.footer-nav{display:flex;align-items:center;justify-content:center;gap:.85rem}.footer-nav a{font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ivory-3);text-decoration:none;transition:color .2s}.footer-nav a:hover{color:var(--gold)}.footer-nav span{color:var(--gold);opacity:.25;font-size:.85rem;line-height:1}[data-reveal]{opacity:0;transform:translateY(22px);transition:opacity 1s ease,transform 1s ease}[data-reveal].is-visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){[data-reveal]{opacity:1;transform:none;transition:none}.hero-content{animation:none}.hero-rule{animation:none;transform:scaleX(1);opacity:1}.letter{animation:none;opacity:1}.particle{display:none}.cdown-days.is-flashing,.cdown-num.is-flashing{text-shadow:none;transition:none}.event-card{transition:none}}.letter-word{display:inline-block;white-space:nowrap}.letter{display:inline-block;opacity:0;animation:letterIn .55s cubic-bezier(.22,1,.36,1) forwards;animation-delay:calc(.25s + var(--i) * 45ms)}@keyframes letterIn{0%{opacity:0;transform:translateY(14px) skewY(2deg)}to{opacity:1;transform:none}}.hero-particles{position:absolute;inset:0;pointer-events:none;overflow:hidden}.particle{position:absolute;left:var(--x);top:var(--top);width:var(--sz);height:var(--sz);border-radius:50%;background:var(--gold);box-shadow:0 0 6px var(--gold);opacity:0;animation:particleFloat var(--dur) ease-in-out var(--del) infinite}@keyframes particleFloat{0%{opacity:0;transform:translateY(0) scale(.6)}15%{opacity:.55}85%{opacity:.18}to{opacity:0;transform:translateY(-65px) scale(1.3)}}.cdown-days,.cdown-num{transition:text-shadow .4s ease}.cdown-days.is-flashing{text-shadow:0 0 60px rgba(201,164,74,.32)}.cdown-num.is-flashing{text-shadow:0 0 20px rgba(201,164,74,.38)}.portrait-img{display:block;object-fit:cover;border:1px solid rgba(201,164,74,.3);box-shadow:0 8px 40px #00000073,0 0 40px #c9a44a0d}.hero-portrait{margin-top:3rem;display:flex;justify-content:center}.hero-portrait .portrait-img{width:min(220px,50vw);aspect-ratio:3/4;outline:1px solid var(--gold-15);outline-offset:8px}.family-portrait{margin-bottom:1.75rem}.family-portrait .portrait-img{width:140px;aspect-ratio:3/4}.family-portrait--right .portrait-img{margin-left:auto}@media(max-width:700px){.cdown-pair{grid-template-columns:1fr;gap:3.5rem 0}.cdown-pair-sep{width:60px;height:1px;min-height:auto;align-self:auto;margin:0 auto;background:linear-gradient(90deg,transparent,var(--gold),transparent)}.cdown-days{font-size:clamp(6rem,22vw,9rem)}.events-layout{grid-template-columns:1fr}.verses-grid{grid-template-columns:1fr;gap:3rem 0}.verse{padding:3rem 0 0;border-left:none;border-top:1px solid var(--gold-08)}.verse:first-child{padding-top:0;border-top:none}.events-bridge{flex-direction:row;padding:1.5rem 0;gap:.75rem}.bridge-line{width:auto;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}.bridge-gap{writing-mode:horizontal-tb}.families-layout{grid-template-columns:1fr;gap:2.5rem 0}.family-rule{height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);align-self:auto}.family-side--right{text-align:left}.family-side--right .family-list li{align-items:flex-start}}#verses{background:var(--shade);border-top:1px solid var(--gold-15);border-bottom:1px solid var(--gold-15);padding:6.5rem 2rem}.verses-grid{display:grid;grid-template-columns:repeat(3,1fr);max-width:1040px;margin:0 auto}.verse{padding:0 2.75rem;border-left:1px solid var(--gold-08)}.verse:first-child{padding-left:0;border-left:none}.verse-mark{display:block;font-family:Cormorant Garamond,serif;font-size:3.5rem;line-height:1;color:var(--gold);opacity:.22;margin-bottom:-.5rem}.verse-text{font-family:Cormorant Garamond,serif;font-style:italic;font-weight:300;font-size:1.05rem;line-height:1.75;color:var(--ivory-7);margin-bottom:1.25rem}.verse-ref{display:block;font-style:normal;font-size:.52rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);opacity:.6}.event-link{display:inline-block;margin-top:1.25rem;font-size:.54rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ivory-5);text-decoration:none;transition:color .2s}.event-link:hover{color:var(--gold)}.cal-add{position:relative;margin-top:1.75rem;padding-top:1.25rem;border-top:1px solid var(--gold-08)}.cal-btn{display:flex;align-items:center;gap:.5rem;background:none;border:none;cursor:pointer;font-family:DM Sans,sans-serif;font-size:.54rem;font-weight:400;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);opacity:.65;padding:0;transition:opacity .2s}.cal-btn:hover,.cal-btn:focus-visible{opacity:1;outline:none}.cal-icon{width:12px;height:12px;flex-shrink:0}.cal-chevron{width:8px;height:5px;flex-shrink:0;transition:transform .2s}.cal-btn[aria-expanded=true] .cal-chevron{transform:rotate(180deg)}.cal-menu{position:absolute;top:calc(100% + .25rem);left:0;min-width:190px;background:#0a1c14;border:1px solid var(--gold-15);z-index:20;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .18s ease,visibility .18s,transform .18s cubic-bezier(.22,1,.36,1);pointer-events:none;box-shadow:0 8px 28px #00000073}.cal-menu.is-open{opacity:1;visibility:visible;transform:none;pointer-events:auto}.cal-menu a{display:block;padding:.65rem 1rem;font-size:.65rem;letter-spacing:.06em;color:var(--ivory-7);text-decoration:none;transition:background .15s,color .15s;border-bottom:1px solid var(--gold-08)}.cal-menu a:last-child{border-bottom:none}.cal-menu a:hover,.cal-menu a:focus-visible{background:var(--gold-08);color:var(--gold);outline:none}@keyframes heroIn{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes ruleExpand{0%{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}
