:root{--night-950:#03060f;--night-900:#050a1c;--night-800:#08122b;--night-700:#0d1a3d;--line:#aac3ff24;--gold:#f5c86b;--gold-hi:#ffe3a3;--gold-deep:#c8912e;--berry:#e63950;--wine:#7a1f2b;--pine:#1f9d5c;--ice:#cfe3ff;--text:#eef4ff;--muted:#a9b8d9;--paper:#fbf3e2;--ink:#3b2614;--font-display:"Cinzel", "Times New Roman", serif;--font-script:"Great Vibes", "Snell Roundhand", cursive;--font-serif:"Cormorant Garamond", Georgia, serif;--font-body:"Nunito", system-ui, -apple-system, sans-serif;--radius:22px;--gutter:clamp(16px, 4vw, 40px);--gold-text:linear-gradient(180deg, #fff6dc 0%, #ffe3a3 35%, #f5c86b 60%, #c8912e 100%);--ease-out:cubic-bezier(.2, .7, .2, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:90px}body{background:var(--night-900);color:var(--text);font:400 17px/1.6 var(--font-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;overflow-x:hidden}[hidden]{display:none!important}a{color:inherit}img,svg{display:block}::selection{background:#f5c86b59}:focus-visible{outline:2px solid var(--gold-hi);outline-offset:3px;border-radius:8px}#scene,#fx{width:100%;height:100lvh;display:block;position:fixed;top:0;left:0}#scene{z-index:0}#fx{z-index:50;pointer-events:none}#sleigh{z-index:1;pointer-events:none;opacity:0;filter:drop-shadow(0 0 6px #ffdc96d9)drop-shadow(0 0 22px #ffc87859);width:220px;transition:opacity .6s;position:fixed;top:0;left:0}#sleigh.is-flying{opacity:1}main{z-index:2;position:relative}#veil{z-index:100;background:radial-gradient(ellipse at 50% 40%, #0d1a3d 0%, var(--night-950) 70%);place-items:center;transition:opacity 1s,visibility 1s;display:grid;position:fixed;inset:0}.veil-star{width:56px;fill:var(--gold);filter:drop-shadow(0 0 18px #f5c86bcc);animation:1.4s ease-in-out infinite veil-pulse}body:not(.is-loading) #veil{opacity:0;visibility:hidden}@keyframes veil-pulse{50%{filter:drop-shadow(0 0 30px #f5c86b);transform:scale(1.15)rotate(36deg)}}body.no-webgl{background:radial-gradient(ellipse at 50% 0%, #1a2f66 0%, var(--night-900) 60%) fixed}.btn{font:800 15px/1.2 var(--font-body);letter-spacing:.01em;cursor:pointer;isolation:isolate;transition:transform .25s var(--ease-out), box-shadow .25s, background .25s, opacity .2s;-webkit-user-select:none;user-select:none;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:13px 22px;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn:active{transform:translateY(1px)scale(.98)}.btn-gold{color:#2a1a04;background:linear-gradient(#fff0c4 0%,#f5c86b 55%,#d9a243 100%);box-shadow:0 12px 32px -12px #f5c86bb3,inset 0 1px #ffffffb3}.btn-gold:after{content:"";z-index:-1;transition:transform .8s var(--ease-out);background:linear-gradient(110deg,#0000 30%,#ffffffa6 50%,#0000 70%);position:absolute;inset:0;transform:translate(-120%)}.btn-gold:hover{transform:translateY(-2px);box-shadow:0 18px 40px -12px #f5c86be6,0 0 0 4px #f5c86b1f,inset 0 1px #ffffffb3}.btn-gold:hover:after{transform:translate(120%)}.btn-ghost{color:var(--text);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff12;box-shadow:inset 0 0 0 1px #ffffff29}.btn-ghost:hover{background:#ffffff21;box-shadow:inset 0 0 0 1px #ffe3a373}.btn-sm{padding:10px 16px;font-size:14px}.btn-lg{width:100%;padding:17px 28px;font-size:17px}.btn:disabled,.btn.is-busy{opacity:.7;cursor:progress}.btn.is-busy{animation:1s ease-in-out infinite busy}@keyframes busy{50%{opacity:.45}}.hero{touch-action:pan-y;height:340svh;position:relative}.hero-sticky{pointer-events:none;height:100svh;position:sticky;top:0;overflow:hidden}.hero-sticky a,.hero-sticky button,.hero-sticky .rsvp{pointer-events:auto}.hero-sticky .is-gone{visibility:hidden}.hero-sticky .is-gone,.hero-sticky .is-gone *{animation-play-state:paused!important}.hero-title{padding:0 var(--gutter) 6svh;text-align:center;will-change:transform, opacity, filter;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.eyebrow{font:600 clamp(11px, 1.4vw, 14px) / 1.4 var(--font-display);letter-spacing:.32em;text-transform:uppercase;color:var(--gold-hi);opacity:0;margin:0 0 6px}body:not(.is-loading) .eyebrow{animation:rise 1.4s var(--ease-out) .3s forwards}h1{flex-direction:column;align-items:center;margin:0;line-height:1;display:flex}.h1-navidad{font:600 clamp(26px, 5.4vw, 60px) / 1 var(--font-display);letter-spacing:.5em;background:var(--gold-text);color:#0000;opacity:0;-webkit-background-clip:text;background-clip:text;margin-right:-.5em}body:not(.is-loading) .h1-navidad{animation:rise 1.4s var(--ease-out) .5s forwards}.h1-family{font:400 clamp(96px, 23vw, 250px) / .95 var(--font-script);background:linear-gradient(100deg,#c8912e 0%,#ffe3a3 22%,#fff8e6 30%,#f5c86b 42%,#c8912e 62%,#ffe3a3 82%,#c8912e 100%) 0 0/250% 100%;color:#0000;filter:drop-shadow(0 0 28px #f5c86b73)drop-shadow(0 4px 8px #00000080);opacity:0;-webkit-background-clip:text;background-clip:text;margin:-.18em -.3em -.26em;padding:.22em .45em .32em}body:not(.is-loading) .h1-family{animation:write-in 2.2s var(--ease-out) .7s forwards, shimmer 7s linear 3s infinite}.hero-date{font:italic 500 clamp(20px, 2.6vw, 30px) / 1.3 var(--font-serif);color:var(--ice);text-shadow:0 2px 20px #000c;opacity:0;margin:4px 0 0}body:not(.is-loading) .hero-date{animation:rise 1.4s var(--ease-out) 1.4s forwards}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes write-in{0%{opacity:0;clip-path:inset(-40% 100% -40% -20%)}10%{opacity:1}to{opacity:1;clip-path:inset(-40% -20%)}}@keyframes shimmer{to{background-position:-250% 0}}.hero-caption{text-align:center;width:min(92vw,900px);font:italic 500 clamp(28px, 4.6vw, 58px) / 1.15 var(--font-serif);color:var(--text);text-shadow:0 2px 30px #03060fe6,0 0 60px #03060f99;opacity:0;margin:0;position:absolute;top:13svh;left:50%;translate:-50%}.hero-caption em{color:var(--gold-hi);font-style:italic}.hero-final{padding:max(28px, 6svh) var(--gutter) max(22px, 4svh);text-align:center;opacity:0;flex-direction:column;justify-content:space-between;align-items:center;display:flex;position:absolute;inset:0}.hero-final:not(.is-on),.hero-final:not(.is-on) *{pointer-events:none!important}.hero-final-name{font:600 clamp(14px, 1.6vw, 18px) / 1 var(--font-display);letter-spacing:.4em;text-transform:uppercase;color:var(--gold-hi);margin:0}.hero-final-name em{font:400 clamp(46px, 5.4vw, 74px) / 1 var(--font-script);letter-spacing:0;text-transform:none;background:var(--gold-text);color:#0000;filter:drop-shadow(0 0 20px #f5c86b66);-webkit-background-clip:text;background-clip:text;margin:-.18em 0 -.24em;padding:.18em .4em .28em;display:block}.hero-final-date{font:italic 500 clamp(18px, 2vw, 24px) / 1.3 var(--font-serif);color:var(--ice);text-shadow:0 2px 16px #000000e6;margin:6px 0 0}.hero-final-bottom{flex-direction:column;align-items:center;gap:16px;display:flex}.countdown{box-shadow:inset 0 0 0 1px var(--line), 0 20px 60px -20px #000c;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(#0e1a3c8c,#060c1eb3);border-radius:24px;flex-direction:column;align-items:center;padding:12px clamp(18px,3vw,30px) 14px;display:inline-flex}.countdown-label{font:600 11px/1 var(--font-display);letter-spacing:.45em;text-transform:uppercase;color:var(--muted);margin:0 -.45em 4px 0}.countdown-units{gap:clamp(12px,3vw,28px);display:flex}.countdown.is-live .countdown-units,.countdown.is-live .countdown-label{display:none}.countdown-done{font:italic 600 clamp(22px, 3vw, 32px) / 1.2 var(--font-serif);color:var(--gold-hi);margin:0}.cd-unit{flex-direction:column;align-items:center;min-width:2.4em;display:flex}.cd-num{font:600 clamp(30px, 5.2vw, 54px) / 1.05 var(--font-display);font-variant-numeric:tabular-nums;background:var(--gold-text);color:#0000;filter:drop-shadow(0 0 14px #f5c86b59);-webkit-background-clip:text;background-clip:text;display:inline-block}.cd-num.tick{animation:tick .5s var(--ease-out)}@keyframes tick{0%{opacity:0;transform:translateY(-35%)}}.cd-lbl{font:700 10px/1 var(--font-body);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.hero-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.calendar-menu{position:relative}.calendar-pop{min-width:220px;box-shadow:inset 0 0 0 1px var(--line), 0 20px 50px #0009;text-align:left;pointer-events:auto;background:#0a1430f2;border-radius:16px;padding:6px;position:absolute;bottom:calc(100% + 10px);left:50%;translate:-50%}.calendar-pop a{border-radius:11px;padding:11px 14px;font-size:15px;font-weight:700;text-decoration:none;display:block}.calendar-pop a:hover{background:#ffffff14}.scroll-hint{font:600 11px/1 var(--font-display);letter-spacing:.35em;text-transform:uppercase;color:var(--gold-hi);white-space:nowrap;flex-direction:column;align-items:center;gap:12px;margin-right:-.35em;display:flex;position:absolute;bottom:max(26px,5svh);left:50%;translate:-50%}.scroll-hint>*{opacity:0}body:not(.is-loading) .scroll-hint>*{animation:rise 1.2s var(--ease-out) 2s both}.scroll-hint i{background:linear-gradient(#ffe3a399,#0000);width:1px;height:46px;position:relative;overflow:hidden}.scroll-hint i:after{content:"";background:var(--gold-hi);width:5px;height:10px;box-shadow:0 0 10px var(--gold);border-radius:3px;animation:1.8s ease-in-out infinite drip;position:absolute;top:-10px;left:-2px}@keyframes drip{to{transform:translateY(60px)}}.topnav{z-index:40;box-shadow:inset 0 0 0 1px var(--line), 0 14px 40px -10px #000000b3;-webkit-backdrop-filter:blur(16px)saturate(1.3);backdrop-filter:blur(16px)saturate(1.3);transition:transform .6s var(--ease-out);background:#070e22b8;border-radius:999px;align-items:center;gap:18px;padding:7px 7px 7px 20px;display:flex;position:fixed;top:14px;left:50%;transform:translate(-50%,-160%)}.topnav.is-on{transform:translate(-50%)}.topnav a{text-decoration:none}.topnav-brand{font:600 14px/1 var(--font-display);letter-spacing:.18em;color:var(--gold-hi);white-space:nowrap}.topnav-links{align-items:center;gap:4px;display:flex}.topnav-links a{color:var(--muted);border-radius:999px;padding:9px 13px;font-size:14px;font-weight:700;transition:color .2s,background .2s}.topnav-links a:hover{color:var(--text);background:#ffffff12}.topnav-links .topnav-cta{color:#2a1a04;background:linear-gradient(#fff0c4,#f5c86b 60%,#d9a243)}.topnav-links .topnav-cta:hover{color:#2a1a04;background:linear-gradient(#fff6dc,#ffd98a 60%,#e5b055)}.fab{left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:40;font:800 16px/1 var(--font-body);color:#2a1a04;white-space:nowrap;transition:transform .5s var(--ease-out);background:linear-gradient(#fff0c4,#f5c86b 55%,#d9a243);border-radius:999px;padding:15px 26px;text-decoration:none;display:none;position:fixed;transform:translate(-50%,180%);box-shadow:0 14px 34px -8px #f5c86b99,0 0 0 6px #f5c86b1a}.fab.is-on{transform:translate(-50%)}.section{padding:clamp(90px, 16vh, 170px) var(--gutter) clamp(30px, 6vh, 60px);position:relative}.section>*{max-width:680px;margin-left:auto;margin-right:auto}.section-narrow>*{max-width:560px}.section-head{text-align:center;margin-bottom:clamp(26px,4vh,40px)}.kicker{font:600 12px/1 var(--font-display);letter-spacing:.42em;text-transform:uppercase;color:var(--gold);margin:0 0 10px}.kicker:before,.kicker:after{content:"✦";vertical-align:2px;opacity:.7;margin:0 .8em;font-size:9px}h2{font:600 clamp(36px, 5.2vw, 60px) / 1.05 var(--font-serif);letter-spacing:-.005em;color:var(--text);text-shadow:0 4px 40px #03060fcc;margin:0}.section-sub{max-width:34em;color:var(--muted);margin:14px auto 0;font-size:17px}.section-sub b{color:var(--gold-hi)}.reveal{opacity:0;transition:opacity .9s ease, translate 1.1s var(--ease-out);transition-delay:calc(var(--i,0) * 90ms);translate:0 34px}.reveal.in{opacity:1;translate:0}.card{border-radius:var(--radius);box-shadow:inset 0 0 0 1px var(--line), inset 0 1px 0 #ffffff12, 0 30px 70px -30px #000000d9;background:linear-gradient(#122048db 0%,#080f26e6 100%);position:relative}.card:before{content:"";background:linear-gradient(90deg,#0000,#ffe3a38c,#0000);height:1px;position:absolute;top:0;left:12%;right:12%}@media (width>=1000px) and (aspect-ratio>=23/20){.section>*,.section-narrow>*{max-width:min(640px,50vw);margin-left:clamp(32px,7vw,140px);margin-right:0}.section-head{text-align:left}.section-sub{margin-left:0}.kicker:before{content:none}.scroll,.letter{margin-left:clamp(32px,7vw,140px)}}.letter{color:var(--ink);transform-origin:50% 0;transition:transform 1.6s cubic-bezier(.25, .9, .3, 1.05), opacity 1s ease, translate 1.1s var(--ease-out);background:radial-gradient(at 20% 10%,#ffffffb3,#0000 50%),radial-gradient(at 90% 100%,#c4965038,#0000 55%),radial-gradient(at 0 100%,#c496502e,#0000 45%),linear-gradient(#fdf7ea,#f5e7c8);border-radius:6px;padding:clamp(36px,6vw,60px) clamp(26px,5vw,56px) clamp(70px,9vw,90px);position:relative;transform:perspective(1600px)rotateX(-72deg);box-shadow:0 40px 80px -30px #000000e6,0 0 0 1px #a06e2840,0 0 80px -20px #f5c86b40}.letter.in{transform:perspective(1600px)rotateX(0)}.letter:before,.letter:after{content:"";pointer-events:none;border:1px solid #a06e2861;border-radius:3px;position:absolute}.letter:before{inset:12px}.letter:after{border-color:#a06e282e;inset:17px}.letter-date{text-align:right;font:italic 500 18px/1.3 var(--font-serif);color:#3b2614a6;margin:0 0 18px}.letter-body p{font:500 clamp(19px, 2vw, 22px) / 1.55 var(--font-serif);margin:0 0 16px}.letter-body p:first-child{font:400 clamp(32px, 4vw, 42px) / 1.2 var(--font-script);color:var(--wine);margin-bottom:14px}.letter-sign{text-align:right;font:400 clamp(36px, 4.6vw, 50px) / 1.15 var(--font-script);color:var(--wine);margin:10px 0 0}.seal{opacity:0;background:radial-gradient(circle at 34% 30%,#ff7d8d 0%,#d2304a 30%,#9e1830 65%,#6a0d1f 100%);border-radius:46% 54% 48% 52%/52% 46% 54% 48%;place-items:center;width:86px;height:86px;transition:transform .5s cubic-bezier(.3,1.6,.5,1) 1.5s,opacity .3s 1.5s;display:grid;position:absolute;bottom:-38px;left:50%;transform:scale(1.8)rotate(-30deg);box-shadow:0 10px 24px #50000f8c,inset 0 -6px 12px #00000059,inset 0 4px 8px #ffb4be59}.seal:before{content:"";border:2px solid #ffbec859;border-radius:50%;position:absolute;inset:10px;box-shadow:inset 0 2px 4px #0000004d}.seal span{font:700 34px/1 var(--font-display);color:#ffd7dce6;text-shadow:0 -1px #00000073,0 1px #ffffff40}.letter.in .seal{opacity:1;transform:scale(1)rotate(-8deg)}.details{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.detail{padding:24px 24px 26px}.detail-wide{grid-column:1/-1}.detail-icon{fill:none;width:34px;height:34px;stroke:var(--gold);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 8px #f5c86b73);margin-bottom:14px}.detail-label{font:600 12px/1 var(--font-display);letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin:0 0 6px}.detail-value{font:600 clamp(24px, 2.6vw, 30px) / 1.15 var(--font-serif);color:var(--text);margin:0}.detail-value-sm{font:600 20px/1.35 var(--font-serif)}.detail-sub{color:var(--muted);margin:8px 0 0;font-size:15px}.detail-ref{color:var(--muted);margin:6px 0 0;font-size:14px;font-style:italic}.map{box-shadow:inset 0 0 0 1px var(--line);border-radius:16px;margin-top:18px;overflow:hidden}.map iframe{filter:invert(.9)hue-rotate(185deg)saturate(.7)brightness(.92)contrast(.95);border:0;width:100%;height:240px;display:block}.place-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.swatches{gap:8px;margin-top:14px;display:flex}.swatches i{background:radial-gradient(circle at 35% 30%, #ffffffb3 0 8%, var(--c) 40%);width:22px;height:22px;box-shadow:0 0 0 2px #ffffff24, 0 0 14px color-mix(in srgb, var(--c) 50%, transparent);border-radius:50%}.tilt{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .35s var(--ease-out), opacity .9s ease, translate 1.1s var(--ease-out)}.tilt:after{content:"";border-radius:inherit;pointer-events:none;background:radial-gradient(circle at var(--gx,50%) var(--gy,0%), #fff0c824, transparent 55%);opacity:0;transition:opacity .3s;position:absolute;inset:0}.tilt:hover:after{opacity:1}.scroll{filter:drop-shadow(0 30px 50px #0009);max-width:580px;position:relative}.scroll-roll{z-index:2;background:linear-gradient(#8f6a3b 0%,#f3e2bd 30%,#fbf0d6 45%,#d6b27a 70%,#7d5a2f 100%);border-radius:17px;height:34px;margin:0 -16px;position:relative;box-shadow:0 6px 12px #00000059}.scroll-roll:before,.scroll-roll:after{content:"";background:radial-gradient(circle at 35% 30%,#ff8b9a,#c8243d 55%,#6a0d1f);border-radius:50%;width:22px;height:22px;position:absolute;top:50%;translate:0 -50%;box-shadow:0 2px 6px #00000080}.scroll-roll:before{left:-10px}.scroll-roll:after{right:-10px}.scroll-paper{max-height:0;color:var(--ink);background:radial-gradient(at 50% 0,#78501e2e,#0000 25%),radial-gradient(at 50% 100%,#78501e2e,#0000 25%),radial-gradient(at 10%,#c4965033,#0000 40%),linear-gradient(90deg,#ecd9b0,#fbf1da 12%,#fdf6e6 50%,#fbf1da 88%,#ecd9b0);transition:max-height 2.2s cubic-bezier(.55,.05,.3,1) .2s;overflow:hidden}.scroll.in .scroll-paper{max-height:2400px}.scroll-inner{text-align:center;padding:30px clamp(20px,5vw,46px) 26px}.scroll-head{font:700 12px/1 var(--font-display);letter-spacing:.4em;text-transform:uppercase;color:#9e1830;margin:0}.scroll-title{font:600 clamp(26px, 3.6vw, 34px) / 1.1 var(--font-serif);margin:10px 0 2px}.scroll-year{font:400 26px/1 var(--font-script);color:var(--wine);margin:0 0 18px}.scroll-names{text-align:left;margin:0;padding:0;list-style:none}.kid{width:100%;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:12px;padding:6px 10px;transition:background .2s;display:flex}.kid:hover{background:#a06e281a}.kid-emoji{background:radial-gradient(circle at 35% 30%, #fff, color-mix(in srgb, var(--kid) 55%, white) 60%, var(--kid));width:42px;height:42px;box-shadow:0 0 0 2px #ffffffb3, 0 0 16px color-mix(in srgb, var(--kid) 70%, transparent);opacity:0;transition:transform .6s cubic-bezier(.3, 1.7, .5, 1) calc(1.2s + var(--i) * .45s), opacity .3s ease calc(1.2s + var(--i) * .45s);border-radius:50%;flex:none;place-items:center;font-size:22px;display:grid;transform:scale(.3)}.kid-name{font:400 clamp(34px, 4.6vw, 44px) / 1.25 var(--font-script);color:var(--ink);white-space:nowrap;clip-path:inset(-30% 100% -40% -15%);transition:clip-path 1.1s cubic-bezier(.5, 0, .4, 1) calc(1.3s + var(--i) * .45s);padding-right:.15em}.kid-dots{border-bottom:2px dotted #5a3c1e4d;flex:1;align-self:center;min-width:12px;margin-top:12px}.stamp{font:700 11px/1 var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:#c8243d;mix-blend-mode:multiply;opacity:0;transition:transform .32s cubic-bezier(.5, 0, .75, 0) calc(2.1s + var(--i) * .45s), opacity .2s ease calc(2.1s + var(--i) * .45s);border:2px solid #c8243d;border-radius:6px;flex:none;padding:5px 9px 4px;transform:rotate(-9deg)scale(2.6)}.scroll.in .kid-emoji{opacity:1;transform:none}.scroll.in .kid-name{clip-path:inset(-30% -15% -40%)}.scroll.in .stamp{opacity:.85;transform:rotate(-9deg)scale(1)}.kid.is-tapped .kid-emoji{animation:.7s cubic-bezier(.3,1.6,.5,1) hop}@keyframes hop{40%{transform:translateY(-14px)scale(1.25)rotate(-12deg)}}.scroll-foot{border-top:1px solid #a06e2840;justify-content:space-between;align-items:flex-end;gap:12px;margin-top:22px;padding-top:14px;display:flex}.scroll-sign{font:400 40px/1 var(--font-script);color:var(--wine);margin:0}.scroll-place{font:700 11px/1.3 var(--font-display);letter-spacing:.25em;text-transform:uppercase;color:#3b261499;text-align:right;margin:0 0 6px}.timeline{--fill:0;margin:0;padding:0;list-style:none;position:relative}.timeline:before,.timeline-fill{content:"";background:#ffffff1a;border-radius:2px;width:2px;position:absolute;top:28px;bottom:28px;left:27px}.timeline-fill{height:calc((100% - 56px) * var(--fill));background:linear-gradient(180deg, var(--gold-hi), var(--gold));display:block;bottom:auto;box-shadow:0 0 14px #f5c86bcc}.tl-item{grid-template-columns:56px minmax(0,1fr);align-items:start;gap:16px;margin-bottom:16px;display:grid;position:relative}.tl-dot{z-index:1;background:radial-gradient(circle at 35% 30%,#1d3270,#0a1532);border-radius:50%;place-items:center;width:56px;height:56px;font-size:24px;display:grid;position:relative;box-shadow:inset 0 0 0 1px #ffe3a380,0 0 24px #f5c86b40}.tl-card{padding:16px 22px 18px}.tl-time{font:600 13px/1.2 var(--font-display);letter-spacing:.2em;color:var(--gold);margin:0 0 2px}.tl-card h3{font:600 25px/1.2 var(--font-serif);margin:0}.tl-card p:last-child:not(.tl-time){color:var(--muted);margin:4px 0 0;font-size:16px}input:not([type=checkbox]):not([type=radio]),textarea{width:100%;font:600 17px/1.4 var(--font-body);color:var(--text);box-shadow:inset 0 0 0 1px var(--line);background:#0d1a3dd9;border:0;border-radius:14px;padding:14px 16px;transition:box-shadow .2s,background .2s}input::placeholder,textarea::placeholder{color:#a9b8d999}input:focus,input:focus-visible,textarea:focus,textarea:focus-visible{box-shadow:inset 0 0 0 1.5px var(--gold), 0 0 0 4px #f5c86b26;background:#12224ef2;outline:none}.hp{opacity:0!important;width:1px!important;height:1px!important;position:absolute!important;left:-9999px!important}.rsvp{flex-direction:column;align-items:center;gap:10px;width:min(100%,580px);display:flex}.rsvp-form,.rsvp-done{display:none}.rsvp[data-state=form] .rsvp-form{display:flex}.rsvp[data-state=form] .hero-actions,.rsvp[data-state=done] .rsvp-open,.rsvp[data-state=closed] .rsvp-open{display:none}.rsvp[data-state=done] .rsvp-done{display:inline-flex}@keyframes widget-in{0%{opacity:0;transform:translateY(8px)scale(.95)}}.rsvp-form{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:min(100%,440px);animation:widget-in .45s var(--ease-out);background:#070e22cc;border-radius:24px;flex-direction:column;align-items:stretch;gap:8px;padding:10px;position:relative;box-shadow:inset 0 0 0 1px #ffe3a366,0 20px 50px -18px #000000d9,0 0 40px -10px #f5c86b59}.rsvp-form input[name=name]{text-align:center;border-radius:16px;padding:13px 18px}.rsvp-answers{gap:8px;display:flex}.rsvp-answers .btn{white-space:nowrap;flex:1;padding:13px 16px}.rsvp-x{width:28px;height:28px;color:var(--muted);box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;background:#070e22f5;border:0;border-radius:50%;place-items:center;padding:0;font-size:12px;display:grid;position:absolute;top:-11px;right:-11px}.rsvp-x:hover{color:var(--text)}.rsvp-title{font:italic 600 26px/1.2 var(--font-serif);color:var(--gold-hi);text-align:center;margin:0 0 4px;display:none}.rsvp-error{color:#ffb3bf;text-shadow:0 1px 10px #000000e6;margin:0;font-size:14px;font-weight:700}.rsvp-error:empty{display:none}.rsvp-done{color:var(--gold-hi);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:widget-in .5s var(--ease-out);background:#070e22bf;border-radius:999px;align-items:center;gap:10px;margin:0;padding:8px 8px 8px 16px;font-size:15px;font-weight:800;box-shadow:inset 0 0 0 1px #ffe3a359}.rsvp-dot{--c:#e63950;background:radial-gradient(circle at 35% 30%, #fff 0 10%, var(--c) 45%, color-mix(in srgb, var(--c), black 50%));width:16px;height:16px;box-shadow:0 0 12px var(--c);border-radius:50%;flex:none}.link-btn{font:700 13px/1 var(--font-body);color:var(--text);cursor:pointer;background:#ffffff17;border:0;border-radius:999px;padding:7px 13px;transition:background .2s}.link-btn:hover{background:#ffffff29}.rsvp-meta{color:var(--ice);text-shadow:0 1px 10px #000000e6;margin:0;font-size:13px;font-weight:700}.rsvp-meta:empty{display:none}.notify{text-align:center;padding:clamp(28px,5vw,44px)}.notify-icon{margin-bottom:10px;font-size:44px;line-height:1;animation:4s ease-in-out infinite float}@keyframes float{50%{transform:translateY(-8px)rotate(-6deg)}}.notify h2{font-size:clamp(32px,4vw,44px)}.notify p{max-width:30em;color:var(--muted);margin:12px auto 22px}.notify p b{color:var(--ice)}.notify-form{gap:10px;display:flex}.notify-form input{flex:1;min-width:0}.notify-done{font:italic 600 24px/1.3 var(--font-serif);color:var(--gold-hi)!important;margin:0!important}@media (width>=1000px) and (aspect-ratio>=23/20){.notify{text-align:left}.notify p{margin-left:0}}.footer{padding:clamp(80px, 14vh, 140px) var(--gutter) calc(60px + env(safe-area-inset-bottom));text-align:center;position:relative}.footer-love{font:italic 500 22px/1.3 var(--font-serif);color:var(--muted);margin:0}.footer-hosts{font:400 clamp(46px, 7vw, 78px) / 1.1 var(--font-script);background:var(--gold-text);color:#0000;filter:drop-shadow(0 0 22px #f5c86b59);-webkit-background-clip:text;background-clip:text;margin-top:-.2em;margin-bottom:calc(26px - .3em);padding:.2em .35em .3em}.footer-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.footer-egg{color:#a9b8d9a6;margin:30px 0 4px;font-size:14px}.footer-small{font:600 11px/1 var(--font-display);letter-spacing:.35em;text-transform:uppercase;color:#a9b8d980;margin:0}@media (width>=1000px) and (aspect-ratio>=23/20){.footer{text-align:left;padding-left:clamp(32px,7vw,140px)}.footer-actions{justify-content:flex-start}}#ornament-label{z-index:30;max-width:70vw;font:800 15px/1.2 var(--font-body);white-space:nowrap;text-overflow:ellipsis;color:var(--text);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;opacity:0;background:#070e22d9;border-radius:999px;align-items:center;gap:8px;padding:9px 16px;transition:opacity .25s;display:flex;position:fixed;top:0;left:0;overflow:hidden;box-shadow:inset 0 0 0 1px #ffe3a359,0 12px 30px #00000080}#ornament-label.is-on{opacity:1}#ornament-label:after{content:"";background:inherit;width:10px;height:10px;position:absolute;bottom:-5px;left:50%;translate:-50%;rotate:45deg}.label-dot{background:var(--c);width:12px;height:12px;box-shadow:0 0 10px var(--c);border-radius:50%}.label-star{color:var(--c);text-shadow:0 0 10px var(--c)}#toast{left:50%;bottom:calc(24px + env(safe-area-inset-bottom));z-index:60;max-width:calc(100vw - 32px);font:800 15px/1.3 var(--font-body);text-align:center;color:var(--text);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;transition:opacity .3s, transform .4s var(--ease-out);pointer-events:none;background:#070e22eb;border-radius:999px;padding:13px 22px;position:fixed;transform:translate(-50%,20px);box-shadow:inset 0 0 0 1px #ffe3a366,0 18px 40px #0009}#toast.is-on{opacity:1;transform:translate(-50%)}@media (width<=759px){body{font-size:16px}.topnav{display:none}.fab{display:block}#toast{bottom:calc(86px + env(safe-area-inset-bottom))}.card{background:linear-gradient(#101d42e6 0%,#070e22ed 100%)}.details{grid-template-columns:1fr;gap:12px}.detail{padding:20px 20px 22px}.rsvp-form{width:100%}.hero-final:has(.rsvp[data-state=form]){opacity:1!important;visibility:visible!important}.hero-sticky:has(.rsvp[data-state=form]){z-index:10}.rsvp[data-state=form]:before{content:"";z-index:70;background:#03060fb8;animation:.3s widget-in;position:fixed;inset:0}.rsvp[data-state=form] .rsvp-form{z-index:71;top:var(--sheet-top,12vh);background:#09122cf7;gap:10px;width:auto;padding:20px 14px 14px;position:fixed;left:16px;right:16px}.rsvp[data-state=form] .rsvp-title{display:block}body:has(.rsvp[data-state=form]) .fab{transform:translate(-50%,180%)}.rsvp-done{font-size:14px}.notify-form{flex-direction:column}.hero-actions .btn{padding:11px 16px;font-size:14px}.hero-actions>.btn-gold{width:100%}.scroll-roll{margin:0 -8px}.kid{gap:8px;padding:4px}.kid-emoji{width:34px;height:34px;font-size:18px}.kid{position:relative}.kid-name{font-size:34px}.kid-dots{margin-right:56px}.stamp{margin-top:-10px;padding:4px 6px 3px;font-size:9px;position:absolute;top:50%;right:2px}.seal{width:72px;height:72px;bottom:-32px}.tl-item{grid-template-columns:46px minmax(0,1fr);gap:12px}.tl-dot{width:46px;height:46px;font-size:20px}.timeline:before,.timeline-fill{left:22px}}body.reduced-motion .hero{height:100svh}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.2s!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.hero-title,.scroll-hint{display:none}}
