*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fbf8f6;color:#302725;font-family:Montserrat,Arial,sans-serif;line-height:1.7}a{transition:color .2s ease,opacity .2s ease}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #d59aa1;outline-offset:3px}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.hero{min-height:100svh;height:max(720px,100svh);position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#7b303b url('hero-bg.png') center/cover no-repeat;color:#fff}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(73,25,34,.06),rgba(86,28,38,.08));pointer-events:none}.hero-nav{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:24px 3.8vw}.hero-logo{font:500 25px/1 'Cormorant Garamond',serif;color:#fff;text-decoration:none;letter-spacing:.04em}.hero-links{display:flex;gap:32px}.hero-links a{color:rgba(255,255,255,.95);text-decoration:none;font-size:10px;font-weight:600;letter-spacing:.22em}.hero-links a:hover,.hero-links a:focus-visible{color:#4f3435}.hero-content{position:relative;z-index:2;width:min(900px,92vw);text-align:center;margin-top:2vh}.eyebrow{font-size:12px;letter-spacing:.36em;font-weight:600}.hero-heart{margin:17px auto 8px;font-size:30px;line-height:1;color:#e88e98;text-shadow:0 1px 2px rgba(70,20,30,.12)}.hero-content h1{margin:0;color:#fff;font:500 clamp(72px,8.8vw,138px)/.82 'Cormorant Garamond',serif;letter-spacing:-.025em;text-shadow:0 1px 1px rgba(60,20,25,.08)}.hero-content h1 span{font-weight:400;font-style:italic}.surname{margin-top:22px;font:500 20px/1 'Cormorant Garamond',serif;letter-spacing:.55em;padding-left:.55em}.date-line{display:flex;align-items:center;justify-content:center;gap:28px;margin:36px auto 18px;max-width:650px}.date-line span{height:1px;background:rgba(255,255,255,.7);flex:1}.date-line strong{font:500 19px/1 'Cormorant Garamond',serif;letter-spacing:.28em;white-space:nowrap}.countdown{min-height:26px;font:400 18px/1.3 'Cormorant Garamond',serif;letter-spacing:.16em}.hero-button{display:inline-flex;align-items:center;justify-content:center;gap:30px;margin-top:30px;width:255px;height:64px;border:1px solid rgba(255,255,255,.82);color:#fff;text-decoration:none;font-size:11px;letter-spacing:.28em}.hero-button:hover{background:rgba(255,255,255,.13);color:#fff}.hero-button span{font-size:20px;line-height:1}.scroll-cue{position:absolute;z-index:3;bottom:24px;left:50%;transform:translateX(-50%);color:#fff;text-decoration:none;font-size:9px;letter-spacing:.3em;text-align:center}.scroll-cue span{display:block;width:1px;height:30px;background:rgba(255,255,255,.6);margin:0 auto 10px}.scroll-cue em{display:block;font-style:normal;font-size:19px;line-height:12px;margin-top:6px}
.intro,.section,.contacts{max-width:1000px;margin:auto;padding:95px 28px}.intro{text-align:center;max-width:760px}.intro h2,.section h2,.wish h2,.contacts h2{font:500 54px/1 'Cormorant Garamond',serif;margin:8px 0 20px}small{font-size:10px;letter-spacing:.25em;font-weight:600}.timeline{max-width:760px;margin:45px auto}.timeline article{display:grid;grid-template-columns:110px 1fr;gap:35px;border-left:1px solid #d7c6c8;padding:0 0 40px 28px}.timeline time{font:500 20px 'Cormorant Garamond',serif;color:#722d38}.timeline h3,.details h3{font:500 30px 'Cormorant Garamond',serif;margin:0}.details{background:#ece5df;display:grid;grid-template-columns:repeat(3,1fr)}.details>div{padding:65px 8%;text-align:center;border-right:1px solid #ddd2ca}.details a{color:#722d38;text-decoration:none;font-size:12px}.details a:hover{color:#4f3435}.place{display:grid;grid-template-columns:1fr 1fr;min-height:520px;background:#f3ece8}.place.reverse{background:#eee6e3}.place img{width:100%;height:100%;min-height:520px;object-fit:cover;display:block}.place>div{padding:70px clamp(30px,8vw,100px);align-self:center}.place h2{font:500 58px/1 'Cormorant Garamond',serif;margin:10px 0 20px}.button{display:inline-block;border:1px solid #722d38;color:#722d38;background:transparent;padding:11px 24px;text-decoration:none;font-size:10px;letter-spacing:.15em;text-transform:uppercase}.button:hover{background:#722d38;color:#fff}.map-section{padding:95px 28px 105px;text-align:center;background:#fbf8f6}.map-heading{max-width:760px;margin:0 auto 35px}.map-heading h2{font:500 54px/1 'Cormorant Garamond',serif;margin:8px 0 18px}.map-frame{max-width:1180px;margin:0 auto 35px;border:1px solid #e1d7d1;box-shadow:0 16px 45px rgba(71,40,35,.08);background:#f7f1e8}.map-frame img{display:block;width:100%;height:auto}.rsvp{background:#722d38;color:#fff;padding:95px 28px}.rsvp>div{max-width:760px;margin:auto}.rsvp h2{font:500 65px 'Cormorant Garamond',serif;margin:0}.rsvp input,.rsvp textarea{width:100%;margin-top:7px;padding:12px;border:0;background:#fff;color:#302725;font:inherit;border-radius:0}.rsvp label{display:block;margin:15px 0}.rsvp fieldset{border:0;padding:0;margin:22px 0 10px}.rsvp fieldset label{display:inline-flex;align-items:center;margin:10px 28px 10px 0}.rsvp fieldset input[type=radio]{width:auto;margin:0 8px 0 0}.overnight-info{margin:12px 0 20px;padding:16px 18px;border:1px solid #d7aeb4;background:#652630;border-radius:2px;color:#fff}.overnight-info strong{font:500 25px 'Cormorant Garamond',serif}.overnight-info a{display:inline-block;margin-top:6px;color:#fff;text-decoration:underline;text-underline-offset:3px}.rsvp .light{background:#fff;color:#5b2029;border-color:#fff;cursor:pointer}.wish{padding:95px 28px;background:#e6eee8;text-align:center}.swish-card{max-width:620px;margin:30px auto 0;padding:38px 32px 34px;background:#fbf8f6;border:1px solid #c5d2c8;box-shadow:0 12px 35px #55685f16;position:relative}.swish-card:before,.swish-card:after{content:'♥';position:absolute;color:#722d38;font-family:'Cormorant Garamond',serif;font-size:18px;top:14px}.swish-card:before{left:18px}.swish-card:after{right:18px}.swish-label{display:block;font-size:10px;letter-spacing:.28em;font-weight:600;color:#722d38;margin-bottom:7px}.swish-number{display:block;font:500 clamp(38px,7vw,52px)/1 'Cormorant Garamond',serif;letter-spacing:.04em;color:#302725}.swish-text{display:block;max-width:470px;margin:18px auto 22px;font-size:14px;line-height:1.7;color:#514744}.swish-copy{border:1px solid #722d38;background:#722d38;color:#fff;padding:11px 20px;font:inherit;font-size:10px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}.copy-confirm{display:block;min-height:20px;margin-top:9px;font-size:11px;color:#5f7667}.contacts{text-align:center}.toast-links{display:flex;justify-content:center;gap:16px;align-items:center;font:500 27px 'Cormorant Garamond',serif}.toast-links a{color:#722d38;text-decoration:none;border-bottom:1px solid transparent}.toast-links a:hover{color:#4f3435;border-bottom-color:#4f3435}.bottom{padding:30px;text-align:center;border-top:1px solid #ddd2cf;font:22px 'Cormorant Garamond',serif}
.password-gate{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#fbf7f1 url('password-bg.png') center/cover no-repeat;padding:24px}.password-overlay{position:relative;width:min(500px,88vw);height:330px;margin-top:230px}.password-form{position:absolute;left:0;right:0;top:0}.password-form input{display:block;width:100%;height:54px;padding:0 22px;background:rgba(255,255,255,.98);border:1px solid #9f9295;border-radius:28px;color:#4c4542;text-align:center;font:500 18px 'Cormorant Garamond',serif}.password-form input::placeholder{color:#6f655f;opacity:1}.password-form button{display:block;width:100%;height:54px;margin-top:14px;border:1px solid #c78f92;border-radius:28px;background:#cf9899;color:#fff;font:500 17px 'Cormorant Garamond',serif;cursor:pointer}.password-form button:hover{background:#bd7e83}.password-error{margin:9px 0 0;text-align:center;color:#8b2736;font-size:12px;display:none}.password-error.show{display:block}.body.locked{overflow:hidden}.unlocked .password-gate{display:none}
@media(max-width:700px){.hero{min-height:100svh;height:100svh;background-position:center}.hero-nav{padding:18px 18px}.hero-logo{font-size:22px}.hero-links{gap:11px}.hero-links a{font-size:7px;letter-spacing:.11em}.hero-content{margin-top:1vh;width:94vw}.eyebrow{font-size:8px;letter-spacing:.28em}.hero-heart{font-size:25px;margin:12px auto 6px}.hero-content h1{font-size:clamp(52px,15vw,82px);line-height:.9}.surname{font-size:14px;letter-spacing:.43em;margin-top:16px}.date-line{gap:12px;margin:25px auto 12px}.date-line strong{font-size:14px;letter-spacing:.2em}.countdown{font-size:15px;letter-spacing:.08em}.hero-button{width:min(230px,62vw);height:55px;margin-top:23px}.scroll-cue{bottom:15px;font-size:8px}.scroll-cue span{height:22px}.intro,.section,.contacts{padding:70px 22px}.details,.place{grid-template-columns:1fr}.details>div{border-right:0;border-bottom:1px solid #ddd2ca;padding:45px 10%}.place img{min-height:330px;height:330px}.place>div{padding:55px 28px}.timeline article{grid-template-columns:80px 1fr;gap:20px}.map-section{padding:70px 16px 80px}.map-heading h2{font-size:46px}.rsvp{padding:70px 22px}.wish{padding:70px 22px}.swish-card{padding:34px 20px}.toast-links{font-size:24px;flex-wrap:wrap}.password-gate{padding:16px;background-position:center center}.password-overlay{width:min(390px,86vw);margin-top:210px;height:220px}.password-form input,.password-form button{height:52px}.password-form button{margin-top:12px}.password-form input{font-size:17px}}

/* v9: corrected login screen, responsive hero and approved image assets */
.password-gate{
  position:fixed;inset:0;z-index:9999;display:grid;place-items:center;
  min-height:100dvh;padding:clamp(20px,4vw,48px);
  background:#fbf7f1 url('password-bg.png') center/cover no-repeat;
}
.password-card{width:min(620px,88vw);text-align:center;transform:translateY(1vh)}
.password-card h1{margin:0;color:#7b2634;font:400 clamp(62px,8vw,116px)/.95 'Great Vibes','Cormorant Garamond',serif;white-space:nowrap}
.password-heart{color:#c98f94;font-size:25px;line-height:1;margin:10px 0 4px}
.password-date{color:#6f7669;font:500 clamp(17px,2vw,25px)/1 'Cormorant Garamond',serif;letter-spacing:.28em;margin-bottom:30px;padding-left:.28em}
.password-form{position:static;width:min(500px,100%);margin:0 auto}
.password-form input{display:block;width:100%;height:56px;padding:0 22px;background:rgba(255,255,255,.96);border:1px solid #9f9295;border-radius:30px;color:#4c4542;text-align:center;font:500 18px 'Cormorant Garamond',serif}
.password-form input::placeholder{color:#6f655f;opacity:1}
.password-form button{display:block;width:100%;height:56px;margin-top:14px;border:0;border-radius:30px;background:#cf9899;color:#fff;font:500 18px 'Cormorant Garamond',serif;cursor:pointer}
.password-form button:hover{background:#b9787f}
.password-error{margin:9px 0 0;text-align:center;color:#8b2736;font-size:12px;display:none}
.password-error.show{display:block}
body.locked{overflow:hidden}.unlocked .password-gate{display:none}

/* ensure only live HTML is visible in hero */
.hero{height:auto;min-height:100dvh;background:#7b303b url('hero-bg.png') center/cover no-repeat}
.hero-nav{justify-content:flex-end}
.hero-content{padding:105px 0 95px}
.hero-links a:hover,.hero-links a:focus-visible{color:#3d2428}

@media(max-width:700px){
  .password-gate{background-position:center;padding:20px}
  .password-card{width:min(430px,92vw);transform:none}
  .password-card h1{font-size:clamp(52px,17vw,82px);white-space:normal}
  .password-date{font-size:16px;letter-spacing:.2em;margin-bottom:24px}
  .password-form input,.password-form button{height:52px}
  .hero{min-height:100dvh;height:auto;background-position:center}
  .hero-nav{position:absolute;padding:18px 14px;justify-content:center}
  .hero-links{width:100%;justify-content:center;gap:clamp(8px,3vw,18px)}
  .hero-links a{font-size:7px;letter-spacing:.08em}
  .hero-content{padding:120px 0 100px;margin:0;width:94vw}
  .hero-content h1{font-size:clamp(54px,16vw,88px);line-height:.9}
  .date-line{max-width:92vw}
}
@media(max-height:680px) and (min-width:701px){
  .password-card{transform:none}.password-card h1{font-size:72px}.password-date{margin-bottom:18px}
  .hero-content{padding:90px 0 80px}.scroll-cue{display:none}
}
