:root{--ink:#234b67;--blue:#6886a0;--paper:#faf9f3;--line:#cad5dd;--muted:#60778a;--wash:#edf1f2}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;color:var(--ink);background:var(--paper);font-family:Georgia,'Times New Roman',serif;-webkit-font-smoothing:antialiased}a{color:inherit}button{font:inherit}a:focus-visible,button:focus-visible{outline:2px solid #9a6a37;outline-offset:6px}.skip-link{position:fixed;top:-100px;left:16px;background:var(--paper);padding:15px;z-index:20}.skip-link:focus{top:15px}header{max-width:1440px;margin:auto;padding:29px 6%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.monogram{text-decoration:none;font-size:28px;letter-spacing:3px}.monogram span{font-size:19px;font-style:italic;margin:0 8px;color:var(--blue)}nav{display:flex;gap:33px}nav a,.header-date,.eyebrow,.text-link,.countdown small,.countdown-note,figcaption,.gift-label,.gift-placeholder p,.album-caption,footer p{font-family:Arial,sans-serif}nav a{font-size:11px;letter-spacing:.6px;text-decoration:none}.header-date{font-size:10px;letter-spacing:1px}.hero{max-width:1350px;margin:auto;display:grid;grid-template-columns:.85fr 1.15fr;gap:8%;align-items:center;padding:32px 7% 70px}.hero-copy{text-align:center}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:2.8px;line-height:1.8;font-weight:400;margin:0}h1{font-size:clamp(66px,6.5vw,99px);font-weight:400;line-height:.98;letter-spacing:-3px;margin:27px 0 25px}h1 em{display:block;font-size:.47em;font-weight:400;line-height:1.35;color:var(--blue)}.full-names{font-size:12px;line-height:1.5;letter-spacing:.5px;color:var(--muted);margin:0}.full-names span{font-style:italic;font-size:12px}.flourish{display:flex;align-items:center;justify-content:center;gap:16px;font-size:28px;color:var(--blue);margin:30px auto}.flourish span{height:1px;width:48px;background:var(--line)}.date{font-size:22px;margin:0 0 10px}.location{font-style:italic;font-size:16px;color:var(--muted);margin:0}.text-link{font-size:11px;text-decoration:none;border-bottom:1px solid #8da4b5;padding-bottom:7px;line-height:1.6;letter-spacing:.3px}.text-link:hover{color:#557a96;border-color:currentColor}.hero-link{display:inline-block;margin-top:34px}.hero-link span{margin-left:18px}.announcement{margin:0;max-width:550px;width:100%;justify-self:center}.announcement>a{display:block;padding:12px;border:1px solid #d9dedb;background:#fffffa;box-shadow:0 16px 45px #234b670c;outline-offset:6px}.announcement img{display:block;width:100%;height:auto}.announcement figcaption{display:flex;justify-content:center;gap:10px;align-items:center;margin-top:18px;font-size:9px;color:var(--muted);letter-spacing:1.1px}.announcement figcaption a{text-decoration:none;font-size:13px}.countdown-section{padding:38px 20px 32px;text-align:center;max-width:1150px;margin:auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.countdown{display:flex;justify-content:center;margin:22px auto 19px}.countdown div{width:125px;padding:0 20px}.countdown div+div{border-left:1px solid var(--line)}.countdown span{font-size:43px;font-variant-numeric:tabular-nums;display:block;line-height:1.1}.countdown small{display:block;font-size:8px;letter-spacing:2px;text-transform:uppercase;margin-top:12px}.countdown-note{font-size:9px;letter-spacing:.5px;color:var(--muted);margin:0}.section{padding:92px 7%}.section-intro{text-align:center}.section-intro h2{font-size:clamp(35px,4vw,51px);font-weight:400;letter-spacing:-1.5px;line-height:1.15;margin:17px 0 23px}.section-intro>p:last-child:not(.eyebrow){font-size:17px;color:var(--muted);line-height:1.9;margin:0}.celebrate{max-width:1200px;margin:auto}.events{margin-top:48px;display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line)}.events article{padding:38px 25px 34px;text-align:center}.events article+article{border-left:1px solid var(--line)}h3{font-size:26px;font-weight:400;line-height:1.3;letter-spacing:-.5px;margin:19px 0}.events p:not(.eyebrow){font-size:15px;line-height:1.8;margin:12px 0;color:var(--muted)}.events .event-date{font-style:italic}.small-flourish{display:block;font-size:27px;color:var(--blue);margin-top:16px}.event-actions{display:flex;justify-content:center;gap:27px;margin-top:22px}.album{background:var(--wash);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-top:75px;padding-bottom:70px}.album .section-intro>p:last-child{font-style:italic}.album-empty{margin:36px auto 0;text-align:center}.album-arch{max-width:320px;min-height:275px;margin:auto;border:1px solid #b5c5d1;border-radius:160px 160px 2px 2px;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#faf9f355;padding:48px 20px 28px}.album-arch svg{width:61px;fill:none;stroke:var(--blue);stroke-width:1;opacity:.75;margin-bottom:10px}.album-arch p{font-size:21px;line-height:1.6;margin:12px 0;color:var(--ink)}.album-arch em{font-size:18px;color:var(--muted)}.album-caption{font-size:10px;letter-spacing:.3px;color:var(--muted);margin:22px 0 0}.photo-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:1150px;margin:42px auto 0}.photo-gallery[hidden]{display:none}.photo-button{display:block;width:100%;padding:0;border:0;background:transparent;cursor:pointer;text-align:left;color:var(--ink)}.photo-button img{display:block;width:100%;height:360px;object-fit:cover;border:7px solid #fffef9;box-shadow:0 4px 15px #234b6708}.photo-button span{display:block;font-style:italic;font-size:14px;padding:12px 2px}.gifts{padding-top:80px;padding-bottom:82px;max-width:1100px;margin:auto}.gift-links{display:grid;grid-template-columns:repeat(3,1fr);margin:42px auto 0;max-width:860px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.gift-placeholder{text-align:center;padding:29px 15px}.gift-placeholder+.gift-placeholder{border-left:1px solid var(--line)}.gift-label{font-size:8px;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}.gift-placeholder h3{font-size:27px;margin:13px 0}.gift-placeholder p{font-size:10px;color:var(--muted);line-height:1.7;margin:0}footer{text-align:center;padding:0 20px 42px}footer .flourish{margin:0 auto 23px}.footer-names{font-size:32px;text-decoration:none;font-weight:400}.footer-names i{color:var(--blue);font-size:25px}footer p{font-size:9px;letter-spacing:.7px;color:var(--muted);margin:15px 0 25px}footer .text-link{font-size:9px}dialog{border:0;padding:45px 65px 38px;background:var(--paper);color:var(--ink);width:min(1000px,94vw);max-height:94vh}dialog::backdrop{background:#132b3bd9}dialog figure{margin:0;text-align:center}dialog img{max-width:100%;max-height:73vh;object-fit:contain}dialog figcaption{font-size:12px;margin-top:16px}dialog button{border:0;background:transparent;color:var(--ink);font-size:35px;cursor:pointer;padding:5px 12px}.viewer-close{position:absolute;right:10px;top:3px}.viewer-prev,.viewer-next{position:absolute;top:45%}.viewer-prev{left:5px}.viewer-next{right:5px}.viewer-position{text-align:center;font:10px Arial,sans-serif;color:var(--muted);margin:15px 0 0}@media(max-width:900px){.header-date{display:none}.hero{gap:5%;padding:24px 5% 52px}h1{font-size:73px}.full-names{font-size:11px}.date{font-size:20px}.announcement>a{padding:8px}.photo-gallery{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){header{padding:21px 6%}.monogram{font-size:23px}.monogram span{font-size:17px;margin:0 5px}nav{gap:17px}nav a{font-size:9px;letter-spacing:.1px}.hero{grid-template-columns:1fr;padding:21px 7% 43px;gap:37px}h1{font-size:80px;margin:24px 0 22px}.full-names{font-size:12px}.flourish{margin:23px auto}.hero-link{margin-top:23px}.announcement{max-width:440px}.announcement>a{padding:7px}.announcement figcaption{margin-top:14px}.countdown-section{margin:0 7%;padding:29px 0}.countdown div{width:25%;max-width:95px;padding:0 8px}.countdown span{font-size:34px}.countdown small{font-size:7px;letter-spacing:1.5px}.countdown-note{font-size:8px}.section{padding:62px 7%}.section-intro h2{font-size:37px}.section-intro>p:last-child:not(.eyebrow){font-size:16px}.desktop{display:none}.events{grid-template-columns:1fr;margin-top:33px}.events article{padding:30px 13px}.events article+article{border-left:0;border-top:1px solid var(--line)}.events h3{font-size:25px}.events p:not(.eyebrow){font-size:14px}.event-actions{gap:20px}.album-arch{max-width:270px;min-height:255px}.gift-links{grid-template-columns:1fr;margin-top:30px}.gift-placeholder{padding:25px 10px}.gift-placeholder+.gift-placeholder{border-left:0;border-top:1px solid var(--line)}.gift-placeholder h3{margin:9px 0}.photo-gallery{gap:12px}.photo-button img{height:220px;border-width:5px}.photo-button span{font-size:12px}dialog{padding:45px 35px 25px}.viewer-prev{left:0}.viewer-next{right:0}dialog button{padding:5px 6px}footer{padding-bottom:35px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.countdown[hidden]{display:none}.eyebrow.wedding-day-message{font-family:Georgia,"Times New Roman",serif;text-transform:none;letter-spacing:-1px;font-size:clamp(32px,4vw,48px);line-height:1.3;margin:8px 0 20px}
.announcement figcaption a{font-size:10px;text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:6px;line-height:1.7}.announcement figcaption a:hover{border-color:var(--blue)}
.announcement>a{padding:0;border:0;background:transparent;box-shadow:none}.botanical-divider{display:block;height:auto;mix-blend-mode:multiply;object-fit:contain}.hero-divider{width:min(145px,45%);margin:23px auto 20px}.temple-divider{width:min(190px,42.5vw);margin:0 auto 22px}@media(max-width:640px){.hero-divider{width:130px;margin:19px auto 17px}.temple-divider{width:min(160px,42.5vw)}}

body{background-color:var(--paper);background-image:linear-gradient(rgba(250,249,243,.82),rgba(250,249,243,.82)),url("hydrangea-pattern.png");background-repeat:repeat;background-size:auto,540px 540px}.album{background:rgba(237,241,242,.88)}@media(max-width:640px){body{background-size:auto,390px 390px}}

header{background-color:rgba(237,241,242,.88)}.monogram{display:block;line-height:0}.monogram img{display:block;width:48px;height:48px}@media(max-width:640px){.monogram img{width:40px;height:40px}}

.hero{gap:0}.wedding{max-width:1150px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:45px;align-items:center;border-bottom:1px solid var(--line)}.wedding-illustration img{display:block;width:100%;height:auto}.wedding .section-intro>p.sealing-date{font-size:15px;font-style:italic;line-height:1.8;margin-top:24px}.events{grid-template-columns:1fr;max-width:700px;margin-left:auto;margin-right:auto}.photo-gallery{align-items:start}.photo-button img{height:auto;object-fit:contain}.photo-button.landscape{grid-column:span 2}@media(max-width:900px){.hero{gap:0}.wedding{gap:24px}}@media(max-width:640px){.hero{gap:0}.wedding{grid-template-columns:1fr;gap:25px}.wedding-illustration{max-width:340px;margin:auto}.wedding .section-intro h2{font-size:35px}.photo-button img{height:auto}}

/* Keep section navigation available throughout the page. */
html{scroll-padding-top:130px}header{position:sticky;top:0;z-index:10;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.photo-gallery{grid-template-columns:repeat(5,minmax(0,1fr))}.event-actions{flex-wrap:wrap;row-gap:16px}@media(max-width:900px){.photo-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:640px){html{scroll-padding-top:106px}.photo-gallery{gap:8px}.photo-button img{border-width:3px}.event-actions{column-gap:17px}}

/* Invitation navigation and hero controls. */
html{scroll-padding-top:var(--header-offset,100px)}header{padding:14px 5%;gap:18px}nav{gap:12px}nav a{position:relative;display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 10px;font-size:16px;letter-spacing:0;white-space:nowrap}nav a[aria-current="location"]::after{content:"";position:absolute;bottom:4px;left:10px;right:10px;height:1px;background:var(--ink)}.monogram{display:flex;align-items:center;justify-content:center;min-width:48px;min-height:48px;flex-shrink:0}.header-date{font-size:13px;letter-spacing:.4px;white-space:nowrap}.hero{max-width:1200px;grid-template-columns:.95fr 1.05fr;padding:12px 5% 32px}.hero h1{font-size:clamp(64px,6vw,82px);margin:16px 0 18px}.hero-divider{margin:18px auto 16px}.hero .date{font-size:22px;line-height:1.45}.hero-link{font-size:16px;min-height:48px;display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;border:1px solid #6886a0;margin-top:24px;background:rgba(250,249,243,.5)}.hero-link:hover{background:rgba(237,241,242,.88);color:var(--ink)}.hero-link span{margin-left:12px}.announcement{max-width:500px;text-align:center}.announcement>a{display:flex;justify-content:center}.announcement img{width:auto;max-width:100%;height:auto;max-height:min(600px,calc(100svh - 155px));object-fit:contain}.announcement figcaption{margin-top:12px;letter-spacing:0}.announcement figcaption a{font-size:15px;color:var(--ink);padding:10px 2px;min-height:44px;display:inline-flex;align-items:center;border-color:var(--blue)}
#announcement-preview{width:min(960px,96vw);max-height:94svh;padding:20px;border:1px solid var(--line)}.announcement-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 18px;padding-bottom:16px}.announcement-toolbar h2{font-size:24px;font-weight:400;margin:0;flex:1}.announcement-toolbar button,.announcement-toolbar a{font:14px Arial,sans-serif;min-height:44px;padding:10px 12px;color:var(--ink)}.announcement-toolbar button{border:1px solid var(--line);background:var(--paper);cursor:pointer}.announcement-toolbar .announcement-close{font-size:15px}.announcement-close span{font-size:20px;margin-left:5px}.announcement-zoom{display:flex;gap:8px;align-items:center}.announcement-zoom button{min-width:44px}.announcement-zoom output{font:13px Arial,sans-serif;min-width:44px;text-align:center}.announcement-scroll{height:calc(94svh - 170px);min-height:180px;overflow:auto;background:#f4f3ed;border:1px solid var(--line);padding:12px}.announcement-scroll img{display:block;width:var(--announcement-width,auto);max-width:none;max-height:none;height:auto;margin:0 auto}.announcement-scroll:focus-visible{outline:2px solid #9a6a37;outline-offset:2px}body.announcement-open{overflow:hidden}
@media(max-width:900px){header{padding:12px 4%;gap:10px}.hero{padding:12px 4% 32px}.hero h1{font-size:64px}.hero .date{font-size:20px}.announcement figcaption a{font-size:14px}}
@media(max-width:640px){header{padding:8px 12px;gap:8px}nav{gap:2px}nav a{font-size:15px;padding:0 6px}nav a[aria-current="location"]::after{left:6px;right:6px}.monogram{min-width:44px;min-height:44px}.header-date{display:none}.hero{padding:16px 7% 36px;grid-template-columns:1fr}.hero h1{font-size:80px;margin:18px 0 22px}.hero .date{font-size:21px}.hero-link{margin-top:22px;margin-bottom:24px;font-size:16px}.announcement img{width:100%;max-height:none}.announcement figcaption a{font-size:15px}.announcement-toolbar h2{font-size:20px}.announcement-toolbar{gap:8px}.announcement-toolbar>a{width:100%}#announcement-preview{padding:12px}.announcement-scroll{height:calc(94svh - 230px)}.announcement-zoom{gap:5px}.announcement-toolbar button{padding:8px}.announcement-zoom button{min-width:44px}}

/* Reception invitation: a quiet center framed by two hydrangea corners. */
#celebrate .reception-card{position:relative;isolation:isolate;border:1px solid #8da4b5;background:rgba(255,254,247,.94);padding:120px 48px 120px;text-align:center}#celebrate .reception-floral{position:absolute;display:block;width:290px;height:auto;pointer-events:none;z-index:-1}#celebrate .reception-floral-left{top:-20px;left:-20px}#celebrate .reception-floral-right{bottom:-20px;right:-20px}#celebrate .reception-content{max-width:700px;margin:auto}#celebrate .eyebrow{font-size:11px}#celebrate h2{font-size:clamp(32px,4vw,47px);font-weight:400;line-height:1.2;letter-spacing:-1px;margin:16px 0 24px}#celebrate .reception-invitation{font-size:18px;line-height:1.85;color:var(--ink);margin:0}#celebrate .reception-details{margin:34px 0 28px}#celebrate .reception-date{font-size:24px;line-height:1.5;margin:0;font-style:normal}#celebrate .reception-time{font-size:26px;line-height:1.4;margin:8px 0 23px;font-style:normal}#celebrate .reception-address{display:inline-block;font-size:19px;line-height:1.65;padding:4px 8px;text-decoration:underline;text-decoration-color:#8da4b5;text-underline-offset:5px;text-decoration-thickness:1px}#celebrate .reception-address:hover{text-decoration-color:var(--ink);color:#173c56}#celebrate .reception-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}#celebrate .reception-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 22px;font:16px/1.4 Arial,sans-serif;text-decoration:none;border:1px solid var(--ink)}#celebrate .reception-button-primary{background:var(--ink);color:#fffef7}#celebrate .reception-button-primary:hover{background:#173c56;border-color:#173c56}#celebrate .reception-button-secondary{background:transparent;color:var(--ink)}#celebrate .reception-button-secondary:hover{background:var(--wash)}#celebrate .reception-registry{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;margin-top:18px;padding:8px 10px;font:15px/1.6 Arial,sans-serif;text-decoration:underline;text-decoration-color:#8da4b5;text-underline-offset:6px;text-decoration-thickness:1px}#celebrate .reception-registry:hover{color:#173c56;text-decoration-color:currentColor}#celebrate a:focus-visible{outline:2px solid #9a6a37;outline-offset:5px}
@media(max-width:900px){#celebrate .reception-card{padding:110px 28px}#celebrate .reception-floral{width:250px}#celebrate .reception-invitation{font-size:17px}#celebrate .reception-date{font-size:22px}}
@media(max-width:640px){#celebrate{padding-left:5%;padding-right:5%}#celebrate .reception-card{padding:100px 20px 100px}#celebrate .reception-floral{width:190px}#celebrate .reception-floral-left{top:-8px;left:-12px}#celebrate .reception-floral-right{bottom:-8px;right:-12px}#celebrate h2{font-size:32px;margin-bottom:22px}#celebrate .reception-invitation{font-size:17px;line-height:1.75}#celebrate .reception-date{font-size:21px}#celebrate .reception-time{font-size:25px}#celebrate .reception-address{font-size:18px}#celebrate .reception-actions{flex-direction:column;align-items:stretch;max-width:290px;margin:auto}#celebrate .reception-button{padding:12px 14px}#celebrate .reception-details{margin-top:29px}}

/* The supplied corner arrangements already include their rotation and flip. */
#celebrate .reception-card{padding-top:165px;padding-bottom:165px;overflow:visible}#celebrate .reception-floral{width:210px;z-index:1}#celebrate .reception-floral-left{top:-40px;left:-60px}#celebrate .reception-floral-right{bottom:-40px;right:-60px}#celebrate .reception-content{position:relative;z-index:2}
@media(max-width:900px){#celebrate .reception-floral{width:180px}#celebrate .reception-floral-left{top:-35px;left:-40px}#celebrate .reception-floral-right{bottom:-35px;right:-40px}#celebrate .reception-card{padding-top:150px;padding-bottom:150px}}
@media(max-width:640px){#celebrate .reception-floral{width:120px}#celebrate .reception-floral-left{top:-20px;left:-13px}#celebrate .reception-floral-right{bottom:-20px;right:-13px}#celebrate .reception-card{padding-top:105px;padding-bottom:105px}}

/* Reception finishing details; the existing announcement dialog is reused. */
#celebrate .reception-card{padding-top:110px}#celebrate .reception-name-group{white-space:nowrap}#celebrate .reception-invitation-sentence{display:block}#celebrate .reception-secondary-links{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:18px}#celebrate .reception-secondary-links a{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;margin:0;padding:8px 10px;font:15px/1.6 Arial,sans-serif;text-decoration:underline;text-decoration-color:#8da4b5;text-underline-offset:6px;text-decoration-thickness:1px}#celebrate .reception-secondary-links a:hover{color:#173c56;text-decoration-color:currentColor}
@media(max-width:900px){#celebrate .reception-card{padding-top:110px}}
@media(max-width:640px){#celebrate .reception-card{padding-top:105px}#celebrate .reception-heading-intro{display:block}#celebrate .reception-parent-line,#celebrate .reception-parent-second{display:block}#celebrate .reception-invitation-sentence{margin-top:8px}#celebrate .reception-secondary-links{gap:7px}#celebrate .reception-secondary-links a{padding-left:4px;padding-right:4px}}
