@font-face{font-family:Cormorant;src:url(/fonts/cormorant.woff2)format("woff2-variations");font-weight:300 700;font-style:normal;font-display:swap}@font-face{font-family:Mont;src:url(/fonts/montserrat.woff2)format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap}:root{--ice:#eef2fa;--ice-deep:#e2e9f6;--silver:#8fa3c8;--silver-soft:#b9c7e2;--silver-ink:#5a6d95;--night:#24304a;--night-soft:#46557a;--serif:"Cormorant", "Georgia", serif;--sans:"Mont", "Segoe UI", sans-serif;--ease-out:cubic-bezier(.22, 1, .36, 1);--content-max:430px;--glass-bg:#ffffff8c;--glass-line:#fffc;--glass-edge:#8fa3c84d}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--sans);color:var(--night);background:radial-gradient(130% 55% at 50% -8%, #d5dff2 0%, transparent 62%), radial-gradient(100% 40% at 8% 40%, #d5dff28c, transparent 60%), radial-gradient(110% 45% at 95% 74%, #d5dff280, transparent 60%), var(--ice);background-attachment:fixed;font-weight:360;overflow-x:hidden}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:0}.page{z-index:2;max-width:var(--content-max);margin:0 auto;position:relative}.snow{z-index:1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.snow-layer{background-repeat:repeat;position:absolute;inset:0}.s1{opacity:.9;background-image:radial-gradient(circle at 34px 48px,#fffffff2 2.3px,#0000 3.4px),radial-gradient(circle at 168px 196px,#e2eaf8e6 1.9px,#0000 3px),radial-gradient(circle at 244px 316px,#ffffffd9 2.5px,#0000 3.6px);background-size:270px 360px;animation:15s linear infinite snow-fall-1}.s2{opacity:.7;background-image:radial-gradient(circle at 96px 60px,#fffc 1.7px,#0000 2.7px),radial-gradient(circle at 232px 236px,#b9c7e2bf 1.5px,#0000 2.5px),radial-gradient(circle at 30px 392px,#e2eaf8b3 1.7px,#0000 2.7px);background-size:320px 460px;animation:26s linear infinite snow-fall-2}.s3{opacity:.55;background-image:radial-gradient(circle at 210px 130px,#b9c7e2a6 1.2px,#0000 2.1px),radial-gradient(circle at 70px 400px,#ffffff8c 1.1px,#0000 2px);background-size:380px 540px;animation:40s linear infinite snow-fall-3}@keyframes snow-fall-1{to{background-position:0 360px}}@keyframes snow-fall-2{to{background-position:0 460px}}@keyframes snow-fall-3{to{background-position:0 540px}}.hero{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100svh;padding:90px 26px 100px;display:flex;position:relative;overflow:hidden}.frost{color:var(--silver);opacity:.75;position:absolute}.f-tl{top:10px;left:10px}.f-tr{top:10px;right:10px;transform:scaleX(-1)}.frost path{stroke-dasharray:1;stroke-dashoffset:1px;animation:frost-draw 2.4s var(--ease-out) forwards}.frost path:nth-of-type(2n){animation-delay:.5s}.frost path:nth-of-type(3n){animation-delay:.9s}.frost circle{opacity:0;animation:.8s 1.9s forwards frost-bead}@keyframes frost-draw{to{stroke-dashoffset:0}}@keyframes frost-bead{to{opacity:1}}.hero-inner{z-index:2;position:relative}.hero-eyebrow{letter-spacing:.42em;text-indent:.42em;text-transform:uppercase;color:var(--silver-ink);font-size:11px;font-weight:500}.hero-names{font-family:var(--serif);color:var(--night);flex-direction:column;align-items:center;margin-top:26px;font-size:clamp(52px,15.5vw,70px);font-weight:520;line-height:1.02;display:flex}.silver{background:linear-gradient(118deg,#2c3d66 0%,#5d7099 34%,#aebfde 47%,#ccd8ee 51%,#7288b1 62%,#2c3d66 100%);color:#0000;-webkit-background-clip:text;background-clip:text}.silver-soft{background:linear-gradient(118deg,#3d4f78,#7b90ba 45%,#52658f);color:#0000;-webkit-background-clip:text;background-clip:text}.hero-amp{color:var(--silver-ink);flex-direction:column;align-items:center;gap:6px;margin:16px 0;display:flex}.amp-word{font-family:var(--serif);font-size:19px;font-style:italic;font-weight:440}.hero-date{font-family:var(--serif);color:var(--night);font-variant-numeric:tabular-nums;margin-top:30px;font-size:25px;font-weight:500}.hero-sub{letter-spacing:.26em;text-indent:.26em;text-transform:uppercase;color:var(--night-soft);font-variant-numeric:tabular-nums;margin-top:8px;font-size:11.5px;font-weight:460}.thaw{opacity:0;filter:blur(7px);animation:thaw-in 1.2s var(--ease-out) forwards;transform:translateY(14px)}@keyframes thaw-in{to{opacity:1;filter:blur();transform:none}}.scroll-hint{color:var(--silver-ink);letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;flex-direction:column;align-items:center;gap:7px;font-size:10px;font-weight:500;display:flex;position:absolute;bottom:26px;left:0;right:0}.scroll-hint svg{animation:2.6s ease-in-out infinite hint-bob}@keyframes hint-bob{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}.section{z-index:2;padding:54px 24px;position:relative}.center{text-align:center}.label{letter-spacing:.38em;text-indent:.38em;text-transform:uppercase;color:var(--silver-ink);font-size:11px;font-weight:500}.section-title{font-family:var(--serif);color:var(--night);margin-top:14px;font-size:40px;font-weight:540;line-height:1.08}.glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(14px)saturate(1.25);border:1px solid var(--glass-line);box-shadow:0 0 0 1px var(--glass-edge), 0 22px 46px -24px #24304a59, inset 0 1px 0 #ffffffe6;border-radius:20px}.invite-card{padding:36px 28px 32px}.flake-row{color:var(--silver);justify-content:center;align-items:center;gap:14px;display:flex}.flake-row.dim{opacity:.7;margin-top:34px}.invite-guest{font-family:var(--serif);color:var(--night);margin-top:20px;font-size:24px;font-style:italic;font-weight:500}.invite-quote{font-family:var(--serif);color:var(--night);margin-top:16px;font-size:20.5px;font-weight:460;line-height:1.62}.invite-note{letter-spacing:.04em;color:var(--night-soft);margin-top:18px;font-size:12.5px;font-weight:400;line-height:1.8}.date-big{font-family:var(--serif);color:var(--night);font-variant-numeric:tabular-nums;margin-top:18px;font-size:31px;font-weight:540}.date-sub{letter-spacing:.22em;text-indent:.22em;text-transform:uppercase;color:var(--night-soft);font-variant-numeric:tabular-nums;margin-top:7px;font-size:11.5px;font-weight:460}.countdown{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:28px;display:grid}.cd-card{border-radius:16px;flex-direction:column;align-items:center;gap:5px;padding:17px 6px 14px;display:flex}.cd-num{font-family:var(--serif);color:var(--night);font-variant-numeric:tabular-nums;font-size:32px;font-weight:580;line-height:1}.cd-label{letter-spacing:.16em;text-transform:uppercase;color:var(--silver-ink);font-size:9.5px;font-weight:500}.cd-done{font-family:var(--serif);color:var(--silver-ink);margin-top:34px;font-size:34px;font-style:italic;font-weight:520}.timeline{margin-top:34px;padding:6px 0 6px 44px;position:relative}.timeline:before{content:"";background:linear-gradient(180deg, transparent, var(--silver) 12%, var(--silver) 88%, transparent);width:1px;position:absolute;top:14px;bottom:14px;left:15px}.tl-item{padding:9px 0;position:relative}.tl-node{width:31px;height:31px;color:var(--silver-ink);background:var(--ice);transition:color .3s ease, transform .4s var(--ease-out);border-radius:50%;place-items:center;display:grid;position:absolute;top:50%;left:-44px;transform:translateY(-50%)}.tl-node.on{color:var(--night);transform:translateY(-50%)rotate(30deg)scale(1.15)}.tl-btn{text-align:left;width:100%;min-height:64px;transition:transform .35s var(--ease-out), box-shadow .35s ease;-webkit-tap-highlight-color:transparent;border-radius:16px;align-items:center;gap:14px;padding:13px 16px;display:flex}.tl-btn:hover{box-shadow:0 0 0 1px var(--glass-edge), 0 26px 50px -22px #24304a6b, inset 0 1px 0 #fffffff2;transform:translateY(-2px)}.tl-btn:focus-visible{outline:2px solid var(--night);outline-offset:2px}.tl-time{letter-spacing:.1em;color:var(--silver-ink);font-variant-numeric:tabular-nums;flex:none;font-size:12px;font-weight:620}.tl-body{flex-direction:column;gap:2px;min-width:0;display:flex}.tl-title{font-family:var(--serif);color:var(--night);font-size:22px;font-weight:560;line-height:1.15}.tl-note{letter-spacing:.03em;color:var(--night-soft);font-size:11px;font-weight:400}.tl-more{color:var(--silver);flex:none;margin-left:auto}.modal{z-index:60;-webkit-backdrop-filter:blur(10px);background:#24304a66;justify-content:center;align-items:center;padding:26px;animation:.28s modal-fade;display:flex;position:fixed;inset:0}.modal-card{text-align:center;-webkit-backdrop-filter:blur(18px)saturate(1.3);width:100%;max-width:330px;box-shadow:0 0 0 1px var(--glass-edge), 0 36px 74px -26px #0e162a99;animation:modal-pop .34s var(--ease-out);background:#fafcffe0;border:1px solid #ffffffe6;border-radius:22px;padding:36px 28px 30px;position:relative}@keyframes modal-fade{0%{opacity:0}}@keyframes modal-pop{0%{opacity:0;transform:translateY(14px)scale(.95)}}.modal-x{width:44px;height:44px;color:var(--night-soft);border-radius:50%;place-items:center;transition:background .25s,color .25s;display:grid;position:absolute;top:8px;right:8px}.modal-x:hover,.modal-x:focus-visible{color:var(--night);background:#8fa3c82e}.modal-x:focus-visible{outline:2px solid var(--night);outline-offset:1px}.modal-flake{color:var(--silver);display:inline-flex}.modal-time{letter-spacing:.26em;text-indent:.26em;color:var(--silver-ink);font-variant-numeric:tabular-nums;margin-top:12px;font-size:11px;font-weight:620;display:block}.modal-title{font-family:var(--serif);color:var(--night);margin-top:8px;font-size:30px;font-weight:560}.modal-detail{color:var(--night-soft);margin-top:14px;font-size:13.5px;font-weight:400;line-height:1.85}.venue-city{letter-spacing:.22em;text-indent:.22em;text-transform:uppercase;color:var(--night-soft);margin-top:8px;font-size:11.5px;font-weight:460}.venue-card{border-radius:22px;margin-top:28px;padding:10px;position:relative}.venue-card svg{border-radius:14px;width:100%;height:auto;display:block}.venue-photo{aspect-ratio:320/150;object-fit:cover;border-radius:14px;width:100%;height:auto;display:block}.venue-veil{color:#eef2fa;letter-spacing:.22em;text-indent:.22em;font-variant-numeric:tabular-nums;background:linear-gradient(#0000,#141c30a6);border-radius:0 0 14px 14px;padding:26px 14px 10px;font-size:11.5px;font-weight:500;position:absolute;bottom:10px;left:10px;right:10px}.btn-row{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:24px;display:flex}.btn-row+.btn-row{margin-top:10px}.btn{letter-spacing:.08em;min-height:46px;color:var(--night);transition:background .25s ease, border-color .25s ease, transform .25s var(--ease-out);-webkit-tap-highlight-color:transparent;background:#ffffff80;border:1px solid #5a6d9573;border-radius:999px;align-items:center;gap:8px;padding:12px 20px;font-size:12.5px;font-weight:500;display:inline-flex}.btn svg{width:16px;height:16px}.btn:hover{border-color:var(--night);background:#ffffffd9;transform:translateY(-1px)}.btn:focus-visible{outline:2px solid var(--night);outline-offset:2px}.btn.solid{background:var(--night);border-color:var(--night);color:var(--ice)}.btn.solid:hover{background:#1a2438}.footer{text-align:center;z-index:2;padding:60px 24px 34px;position:relative}.footer:before{content:"";background:linear-gradient(90deg, transparent, var(--silver), transparent);width:72px;height:1px;margin:0 auto 40px;display:block}.monogram{color:var(--night)}.mg-letter{font-family:var(--serif);fill:currentColor;font-size:33px;font-weight:520}.footer-respect{letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;color:var(--night-soft);margin-top:20px;font-size:11px;font-weight:500}.footer-family{font-family:var(--serif);margin-top:10px;font-size:32px;font-style:italic;font-weight:540}.footer-date{letter-spacing:.22em;text-indent:.22em;color:var(--night-soft);font-variant-numeric:tabular-nums;margin-top:22px;font-size:11px;font-weight:460}.footer-fineprint{letter-spacing:.06em;color:var(--night-soft);opacity:.85;margin-top:8px;font-size:11px;font-weight:400}.reveal{opacity:0;transition:opacity .9s var(--ease-out) var(--d,0s), transform .9s var(--ease-out) var(--d,0s), filter .9s var(--ease-out) var(--d,0s);will-change:opacity, transform;transform:translateY(22px)}.reveal.r-frost{filter:blur(7px);transform:translateY(12px)scale(.99)}.reveal.r-up{transform:translateY(28px)}.reveal.in{opacity:1;filter:blur();transform:none}@media (prefers-reduced-motion:reduce){.snow{display:none}.thaw{opacity:1;filter:none;animation:none;transform:none}.frost path{stroke-dashoffset:0;animation:none}.frost circle{opacity:1;animation:none}.scroll-hint svg{animation:none}.reveal,.reveal.r-frost,.reveal.r-up{opacity:1;filter:none;transition:none;transform:none}.modal,.modal-card{animation:none}html{scroll-behavior:auto}}@media (min-width:480px){.section-title{font-size:44px}}
