:root{--gold:#b99662;--ink:#273b4d;--muted:#71818d;--glass-border:rgba(255,255,255,.84);--shadow:0 28px 80px rgba(61,94,114,.16);--watercolor-base:#cde0e0}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;margin:0;background:radial-gradient(circle at 8% 8%,rgba(255,255,255,.94),transparent 25%),radial-gradient(circle at 92% 84%,rgba(123,164,188,.52),transparent 30%),linear-gradient(135deg,#aec6d4,#eef4f5 48%,#a5bfce);color:var(--ink);font-family:DM Sans,sans-serif}button,a{-webkit-tap-highlight-color:transparent}body:before{content:"";position:fixed;top:-12%;right:-12%;bottom:-12%;left:-12%;z-index:-1;pointer-events:none;background:radial-gradient(circle at 20% 40%,rgba(255,255,255,.72),transparent 22%),radial-gradient(circle at 78% 20%,rgba(145,179,198,.55),transparent 25%),radial-gradient(circle at 55% 90%,rgba(255,255,255,.55),transparent 25%);filter:blur(32px)}.grain{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:100;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.nav{position:fixed;z-index:90;top:14px;left:50%;transform:translate(-50%);width:min(94%,590px);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;border:2px solid rgba(255,255,255,.86);border-radius:30px;background:linear-gradient(125deg,#ffffffdb,#cde0e085);backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%);box-shadow:0 14px 34px #3d5e7229,inset 0 1px #ffffffe6}.nav.scrolled{background:linear-gradient(125deg,#ffffffeb,#c8dce0a8);box-shadow:0 12px 30px #33526633,inset 0 1px #fffffff2}body:not(.low-power) .music{backdrop-filter:blur(14px) saturate(150%);-webkit-backdrop-filter:blur(14px) saturate(150%);background:#ffffff9e}.brand{text-decoration:none;color:#7e6944;font:400 25px/1 Cormorant Garamond;white-space:nowrap}.brand i{font:400 15px Italianno;color:var(--gold)}.nav-title{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:10px;margin:0;white-space:nowrap;pointer-events:none}.nav-title .nav-rule{flex:0 0 20px;height:1px;background:linear-gradient(90deg,transparent,rgba(185,150,98,.8))}.nav-title .nav-rule:last-child{background:linear-gradient(90deg,rgba(185,150,98,.8),transparent)}.nav-count-label{color:#4a5f6e;font:500 15px/1 Cormorant Garamond;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}.nav-meta{font:400 17px/1 Italianno;color:#8b7045;letter-spacing:.04em;white-space:nowrap}.music{position:fixed;right:18px;bottom:22px;z-index:95;width:41px;height:41px;border:1px solid rgba(255,255,255,.85);border-radius:50%;background:#ffffffc7;color:#61716d;box-shadow:0 12px 35px #23322f26}.music:disabled{cursor:not-allowed;opacity:.42;filter:grayscale(.45)}.page{position:relative;width:min(100%,620px);margin:auto;overflow:hidden;background-color:var(--watercolor-base);background-image:linear-gradient(#cde0e02e,#ffffff2e),url(../assets/watercolor-bg-tall.webp);background-size:100% 100%,100% auto;background-position:center top,center top;background-repeat:no-repeat,repeat-y;box-shadow:0 0 100px #141e1c2e}.page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 8% 16%,rgba(255,255,255,.82),transparent 20%),radial-gradient(ellipse at 92% 28%,rgba(143,181,201,.34),transparent 24%),radial-gradient(ellipse at 18% 58%,rgba(187,215,226,.38),transparent 22%),radial-gradient(ellipse at 86% 76%,rgba(255,255,255,.8),transparent 24%);filter:blur(30px)}.page>*{position:relative;z-index:1}.orbs{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.orb{position:absolute;border-radius:50%;filter:blur(54px);opacity:.5}.orb-a{width:52vmax;height:52vmax;left:-14vmax;top:-12vmax;background:radial-gradient(circle at 32% 32%,#92b6cc9e,#92b6cc00 62%)}.orb-b{width:44vmax;height:44vmax;right:-16vmax;top:20%;background:radial-gradient(circle at 62% 42%,#e1c9a4b3,#e1c9a400 60%)}.orb-c{width:46vmax;height:46vmax;left:4%;bottom:-18vmax;background:radial-gradient(circle at 50% 50%,#bcd5e199,#bcd5e100 58%)}body:not(.low-power) .orb{opacity:.62}body.fx-animate .orb-a{animation:orbFloatA 26s ease-in-out infinite}body.fx-animate .orb-b{animation:orbFloatB 34s ease-in-out infinite}body.fx-animate .orb-c{animation:orbFloatC 42s ease-in-out infinite}@keyframes orbFloatA{0%,to{transform:translateZ(0) scale(1)}50%{transform:translate3d(6vmax,4vmax,0) scale(1.06)}}@keyframes orbFloatB{0%,to{transform:translateZ(0) scale(1)}50%{transform:translate3d(-7vmax,6vmax,0) scale(1.05)}}@keyframes orbFloatC{0%,to{transform:translateZ(0) scale(1)}50%{transform:translate3d(5vmax,-8vmax,0) scale(1.07)}}.hero{min-height:100svh;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;background-color:var(--watercolor-base)}.hero-photo{position:absolute;top:0;right:0;bottom:0;left:0;opacity:1;background:#111;background-image:none}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center center;opacity:1;filter:none;mix-blend-mode:normal}.hero-photo:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,#17283000 30%,#1728306b)}@keyframes heroZoom{0%{transform:scale(1.08)}to{transform:scale(1)}}.hero-content{position:relative;z-index:5;width:100%;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:18px;padding:0 24px clamp(44px,8vh,78px);border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;opacity:1;animation:heroEnter 1.2s cubic-bezier(.2,.7,.2,1) both}@keyframes heroEnter{0%{opacity:0;transform:translateY(28px);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}.hero h1{margin:0;display:flex;flex-direction:column;font:400 clamp(65px,18vw,112px)/.72 "Cormorant Garamond";letter-spacing:-.025em;color:#fff;text-shadow:0 4px 24px rgba(23,40,48,.48)}.hero h1 i{font:400 .5em Italianno;line-height:.72;color:#e3c985}.hero-date{margin:0;padding:11px 22px;border:1px solid rgba(255,255,255,.6);border-radius:999px;font-size:11px;letter-spacing:.28em;color:#fff;background:#17283033;text-shadow:0 2px 12px rgba(23,40,48,.6)}body:not(.low-power) .hero-date{background:#ffffff29;backdrop-filter:blur(14px) saturate(150%);-webkit-backdrop-filter:blur(14px) saturate(150%)}.section{position:relative;isolation:isolate;overflow:hidden;padding:58px 18px;background-color:transparent;background-image:linear-gradient(145deg,#cde0e040,#ffffff38 52%,#b2cfdc33);background-size:100% 100%;background-repeat:no-repeat;content-visibility:auto;contain-intrinsic-size:600px}.section:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 12% 16%,rgba(255,255,255,.88),transparent 27%),radial-gradient(ellipse at 86% 74%,rgba(130,168,188,.32),transparent 30%),radial-gradient(ellipse at 48% 110%,rgba(255,255,255,.62),transparent 38%);opacity:.62}.section:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:radial-gradient(circle,rgba(255,255,255,.38) 0 1px,transparent 1.6px) 0 0 / 160px 160px,radial-gradient(circle,rgba(116,157,180,.2) 0 1px,transparent 1.8px) 50px 80px / 220px 220px;opacity:.34}.glass{position:relative;z-index:5;border:1px solid var(--glass-border);border-radius:30px;background:linear-gradient(145deg,#ffffffc7,#ffffff61);box-shadow:var(--shadow),inset 0 1px #fffffff2}body:not(.low-power) .glass{backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);box-shadow:var(--shadow),inset 0 1px #fffffffa,inset 0 0 0 1px #ffffff4d}.section h2:after{content:"";display:block;width:58px;height:1px;margin:16px auto 0;background:linear-gradient(90deg,transparent,rgba(185,150,98,.92),transparent)}.eyebrow{margin:0 0 17px;text-transform:uppercase;letter-spacing:.24em;font-size:10px;color:#738a99}.eyebrow.light{color:#ffffffe6}.story{min-height:520px;display:grid;place-items:center;text-align:center}.story:before{background:radial-gradient(ellipse at 86% 74%,rgba(130,168,188,.28),transparent 30%),radial-gradient(ellipse at 48% 110%,rgba(255,255,255,.62),transparent 38%);opacity:.46}.story-card{width:min(100%,460px);padding:60px 30px;overflow:hidden;isolation:isolate;border-color:#ffffffdb;background:linear-gradient(145deg,#ffffffd1,#ffffff59);box-shadow:0 24px 70px #3d5e7224,inset 0 1px #fffffff2}.story-card h2{margin:0 auto 22px;max-width:380px;font:400 48px/.95 Cormorant Garamond;color:#55748b}.story-card p:not(.eyebrow){margin:auto;max-width:360px;color:#587080;font:400 19px/1.45 Cormorant Garamond}.script{margin-top:30px;color:var(--gold);font:400 37px Italianno}.vow-quote{max-width:390px;margin:26px auto 0;padding-top:20px;border-top:1px solid rgba(185,150,98,.42);font-style:italic;color:#55748b;font:400 18px/1.45 Cormorant Garamond}.countdown{min-height:430px;display:grid;place-items:center;text-align:center}.countdown-content{position:relative;z-index:5;width:100%}.countdown h2{margin:0;font:400 60px/.85 Cormorant Garamond;color:#55748b}.count-grid{max-width:440px;margin:38px auto 22px;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--gold);border-bottom:1px solid rgba(180,150,90,.3);padding:22px 0}.count-grid div{border-right:1px solid rgba(180,150,90,.25)}.count-grid div:last-child{border-right:0}.count-grid b{display:block;font:400 40px Cormorant Garamond}.count-grid span{font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}.count-date{font-size:9px;letter-spacing:.13em;color:var(--muted)}.families{text-align:center}.family-card{width:min(100%,540px);margin:auto;padding:48px 22px;overflow:hidden;isolation:isolate;border-color:#ffffffdb;background:linear-gradient(145deg,#ffffffd1,#ffffff59);box-shadow:0 24px 70px #3d5e7224,inset 0 1px #fffffff2}.family-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.family{padding:24px 12px;border:1px solid rgba(255,255,255,.85);border-radius:22px;background:#ffffff61}.family span{color:#7896aa;font-size:9px;text-transform:uppercase;letter-spacing:.2em}.family p{margin:9px 0 0;font:400 19px/1.35 Cormorant Garamond;color:#587080}.family--sponsors{grid-column:1 / -1}.details{text-align:center}.details:before{background:radial-gradient(ellipse at 10% 74%,rgba(255,255,255,.68),transparent 28%);opacity:.42}.details-intro{position:relative;z-index:5;width:min(100%,480px);margin:0 auto 30px;text-align:center}.ceremony-quote{max-width:520px;margin:0 auto;padding:22px 28px;border:1px solid rgba(255,255,255,.88);border-left:3px solid var(--gold);border-radius:22px;color:#466a83;background:#ffffff8f;box-shadow:0 18px 42px #3d5e721f,inset 0 1px #fffffff2;font:500 22px/1.35 Cormorant Garamond;text-shadow:0 1px 8px rgba(255,255,255,.45)}.details-grid{position:relative;z-index:5;display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.detail{position:relative;overflow:hidden;padding:34px 17px;text-align:center;border:1px solid var(--glass-border);border-radius:30px;background:linear-gradient(145deg,#ffffffc7,#ffffff61);box-shadow:var(--shadow),inset 0 1px #fffffff2}.detail>*{position:relative;z-index:1}.detail-icon{color:var(--gold);font-size:27px;margin-bottom:12px}.detail-icon svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}.detail h2{margin:0 0 15px;font:400 34px/.9 Cormorant Garamond;color:#55748b}.detail p:not(.eyebrow){min-height:45px;margin:0;color:#587080;font:400 16px/1.3 Cormorant Garamond}.time{display:block;margin:18px 0;font:400 39px Cormorant Garamond}.time small{font:400 8px DM Sans;letter-spacing:.15em}.button-outline{display:inline-flex;align-items:center;justify-content:center;padding:12px 17px;border:1px solid var(--gold);border-radius:999px;color:#6c5a39;background:#fff6;text-decoration:none;text-transform:uppercase;letter-spacing:.13em;font-size:9px;transition:.35s}.button-outline:hover{transform:translateY(-2px);background:#fff}.itinerary{text-align:center}.itinerary:before{background:radial-gradient(ellipse at 50% 65%,rgba(255,255,255,.72),transparent 48%);opacity:.34}.itinerary h2{margin:0 0 30px;font:400 54px/.9 Cormorant Garamond;color:#55748b}.timeline{position:relative;z-index:5;overflow:hidden;width:min(100%,480px);margin:auto;display:flex;flex-direction:column;gap:0;padding:18px 0;text-align:left;border:1px solid rgba(255,255,255,.85);border-radius:34px;background:#ffffff73;box-shadow:var(--shadow)}.timeline:before{content:"";position:absolute;top:38px;bottom:38px;left:43px;width:1px;background:linear-gradient(180deg,transparent,rgba(185,150,98,.58),transparent)}.timeline>*{position:relative;z-index:1}.timeline-item{position:relative;display:grid;grid-template-columns:86px 1fr;grid-template-rows:auto auto;align-items:center;min-height:82px;padding:10px 20px}.timeline-icon{grid-column:1;grid-row:1 / span 2;z-index:1;width:46px;height:46px;margin:0;display:grid;place-items:center;border:1px solid rgba(180,150,90,.55);border-radius:50%;color:#ae8950;background:#ffffffe6;box-shadow:0 5px 14px #58707e1f}body:not(.low-power) .timeline-icon{background:#ffffff8c;backdrop-filter:blur(14px) saturate(150%);-webkit-backdrop-filter:blur(14px) saturate(150%)}.timeline-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}.timeline time{grid-column:2;grid-row:1;margin:0;font-size:8px;letter-spacing:.12em;color:#7896aa}.timeline b{grid-column:2;grid-row:2;margin-top:3px;color:#55748b;font:400 20px/1.05 Cormorant Garamond}.duo{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.duo:before{background:radial-gradient(ellipse at 90% 90%,rgba(255,255,255,.65),transparent 30%);opacity:.38}.mini{position:relative;overflow:hidden;padding:32px 19px;text-align:center}.mini>*{position:relative;z-index:1}.mini h2{margin:9px 0;font:400 34px/.95 Cormorant Garamond;color:#55748b}.mini p:not(.eyebrow){color:#587080;font:400 16px/1.35 Cormorant Garamond}.swatches{display:flex;justify-content:center;gap:8px;margin-top:18px}.swatches span{width:27px;height:27px;border-radius:50%;border:1px solid #a7aba8}.swatches span:first-child{background:#fff}.swatches span:last-child{background:#557ab0}.gallery{isolation:isolate}.gallery:before{background:radial-gradient(ellipse at 50% 35%,rgba(255,255,255,.72),transparent 54%);opacity:.5}.gallery-title{position:relative;z-index:5;text-align:center}.gallery-title h2{margin:0 0 10px;font:400 60px/.9 Cormorant Garamond;color:#55748b}.gallery-grid{position:relative;z-index:5;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}.gallery-grid figure{position:relative;margin:0;overflow:hidden;background:linear-gradient(145deg,#d6e5eb,#fbfbf7 55%,#b6cfdd);border:1px solid rgba(255,255,255,.92);border-radius:18px;box-shadow:0 14px 40px #2c39351f;cursor:zoom-in}.gallery-grid figure:focus-visible{box-shadow:0 14px 40px #2c39351f,0 0 0 2px #8d6e3cb3;outline:none}.gallery-grid .wide{grid-column:1 / -1}.gallery-grid figure,.gallery-grid .wide,.gallery-grid .large{grid-column:auto;grid-row:auto;aspect-ratio:auto;height:auto}.gallery-grid img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;background:linear-gradient(145deg,#fff9,#d2e5eb80);transition:transform .7s ease,filter .35s ease}@media (hover:hover){body:not(.low-power) .gallery-grid figure:hover img{transform:scale(1.045)}.gallery-grid figure:hover img{filter:saturate(1.06) brightness(1.02)}}.gallery-grid figcaption{position:absolute;left:0;right:0;bottom:0;padding:30px 14px 12px;font:400 17px/1.15 Italianno;color:#2c3e52;background:linear-gradient(transparent,#e6f0f4e0);opacity:0;transform:translateY(10px);transition:opacity .45s ease,transform .45s ease;pointer-events:none}body:not(.low-power) .gallery-grid figcaption{backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%)}.gallery-grid figure:hover figcaption,.gallery-grid figure:focus-within figcaption{opacity:1;transform:none}@media (hover:none){.gallery-grid figure{display:flex;flex-direction:column}.gallery-grid figcaption{position:static;padding:9px 12px 10px;background:#f3f8f9e6;opacity:1;transform:none;-webkit-backdrop-filter:none;backdrop-filter:none}.gallery .gallery-hint{display:block;margin-top:20px;text-align:center;font:600 9px/1 DM Sans;letter-spacing:.26em;text-transform:uppercase;color:#8d9aa5}}.gallery-grid figure.is-missing{background:linear-gradient(145deg,#ffffff94,#cde0e06b)}.gallery-grid figure.is-missing img,.gallery-grid img.is-missing,.hero-photo img.is-missing{visibility:hidden}.gallery-grid figure.is-missing img{display:none}.gallery-count{margin:2px 0 30px;font:600 10px/1 DM Sans;letter-spacing:.3em;text-transform:uppercase;color:#8d9aa5}@media (hover:hover){body:not(.low-power) .gallery-grid figure:hover{box-shadow:0 14px 40px #2c39351f,0 0 0 1px #8d6e3c8c}}.gallery-hint{display:none}.lightbox{width:100dvw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;overflow:hidden}.lightbox::backdrop{background:#0f171ead}body:not(.low-power) .lightbox::backdrop{backdrop-filter:blur(10px) saturate(120%);-webkit-backdrop-filter:blur(10px) saturate(120%)}.lightbox[open]{display:grid;place-items:center}.lightbox-stage{position:relative;width:100dvw;height:100dvh;display:grid;place-items:center;padding:64px 88px;box-sizing:border-box}.lightbox-frame{position:relative;display:inline-block;line-height:0}.lightbox-frame img{display:block;max-width:min(88vw,980px);max-height:78dvh;width:auto;height:auto;border-radius:14px;box-shadow:0 22px 60px #080e1473;background:linear-gradient(145deg,#d6e5eb,#fbfbf7 55%,#b6cfdd)}.lightbox-bar{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;gap:14px;padding:38px 20px 14px;background:linear-gradient(transparent,#e4eef2eb);border-radius:0 0 14px 14px}body:not(.low-power) .lightbox-bar{backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%)}.lightbox-caption{margin:0;font:400 28px/1 Italianno;color:#2c3e52}.lightbox-count{font:600 10px/1 DM Sans;letter-spacing:.22em;text-transform:uppercase;color:#2c3e528c}.lightbox-btn{position:absolute;z-index:2;display:grid;place-items:center;width:52px;height:52px;padding:0;border:1px solid rgba(255,255,255,.85);border-radius:50%;background:#f0f6f8b8;color:#2c3e52;font-size:24px;line-height:1;cursor:pointer;transition:background .3s ease,color .3s ease,transform .3s ease}body:not(.low-power) .lightbox-btn{backdrop-filter:blur(10px) saturate(140%);-webkit-backdrop-filter:blur(10px) saturate(140%)}.lightbox-btn:hover{background:#fff;color:#8d6e3c}.lightbox-close{top:20px;right:20px}.lightbox-prev{left:14px;top:50%;transform:translateY(-50%)}.lightbox-next{right:14px;top:50%;transform:translateY(-50%)}.lightbox-next:hover,.lightbox-prev:hover{transform:translateY(-50%) scale(1.06)}@keyframes lightboxIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}.lightbox[open] .lightbox-frame{animation:lightboxIn .4s ease both}body.low-power .lightbox[open] .lightbox-frame{animation:none}@media (hover:none),(pointer:coarse){.lightbox[open] .lightbox-frame{animation:none}.lightbox-stage{padding:56px 14px}.lightbox-btn{width:44px;height:44px;font-size:20px}.lightbox-close{top:12px;right:12px}.lightbox-prev{left:6px}.lightbox-next{right:6px}.lightbox-frame img{max-height:74dvh}.lightbox-caption{font-size:24px}}.rsvp{min-height:450px;display:grid;place-items:center;text-align:center}.rsvp:before{background:radial-gradient(ellipse at 50% 30%,rgba(255,255,255,.72),transparent 55%);opacity:.34}.rsvp-card{width:min(100%,460px);padding:58px 25px;overflow:hidden;isolation:isolate;border:1px solid rgba(255,255,255,.9);background:linear-gradient(145deg,#ffffffdb,#e0eff380);box-shadow:0 28px 76px #3d5e722b,inset 0 1px #fffffffa}.rsvp-card>*{position:relative;z-index:1}.rsvp h2{margin:0 0 20px;font:400 53px/.9 Cormorant Garamond;color:#55748b}.rsvp-card h2{font-size:58px}.rsvp p:not(.eyebrow){color:#587080;font:400 18px Cormorant Garamond}.rsvp-form{display:grid;gap:8px;width:min(100%,330px);margin:24px auto 0;text-align:left}.rsvp-form label{color:#6e8491;font:500 8px/1 DM Sans;letter-spacing:.16em;text-transform:uppercase}.rsvp-form input{width:100%;min-height:42px;padding:11px 14px;border:1px solid rgba(185,150,98,.36);border-radius:14px;outline:none;color:#55748b;background:#ffffff94;box-shadow:inset 0 1px #fffc;font:400 16px Cormorant Garamond;transition:border-color .25s ease,box-shadow .25s ease,background .25s ease}.rsvp-form input::placeholder{color:#55748b94}.rsvp-form input:focus{border-color:#b99662d1;background:#ffffffc7;box-shadow:0 0 0 3px #b9966221}.rsvp-form .button-gold{justify-self:center;margin-top:12px}.private{display:block;margin-top:16px;color:#7d8581;font-size:9px;letter-spacing:.08em}.button-gold{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;min-width:238px;padding:16px 28px;border:1px solid rgba(255,255,255,.82);border-radius:999px;color:#fffdf8;background:linear-gradient(115deg,#9b763e,#c9a967 38%,#e0c889 52%,#a98248);box-shadow:0 16px 34px #80623047,inset 0 1px #ffffffb8,inset 0 -1px #704e2047;font:500 9px/1 DM Sans;letter-spacing:.18em;text-decoration:none;text-transform:uppercase;text-shadow:0 1px 2px rgba(81,57,27,.35);transition:transform .35s ease,box-shadow .35s ease,filter .35s ease}.button-gold:before{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;z-index:-1;border:1px solid rgba(255,248,219,.34);border-radius:inherit;pointer-events:none}.button-gold:after{content:"";position:absolute;top:-80%;left:-28%;width:24%;height:260%;transform:rotate(24deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.48),transparent);pointer-events:none;transition:left .7s ease}.button-gold:hover,.button-gold:focus-visible{transform:translateY(-3px);filter:saturate(1.08);box-shadow:0 20px 40px #80623057,inset 0 1px #ffffffc7,inset 0 -1px #704e2047}.button-gold:hover:after,.button-gold:focus-visible:after{left:112%}.closing{min-height:75svh;position:relative;display:grid;place-items:center;overflow:hidden;color:#fff;text-align:center;background-color:var(--watercolor-base);background-image:linear-gradient(145deg,#cde0e09e,#ffffff85 52%,#91b5c7b8),url(../assets/watercolor-bg-tall.webp);background-size:cover,cover;background-position:center,center top;content-visibility:auto;contain-intrinsic-size:600px}.closing-photo{position:absolute;top:0;right:0;bottom:0;left:0}.closing-photo img{display:none}.closing-content{position:relative;z-index:5;padding:18px 22px;border-radius:26px;color:#496d86;background:#daebef38;text-shadow:0 2px 16px rgba(39,54,64,.35)}body:not(.low-power) .closing-content{border:1px solid rgba(255,255,255,.6);background:#fff3;backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%)}.closing h2{margin:15px 0;font:400 72px/.8 Cormorant Garamond;color:#557b96;text-shadow:0 2px 12px rgba(255,255,255,.34)}.closing h2 i{font:400 .58em Italianno;color:#89abc0}.closing p:last-of-type{color:#4e7188;font:400 20px Cormorant Garamond;text-shadow:0 2px 12px rgba(255,255,255,.3)}.closing-content .eyebrow.light{color:#4e7188;text-shadow:0 2px 12px rgba(255,255,255,.3)}.closing h2 i,.closing .heart{color:#89abc0}.rings{display:grid;place-items:center;margin-top:20px;color:#89abc0}.rings svg{width:54px;height:auto;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round}.rings circle:first-child{color:#b99662}.rings circle:last-of-type{color:#89abc0}.rings path{stroke:#d1b273;stroke-width:1.15}.preloader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:grid;place-items:center;overflow:hidden;background:radial-gradient(ellipse 120% 78% at 50% 34%,rgba(238,226,198,.5),transparent 60%),radial-gradient(ellipse 95% 70% at 84% 90%,rgba(212,230,233,.5),transparent 55%),linear-gradient(168deg,#f7f4ec,#fcfbf6 48%,#eff3f3);opacity:1;visibility:visible;transition:opacity .8s ease,visibility .8s ease}.preloader:before{content:"";position:absolute;top:34%;left:50%;width:min(72vmin,640px);aspect-ratio:1;transform:translate(-50%,-50%) scale(.9);background:radial-gradient(circle,#c4a46e29,#c4a46e00 60%);filter:blur(16px);pointer-events:none;animation:preloaderBreathe 9s ease-in-out infinite}.preloader.is-ready{opacity:0;visibility:hidden;pointer-events:none}.preloader-mark{display:grid;justify-items:center;gap:19px;text-align:center}.preloader-eyebrow{color:#92907f;font:500 9px/1 DM Sans;letter-spacing:.36em;text-transform:uppercase;text-indent:.36em;animation:preloaderRise .9s cubic-bezier(.2,.7,.2,1) .05s both}.preloader-emblem{display:block;line-height:0;filter:drop-shadow(0 6px 18px rgba(185,150,98,.35));animation:preloaderRise .9s cubic-bezier(.2,.7,.2,1) .16s both}.preloader-emblem svg{display:block}.preloader-names{color:#8d6e3c;font:400 clamp(46px,10.5vw,74px)/1.05 "Italianno";letter-spacing:.02em;text-shadow:0 3px 34px rgba(200,170,115,.32);animation:preloaderRise .9s cubic-bezier(.2,.7,.2,1) .24s both}.preloader-divider{display:flex;align-items:center;gap:14px;width:min(176px,68vw)}.preloader-divider span{flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(185,150,98,.9),transparent);transform-origin:center;animation:preloaderRule .9s cubic-bezier(.2,.7,.2,1) .34s both}.preloader-divider i{font: 400 12px/1 DM Sans;color:#b99662;animation:preloaderTwinkle .9s ease .46s both}.preloader-title{color:#55748b;font:600 10px/1 DM Sans;letter-spacing:.34em;text-transform:uppercase;text-indent:.34em;animation:preloaderRise .8s ease .52s both}.preloader-date{color:#7d8790;font:500 9px/1 DM Sans;letter-spacing:.32em;text-transform:uppercase;text-indent:.32em;animation:preloaderRise .8s ease .6s both}.preloader-start{position:relative;overflow:hidden;margin-top:26px;padding:15px 38px;border:1px solid rgba(255,255,255,.55);border-radius:999px;box-shadow:inset 0 1px #ffffff80,0 12px 30px #8d6e3c4d;color:#fffdf8;background:linear-gradient(135deg,#c9a86e,#a8845a 55%,#8d6e3c);font:600 9px/1 DM Sans;letter-spacing:.26em;text-indent:.26em;text-transform:uppercase;text-shadow:0 1px 2px rgba(80,55,20,.25);cursor:pointer;transition:transform .35s ease,box-shadow .35s ease,filter .35s ease;animation:preloaderRise .85s ease .7s both}.preloader-start:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(115deg,transparent 32%,rgba(255,255,255,.85) 50%,transparent 68%);transform:translate(-130%);transition:transform .8s ease;border-radius:inherit}.preloader-start:hover:after,.preloader-start:focus-visible:after{transform:translate(130%)}.preloader-start:hover,.preloader-start:focus-visible{transform:translateY(-2px);filter:brightness(1.05);box-shadow:inset 0 1px #ffffff8c,0 18px 40px #8d6e3c61}.preloader-start:focus-visible{outline:2px solid rgba(185,150,98,.6);outline-offset:3px}@keyframes preloaderRise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes preloaderRule{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes preloaderTwinkle{0%{opacity:0;transform:scale(.55) rotate(-45deg)}to{opacity:1;transform:none}}@keyframes preloaderBreathe{0%,to{opacity:.8;transform:translate(-50%,-50%) scale(.9)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.03)}}.reveal{opacity:0;transform:translateY(25px);filter:blur(4px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1),filter .9s ease}.reveal.show{opacity:1;transform:none;filter:none}.music-particles{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .6s ease}body.music-playing .music-particles{opacity:.82}.music-particle{--music-beat:0;position:absolute;top:105%;left:var(--x);width:8px;height:14px;border-radius:70% 30%;background:linear-gradient(135deg,#f3dc9b,#ad8242);opacity:.62;will-change:transform;animation:musicPetal var(--duration) linear var(--delay) infinite;animation-play-state:paused}body.music-playing .music-particle{animation-play-state:running}.music-particle:nth-child(1){--x:8%;--r:24deg;--drift:28px;--duration:11s;--delay:-2s}.music-particle:nth-child(2){--x:22%;--r:-18deg;--drift:-34px;--duration:14s;--delay:-8s}.music-particle:nth-child(3){--x:39%;--r:42deg;--drift:22px;--duration:12s;--delay:-5s}.music-particle:nth-child(4){--x:58%;--r:-35deg;--drift:-28px;--duration:15s;--delay:-10s}.music-particle:nth-child(5){--x:73%;--r:18deg;--drift:36px;--duration:13s;--delay:-4s}.music-particle:nth-child(6){--x:88%;--r:-26deg;--drift:-25px;--duration:16s;--delay:-12s}.music-particle:nth-child(7){--x:31%;--r:50deg;--drift:30px;--duration:17s;--delay:-7s}.music-particle:nth-child(8){--x:66%;--r:-48deg;--drift:-32px;--duration:12s;--delay:-1s}@keyframes musicPetal{0%{transform:translateZ(0) rotate(var(--r)) scale(.72);opacity:0}12%{opacity:.7}50%{transform:translate3d(var(--drift),-58vh,0) rotate(calc(var(--r) + 95deg)) scale(calc(.88 + var(--music-beat, 0) * .34))}to{transform:translate3d(calc(var(--drift) * -1),-122vh,0) rotate(calc(var(--r) + 210deg)) scale(.78);opacity:0}}@media (hover:none),(pointer:coarse){.preloader:before,.button-gold:after,.button-gold{animation:none}.button-gold,.gallery-grid img{transition:none}}body.low-power .grain,body.low-power:before,body.low-power .page:before{display:none}body.low-power .nav{backdrop-filter:none;-webkit-backdrop-filter:none;background:#f5fafaeb}body.low-power .glass,body.low-power .story-card,body.low-power .family-card,body.low-power .rsvp-card,body.low-power .detail,body.low-power .mini{background:#fafcfce6}body.low-power .music-particles{opacity:.48}body.low-power .music-particle:nth-child(n+5){display:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none;filter:none}.music-particles{display:none}}@media (max-width:680px){.nav{width:calc(100% - 18px);gap:8px;padding:11px 13px}.brand{font-size:23px}.nav-title{gap:8px}.nav-title .nav-rule{flex-basis:12px}.nav-count-label{font-size:14px}.nav-meta{font-size:16px}.hero-content{width:calc(100% - 24px);padding-inline:16px;padding-bottom:44px}.hero-date{font-size:10px}.eyebrow{font-size:9px}.section{padding-inline:14px}.family-grid,.details-grid,.duo{grid-template-columns:1fr}.family p,.story-card p:not(.eyebrow),.detail p:not(.eyebrow),.mini p:not(.eyebrow),.rsvp p:not(.eyebrow){font-size:17px}.music{bottom:18px}.rsvp-form{width:min(100%,290px)}.button-gold{min-width:230px;padding:15px 24px;font-size:8px}.gallery-grid{gap:10px}.timeline-item{grid-template-columns:76px 1fr;padding-inline:16px}.timeline:before{left:38px}.ceremony-quote{font-size:20px;padding:19px 20px}.rsvp-card h2{font-size:52px}.vow-quote,.ceremony-quote{font-size:17px}}@media (max-width:380px){.nav{gap:5px;padding-inline:10px}.brand{font-size:20px}.nav-title{gap:0}.nav-title .nav-rule{display:none}.nav-count-label{font-size:13px}.nav-meta{font-size:14px}.hero-content{width:calc(100% - 24px);padding-inline:16px}.section{padding-inline:14px}}@media (min-width:700px){body{padding:20px 0}.music{right:calc(50% - 305px)}}@media (min-width:681px) and (max-width:1024px){.section{padding-inline:30px}.gallery-grid{gap:12px}}

/* Responsive stability patch: gallery + floating navigation */
html{overflow-x:hidden}
body{overflow-x:hidden}
.nav{top:max(10px,env(safe-area-inset-top));left:50%;width:min(590px,calc(100vw - 20px));box-sizing:border-box;display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr) minmax(0,auto);align-items:center;justify-content:initial;gap:clamp(5px,2vw,12px);padding:11px clamp(10px,2.8vw,16px);transform:translateX(-50%)}
.brand{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:clamp(20px,6vw,25px)}
.nav-title{position:static;left:auto;top:auto;transform:none;min-width:0;width:100%;justify-content:center;gap:clamp(3px,1.8vw,10px);overflow:hidden}
.nav-title .nav-rule{flex:0 1 clamp(8px,3vw,20px);min-width:0}
.nav-count-label{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:clamp(12px,3.7vw,15px);letter-spacing:clamp(.08em,.14em,.14em);text-align:center}
.nav-meta{font-size:clamp(12px,4.1vw,17px);letter-spacing:0;white-space:nowrap}
.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(8px,2.5vw,14px);align-items:start}
.gallery-grid figure{min-width:0;width:100%;box-sizing:border-box}
.gallery-grid img{width:100%;height:auto;aspect-ratio:2/3;object-fit:cover}
@media (max-width:380px){.nav{width:calc(100vw - 14px);padding-inline:9px;gap:4px}.brand{font-size:19px}.nav-title{gap:3px}.nav-title .nav-rule{display:block;flex-basis:7px}.nav-count-label{font-size:11.5px;letter-spacing:.06em}.nav-meta{font-size:12.5px}.gallery-grid{gap:8px}}
@media (min-width:681px){.gallery-grid img{aspect-ratio:2/3}}
@supports (height:100dvh){.preloader{min-height:100dvh}}
.music{bottom:max(18px,calc(18px + env(safe-area-inset-bottom)));right:max(18px,calc(18px + env(safe-area-inset-right)))}
@media (min-width:700px){.music{right:max(calc(50% - 305px),18px)}}

/* Performance patch: mobile/tablet scroll and transition smoothness */
@media (pointer:coarse){
  html{scroll-behavior:auto}
  .glass,.nav,.lightbox,.preloader-card,.section-card,.rsvp-card,.timeline-card{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  .glass,.nav,.section-card,.rsvp-card,.timeline-card{box-shadow:0 8px 24px rgba(35,50,47,.10),inset 0 1px rgba(255,255,255,.72)}
  .gallery-grid figure,.gallery-grid img{transform:none!important;transition:none!important}
  .gallery-grid figure{contain:layout paint}
  .gallery-grid img{will-change:auto}
  .reveal{transition:opacity .45s ease!important;transform:none!important}
  .reveal.show{transform:none!important}
  .music-particle,.music-particles *{animation:none!important}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
}
