@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Great+Vibes&display=swap');
:root{--ink:#2e3b46;--muted:#6e7a83;--blue:#dceef8;--pale:#f5fafd;--accent:#8acde9;--line:#ced9df;--white:#fff;--shadow:0 18px 50px rgba(38,58,75,.1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font-family:'DM Sans',Arial,sans-serif;line-height:1.65}img{display:block;max-width:100%}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #377da2;outline-offset:3px}.skip-link{position:absolute;z-index:20;left:1rem;top:-5rem;background:#fff;padding:.7rem 1rem}.skip-link:focus{top:1rem}.wrap{width:min(100% - 3rem,1200px);margin-inline:auto}.wrap-narrow{width:min(100% - 3rem,860px);margin-inline:auto}.center{text-align:center}.site-header{position:relative;z-index:10;background:var(--blue);border-bottom:1px solid rgba(36,65,82,.06)}.nav{min-height:79px;display:flex;align-items:center;justify-content:space-between;gap:2rem}.brand{font-size:1.14rem;font-weight:600;letter-spacing:.04em;text-decoration:none;white-space:nowrap}.brand-mark{color:#65b7db;margin-left:.35rem}.nav-links{display:flex;align-items:center;gap:clamp(.75rem,2.2vw,2.2rem)}.nav-links a{text-decoration:none;text-transform:uppercase;font-size:.7rem;font-weight:700;letter-spacing:.16em;white-space:nowrap}.nav-links a:hover,.site-footer a:hover{color:#277ba5}.menu-toggle{display:none;border:0;background:none;color:var(--ink);font-size:.9rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em}.hero{min-height:670px;display:grid;grid-template-columns:.95fr 1.05fr;align-items:center;gap:5%;padding-block:90px 100px}.hero-copy{padding-left:4%}.eyebrow{font-size:.7rem;text-transform:uppercase;letter-spacing:.34em;font-weight:700;color:#3a728e;margin:0 0 1rem}.hero h1{font-family:'Great Vibes','Brush Script MT',cursive;color:#4d9fc4;font-weight:400;font-size:clamp(4.6rem,8vw,8.4rem);line-height:1;letter-spacing:.005em;margin:.2rem 0 1.3rem}.hero h1 em{font-weight:400;font-style:normal;display:block}.hero-intro{max-width:33ch;font-size:1.05rem;color:var(--muted);margin:1.5rem 0 2rem}.rule{display:flex;align-items:center;gap:1rem;color:#b1a39b;width:min(100%,285px)}.rule:before,.rule:after{content:"";height:1px;background:#d8e6ed;flex:1}.button{display:inline-flex;align-items:center;justify-content:center;gap:1.2rem;min-height:47px;padding:.8rem 1.75rem;text-decoration:none;border:0;text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;font-weight:700;cursor:pointer;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button-blue{background:#a9ddf4;color:#234759;border-radius:100px}.button-blue:hover{background:#8ecdea}.button-dark{background:var(--ink);color:#fff;min-width:160px}.button-dark:hover{background:#486273}.hero-photo{position:relative;padding:18px}.hero-photo:before{content:"";position:absolute;inset:0 10% 12% 0;border:1px solid #bdddea}.hero-photo img{position:relative;width:100%;height:470px;object-fit:cover;object-position:center;box-shadow:var(--shadow)}h2{font-weight:500;font-size:clamp(2.1rem,4vw,3.7rem);line-height:1.2;letter-spacing:.16em;margin:.2rem 0 1.25rem}h3{font-weight:500}.diamond{color:#b3aaa3;font-size:.8rem;text-align:center;margin:1.25rem auto 2.5rem}.section-blue{background:var(--pale)}.story{padding:110px 0 105px}.story h2,.story .eyebrow{text-align:center}.story-text{font-size:.96rem;color:#5e6e78;line-height:1.85}.story-text p{margin:0 0 1.45rem}.story-text p:last-child{margin-bottom:0}.photo-band{height:min(56vw,650px);overflow:hidden}.photo-band img{width:100%;height:100%;object-fit:cover;object-position:center 39%}.wedding{padding:120px 0 130px}.details{display:flex;justify-content:center;margin:4rem auto 3rem;max-width:540px}.details>div{flex:1;padding:0 1rem}.details>div+div{border-left:1px solid #bdccd2}.details h3{font-size:1.35rem;margin:0 0 1.3rem}.details p{font-size:.92rem;color:var(--muted);margin:0}.gallery-section{padding-top:100px}.gallery-heading{text-align:center;margin-bottom:2.5rem}.gallery-heading h2{margin-bottom:.5rem}.gallery-heading>p:last-child{color:var(--muted);margin:0}.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(160px,22vw);gap:8px;padding:8px}.gallery-item{border:0;padding:0;margin:0;overflow:hidden;cursor:zoom-in;background:#e9eef1}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.gallery-item:hover img{transform:scale(1.04)}.g1{grid-column:span 4}.g2{grid-column:span 3}.g3{grid-column:span 5}.g4{grid-column:span 7}.g5{grid-column:span 5}.g6{grid-column:span 6}.g7{grid-column:span 6}.g8{grid-column:span 5}.g9{grid-column:span 7}.contact{padding:110px 0 125px}.section-intro{font-size:.96rem;color:var(--muted);margin:-.5rem 0 3.1rem}.site-form{text-align:left}.contact-form{max-width:630px;margin:auto}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.site-form label{display:block;font-size:.82rem;font-weight:600;margin-bottom:1.2rem}.site-form input:not([type=radio]),.site-form textarea{display:block;width:100%;border:1px solid var(--line);border-radius:2px;background:rgba(255,255,255,.8);padding:.7rem .8rem;margin-top:.35rem;color:var(--ink);outline-offset:1px}.site-form textarea{resize:vertical}.contact-form input:not([type=radio]),.contact-form textarea{border:0;border-bottom:1px solid #b7c9d2;background:transparent;padding:.5rem 0}.form-submit{display:block;width:100%;border:1px solid #b7c9d2;background:transparent;color:var(--ink);padding:.7rem;cursor:pointer}.form-submit:disabled{cursor:not-allowed;opacity:.55}.form-status{font-size:.83rem;color:#6d7780;margin:.75rem 0 1rem}.form-status:empty{display:none}.registry{background:#e5f3fc;padding:115px 0 120px}.registry-card{max-width:600px;margin:0 auto;padding:2.5rem;background:#fff;box-shadow:var(--shadow);text-align:left}.registry-card>h3,.registry-card>p{text-align:center}.registry-card>h3{font-size:1.7rem;margin:0}.registry-card>p{color:var(--muted);margin:.2rem 0 2rem;font-size:.87rem}.registry-form label,.registry-form legend{font-size:.8rem}.registry-form label span,.registry-form legend span{color:#b14d4d}.registry-form fieldset{border:0;padding:0;margin:0 0 1.3rem}.registry-form legend{font-weight:700;margin-bottom:.8rem}.registry-form .radio{font-weight:400;display:flex;align-items:center;gap:.5rem;margin:.4rem 0}.registry-form .form-submit{border:0;width:100%;border-radius:2px}.site-footer{background:#2c3944;color:#dce6ec;text-align:center;padding:2rem 1rem 1.8rem;font-size:.72rem;letter-spacing:.16em}.site-footer p{margin:.5rem 0 0}.site-footer a{text-decoration:none}.back-top{display:inline-flex;flex-direction:column;align-items:center;text-transform:uppercase;gap:.15rem}.back-top span{font-size:2rem;line-height:.8}.lightbox{width:min(100vw - 2rem,1000px);max-width:none;max-height:calc(100vh - 2rem);border:0;background:#1c262c;color:#fff;padding:3.5rem 4.5rem 3rem;box-shadow:0 25px 100px #0008}.lightbox::backdrop{background:#071016de}.lightbox-image{width:100%;height:calc(100vh - 8rem);max-height:720px;object-fit:contain}.lightbox-bar{position:absolute;top:.5rem;right:1rem;left:1rem;display:flex;justify-content:space-between;align-items:center;font-size:.8rem}.lightbox button{background:none;border:0;color:#fff;cursor:pointer}.lightbox-close{font-size:2rem}.lightbox-prev,.lightbox-next{position:absolute;top:50%;font-size:3rem;transform:translateY(-50%)}.lightbox-prev{left:.7rem}.lightbox-next{right:.7rem}.event-hero{padding:100px 0 80px;background:var(--pale);text-align:center}.event-hero h1{font-size:clamp(2.5rem,6vw,5rem);font-weight:500;letter-spacing:.12em;margin:0 0 1.4rem}.event-hero p{color:var(--muted)}.event-facts{margin-bottom:2rem!important}.event-content{padding:80px 0 100px}.event-content h2{font-size:2.4rem}.event-form-page{min-height:70vh;padding:90px 0;background:var(--pale)}.event-form-page .registry-card{max-width:660px}.event-form-page h1{text-align:center;font-size:2.5rem;letter-spacing:.13em;font-weight:500}.event-summary{background:#e5f3fc;text-align:center;padding:1.5rem;margin-top:2rem}.event-summary h2{font-size:1.4rem;margin:0 0 .5rem}.event-summary p{margin:.1rem;color:var(--muted)}
@media(max-width:900px){.nav{flex-wrap:wrap;min-height:68px}.menu-toggle{display:block;cursor:pointer}.nav-links{display:none;width:100%;padding:0 0 1.2rem;flex-direction:column;align-items:flex-start;gap:0}.nav-links.open{display:flex}.nav-links a{display:block;padding:.6rem 0;width:100%}.hero{min-height:0;grid-template-columns:1fr;gap:3rem;padding-block:70px}.hero-copy{padding:0}.hero-photo{max-width:680px;margin:auto}.hero-photo img{height:430px}.gallery-grid{grid-auto-rows:minmax(150px,27vw)}}
@media(max-width:600px){.wrap,.wrap-narrow{width:min(100% - 2.2rem,1200px)}.hero{padding-block:55px 65px;gap:2rem}.hero h1{font-size:clamp(4rem,15vw,6rem)}.hero-photo{padding:10px}.hero-photo img{height:320px}.story,.wedding,.contact,.registry{padding-block:75px}.story-text{font-size:.92rem}.photo-band{height:360px}.photo-band img{object-position:42% center}.details{margin:2.5rem auto}.gallery-section{padding-top:70px}.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:170px;gap:5px;padding:5px}.gallery-item{grid-column:span 1!important}.g3,.g4,.g7{grid-column:span 2!important;grid-row:span 2}.form-row{grid-template-columns:1fr;gap:0}.registry-card{padding:1.5rem}.lightbox{padding:2.5rem 2rem 2rem}.lightbox-image{height:calc(100vh - 5rem)}.lightbox-prev{left:0}.lightbox-next{right:0}.event-hero{padding:75px 0}.event-content{padding:65px 0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
