@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Great+Vibes&family=Montserrat:wght@300;400;500;600&display=swap";:root{--paper: #fffdf8;--cream: #f5f1e9;--sage: #7d8d70;--sage-dark: #566348;--sage-light: #eef1e8;--rose: #dab3ad;--rose-light: #f3dedb;--sand: #d9c8b5;--text: #2d2a24;--muted: #736d63;--line: rgba(86, 99, 72, .18);--shadow: 0 28px 80px rgba(45, 42, 36, .18)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 12% 6%,rgba(218,179,173,.36),transparent 28%),radial-gradient(circle at 88% 18%,rgba(125,141,112,.3),transparent 30%),linear-gradient(135deg,#efeae1,#f9f7f2);color:var(--text);font-family:Montserrat,sans-serif}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}button{border:0}button:disabled{opacity:.65;cursor:not-allowed}.page{width:100%;min-height:100vh;overflow:hidden;background:radial-gradient(circle at 0% 12%,rgba(218,179,173,.2),transparent 32%),radial-gradient(circle at 100% 42%,rgba(125,141,112,.18),transparent 28%),var(--paper)}.section{width:min(100%,1100px);margin:0 auto;padding:clamp(64px,8vw,128px) clamp(22px,4vw,48px);position:relative}.paper{background:radial-gradient(circle at 20% 8%,rgba(218,179,173,.1),transparent 32%),radial-gradient(circle at 88% 78%,rgba(125,141,112,.13),transparent 30%),var(--paper)}.photo-section{width:100%;min-height:clamp(460px,72vh,980px);position:relative;overflow:hidden}.responsive-picture{position:absolute;inset:0;z-index:0;display:block;width:100%;height:100%}.responsive-image{display:block;width:100%;height:100%;object-fit:cover;object-position:var(--object-position-desktop, center center)}.label{margin:0 0 20px;color:var(--sage-dark);font-size:11px;font-weight:600;letter-spacing:.25em;text-align:center;text-transform:uppercase}h1,h2,h3{margin:0;font-family:Cormorant Garamond,serif;font-weight:500}h2{color:var(--sage-dark);font-size:clamp(40px,5vw,78px);line-height:.96;text-align:center;margin-bottom:clamp(24px,3vw,36px)}h3{color:var(--sage-dark);font-size:clamp(28px,3vw,42px);line-height:1.02;margin-bottom:10px}p,.lead{margin:0 auto 24px;max-width:720px;color:var(--muted);font-size:clamp(15px,1.2vw,18px);line-height:1.82;text-align:center}.large-date{margin:clamp(34px,4vw,54px) auto 0;color:var(--sage-dark);font-family:Cormorant Garamond,serif;font-size:clamp(46px,5vw,78px);text-align:center;letter-spacing:.04em}.button{display:inline-flex;justify-content:center;align-items:center;min-height:50px;margin:12px auto 0;padding:0 28px;border-radius:999px;background:var(--sage-dark);color:#fff;box-shadow:0 18px 40px #5663482e;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;transition:transform .2s ease,box-shadow .2s ease}.button:hover{transform:translateY(-2px);box-shadow:0 22px 50px #5663483d}.hero{min-height:min(100vh,1000px);display:grid;place-items:center;text-align:center;isolation:isolate;overflow:hidden}.hero__overlay{position:absolute;inset:0;z-index:1;background:radial-gradient(circle at 50% 12%,rgba(255,253,248,.58),transparent 26%),linear-gradient(to bottom,#ffffff24,#2d2a2457)}.hero__content{position:relative;z-index:2;padding:34px 22px;color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.36);transform:translateY(clamp(-120px,-10vh,-60px))}.script{margin:0;font-family:Great Vibes,cursive;font-weight:400}.script--top{margin-bottom:clamp(24px,3vw,42px);color:var(--sage-dark);font-size:clamp(34px,4vw,58px);text-shadow:0 2px 18px rgba(255,255,255,.6)}h1{font-family:Great Vibes,cursive;font-size:clamp(78px,10vw,180px);line-height:.82;font-weight:400}.hero__date{margin:clamp(32px,4vw,54px) auto 0;color:#fff;font-size:clamp(13px,1vw,16px);letter-spacing:.25em;text-transform:uppercase}.music-toggle{position:fixed;right:clamp(18px,3vw,34px);bottom:clamp(18px,3vw,34px);z-index:1000;width:68px;height:68px;padding:0;display:grid;place-items:center;border:1px solid rgba(255,255,255,.78);border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffffffe6,#fffdf89e);box-shadow:0 20px 48px #2d2a243d,0 8px 18px #2d2a241f,inset 0 0 0 1px #ffffff5c;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);cursor:pointer;transition:transform .18s ease,box-shadow .24s ease,background .24s ease}.music-toggle:hover{transform:translateY(-3px) scale(1.04);box-shadow:0 26px 64px #2d2a244d,0 10px 22px #2d2a2424,inset 0 0 0 1px #ffffff73}.music-toggle:active{transform:scale(1.14)}.music-toggle--playing{box-shadow:0 0 30px #dab3ad73,0 12px 40px #0000002e}.vinyl{position:relative;width:54px;height:54px;display:grid;place-items:center;border-radius:50%;background:repeating-radial-gradient(circle at center,#171513 0 4px,#24211e 5px 6px,#171513 7px 11px);box-shadow:inset 0 0 0 2px #ffffff0f,inset 0 0 0 14px #ffffff06,0 8px 18px #0000003d;overflow:hidden;transform-origin:center center}.vinyl:before{content:"";position:absolute;inset:7px;border-radius:50%;border:1px solid rgba(255,255,255,.1)}.vinyl:after{content:"";position:absolute;inset:15px;border-radius:50%;border:1px solid rgba(255,255,255,.08)}.vinyl__shine{position:absolute;width:19px;height:76px;left:11px;top:-10px;rotate:28deg;background:linear-gradient(to bottom,rgba(255,255,255,.22),transparent 72%);opacity:.72}.vinyl__label{position:relative;z-index:2;width:21px;height:21px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f0cdc8,var(--rose));color:#fff;font-size:11px;line-height:1;box-shadow:inset 0 0 0 1px #ffffff3d}.music-toggle--playing .vinyl{animation:vinylSpin 2.8s linear infinite}@keyframes vinylSpin{to{transform:rotate(360deg)}}.section--countdown{padding-top:clamp(42px,6vw,80px);padding-bottom:clamp(58px,7vw,96px);background:linear-gradient(180deg,var(--paper),var(--sage-light))}.count-grid{max-width:900px;margin:40px auto 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:20px}.count-card{padding:clamp(24px,3vw,36px) 12px;border:1px solid rgba(255,255,255,.72);border-radius:30px;background:#fffdf8bd;text-align:center;box-shadow:0 16px 38px #5663481a;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.count-card strong{display:block;color:var(--sage-dark);font-family:Cormorant Garamond,serif;font-size:clamp(44px,4vw,68px);font-weight:500;line-height:1}.count-card span{color:var(--muted);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.timeline{max-width:900px;margin:44px auto 0;display:grid;gap:30px;position:relative}.timeline-line{position:absolute;left:88px;top:12px;bottom:12px;width:1px;background:var(--line);transform-origin:top;z-index:0}.timeline-item{position:relative;display:grid;grid-template-columns:80px 20px 1fr;gap:20px;align-items:start;z-index:1}.time{color:var(--sage-dark);font-family:Cormorant Garamond,serif;font-size:clamp(26px,2.5vw,36px);line-height:1}.timeline-dot{position:relative;z-index:1;width:16px;height:16px;margin-top:8px;border-radius:50%;background:var(--rose);box-shadow:0 0 0 8px #dab3ad33;transition:transform .35s ease}.timeline-item:hover .timeline-dot{transform:scale(1.14)}.timeline-content h3,.timeline-content p{text-align:left}.timeline-content p{max-width:620px;margin-left:0;margin-bottom:0;font-size:clamp(14px,1vw,16px)}form{max-width:720px;margin:36px auto 0;display:grid;gap:14px}.rsvp-form>*{animation:formFadeUp .7s ease both}.rsvp-form>*:nth-child(1){animation-delay:.05s}.rsvp-form>*:nth-child(2){animation-delay:.1s}.rsvp-form>*:nth-child(3){animation-delay:.15s}.rsvp-form>*:nth-child(4){animation-delay:.2s}.rsvp-form>*:nth-child(5){animation-delay:.25s}.rsvp-form>*:nth-child(6){animation-delay:.3s}@keyframes formFadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}input,textarea,select{width:100%;border:1px solid rgba(86,99,72,.16);border-radius:18px;background:#ffffffc7;padding:16px 18px;color:var(--text);outline:none;box-shadow:0 8px 26px #2d2a240a}input:focus,textarea:focus,select:focus{border-color:#56634861}textarea{min-height:122px;resize:vertical}form button[type=submit]{border-radius:999px;padding:17px 24px;background:var(--sage-dark);color:#fff;font-weight:600;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;box-shadow:0 18px 40px #5663482e}.success{max-width:720px;margin:34px auto 0;padding:24px;border-radius:26px;background:var(--sage-light);color:var(--sage-dark);text-align:center;line-height:1.7}.form-error{max-width:720px;margin:4px auto 0;padding:14px 18px;border-radius:18px;background:#dab3ad2e;color:#8a3f3f;text-align:center;line-height:1.6}.honeypot{position:absolute!important;left:-9999px!important;opacity:0!important;pointer-events:none!important}.guest-counter{margin:14px 0 22px;text-align:center}.guest-counter label{display:block;margin-bottom:12px;color:var(--sage-dark);font-size:13px;text-transform:uppercase;letter-spacing:.08em}.counter{display:flex;justify-content:center;align-items:center;gap:14px}.counter-btn{min-width:120px;height:50px;display:flex;justify-content:center;align-items:center;padding:0 28px;border:1px solid rgba(125,141,112,.18);border-radius:999px;background:#ffffffe6;color:var(--sage-dark);font-size:15px;font-weight:600;letter-spacing:.02em;cursor:pointer;-webkit-user-select:none;user-select:none;box-shadow:0 10px 24px #00000014;transition:background .25s ease,color .25s ease,border-color .25s ease,box-shadow .25s ease,transform .2s ease}.counter-btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px #0000001f}.counter-btn:active{transform:scale(.97)}.counter-btn.active{background:linear-gradient(135deg,var(--sage),var(--sage-dark));color:#fff;border-color:var(--sage-dark);box-shadow:0 14px 30px #56634847}.counter-value{display:none}.guest-list{display:flex;flex-direction:column;gap:18px;margin-top:24px}.guest-card{padding:18px;border-radius:18px;background:#ffffff8c;border:1px solid rgba(125,141,112,.12)}.guest-title{margin-bottom:12px;color:var(--sage-dark);font-size:13px;letter-spacing:.08em;text-transform:uppercase}.guest-card input{margin-bottom:10px}.guest-card input:last-child{margin-bottom:0}.photo-break{min-height:clamp(360px,70vh,780px)}.photo-break__veil{position:absolute;inset:0;background:linear-gradient(to bottom,#ffffff14,#2d2a2429)}.venue,.dress{text-align:center}.palette{display:flex;justify-content:center;align-items:flex-start;flex-wrap:nowrap;gap:clamp(8px,1.5vw,16px);margin-top:36px}.palette-item{display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--muted);flex:0 0 auto}.palette-image{width:clamp(46px,5vw,60px);height:clamp(46px,5vw,60px);display:block;flex-shrink:0}.palette-item small{font-size:9px;letter-spacing:.06em;text-transform:uppercase}.map-section{height:clamp(340px,48vh,520px);overflow:hidden;background:var(--sage-light)}.map-section iframe{width:100%;height:100%;border:0;filter:saturate(.82) contrast(.96)}.final{min-height:min(100vh,1000px);display:grid;place-items:end center;padding:clamp(52px,7vw,90px) 30px}.final:before{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,#2d2a241a,#2d2a248a)}.final__overlay{position:relative;z-index:1;width:100%;color:#fff;text-align:center;text-shadow:0 2px 24px rgba(0,0,0,.34)}.script--final{margin-bottom:8px;color:#fff;font-size:clamp(38px,4vw,62px)}.final__names{font-family:Great Vibes,cursive;font-size:clamp(52px,6vw,96px);line-height:.92}.final__date{margin:22px 0;font-family:Cormorant Garamond,serif;font-size:clamp(34px,4vw,58px);letter-spacing:.08em}.final p{color:#fff}@media(max-width:768px){.section{padding:64px 24px}.photo-section{min-height:clamp(420px,70vh,720px)}.hero{min-height:100svh}h1{font-size:clamp(74px,21vw,116px)}h2{font-size:clamp(38px,10vw,54px)}.timeline{max-width:100%;gap:26px}.timeline-line{left:60px}.timeline-item{grid-template-columns:50px 18px 1fr;gap:14px}.time{font-size:24px}.count-grid{grid-template-columns:repeat(2,1fr);gap:12px}.count-card{border-radius:24px}.music-toggle{width:60px;height:60px;right:16px;bottom:16px}.vinyl{width:48px;height:48px}}@media(max-width:420px){.section{padding-left:20px;padding-right:20px}.count-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.timeline-content p{font-size:14px}.palette{gap:12px}}@media(min-width:1400px){h1{font-size:190px}h2{font-size:84px}.lead,p{max-width:820px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(max-width:768px){.responsive-image{object-position:var(--object-position-mobile, center center)}}
