:root{--pearl:#fdfcf9;--text-dark:#000;--gold:#c5a059;--gold-soft:#c5a05938;--gold-muted:#c5a0591f;--bg-page:#e8e4df;--divider:#00000012;--ease-out:cubic-bezier(.33, 1, .68, 1)}*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{background-color:var(--bg-page);width:100%;min-height:100%;font-family:Montserrat,sans-serif;overflow:hidden auto}#app{min-height:100%}:where(a,button,textarea,input:not(.radio-input),.pearl-center):focus{outline:none}:where(a,button,textarea,input:not(.radio-input),.pearl-center):focus-visible{outline:2px solid var(--gold);outline-offset:3px}#envelope-overlay{z-index:10000;background-color:var(--bg-page);justify-content:center;align-items:center;width:100%;height:100%;transition:opacity 1s ease-in-out;display:flex;position:fixed;top:0;left:0}.envelope-card{background:#fff;flex-direction:column;width:100%;height:100%;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 100px #0000000d}.flap{width:100%;transition:transform 1.5s var(--ease-out);background:#fff url(https://www.transparenttextures.com/patterns/cream-pixels.png);justify-content:center;align-items:center;display:flex;position:absolute}.flap-top{z-index:5;clip-path:polygon(0 0,100% 0,100% 60%,50% 90%,0 60%);filter:drop-shadow(0 10px 10px #0000001a);border-bottom:1px solid #00000005;height:60%;top:0}.flap-bottom{z-index:4;clip-path:polygon(0 40%,50% 10%,100% 40%,100% 100%,0 100%);background-color:#f9f9f9;justify-content:center;align-items:flex-end;height:50%;padding-bottom:140px;display:flex;bottom:0}.crest-embossed{border:1px solid #00000008;border-radius:50%/40%;justify-content:center;align-items:center;width:200px;height:260px;margin-bottom:100px;display:flex;box-shadow:inset 2px 2px 5px #00000005}.monogram-ka{color:#eee7e0;text-shadow:1px 1px #fff;margin-top:10px;font-family:Great Vibes,cursive;font-size:110px}.pearl-center{z-index:10;cursor:pointer;background:radial-gradient(circle at 35% 35%,#fff 0%,#f0f0f0 45%,#b3b3b3 100%);border-radius:50%;width:55px;height:55px;position:absolute;top:54%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 25px #0003}.pearl-center:focus:not(:focus-visible){outline:none}.open-instruction{color:#aaa;text-align:center;z-index:6;pointer-events:none;font-family:Playfair Display,serif;font-size:18px;font-style:italic}.is-open .flap-top{transform:translateY(-110%)}.is-open .flap-bottom{transform:translateY(110%)}.is-open#envelope-overlay{opacity:0;pointer-events:none}.main-content{background-color:var(--pearl);max-width:480px;min-height:100dvh;padding-bottom:env(safe-area-inset-bottom,0px);margin:0 auto;position:relative;box-shadow:0 0 40px #0000001a}.reveal{opacity:0;filter:blur(6px);transition:opacity .75s var(--ease-out), transform .75s var(--ease-out), filter .75s var(--ease-out);transform:translateY(22px)}.reveal.active{opacity:1;filter:blur();transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal{filter:none;transition:opacity .35s;transform:none}.flap,#envelope-overlay{transition-duration:.35s}.submit-btn:active:not(:disabled){transform:none}}.img-block{background-color:#000;flex-direction:column;justify-content:flex-end;width:100%;height:100vh;display:flex;position:relative;overflow:hidden}.hero-img-bg{object-fit:cover;z-index:1;image-rendering:auto;width:100%;height:100%;position:absolute;top:0;left:0}.fog-effect{background:linear-gradient(to bottom, transparent 0%, #fdfcf959 45%, var(--pearl) 92%);z-index:2;width:100%;height:38%;position:absolute;bottom:0;left:0}.overlay-content{z-index:3;text-align:center;padding-bottom:50px;position:relative}.script-header{color:#000;text-align:center;margin-bottom:25px;max-width:100%;margin-inline:auto;padding-inline:8px;font-family:Great Vibes,cursive;font-size:clamp(2.5rem,10vw,3.45rem);line-height:1.12}.hero-kicker{letter-spacing:.42em;color:#4a4a4a;text-align:center;margin-bottom:15px;font-size:11px;font-weight:500}.hero-names{max-width:none;margin-bottom:0;font-size:clamp(3.25rem,12vw,4.1rem)}.section{text-align:center;border-top:1px solid var(--divider);padding:72px 28px 80px}.img-block+.section{border-top:none}.section-calendar{padding-top:0}.section-program{background:#fff}.body-text{color:#333;max-width:32em;margin-inline:auto;font-family:Playfair Display,serif;font-size:18px;line-height:1.8}.body-text-bold{margin-top:25px;font-weight:700}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:10px;max-width:320px;margin:0 auto;display:grid}.weekday{color:#aaa;text-transform:uppercase;padding-bottom:10px;font-size:10px}.day{z-index:1;padding:10px 0;font-size:17px;position:relative}.wedding-day{font-weight:700;color:#fff!important}.wedding-day:before{content:"";background-color:var(--gold);z-index:-1;opacity:1;width:46px;height:46px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 2 7.5 2c1.74 0 3.41 0.81 4.5 2.09C13.09 2.81 14.76 2 16.5 2c3.08 0 5.5 2.42 5.5 5.5 0 3.78-3.4 6.86-8.55 11.54L12 21.35z'/></svg>") 50% no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 2 7.5 2c1.74 0 3.41 0.81 4.5 2.09C13.09 2.81 14.76 2 16.5 2c3.08 0 5.5 2.42 5.5 5.5 0 3.78-3.4 6.86-8.55 11.54L12 21.35z'/></svg>") 50% no-repeat}.btn-map{color:#3a3a3a;background:#fff;border:1px solid #0000001a;border-radius:12px;justify-content:center;align-items:center;min-width:148px;margin-top:16px;padding:12px 22px;font-size:13px;font-weight:500;text-decoration:none;transition:border-color .2s,color .2s,box-shadow .2s,background .2s;display:inline-flex}.btn-map:hover{border-color:var(--gold);color:#1a1a1a;box-shadow:0 2px 12px var(--gold-muted);background:#fffef9}.program-timeline{text-align:left;max-width:360px;margin:0 auto;padding-left:8px;position:relative}.program-timeline:before{content:"";background:linear-gradient(to bottom, var(--gold), #c5a05933);width:1px;position:absolute;top:8px;bottom:12px;left:11px}.program-item{gap:18px;margin-bottom:44px;display:flex;position:relative}.program-item:last-child{margin-bottom:0}.program-dot{background:var(--pearl);border:2px solid var(--gold);width:14px;height:14px;box-shadow:0 0 0 3px var(--gold-muted);z-index:1;border-radius:50%;flex-shrink:0;margin-top:6px}.program-body{flex:1;min-width:0}.program-time{letter-spacing:.02em;font-size:24px;font-weight:300}.program-title{text-transform:uppercase;letter-spacing:2px;margin:10px 0 6px;font-size:13px}.program-place{color:#666;font-size:14px;font-style:italic;line-height:1.45}.timer-heading{color:#000}.timer-row{justify-content:center;align-items:center;display:flex}.timer-cell{border-left:1px solid #c5a05940;padding:0 10px}.timer-row .timer-cell:first-child{border-left:none}.timer-value{font-size:32px;font-weight:700;display:block}.timer-label{text-transform:uppercase;opacity:.6;font-size:10px}.dress-code-heading{max-width:15ch;margin-inline:auto;font-size:clamp(2rem,8.5vw,3.35rem);line-height:1.15}.section-form{background:#fff;padding-bottom:100px}.form-group{margin-bottom:10px}.radio-card{cursor:pointer;text-align:left;background:#fafaf8;border:1px solid #0000001a;border-radius:12px;align-items:flex-start;gap:12px;padding:14px 16px;transition:border-color .2s,background .2s;display:flex}.radio-card:hover{background:#fffefb;border-color:#c5a05959}.radio-card:has(.radio-input:checked){background:#fdfcf9;border-color:#c5a05959}.radio-card:focus-within{border-color:#c5a05973}.radio-card:has(.radio-input:checked):focus-within{border-color:#c5a05966}.radio-card__text{color:#222;padding-top:1px;font-size:15px;line-height:1.45}.radio-input{appearance:none;cursor:pointer;background:#fff;border:2px solid #0003;border-radius:50%;flex-shrink:0;width:18px;height:18px;margin-top:4px;transition:border-color .2s,background .2s,box-shadow .2s}.radio-input:hover{border-color:#c5a0598c}.radio-input:checked{border-color:var(--gold);background:radial-gradient(circle at center, var(--gold) 42%, #fff 44%);box-shadow:none}.radio-input:focus{outline:none}.radio-input:focus-visible{box-shadow:0 0 0 2px var(--gold-soft);outline:none}.form-intro{margin-bottom:40px;padding:0 10px}.guest-form{text-align:left;max-width:350px;margin:0 auto}.text-input-area{resize:vertical;color:#222;background:#fff;border:1px solid #00000026;border-radius:8px;width:100%;min-height:100px;margin:12px 0 16px;padding:12px 14px;font-family:Montserrat,sans-serif;font-size:16px;line-height:1.5;transition:border-color .2s,box-shadow .2s;display:block}.text-input-area:hover{border-color:#c5a05959}.text-input-area:focus{outline:none}.text-input-area:focus-visible{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-soft)}.form-feedback{text-align:center;margin:0 0 16px;font-size:14px;line-height:1.5}.form-feedback-success{color:#2e7d32}.form-feedback-error{color:#c62828}.submit-btn{letter-spacing:.06em;text-transform:none;color:#fff;-webkit-text-fill-color:#fff;cursor:pointer;appearance:none;background:linear-gradient(145deg,#d4b575 0%,#c5a059 45%,#a88642 100%);border:none;border-radius:14px;width:100%;padding:16px 18px;font-family:Montserrat,sans-serif;font-size:16px;font-weight:600;line-height:1.25;transition:filter .2s,box-shadow .2s,transform .15s;box-shadow:inset 0 1px #ffffff59,0 4px 14px #c5a05959}.submit-btn:hover:not(:disabled){color:#fff;-webkit-text-fill-color:#fff;filter:brightness(1.05);box-shadow:inset 0 1px #fff6,0 6px 22px #c5a05973}.submit-btn:active:not(:disabled){color:#fff;-webkit-text-fill-color:#fff;filter:brightness(.97);transform:scale(.99)}.submit-btn:disabled{color:#ffffffe0;-webkit-text-fill-color:#ffffffe0;opacity:.72;cursor:not-allowed;filter:grayscale(.15)}.names-label{color:#000;margin-top:20px;font-size:14px;font-weight:700}.site-footer{text-align:center;padding:32px 24px calc(28px + env(safe-area-inset-bottom,0px));background:linear-gradient(180deg, var(--pearl) 0%, #f3efe8 55%, var(--bg-page) 100%);border-top:1px solid #c5a05938;margin-top:8px;position:relative}.site-footer:before{content:"";background:linear-gradient(90deg, transparent, var(--gold), transparent);opacity:.85;border-radius:3px;width:56px;height:3px;margin:0 auto 20px;display:block}.site-footer__inner{max-width:280px;margin:0 auto}.site-footer__script{color:#2c2c2c;margin:0 0 6px;font-family:Great Vibes,cursive;font-size:clamp(1.75rem,7vw,2.25rem);line-height:1.2}.site-footer__amp{opacity:.85;font-size:.85em}.site-footer__meta{letter-spacing:.35em;text-transform:uppercase;color:#8a8278;margin:0;font-family:Montserrat,sans-serif;font-size:11px;font-weight:500}
