:root{--ink:#20301f;--ink-soft:#3a4a37;--cream:#f7f2e7;--cream-deep:#efe6d3;--blush:#c98f88;--gold:#a97f42;--gold-soft:#c9a06a;--line:#20301f29;--shadow:0 20px 45px #20301f29;--text:#23301f;--text-soft:#5a6650;--card-bg:#fffdf7;--serif:Georgia, "Iowan Old Style", "Palatino Linotype", "Times New Roman", serif;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}@media (prefers-color-scheme:dark){:root{--ink:#e9e2cf;--ink-soft:#c9c0a4;--cream:#171f15;--cream-deep:#1e2819;--blush:#d9a49b;--gold:#d4ab6c;--gold-soft:#e3c290;--line:#e9e2cf29;--shadow:0 20px 45px #00000073;--text:#efe9d8;--text-soft:#b7ae95;--card-bg:#1c2518}}:root[data-theme=dark]{--ink:#e9e2cf;--ink-soft:#c9c0a4;--cream:#171f15;--cream-deep:#1e2819;--blush:#d9a49b;--gold:#d4ab6c;--gold-soft:#e3c290;--line:#e9e2cf29;--shadow:0 20px 45px #00000073;--text:#efe9d8;--text-soft:#b7ae95;--card-bg:#1c2518}:root[data-theme=light]{--ink:#20301f;--ink-soft:#3a4a37;--cream:#f7f2e7;--cream-deep:#efe6d3;--blush:#c98f88;--gold:#a97f42;--gold-soft:#c9a06a;--line:#20301f29;--shadow:0 20px 45px #20301f29;--text:#23301f;--text-soft:#5a6650;--card-bg:#fffdf7}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--cream);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}a{color:inherit}::selection{background:var(--gold-soft);color:var(--ink)}.page{--page-w:min(100vw, 560px);max-width:560px;margin:0 auto;position:relative}.sprig{opacity:.85;width:40px;height:auto}.sprig path{stroke:var(--gold)}.hero{text-align:center;min-height:100svh;padding:8vh calc(var(--page-w) * .08) 6vh;background:radial-gradient(circle at 50% 18%, var(--cream-deep) 0%, transparent 55%), var(--cream);flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.hero:before{content:"";border:1px solid var(--line);pointer-events:none;position:absolute;inset:22px}.eyebrow{font-family:var(--sans);letter-spacing:.32em;text-transform:uppercase;color:var(--gold);opacity:0;margin:0 0 22px;font-size:.72rem;animation:.9s ease-out .15s forwards rise}.names{font-family:var(--serif);color:var(--ink);text-wrap:balance;opacity:0;margin:0;font-size:clamp(2.8rem,14vw,4.2rem);font-weight:400;line-height:1.06;animation:1s ease-out .35s forwards rise}.amp{font-family:var(--serif);color:var(--gold-soft);margin:6px 0;font-size:.5em;font-style:italic;display:block}.hero-date{font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--text-soft);opacity:0;margin:26px 0 0;font-size:.95rem;animation:1s ease-out .55s forwards rise}.hero-place{font-family:var(--serif);color:var(--ink-soft);opacity:0;margin:6px 0 0;font-size:1.05rem;font-style:italic;animation:1s ease-out .65s forwards rise}.hero .sprig-wrap{opacity:0;margin-top:34px;animation:1s ease-out .8s forwards rise}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.scroll-cue{letter-spacing:.28em;text-transform:uppercase;color:var(--text-soft);opacity:.75;flex-direction:column;align-items:center;gap:8px;font-size:.65rem;display:flex;position:absolute;bottom:34px;left:50%;transform:translate(-50%)}.scroll-cue .line{background:linear-gradient(var(--gold), transparent);width:1px;height:30px;animation:1.8s ease-in-out infinite drop}@keyframes drop{0%{transform-origin:top;transform:scaleY(.3)}50%{transform-origin:top;transform:scaleY(1)}to{transform-origin:bottom;transform:scaleY(.3)}}section{padding:88px calc(var(--page-w) * .08);position:relative}.reveal{opacity:0;transition:opacity .8s,transform .8s;transform:translateY(24px)}.reveal.in{opacity:1;transform:translateY(0)}.kicker{text-align:center;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin:0 0 16px;font-size:.68rem;display:block}h2{font-family:var(--serif);text-align:center;color:var(--ink);text-wrap:balance;margin:0 0 8px;font-size:clamp(1.8rem,7vw,2.3rem);font-style:italic;font-weight:400}.deck{font-family:var(--sans);color:var(--text-soft);text-align:center;max-width:34ch;margin:0 auto;font-size:.95rem;line-height:1.55}.quote{text-align:center;background:var(--cream-deep)}.quote-text{font-family:var(--serif);color:var(--ink);text-wrap:balance;max-width:30ch;margin:0 auto;font-size:clamp(1.3rem,5.2vw,1.6rem);font-style:italic;line-height:1.5}.quote-text .word{opacity:0;filter:blur(3px);transition:opacity .6s,transform .6s,filter .6s;transition-delay:calc(var(--i,0) * 45ms);display:inline-block;transform:translateY(12px)}.quote.in .quote-text .word{opacity:1;filter:blur();transform:translateY(0)}.quote cite{font-family:var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--text-soft);margin-top:20px;font-size:.7rem;font-style:normal;display:block}.countdown{text-align:center}.count-grid{grid-template-columns:repeat(4,1fr);gap:10px;max-width:420px;margin:36px auto 0;display:grid}.count-cell{background:var(--card-bg);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:4px;padding:16px 4px}.count-num{font-family:var(--serif);color:var(--ink);font-variant-numeric:tabular-nums;font-size:clamp(1.6rem,7vw,2.1rem);display:block}.count-label{letter-spacing:.16em;text-transform:uppercase;color:var(--text-soft);margin-top:4px;font-size:.6rem;display:block}.details-wrap{flex-direction:column;gap:18px;margin-top:40px;display:flex}.detail-card{background:var(--card-bg);border:1px solid var(--line);box-shadow:var(--shadow);text-align:center;border-radius:6px;padding:30px 26px}.detail-card .glyph{width:30px;height:30px;color:var(--gold);margin:0 auto 14px}.detail-card h3{font-family:var(--serif);color:var(--ink);margin:0 0 10px;font-size:1.3rem;font-style:italic;font-weight:400}.detail-card .when{letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin:0 0 12px;font-size:.78rem}.detail-card p{color:var(--text-soft);margin:4px 0;font-size:.95rem;line-height:1.55}.detail-card a.map{letter-spacing:.14em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--gold);margin-top:14px;padding-bottom:2px;font-size:.72rem;text-decoration:none;display:inline-block}.dress{text-align:center;background:var(--cream-deep)}.swatches{justify-content:center;gap:14px;margin:30px 0 22px;display:flex}.swatch{border:1px solid var(--line);width:34px;height:34px;box-shadow:var(--shadow);border-radius:50%}.dress p{color:var(--text-soft);max-width:34ch;margin:0 auto;font-size:.95rem;line-height:1.6}.dress .note{font-family:var(--serif);color:var(--ink);margin-bottom:6px;font-size:1.1rem;font-style:italic}.story-timeline{flex-direction:column;align-items:center;margin-top:30px;display:flex}.story-step{flex-direction:column;align-items:center;width:100%;display:flex}.story-photo{aspect-ratio:.85;width:min(420px,100%);box-shadow:var(--shadow);border-radius:6px}.story-arrow{width:24px;height:40px;color:var(--gold);stroke:currentColor;margin:6px 0}.story-comment{text-align:center;max-width:46ch;margin-bottom:12px}.story-title{font-family:var(--serif);color:var(--ink);margin-bottom:6px;font-size:1.15rem;font-style:italic;display:block}.story-text{color:var(--text-soft);margin:0;font-size:.95rem;line-height:1.6}.story-spacer{height:40px}.tips-list{text-align:left;flex-direction:column;gap:18px;max-width:40ch;margin:28px auto 0;display:flex}.tip{border:1px solid var(--line);border-radius:8px;align-items:center;gap:14px;padding:14px 16px;display:flex}.tip-icon{width:22px;height:22px;color:var(--gold);flex:none}.tip-text{color:var(--text-soft);text-align:left;flex:1;max-width:none;margin:0;font-size:.95rem;line-height:1.55}.rsvp{text-align:center}form{text-align:left;flex-direction:column;gap:16px;margin-top:36px;display:flex}label{letter-spacing:.16em;text-transform:uppercase;color:var(--text-soft);margin-bottom:6px;font-size:.66rem;display:block}input[type=text],input[type=email],select,textarea{width:100%;font-family:var(--sans);background:var(--card-bg);border:1px solid var(--line);color:var(--text);appearance:none;border-radius:4px;padding:12px 14px;font-size:1rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--gold-soft);outline-offset:1px}.optional{text-transform:none;letter-spacing:0;color:var(--text-soft);font-size:.68rem}.stepper{background:var(--card-bg);border:1px solid var(--line);border-radius:4px;justify-content:space-between;align-items:center;gap:20px;width:100%;padding:8px 18px;display:flex}.step-btn{border:1px solid var(--line);width:34px;height:34px;color:var(--ink);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:1.2rem;line-height:1;transition:background .2s,border-color .2s;display:flex}.step-btn:hover{border-color:var(--gold);color:var(--gold)}.step-btn:focus-visible{outline:2px solid var(--gold-soft);outline-offset:2px}.step-btn:disabled{opacity:.35;cursor:not-allowed}.step-value{text-align:center;font-variant-numeric:tabular-nums;color:var(--ink);flex:1;font-size:1.05rem}.radio-row{gap:10px;display:flex}.radio-row input{opacity:0;width:1px;height:1px;position:absolute}.radio-row label.opt{text-align:center;border:1px solid var(--line);text-transform:none;letter-spacing:0;color:var(--text);cursor:pointer;border-radius:4px;flex:1;padding:12px 8px;font-size:.92rem;transition:background .2s,border-color .2s,color .2s}.radio-row input:checked+label.opt{background:var(--ink);border-color:var(--ink);color:var(--cream)}.radio-row input:focus-visible+label.opt{outline:2px solid var(--gold-soft);outline-offset:2px}button[type=submit]{font-family:var(--sans);letter-spacing:.2em;text-transform:uppercase;background:var(--ink);color:var(--cream);cursor:pointer;border:none;border-radius:4px;margin-top:6px;padding:16px;font-size:.78rem;transition:opacity .2s,transform .15s}button[type=submit]:hover{opacity:.88}button[type=submit]:active{transform:scale(.99)}button[type=submit]:focus-visible{outline:2px solid var(--gold-soft);outline-offset:2px}button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.rsvp-note{color:var(--text-soft);text-align:center;margin-top:14px;font-size:.78rem}.rsvp-error{color:var(--blush)}.form-ok{border:1px solid var(--gold-soft);font-family:var(--serif);color:var(--ink);text-align:center;background:var(--card-bg);border-radius:4px;margin-top:18px;padding:16px;font-style:italic;animation:.5s forwards rise}.gift-intro{text-align:center;color:var(--text-soft);max-width:36ch;margin:0 auto;font-size:.95rem;line-height:1.6}.gift-card{background:var(--card-bg);border:1px solid var(--line);max-width:400px;box-shadow:var(--shadow);border-radius:6px;margin:28px auto 0;padding:26px 28px}.gift-field{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 0;display:flex}.gift-field:last-of-type{border-bottom:none}.gift-k{letter-spacing:.16em;text-transform:uppercase;color:var(--text-soft);font-size:.66rem}.gift-v{font-family:var(--sans);color:var(--ink);text-align:right;font-size:.92rem}button.gift-v{cursor:pointer;font-variant-numeric:tabular-nums;border:none;border-bottom:1px dashed var(--gold);background:0 0;padding:4px 0;transition:color .2s}button.gift-v:hover{color:var(--gold)}button.gift-v:focus-visible{outline:2px solid var(--gold-soft);outline-offset:2px}.gift-hint{text-align:center;letter-spacing:.04em;color:var(--text-soft);margin:16px 0 0;font-size:.72rem;transition:color .2s}.gift-hint.copied{color:var(--gold)}footer{text-align:center;padding:70px calc(var(--page-w) * .08) 60px}footer .amp-small{font-family:var(--serif);color:var(--gold);margin-bottom:14px;font-size:1.6rem;font-style:italic;display:block}footer .tag{letter-spacing:.22em;text-transform:uppercase;color:var(--text-soft);font-size:.72rem}footer .hashtag{font-family:var(--serif);color:var(--ink);margin-top:6px;font-size:1rem;font-style:italic}
