:root{--ivory:#f5efe0;--ivory-soft:#faf5ea;--ivory-bright:#fdfbf4;--ivory-deep:#e4dcbe;--linen:#d6ceb2;--olive:#7a8460;--olive-deep:#4b523b;--olive-soft:#9da585;--olive-pale:#c3c8b0;--gold:#a48340;--gold-deep:#75591f;--gold-soft:#c2a363;--gold-pale:#d9c18c;--forest:#1f2e22;--forest-deep:#131c15;--ink:#1f1b12;--ink-soft:#58503d;--hairline:#1f1b121a;--blush-peach:#f0b8a4;--blush-peach-bright:#ffdcc8;--blush-peach-deep:#e8a088;--serif:var(--font-cormorant-garamond), var(--font-eb-garamond), Garamond, serif;--body:var(--font-eb-garamond), Garamond, serif;--script:var(--font-italianno), cursive;--ease:cubic-bezier(.32, .72, 0, 1);--ease-soft:cubic-bezier(.22, .61, .36, 1);--hero-view-toggle-inset:20px;--hero-view-toggle-block:72px;--hero-date-chrome-gap:20px;--hero-date-bottom:max(7vh, calc(var(--hero-view-toggle-inset) + var(--hero-view-toggle-block) + var(--hero-date-chrome-gap) + env(safe-area-inset-bottom,0px)))}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--ivory);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;opacity:0;filter:blur(14px);transition:opacity 1.6s var(--ease), filter 2.2s var(--ease), background-color 1.2s ease-in-out;margin:0;font-size:18px;line-height:1.6;overflow-x:hidden}body.loaded,body.envelope-active{opacity:1;filter:none}.curtain{z-index:90;background:radial-gradient(ellipse at 50% 50%, var(--ivory-bright), var(--ivory-deep));pointer-events:none;opacity:1;transition:opacity 1.8s var(--ease);position:fixed;inset:0}.curtain.lift{opacity:0}body:after{content:"";pointer-events:none;z-index:50;opacity:.22;mix-blend-mode:multiply;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyMjAnIGhlaWdodD0nMjIwJz48ZmlsdGVyIGlkPSduJz48ZmVUdXJidWxlbmNlIHR5cGU9J2ZyYWN0YWxOb2lzZScgYmFzZUZyZXF1ZW5jeT0nMS4yJyBudW1PY3RhdmVzPScyJyBzdGl0Y2hUaWxlcz0nc3RpdGNoJy8+PGZlQ29sb3JNYXRyaXggdmFsdWVzPScwIDAgMCAwIDAuMzIgIDAgMCAwIDAgMC4zMCAgMCAwIDAgMCAwLjI0ICAwIDAgMCAwLjA1IDAnLz48L2ZpbHRlcj48cmVjdCB3aWR0aD0nMTAwJScgaGVpZ2h0PScxMDAlJyBmaWx0ZXI9J3VybCgjbiknLz48L3N2Zz4=);position:fixed;inset:0}h1,h2,h3,h4{font-family:var(--serif);letter-spacing:.005em;margin:0;font-weight:400}.script{font-family:var(--script);font-weight:400;line-height:.9}.eyebrow{font-family:var(--serif);letter-spacing:.5em;text-transform:uppercase;color:var(--olive-deep);font-size:11px;font-weight:500}section{position:relative}.wrap{max-width:1180px;margin:0 auto;padding:0 32px}.narrow{text-align:center;max-width:720px;margin:0 auto;padding:0 32px}.hero{background:radial-gradient(ellipse at 50% 60%, var(--ivory-bright) 0%, var(--ivory) 55%, var(--ivory-deep) 100%);place-items:center;height:100vh;min-height:760px;display:grid;position:relative;overflow:hidden}.hero:before{content:"";opacity:.35;z-index:0;pointer-events:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220' viewBox='0 0 220 220'><g fill='none' stroke='%237A8460' stroke-width='.7' stroke-linecap='round' opacity='.4'><path d='M30 110 C 70 90 90 70 110 30'/><path d='M50 100 C 70 92 80 82 90 70'/><path d='M65 96 C 78 92 82 86 86 80'/><path d='M190 110 C 150 130 130 150 110 190'/><path d='M170 120 C 150 128 140 138 130 150'/></g></svg>");background-size:360px 360px;position:absolute;inset:0}.hero-blobs{z-index:1;pointer-events:none;display:none;position:absolute;inset:0;overflow:hidden}body.engagement-active .hero-blobs{display:block}.hero-blob{background:radial-gradient(ellipse at 38% 32%, color-mix(in srgb, var(--blush-peach-bright) 94%, white) 0%, color-mix(in srgb, var(--blush-peach) 82%, transparent) 48%, color-mix(in srgb, var(--blush-peach-deep) 42%, transparent) 72%, transparent 100%);filter:blur(56px);opacity:0;transition:opacity 2.6s var(--ease);will-change:opacity, scale, filter;border-radius:58% 42% 64% 36%/48% 58% 42% 52%;animation-play-state:paused;display:block;position:absolute;scale:.94}.hero-blob-a{--blob-opacity-low:.48;--blob-opacity-high:.66;width:min(46vw,520px);height:min(42vw,480px);top:-10%;left:-8%}.hero-blob-b{--blob-opacity-low:.4;--blob-opacity-high:.56;border-radius:44% 56% 38% 62%/52% 44% 56% 48%;width:min(38vw,440px);height:min(36vw,400px);top:18%;right:-12%}.hero-blob-c{--blob-opacity-low:.44;--blob-opacity-high:.6;border-radius:52% 48% 60% 40%/46% 54%;width:min(34vw,380px);height:min(30vw,340px);bottom:8%;left:12%}.hero-blob-d{--blob-opacity-low:.34;--blob-opacity-high:.48;border-radius:62% 38% 48% 52%/40% 60% 50% 50%;width:min(28vw,320px);height:min(26vw,300px);bottom:22%;right:18%}body.engagement-active .hero.ready .hero-blob-a{transition-delay:.5s;animation-name:heroBlobBreath,heroBlobDriftA;animation-duration:5.8s,26s;animation-timing-function:ease-in-out,ease-in-out;animation-iteration-count:infinite,infinite;animation-direction:normal,normal;animation-play-state:running;animation-delay:.5s,0s;animation-fill-mode:none,none;animation-timeline:auto,auto}body.engagement-active .hero.ready .hero-blob-b{transition-delay:.75s;animation-name:heroBlobBreath,heroBlobDriftB;animation-duration:6.4s,30s;animation-timing-function:ease-in-out,ease-in-out;animation-iteration-count:infinite,infinite;animation-direction:normal,normal;animation-play-state:running;animation-delay:1.1s,0s;animation-fill-mode:none,none;animation-timeline:auto,auto}body.engagement-active .hero.ready .hero-blob-c{transition-delay:.95s;animation-name:heroBlobBreath,heroBlobDriftC;animation-duration:5.4s,22s;animation-timing-function:ease-in-out,ease-in-out;animation-iteration-count:infinite,infinite;animation-direction:normal,normal;animation-play-state:running;animation-delay:1.6s,0s;animation-fill-mode:none,none;animation-timeline:auto,auto}body.engagement-active .hero.ready .hero-blob-d{transition-delay:1.15s;animation-name:heroBlobBreath,heroBlobDriftD;animation-duration:6.9s,34s;animation-timing-function:ease-in-out,ease-in-out;animation-iteration-count:infinite,infinite;animation-direction:normal,normal;animation-play-state:running;animation-delay:2.2s,0s;animation-fill-mode:none,none;animation-timeline:auto,auto}@keyframes heroBlobBreath{0%,to{opacity:var(--blob-opacity-low);filter:blur(52px);scale:.92}50%{opacity:var(--blob-opacity-high);filter:blur(68px);scale:1.08}}@keyframes heroBlobDriftA{0%,to{translate:0}50%{translate:22px 18px}}@keyframes heroBlobDriftB{0%,to{translate:0}50%{translate:-18px 24px}}@keyframes heroBlobDriftC{0%,to{translate:0}50%{translate:16px -14px}}@keyframes heroBlobDriftD{0%,to{translate:0}50%{translate:-12px -18px}}body.engagement-active .hero-blob-a{--blob-opacity-low:.56;--blob-opacity-high:.76}body.engagement-active .hero-blob-b{--blob-opacity-low:.48;--blob-opacity-high:.66}body.engagement-active .hero-blob-c{--blob-opacity-low:.52;--blob-opacity-high:.7}body.engagement-active .hero-blob-d{--blob-opacity-low:.42;--blob-opacity-high:.58}@media (max-width:760px){.hero-blob-a{--blob-opacity-low:.42;--blob-opacity-high:.56;top:-6%;left:-18%}.hero-blob-b{--blob-opacity-low:.36;--blob-opacity-high:.48;top:8%;right:-22%}.hero-blob-c{--blob-opacity-low:.38;--blob-opacity-high:.52;bottom:14%;left:-6%}.hero-blob-d{--blob-opacity-low:.3;--blob-opacity-high:.42;bottom:28%;right:4%}}@media (prefers-reduced-motion:reduce){body.engagement-active .hero.ready .hero-blob{filter:blur(56px);animation:none;scale:1}body.engagement-active .hero.ready .hero-blob-a{opacity:.68}body.engagement-active .hero.ready .hero-blob-b{opacity:.58}body.engagement-active .hero.ready .hero-blob-c{opacity:.62}body.engagement-active .hero.ready .hero-blob-d{opacity:.5}}.branch{width:160px;color:var(--olive);opacity:0;pointer-events:none;z-index:1;transition:opacity 2s var(--ease);position:absolute;top:0;bottom:0}.branch svg{width:100%;height:100%;display:block}.branch.left{transform-origin:0 0;left:-20px}.branch.right{transform-origin:100% 0;right:-20px;transform:scaleX(-1)}.hero.ready .branch{opacity:.6}.branch.left{animation:9s ease-in-out infinite swayL}.branch.right{animation:9s ease-in-out infinite swayR}@keyframes swayL{0%,to{transform:rotate(-1.4deg)}50%{transform:rotate(1.4deg)}}@keyframes swayR{0%,to{transform:scaleX(-1)rotate(-1.4deg)}50%{transform:scaleX(-1)rotate(1.4deg)}}.branch path{stroke-dasharray:800;stroke-dashoffset:800px;transition:stroke-dashoffset 3.6s var(--ease)}.hero.ready .branch path{stroke-dashoffset:0;transition-delay:.6s}.branch ellipse{transform-box:fill-box;transform-origin:50%;transition:transform 1.8s var(--ease);transform:scale(0)}.hero.ready .branch ellipse{transition-delay:2.2s;transform:scale(1)}.hero-stage{text-align:center;will-change:transform, opacity;z-index:4;width:min(1000px,92vw);position:relative}.save{font-family:var(--script);color:var(--olive-deep);opacity:0;filter:blur(12px);transition:opacity 2.2s var(--ease), transform 2.4s var(--ease), filter 2.4s var(--ease);margin:0;font-size:clamp(52px,6.5vw,84px);line-height:.9;transform:translateY(-28px)scale(.96)}.hero.ready .save{opacity:1;filter:blur();transition-delay:.4s;transform:translateY(0)scale(1)}.sub{font-family:var(--serif);letter-spacing:.58em;text-transform:uppercase;color:var(--olive-deep);opacity:0;filter:blur(6px);transition:opacity 2s var(--ease), filter 2s var(--ease), transform 2s var(--ease);margin:18px 0 56px;font-size:clamp(12px,1.4vw,17px);font-weight:600;transform:translateY(-8px)}.hero.ready .sub{opacity:1;filter:blur();transition-delay:.8s;transform:translateY(0)}.names{justify-content:center;align-items:center;gap:clamp(20px,4vw,72px);margin:0 0 32px;display:flex}.names .name{font-family:var(--serif);color:var(--forest);letter-spacing:.015em;opacity:0;transition:opacity 2.6s var(--ease), transform 2.8s var(--ease), filter 2.6s var(--ease);filter:blur(14px);font-size:clamp(58px,10vw,132px);font-style:italic;font-weight:500}.names .name.a{transform:translate(-120px,30px)rotate(-2deg)}.names .name.j{transform:translate(120px,30px)rotate(2deg)}.hero.ready .names .name{opacity:1;filter:blur();transition-delay:1s;transform:translate(0)rotate(0)}.hero.ready .names .name.j{transition-delay:1.2s}.names .amp{font-family:var(--script);color:var(--olive);opacity:0;filter:blur(20px);transition:opacity 2.4s var(--ease), transform 2.6s var(--ease), filter 2.4s var(--ease);font-size:clamp(100px,17vw,200px);line-height:.8;transform:translateY(-12px)scale(1.8)rotate(-6deg)}.hero.ready .amp{opacity:1;filter:blur();transition-delay:1.5s;transform:translateY(-12px)scale(1)rotate(0)}@media (max-width:640px){.sub{margin-bottom:20px}.names{flex-direction:column;gap:0;margin-bottom:8px}.names .name{font-size:clamp(52px,14vw,72px);font-weight:600;line-height:.92}.names .name.a,.names .name.j{transform:translateY(24px)rotate(0)}.hero.ready .names .name{transform:translate(0)rotate(0)}.names .amp{margin:-10px 0;font-size:clamp(56px,16vw,80px);line-height:.85;transform:translateY(0)scale(1)rotate(0)}.hero.ready .amp{transform:translateY(0)scale(1)rotate(0)}.date-band{margin-top:0;padding-top:0}}.date-band{font-family:var(--serif);flex-direction:column;align-items:center;gap:10px;margin-top:6px;padding:14px 0;display:flex}.hero>.date-band{left:50%;bottom:var(--hero-date-bottom);z-index:5;pointer-events:auto;isolation:isolate;width:min(100%,92vw);margin:0;padding:0;position:absolute;transform:translate(-50%)}@media (max-width:800px){:root{--hero-view-toggle-inset:18px;--hero-view-toggle-block:68px;--hero-date-chrome-gap:36px}}.date-band>span{opacity:0;filter:blur(8px);transition:opacity 2s var(--ease), filter 2s var(--ease), transform 2s var(--ease);transform:translateY(14px)}.hero.ready .date-band>span{opacity:1;filter:blur();transform:translateY(0)}.date-band .date-day{letter-spacing:.52em;text-transform:uppercase;color:var(--olive-deep);font-size:clamp(11px,1vw,13px);font-weight:700}.hero.ready .date-band .date-day{transition-delay:1.8s}.date-band .date-main{letter-spacing:.04em;color:var(--forest);font-size:clamp(28px,4vw,44px);font-style:italic;font-weight:800;line-height:1.1}.hero.ready .date-band .date-main{transition-delay:2s}.date-band .date-place{letter-spacing:.06em;color:var(--ink-soft);margin-top:4px;font-size:clamp(15px,1.4vw,18px)}.hero.ready .date-band .date-place{transition-delay:2.2s}@property --place-pin-border-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes place-pin-border-run{to{--place-pin-border-angle:360deg}}.place-pin{border:1px solid color-mix(in srgb, var(--forest) 55%, transparent);background:color-mix(in srgb, var(--forest) 20%, transparent);color:var(--forest);transition:background .2s var(--ease), border-color .2s var(--ease), transform .15s var(--ease);cursor:pointer;isolation:isolate;border-radius:999px;align-items:center;gap:6px;padding:4px 12px 4px 10px;text-decoration:none;display:inline-flex;position:relative}.place-pin:before{content:"";border-radius:inherit;background:conic-gradient(from var(--place-pin-border-angle), transparent 0deg, transparent 285deg, color-mix(in srgb, var(--forest) 35%, transparent) 310deg, var(--forest) 330deg, color-mix(in srgb, var(--forest) 35%, transparent) 350deg, transparent 360deg);-webkit-mask-composite:xor;pointer-events:none;z-index:0;padding:1.5px;animation:2.8s linear infinite place-pin-border-run;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.place-pin svg,.place-pin>span{z-index:1;position:relative}.place-pin svg{flex-shrink:0}.place-pin:hover:before,.place-pin:focus-visible:before{animation-play-state:paused}.place-pin:hover{background:color-mix(in srgb, var(--forest) 28%, transparent);border-color:color-mix(in srgb, var(--forest) 70%, transparent);transform:translateY(-2px)}.place-pin:focus-visible{outline:2px solid color-mix(in srgb, var(--forest) 60%, transparent);outline-offset:2px;background:color-mix(in srgb, var(--forest) 18%, transparent);border-color:color-mix(in srgb, var(--forest) 55%, transparent)}.place-pin:active{transform:scale(.97)}@media (prefers-reduced-motion:reduce){.place-pin:before{opacity:0;animation:none}}.date-band .date-place .place-pin{font:inherit;letter-spacing:inherit}.date-band .date-place .place-pin svg{transform:translateY(1px)}.date-band .where{margin-top:2px}.where{font-family:var(--serif);color:var(--ink-soft);opacity:0;filter:blur(6px);transition:opacity 1.8s var(--ease), filter 1.8s var(--ease), transform 1.8s var(--ease);margin-top:0;font-size:clamp(19px,1.6vw,22px);font-style:italic;transform:translateY(10px)}.hero.ready .where{opacity:1;filter:blur();transition-delay:2.4s;transform:translateY(0)}.seal{opacity:0;filter:blur(12px);width:120px;height:120px;transition:opacity 2s var(--ease), transform 2.4s var(--ease), filter 2.2s var(--ease);margin:60px auto 0;position:relative;transform:scale(.7)translateY(30px)}.hero.ready .seal{opacity:1;filter:blur();transition-delay:2.7s;transform:scale(1)translateY(0)}.seal .wreath{color:var(--olive);animation:90s linear infinite rotate;position:absolute;inset:0}.seal .wreath svg{width:100%;height:100%;display:block}.seal .wreath path{stroke-dasharray:600;stroke-dashoffset:600px;transition:stroke-dashoffset 3.2s var(--ease)}.hero.ready .seal .wreath path{stroke-dashoffset:0;transition-delay:2.8s}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.seal .gr{font-family:var(--serif);color:var(--forest);letter-spacing:.04em;place-items:center;font-size:30px;font-style:italic;font-weight:300;display:grid;position:absolute;inset:0}.seal .gr small{font-family:var(--serif);letter-spacing:.45em;text-transform:uppercase;color:var(--olive-deep);margin-top:2px;font-size:9px;font-style:normal;font-weight:500;display:block}.scroll-cue{right:max(14px, env(safe-area-inset-right,0px));z-index:85;background:color-mix(in srgb, var(--ivory-bright) 96%, var(--olive-deep) 4%);border:none;border:1px solid color-mix(in srgb, var(--olive-deep) 22%, transparent);-webkit-backdrop-filter:blur(8px);color:var(--olive-deep);opacity:0;cursor:pointer;pointer-events:auto;transition:opacity .6s var(--ease);border-radius:999px;flex-direction:column;align-items:center;gap:6px;padding:14px 10px 16px;animation:1.6s ease-in-out infinite scroll-cue-bounce;display:flex;position:fixed;bottom:90px;transform:translateY(0);box-shadow:0 4px 18px -2px #1f1b1247}body.loaded .scroll-cue:not(.hidden){opacity:1;transition-delay:2.8s}.scroll-cue.hidden{opacity:0;pointer-events:none;animation-play-state:paused}.scroll-cue:focus-visible{outline:2px solid color-mix(in srgb, var(--olive-deep) 70%, transparent);outline-offset:4px}.scroll-cue-label{font:italic 700 15px/1 var(--font-cormorant-garamond), serif;letter-spacing:.08em;text-transform:lowercase}.scroll-cue-chevron{stroke-width:2.75px;width:24px;height:24px;display:block}.scroll-cue--top .scroll-cue-chevron{transform:rotate(180deg)}.scroll-cue--top{animation:1.6s ease-in-out infinite scroll-cue-bounce-up}@keyframes scroll-cue-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}@keyframes scroll-cue-bounce-up{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@media (prefers-reduced-motion:reduce){.scroll-cue,.scroll-cue--top{animation:none}}.marquee{background:var(--ivory-deep);border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);padding:22px 0;overflow:hidden}.marquee-track{width:max-content;color:var(--olive-deep);font-family:var(--serif);letter-spacing:.14em;text-transform:uppercase;gap:80px;font-size:22px;font-style:italic;animation:50s linear infinite paused scroll-x;display:flex}body.loaded .marquee-track{animation-play-state:running}.marquee-track span{white-space:nowrap;align-items:center;gap:32px;display:inline-flex}.marquee-track svg{color:var(--olive)}@keyframes scroll-x{0%{transform:translate(0)}to{transform:translate(-50%)}}.blessing-host{height:220vh;position:relative}.blessing{text-align:center;background:linear-gradient(180deg, var(--ivory) 0%, var(--ivory-soft) 100%);place-items:center;height:100vh;display:grid;position:sticky;top:0;overflow:hidden}.blessing:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(circle,#7a846014,#0000 60%);border-radius:50%;width:720px;max-width:90vw;height:720px;max-height:90vw;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.blessing .inner{z-index:2;max-width:860px;padding:0 32px;position:relative}.blessing .ornament-row{color:var(--olive);justify-content:center;align-items:center;gap:16px;margin:0 auto 40px;display:flex}.blessing .ornament-row .line{transform-origin:50%;width:80px;height:1px;transition:transform 1.6s var(--ease);background:linear-gradient(90deg,#0000,currentColor,#0000);transform:scaleX(0)}.blessing.lit .ornament-row .line{transform:scaleX(1)}.blessing .ornament-row .sprig{opacity:0;width:50px;height:24px;transition:opacity 1.2s .3s var(--ease)}.blessing.lit .ornament-row .sprig{opacity:1}.blessing-text{font-family:var(--serif);color:var(--forest);font-size:clamp(34px,5vw,64px);font-style:italic;font-weight:300;line-height:1.25}.blessing-text .word{opacity:0;transition:opacity .9s var(--ease), transform .9s var(--ease);display:inline-block;transform:translateY(18px)}.blessing-cite{font-family:var(--serif);letter-spacing:.45em;text-transform:uppercase;color:var(--olive-deep);opacity:0;transition:opacity 1.2s var(--ease);margin-top:40px;font-size:11px;display:block}.blessing.cite-in .blessing-cite{opacity:1}.duo{background:linear-gradient(180deg, var(--ivory-soft) 0%, var(--ivory) 100%);padding:140px 0;position:relative;overflow:hidden}.duo .bg-branch{color:var(--olive);opacity:.07;pointer-events:none;z-index:0;position:absolute}.duo .bg-branch.l{width:220px;height:500px;top:10%;left:-60px;transform:rotate(-8deg)}.duo .bg-branch.r{width:220px;height:500px;bottom:5%;right:-60px;transform:rotate(8deg)scaleX(-1)}.duo .bg-branch svg{width:100%;height:100%}.duo .wrap{z-index:2;position:relative}.duo-grid{grid-template-columns:1fr 1fr;gap:40px;margin-top:64px;display:grid}.card{background:var(--ivory-bright);border:1px solid var(--olive-pale);text-align:center;transition:transform 2.4s var(--ease-soft), box-shadow .6s var(--ease), border-color .6s var(--ease);opacity:0;padding:64px 40px 56px;position:relative}.card:not(.in){animation:none}.card.in{animation:card-in 2.4s var(--ease-soft) both}.card:hover{border-color:var(--olive);transform:translateY(-6px);box-shadow:0 30px 60px -30px #1f1b1238}.card .corner-sprig{width:56px;height:22px;color:var(--olive);background:var(--ivory-soft);padding:0 8px;position:absolute;top:-14px;left:50%;transform:translate(-50%)}.card .icon{color:var(--olive);margin-bottom:18px}.card .kind{font-family:var(--serif);letter-spacing:.48em;text-transform:uppercase;color:var(--olive-deep);margin-bottom:12px;font-size:11px}.card h3{font-family:var(--script);color:var(--forest);margin:4px 0 24px;font-size:60px}.card .time{font-family:var(--serif);letter-spacing:.04em;color:var(--ink);margin-bottom:18px;font-size:clamp(28px,3.2vw,34px);font-style:normal;font-weight:700}.card .venue{font-family:var(--serif);color:var(--ink);font-size:18px}.card .addr{font-family:var(--serif);color:var(--ink-soft);margin-top:6px;font-size:15px;font-style:italic}.card .ph{color:var(--ink-soft);font-style:italic}.card a{font-family:var(--serif);color:currentColor;align-items:center;gap:4px;margin-top:10px;font-size:14px;display:inline-flex}@media (max-width:760px){.duo{padding:96px 0}.duo-grid{grid-template-columns:1fr;gap:28px;margin-top:40px}.card{padding:28px 22px 24px}.card .icon{width:36px;height:36px;margin-bottom:10px}.card .kind{letter-spacing:.4em;margin-bottom:6px;font-size:10px}.card h3{margin:0 0 10px;font-size:clamp(38px,11vw,48px);line-height:1}.card .time{margin-bottom:10px;font-size:clamp(22px,5.5vw,28px)}.card .venue{font-size:16px;line-height:1.35}.card .addr{margin-top:4px;font-size:14px;line-height:1.4}.card a{margin-top:8px;font-size:13px}}.count{background:var(--forest-deep);color:var(--ivory);text-align:center;padding:140px 0;position:relative;overflow:hidden}.count:before{content:"";pointer-events:none;background:radial-gradient(circle at 20% 30%,#7a84602e,#0000 50%),radial-gradient(circle at 80% 70%,#7a846024,#0000 50%);position:absolute;inset:0}.count .bg-branch{color:var(--olive-pale);opacity:.12;pointer-events:none;width:360px;height:640px;position:absolute;top:-40px;left:50%;transform:translate(-50%)}.count .bg-branch svg{width:100%;height:100%}.count .wrap{z-index:2;position:relative}.count .eyebrow{color:var(--olive-pale)}.count h2{font-family:var(--script);color:var(--ivory);margin:16px 0 50px;font-size:clamp(54px,6vw,88px)}.count-grid{z-index:2;grid-template-columns:repeat(4,1fr);gap:24px;max-width:820px;margin:0 auto;display:grid;position:relative}.count-cell{border-top:1px solid #c3c8b052;border-bottom:1px solid #c3c8b052;padding:22px 8px 26px}.count-cell .num{font-family:var(--serif);color:var(--ivory);letter-spacing:.01em;font-variant-numeric:tabular-nums;transition:transform .5s var(--ease), opacity .5s var(--ease);font-size:clamp(56px,8vw,96px);font-weight:300;line-height:1;display:inline-block}.count-cell .num.flip{opacity:0;transform:translateY(-8px)}.count-cell .lab{font-family:var(--serif);letter-spacing:.4em;text-transform:uppercase;color:var(--olive-pale);margin-top:16px;font-size:11px}@media (max-width:640px){.count-grid{grid-template-columns:repeat(2,1fr)}}.story{background:var(--ivory);padding:160px 0;position:relative;overflow:hidden}.story .bg-branch{color:var(--olive);opacity:.08;pointer-events:none;position:absolute}.story .bg-branch.l{width:180px;height:500px;top:8%;left:-40px}.story .bg-branch.r{width:180px;height:500px;bottom:8%;right:-40px;transform:scaleX(-1)}.story .bg-branch svg{width:100%;height:100%}.story .narrow{z-index:2;position:relative}.story h2{font-family:var(--script);color:var(--forest);margin:14px 0 32px;font-size:clamp(56px,7vw,96px)}.story p{font-family:var(--serif);margin:0 0 18px;font-size:21px;line-height:1.75}.story .ph{border-bottom:1px dashed var(--olive);color:var(--ink-soft);padding:0 6px;font-style:italic;display:inline-block}.travel{background-color:var(--ivory-soft);background-image:radial-gradient(ellipse 120% 90% at 50% 42%, var(--ivory-bright) 0%, var(--ivory-soft) 46%, var(--ivory-deep) 100%);padding:140px 0;position:relative;overflow:hidden}.travel:before{content:"";opacity:.22;pointer-events:none;z-index:0;background:url(/kerala.svg) 50%/min(520px,78%) no-repeat;position:absolute;inset:0}.travel:after{content:"";pointer-events:none;z-index:1;opacity:.24;mix-blend-mode:multiply;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyMjAnIGhlaWdodD0nMjIwJz48ZmlsdGVyIGlkPSduJz48ZmVUdXJidWxlbmNlIHR5cGU9J2ZyYWN0YWxOb2lzZScgYmFzZUZyZXF1ZW5jeT0nMS4yJyBudW1PY3RhdmVzPScyJyBzdGl0Y2hUaWxlcz0nc3RpdGNoJy8+PGZlQ29sb3JNYXRyaXggdmFsdWVzPScwIDAgMCAwIDAuMzIgIDAgMCAwIDAgMC4zMCAgMCAwIDAgMCAwLjI0ICAwIDAgMCAwLjA1IDAnLz48L2ZpbHRlcj48cmVjdCB3aWR0aD0nMTAwJScgaGVpZ2h0PScxMDAlJyBmaWx0ZXI9J3VybCgjbiknLz48L3N2Zz4=);position:absolute;inset:0}.travel .wrap{z-index:2;position:relative}.travel-compass{z-index:2;width:52px;height:52px;color:var(--olive-deep);opacity:.38;pointer-events:none;position:absolute;top:clamp(32px,6vw,72px);right:clamp(20px,4vw,56px)}.travel-compass svg{width:100%;height:100%;display:block}.travel-compass-n{font-family:var(--serif);letter-spacing:.18em;fill:currentColor;font-size:10px}.travel-compass-minor{font-family:var(--serif);letter-spacing:.12em;fill:currentColor;opacity:.55;font-size:7px}@media (max-width:760px){.travel-compass{opacity:.32;width:44px;height:44px;top:20px;right:16px}}.travel-grid{margin-top:0;grid-template-columns:repeat(2,1fr);gap:48px;max-width:720px;margin-inline:auto;display:grid}.travel-card{text-align:center;padding:0 8px}.travel-card .icon{color:var(--olive);margin-bottom:18px}.travel-card h4{font-family:var(--serif);letter-spacing:.42em;text-transform:uppercase;color:var(--olive-deep);margin-bottom:14px;font-size:13px}.travel-card p{font-family:var(--serif);color:var(--ink);margin:0;font-size:19px;font-weight:600;line-height:1.6}.travel-card .ph{color:var(--ink-soft);font-style:italic}@media (max-width:760px){.travel-grid{grid-template-columns:1fr;gap:48px}}.tmap-host{height:529.5vh;position:relative}.tmap-stage{z-index:10;background:radial-gradient(ellipse at 60% 55%, var(--ivory-bright) 0%, var(--ivory) 55%, var(--ivory-deep) 120%);height:100vh;position:sticky;top:0;overflow:hidden}.tmap-stage:after{content:"";pointer-events:none;z-index:60;opacity:.18;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.2' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.32  0 0 0 0 0.30  0 0 0 0 0.24  0 0 0 0.05 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:absolute;inset:0}.tmap-zoom{position:absolute;inset:0}.tmap-kmap{width:100%;height:100%;color:var(--olive);display:block;position:absolute;inset:0}.tmap-land{fill:#7a846012;stroke:var(--olive-deep);stroke-linejoin:round;stroke-linecap:round;stroke-width:1.2px;vector-effect:non-scaling-stroke;opacity:.18}.tmap-ghost{stroke:var(--olive);stroke-linecap:round;opacity:0;stroke-dasharray:5 7;stroke-width:1.4px;vector-effect:non-scaling-stroke;transition:opacity 1s cubic-bezier(.32,.72,0,1)}.tmap-kmap.tmap-kmap-lit .tmap-ghost{opacity:.45}.tmap-route{stroke:var(--gold-deep);stroke-linecap:round;stroke-width:2.8px;vector-effect:non-scaling-stroke}.tmap-overlay{pointer-events:none;z-index:5;position:absolute;inset:0}.tmap-pin{opacity:0;transition:opacity .6s cubic-bezier(.32,.72,0,1);position:absolute;transform:translate(-50%,-100%)}.tmap-pin-drop{width:28px;height:36px;color:var(--forest);filter:drop-shadow(0 6px 10px #1f1b1247)}.tmap-pin-drop-end{color:var(--gold-deep)}.tmap-pin-ring{border:1.5px solid var(--forest);border-radius:50%;width:10px;height:10px;margin:-5px 0 0 -5px;animation:2.4s ease-out infinite tmap-pulse;position:absolute;top:28px;left:50%}.tmap-pin-ring-end{border-color:var(--gold-deep)}@keyframes tmap-pulse{0%{opacity:.7;transform:scale(.4)}to{opacity:0;transform:scale(3.4)}}.tmap-pin-lab{white-space:nowrap;text-align:center;position:absolute;bottom:calc(100% - 2px);left:50%;transform:translate(-50%)}.tmap-pin-nm{font-family:var(--serif);color:var(--forest);font-size:20px;font-style:italic;line-height:1;display:block}.tmap-pin-nm-end{color:var(--gold-deep)}.tmap-pin-sub{font-family:var(--serif);letter-spacing:.34em;text-transform:uppercase;color:var(--olive-deep);margin-top:3px;font-size:9px;display:block}.tmap-wp{opacity:0;transition:opacity .5s cubic-bezier(.32,.72,0,1);position:absolute;transform:translate(-50%,-50%)}.tmap-wp-dot{background:var(--gold-deep);width:7px;height:7px;box-shadow:0 0 0 3px var(--ivory);border-radius:50%;display:block}.tmap-wp-label{font-family:var(--serif);color:var(--ink-soft);white-space:nowrap;font-size:14px;font-style:italic;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.tmap-traveler{opacity:0;width:18px;height:18px;transition:opacity .5s cubic-bezier(.32,.72,0,1);position:absolute;transform:translate(-50%,-50%)}.tmap-traveler-inner{background:var(--gold-deep);width:10px;height:10px;box-shadow:0 0 0 2px var(--ivory), 0 0 12px #a4834099;border-radius:50%;margin:4px;display:block}.tmap-traveler-pulse{border:1.5px solid var(--gold-deep);opacity:.5;border-radius:50%;animation:1.8s ease-out infinite tmap-pulse;position:absolute;inset:0}.tmap-couple{opacity:0;filter:drop-shadow(0 8px 10px #1f1b122e);width:98px;height:114px;transition:opacity .5s cubic-bezier(.32,.72,0,1);position:absolute;transform:translate(-50%,-84%)}.tmap-couple .tmap-bob{transform-origin:bottom;width:100%;height:100%;animation:2.4s ease-in-out infinite tmap-bob}@keyframes tmap-bob{0%,to{transform:translateY(0)rotate(-1deg)}50%{transform:translateY(-4px)rotate(1deg)}}.tmap-couple .tmap-cpl-hearts{opacity:.85}.tmap-fly-heart{color:var(--gold);opacity:0;position:absolute;top:6px;left:50%}.tmap-couple.tmap-celebrate .tmap-fly-heart{animation:1.8s ease-out infinite tmap-flyh}.tmap-couple.tmap-celebrate .tmap-fly-heart:nth-child(2){animation-delay:.5s}.tmap-couple.tmap-celebrate .tmap-fly-heart:nth-child(3){animation-delay:1s}.tmap-couple.tmap-landed .tmap-bob{animation:none}@keyframes tmap-flyh{0%{opacity:0;transform:translate(-50%)scale(.4)}20%{opacity:.9}to{opacity:0;transform:translate(-50%,-46px)scale(1)}}.tmap-coast{z-index:3;opacity:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.tmap-sky{background:linear-gradient(180deg, var(--ivory-deep) 0%, var(--ivory) 38%, var(--ivory-bright) 50%, var(--gold-pale) 55%, var(--gold-pale) 100%);position:absolute;inset:0}.tmap-sun{background:radial-gradient(circle, var(--gold) 0%, transparent 66%);opacity:.45;filter:blur(1px);border-radius:50%;width:170px;height:170px;position:absolute;top:26%;left:59%}.tmap-cloud{background:var(--ivory-bright);opacity:.6;filter:blur(12px);border-radius:50%;position:absolute}.tmap-sea{background:linear-gradient(180deg, var(--olive-soft) 0%, var(--olive) 52%, var(--olive-deep) 100%);height:17%;position:absolute;top:53%;left:0;right:0}.tmap-shim{opacity:.5;background:repeating-linear-gradient(#0000 0 7px,#ffffff2e 7px 8px);position:absolute;inset:0}.tmap-horizon{background:#ffffff8c;height:1px;position:absolute;top:53%;left:0;right:0}.tmap-beach{background:linear-gradient(180deg, var(--ivory-soft), var(--linen));height:5.5%;position:absolute;top:70%;left:0;right:0}.tmap-road{background:linear-gradient(180deg, var(--olive-deep) 0%, var(--forest-deep) 100%);position:absolute;inset:75% 0 0}.tmap-curb{background:#ffffff52;height:3px;position:absolute;top:1px;left:0;right:0}.tmap-dashes{opacity:.5;background:repeating-linear-gradient(90deg,#ffffffd9 0 46px,#0000 46px 122px);height:6px;position:absolute;top:44%;left:-30%;right:-30%}.tmap-palms{width:340vw;height:75.5%;position:absolute;top:0;left:0}.tmap-palm{color:var(--olive-deep);position:absolute;bottom:0}.tmap-frond{width:34vw;max-width:440px;color:var(--forest-deep);opacity:.9;transform-origin:top;animation:5.5s ease-in-out infinite tmap-sway;position:absolute;top:-5%}.tmap-frond-l{left:-7vw}.tmap-frond-r{animation-name:tmap-swayR;animation-delay:.7s;right:-7vw;transform:scaleX(-1)}@keyframes tmap-sway{0%,to{transform:rotate(-3deg)}50%{transform:rotate(2deg)}}@keyframes tmap-swayR{0%,to{transform:scaleX(-1)rotate(-3deg)}50%{transform:scaleX(-1)rotate(2deg)}}.tmap-couple{z-index:6}.tmap-couple .tmap-bob{height:auto}.tmap-couple.tmap-driving .tmap-bob{animation:.42s ease-in-out infinite tmap-drive}@keyframes tmap-drive{0%,to{transform:translateY(0)rotate(-.5deg)}50%{transform:translateY(-1.6%)rotate(.5deg)}}.tmap-speed{opacity:0;width:48%;height:36%;transition:opacity .5s var(--ease);position:absolute;top:40%;left:97%}.tmap-speed i{background:linear-gradient(90deg,#1f1b124d,#0000);border-radius:3px;height:3px;position:absolute;left:0}.tmap-speed i:first-child{width:64%;animation:1.05s linear infinite tmap-zip;top:14%}.tmap-speed i:nth-child(2){width:100%;animation:.8s linear .2s infinite tmap-zip;top:46%}.tmap-speed i:nth-child(3){width:52%;animation:1.2s linear .35s infinite tmap-zip;top:78%}@keyframes tmap-zip{0%{opacity:0;transform:translate(-45%)}28%{opacity:.85}to{opacity:0;transform:translate(130%)}}.tmap-compass{width:54px;height:54px;color:var(--olive-deep);opacity:.45;z-index:6;pointer-events:none;position:absolute;top:34px;right:34px}.tmap-compass svg{width:100%;height:100%;display:block}.tmap-compass-n{font-family:var(--serif);letter-spacing:.18em;fill:currentColor;font-size:10px}.tmap-compass-minor{font-family:var(--serif);letter-spacing:.12em;fill:currentColor;opacity:.55;font-size:7px}.tmap-intro{z-index:8;text-align:center;place-items:center;padding:0 28px;display:grid;position:absolute;inset:0}.tmap-intro-box{max-width:560px}.tmap-eyebrow{font-family:var(--serif);letter-spacing:.5em;text-transform:uppercase;color:var(--olive-deep);margin:0 0 12px;font-size:11px;font-weight:500}.tmap-title{font-family:var(--script);color:var(--forest);margin:0 0 8px;font-size:clamp(56px,9vw,104px);font-weight:400;line-height:.88}.tmap-sep{color:var(--olive);justify-content:center;align-items:center;gap:14px;margin:16px auto 18px;display:flex}.tmap-sep-ln{background:linear-gradient(90deg,#0000,currentColor,#0000);width:64px;height:1px}.tmap-intro-sub{font-family:var(--serif);color:var(--ink);margin:0;font-size:17px;line-height:1.6}.tmap-cue{font-family:var(--serif);letter-spacing:.42em;text-transform:uppercase;color:var(--olive-deep);margin-top:28px;font-size:10px}.tmap-cue-stem{background:linear-gradient(to bottom, var(--olive), transparent);width:1px;height:32px;margin:10px auto 0;animation:2.4s ease-in-out infinite tmap-drip;display:block}@keyframes tmap-drip{0%,to{transform-origin:top;opacity:.4;transform:scaleY(.35)}55%{transform-origin:top;opacity:1;transform:scaleY(1)}}.tmap-steps-portal{left:var(--hud-inset-left,42px);bottom:var(--hud-inset-bottom,96px);z-index:70;visibility:hidden;pointer-events:none;width:min(360px,100vw - 84px);position:fixed}.tmap-steps-portal--show{visibility:visible}.tmap-steps-glass{border-radius:10px;position:absolute;inset:0;overflow:hidden;box-shadow:0 18px 48px #1f1b1238}.tmap-steps-mirror{width:100vw;height:100vh;left:var(--mirror-x,0);top:var(--mirror-y,0);filter:blur(22px)saturate(1.2);background:radial-gradient(ellipse at 60% 55%, var(--ivory-bright) 0%, var(--ivory) 55%, var(--ivory-deep) 120%);pointer-events:none;position:absolute}.tmap-steps-mirror-svg{width:100%;height:100%;color:var(--olive);display:block;position:absolute;inset:0}.tmap-mirror-land{fill:#7a846012;stroke:var(--olive-deep);stroke-linejoin:round;stroke-linecap:round;stroke-width:1.2px;vector-effect:non-scaling-stroke}.tmap-mirror-ghost{stroke:var(--olive);stroke-linecap:round;stroke-dasharray:5 7;stroke-width:1.4px;vector-effect:non-scaling-stroke}.tmap-mirror-route{stroke:var(--gold-deep);stroke-linecap:round;stroke-width:2.8px;vector-effect:non-scaling-stroke}.tmap-mirror-placename{font-family:var(--serif);fill:var(--olive-deep);opacity:0;pointer-events:none;font-style:italic}.tmap-steps-tint{border-radius:inherit;pointer-events:none;background:#faf7ee6b;border:1px solid #ffffff80;position:absolute;inset:0;box-shadow:inset 0 1px #ffffff8c}.tmap-steps-content{z-index:1;padding:18px 22px;position:relative}.tmap-steps-idx{font-family:var(--serif);letter-spacing:.4em;text-transform:uppercase;color:var(--olive-deep);margin-bottom:10px;font-size:12px}.tmap-steps-idx strong{margin:0 4px}.tmap-swap{height:72px;position:relative}.tmap-st{opacity:0;filter:blur(6px);transition:opacity .6s cubic-bezier(.32,.72,0,1),transform .6s cubic-bezier(.32,.72,0,1),filter .6s cubic-bezier(.32,.72,0,1);position:absolute;inset:0;transform:translateY(12px)}.tmap-st-on{opacity:1;filter:none;transform:none}.tmap-st h4{font-family:var(--serif);color:var(--forest);margin:0;font-size:25px;font-weight:500;line-height:1.12}.tmap-st span{font-family:var(--serif);color:var(--ink-soft);font-size:15px;font-style:italic}.tmap-bar{background:var(--hairline);height:1px;margin-top:14px;position:relative}.tmap-bar i{background:var(--gold-deep);transform-origin:0;width:100%;position:absolute;top:0;bottom:0;left:0;transform:scaleX(0)}.tmap-km{font-family:var(--serif);letter-spacing:.18em;color:var(--olive-deep);text-transform:uppercase;margin-top:8px;font-size:13px}.tmap-celebration{z-index:10;text-align:center;opacity:0;pointer-events:none;background-color:var(--ivory-soft);background-image:radial-gradient(ellipse at center, var(--ivory-bright) 0%, var(--ivory-soft) 100%);justify-content:center;align-items:center;padding:40px 28px;transition:opacity .8s;display:flex;position:absolute;inset:0;overflow-y:auto}.tmap-celebration .bg-branch{color:var(--olive);opacity:calc(var(--tmap-arr,0) * .07);pointer-events:none;z-index:0;position:absolute}.tmap-celebration .bg-branch.l{width:240px;height:520px;transform:translateX(calc((1 - var(--tmap-arr,0)) * -40px)) rotate(calc(-12deg - (1 - var(--tmap-arr,0)) * 6deg));transition:transform .6s var(--ease), opacity .6s ease;top:4%;left:2%}.tmap-celebration .bg-branch.r{width:240px;height:520px;transform:translateX(calc((1 - var(--tmap-arr,0)) * 40px)) rotate(calc(12deg + (1 - var(--tmap-arr,0)) * 6deg)) scaleX(-1);transition:transform .6s var(--ease), opacity .6s ease;bottom:4%;right:2%}.tmap-celebration .bg-branch svg{width:100%;height:100%}.tmap-celebration-inner{z-index:2;width:100%;max-width:1100px;transition:transform .8s cubic-bezier(.32,.72,0,1);position:relative}.tmap-celeb-date{font-family:var(--script);color:var(--forest);letter-spacing:.01em;transform:translateY(calc((1 - var(--tmap-arr,0)) * -15px));transition:transform .7s var(--ease);margin:0 0 12px;font-size:clamp(56px,7.5vw,96px);font-weight:400;line-height:.92}.tmap-celeb-sep{color:var(--olive-pale);justify-content:center;align-items:center;gap:14px;margin:8px auto 32px;display:flex}.tmap-celeb-ln{background:var(--olive-pale);width:60px;height:1px;opacity:calc(var(--tmap-arr,0) * .65);transform:scaleX(var(--tmap-arr,0));transform-origin:50%;transition:transform .8s var(--ease), opacity .8s ease}.tmap-celeb-grid{grid-template-columns:1fr 1fr;gap:36px;max-width:1020px;margin:0 auto;display:grid}.tmap-celeb-card{background:var(--ivory-bright);border:1px solid var(--olive-pale);text-align:center;border-radius:0;padding:48px 36px 40px;position:relative}.tmap-celeb-card:before{content:"";border:1px solid var(--olive-pale);opacity:.35;pointer-events:none;transition:border-color .4s,opacity .4s;position:absolute;inset:12px}.tmap-celeb-card:hover:before{border-color:var(--gold-pale);opacity:.7}.tmap-celeb-card:first-child{transform:translate(calc((1 - var(--tmap-arr,0)) * -24px), calc((1 - var(--tmap-arr,0)) * 16px));opacity:var(--tmap-arr,0);transition:transform .8s var(--ease), opacity .8s ease, box-shadow .4s var(--ease), border-color .4s ease}.tmap-celeb-card:first-child:hover{transform:translate(calc((1 - var(--tmap-arr,0)) * -24px), calc((1 - var(--tmap-arr,0)) * 16px - 8px));border-color:var(--gold);box-shadow:0 20px 40px #4b523b1a}.tmap-celeb-card:last-child{transform:translate(calc((1 - var(--tmap-arr,0)) * 24px), calc((1 - var(--tmap-arr,0)) * 16px));opacity:var(--tmap-arr,0);transition:transform .8s var(--ease), opacity .8s ease, box-shadow .4s var(--ease), border-color .4s ease}.tmap-celeb-card:last-child:hover{transform:translate(calc((1 - var(--tmap-arr,0)) * 24px), calc((1 - var(--tmap-arr,0)) * 16px - 8px));border-color:var(--gold);box-shadow:0 20px 40px #4b523b1a}.tmap-celeb-card .corner-sprig{width:50px;height:22px;color:var(--olive);background:var(--ivory-bright);z-index:5;padding:0 6px;transition:color .4s;position:absolute;top:-11px;left:50%;transform:translate(-50%)}.tmap-celeb-card:hover .corner-sprig{color:var(--gold)}.tmap-celeb-icon{color:var(--olive);transition:color .4s ease, transform .4s var(--ease);margin-bottom:20px}.tmap-celeb-card:hover .tmap-celeb-icon{color:var(--gold);transform:scale(1.08)}.tmap-celeb-kind{font-family:var(--serif);letter-spacing:.32em;text-transform:uppercase;color:var(--olive-deep);margin:0 0 12px;font-size:11px}.tmap-celeb-name{font-family:var(--script);color:var(--forest);margin:0 0 20px;font-size:clamp(40px,4.5vw,60px);font-style:italic;line-height:1}.tmap-celeb-time{font-family:var(--serif);letter-spacing:.02em;color:var(--ink);margin:0 0 16px;font-size:clamp(24px,2.8vw,32px);font-weight:700}.tmap-celeb-venue{font-family:var(--serif);color:var(--ink);margin:0 0 6px;font-size:15px;font-weight:500;line-height:1.4}.tmap-celeb-addr{font-family:var(--serif);color:var(--ink-soft);margin:0 0 20px;font-size:13px;font-style:italic;line-height:1.5}.tmap-celeb-card .place-pin{font-family:var(--serif);font-size:13px}.tmap-placename{font-family:var(--script);fill:var(--olive);opacity:0;pointer-events:none;letter-spacing:.06em}.tmap-rail{z-index:40;background:0 0;height:2px;position:absolute;bottom:0;left:0;right:0}.tmap-rail i{background:linear-gradient(to right, var(--olive), var(--gold-deep));width:0;height:100%;display:block}@media (max-width:700px){.tmap-host{height:294.5vh}.tmap-compass{opacity:.32;width:42px;height:42px;top:18px;right:18px}.tmap-title{font-size:clamp(48px,14vw,72px)}.tmap-intro-sub{font-size:15px}.tmap-steps-portal{--hud-inset-left:20px;width:auto;bottom:96px;left:20px;right:20px}.tmap-steps-content{padding:14px 16px}.tmap-st h4{font-size:21px}.tmap-celebration{align-items:flex-start;padding:20px 16px}.tmap-celeb-date{font-size:clamp(36px,10vw,56px)}.tmap-celeb-grid{grid-template-columns:1fr;gap:18px}.tmap-celeb-card{padding:28px 20px 24px}.tmap-celeb-name{font-size:clamp(32px,8vw,44px)}.tmap-celeb-time{font-size:22px}.tmap-pin-nm{font-size:16px}.tmap-pin-sub{font-size:8px}.tmap-wp-label{font-size:12px}.tmap-route{stroke-width:3.2px}}@media (prefers-reduced-motion:reduce){.tmap-pin-ring,.tmap-traveler-pulse,.tmap-cue-stem,.tmap-couple .tmap-bob,.tmap-couple.tmap-driving .tmap-bob,.tmap-couple.tmap-celebrate .tmap-fly-heart,.tmap-frond,.tmap-frond-r,.tmap-speed i{animation:none}}.rsvp{text-align:center;background:radial-gradient(ellipse at center, var(--ivory-bright), var(--ivory-deep));padding:160px 0 140px;position:relative;overflow:hidden}.rsvp .bg-branch{color:var(--olive);opacity:.1;pointer-events:none;position:absolute}.rsvp .bg-branch.l{width:180px;height:100%;top:0;left:-40px}.rsvp .bg-branch.r{width:180px;height:100%;top:0;right:-40px;transform:scaleX(-1)}.rsvp .bg-branch svg{width:100%;height:100%}.rsvp .narrow{z-index:2;position:relative}.rsvp h2{font-family:var(--script);color:var(--forest);margin:18px 0;font-size:clamp(72px,9vw,124px);line-height:.95}.rsvp .lede{font-family:var(--serif);color:var(--ink);max-width:540px;margin:0 auto 38px;font-size:20px;font-style:italic}.rsvp .btn{font-family:var(--serif);letter-spacing:.48em;text-transform:uppercase;color:var(--ivory);background:var(--forest);transition:background .5s var(--ease), letter-spacing .5s var(--ease);border:none;padding:20px 46px;font-size:12px;text-decoration:none;display:inline-block;position:relative}.rsvp .btn:before,.rsvp .btn:after{content:"";background:#c3c8b08c;width:1px;position:absolute;top:7px;bottom:7px}.rsvp .btn:before{left:8px}.rsvp .btn:after{right:8px}.rsvp .btn:hover{background:var(--forest-deep);letter-spacing:.58em}.rsvp .by{font-family:var(--serif);color:var(--ink-soft);margin-top:26px;font-size:14px;font-style:italic}footer{background:var(--forest-deep);color:var(--ivory-deep);text-align:center;padding:90px 32px calc(148px + env(safe-area-inset-bottom,0px))}.monogram-foot{border:1px solid var(--olive-pale);width:86px;height:86px;color:var(--olive-pale);font-family:var(--serif);letter-spacing:-.04em;border-radius:50%;place-items:center;margin:0 auto 26px;font-size:30px;font-style:italic;display:grid}footer .families{max-width:720px;margin:0 auto}footer .families-heading{font-family:var(--script);color:var(--olive-pale);opacity:.95;margin-bottom:36px;font-size:clamp(32px,5vw,42px);font-weight:400;line-height:1.1}footer .families .reveal{transform:translateY(28px)scale(.99)}footer .families .reveal.in{animation:families-reveal-in 2.2s var(--ease-soft) both}footer .meta.reveal{transform:translateY(20px)}footer .meta.reveal.in{animation:families-reveal-in 2s var(--ease-soft) both}@keyframes families-reveal-in{0%{opacity:0;transform:translateY(28px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}footer .families-grid{grid-template-columns:1fr auto 1fr;align-items:stretch;gap:0 28px;display:grid}footer .families-panel{flex-direction:column;align-items:center;gap:0;padding:0 8px;display:flex}footer .families-name{font-family:var(--script);color:var(--ivory);letter-spacing:.02em;margin:0 0 18px;font-size:clamp(36px,5.5vw,48px);font-weight:400;line-height:1}footer .families-parents{font-family:var(--serif);letter-spacing:.05em;color:var(--ivory);max-width:26ch;margin:0;font-size:clamp(14px,2vw,16px);font-style:normal;font-weight:500;line-height:1.55}footer .families-siblings{font-family:var(--serif);letter-spacing:.04em;color:var(--olive-pale);max-width:28ch;margin:16px 0 0;padding-top:16px;font-size:clamp(12px,1.7vw,14px);font-style:italic;font-weight:300;line-height:1.5;position:relative}footer .families-siblings:before{content:"";background:linear-gradient(90deg,#0000,#c3c8b073,#0000);width:min(48px,40%);height:1px;position:absolute;top:0;left:50%;transform:translate(-50%)}footer .families-rule{flex-direction:column;justify-content:center;align-self:center;align-items:center;gap:10px;padding:12px 0;display:flex}footer .families-rule-line{background:linear-gradient(#0000,#c3c8b059,#0000);width:1px;height:36px}footer .families-rule-mark{font-family:var(--script);color:var(--olive-pale);opacity:.5;font-size:22px;line-height:1}@media (max-width:620px){footer{padding:72px 24px calc(132px + env(safe-area-inset-bottom,0px))}footer .families-heading{margin-bottom:28px}footer .families-grid{grid-template-columns:1fr;gap:0}footer .families-rule{flex-direction:row;gap:14px;width:min(220px,72%);margin:28px auto;padding:0}footer .families-rule-line{background:linear-gradient(90deg,#0000,#c3c8b059,#0000);flex:1;width:auto;height:1px}footer .families-panel+.families-panel{padding-top:4px}footer .families-parents,footer .families-siblings{max-width:none}}footer .meta{font-family:var(--serif);letter-spacing:.4em;text-transform:uppercase;color:var(--olive-pale);opacity:.8;margin-top:40px;margin-bottom:8px;font-size:11px}@keyframes reveal-in{0%{opacity:0;transform:translateY(36px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes card-in{0%{opacity:0}to{opacity:1}}.reveal{opacity:0;transform:translateY(36px)scale(.98)}.reveal:not(.in){animation:none}.reveal.in{animation:reveal-in 2.4s var(--ease-soft) both}.reveal.d1.in{animation-delay:.15s}.reveal.d2.in{animation-delay:.3s}.reveal.d3.in{animation-delay:.45s}.reveal.d4.in{animation-delay:.6s}.reveal.d5.in{animation-delay:.75s}.reveal.d6.in{animation-delay:.9s}@media (prefers-reduced-motion:reduce){.reveal,.reveal.in{opacity:1;filter:none;animation:none;transform:none}}.sprig-rule{color:var(--olive);justify-content:center;align-items:center;gap:16px;display:flex}.sprig-rule .line{background:linear-gradient(90deg,#0000,currentColor,#0000);width:80px;height:1px}.sprig-rule .center{width:50px;height:22px}.blessing .bg-wreath{width:760px;max-width:92vw;height:760px;max-height:92vw;color:var(--olive);opacity:0;z-index:0;pointer-events:none;transition:opacity 2.4s var(--ease);animation:180s linear infinite rotate;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.blessing.lit .bg-wreath{opacity:.13}.blessing .bg-wreath svg{width:100%;height:100%}.blessing .bg-wreath path{stroke-dasharray:800;stroke-dashoffset:800px;transition:stroke-dashoffset 5s var(--ease)}.blessing.lit .bg-wreath path{stroke-dashoffset:0}.blessing .leaves{pointer-events:none;z-index:1;position:absolute;inset:0;overflow:hidden}.blessing .leaves .leaf{opacity:0;animation-duration:26s}.story .story-grid{text-align:left;z-index:2;grid-template-columns:1.1fr 1fr;align-items:center;gap:72px;max-width:1100px;margin:64px auto 0;padding:0 32px;display:grid;position:relative}.story-text p{font-family:var(--serif);color:var(--ink);margin:0 0 18px;font-size:20px;line-height:1.78}.story-text .lead-letter{float:left;font-family:var(--script);color:var(--olive);padding:8px 12px 0 0;font-size:80px;line-height:.8}.story-photo{aspect-ratio:4/5;background:radial-gradient(ellipse at 50% 35%, var(--ivory-bright) 0%, var(--ivory-deep) 90%);border:1px solid var(--olive-pale);place-items:center;display:grid;position:relative;box-shadow:inset 0 1px #fff9,0 30px 60px -30px #1f1b1226}.story-photo .sprig-top{background:var(--ivory);width:60px;height:22px;color:var(--olive);padding:0 8px;position:absolute;top:-14px;left:50%;transform:translate(-50%)}.story-photo .ph-icon{width:56px;height:56px;color:var(--olive);opacity:.45}.story-photo .ph-cap{text-align:center;font-family:var(--serif);color:var(--ink-soft);font-size:14px;font-style:italic;position:absolute;bottom:-34px;left:0;right:0}.story-photo .corner{border:1px solid var(--olive);opacity:.6;width:22px;height:22px;position:absolute}.story-photo .corner.tl{border-bottom:none;border-right:none;top:10px;left:10px}.story-photo .corner.tr{border-bottom:none;border-left:none;top:10px;right:10px}.story-photo .corner.bl{border-top:none;border-right:none;bottom:10px;left:10px}.story-photo .corner.br{border-top:none;border-left:none;bottom:10px;right:10px}@media (max-width:760px){.story .story-grid{grid-template-columns:1fr;gap:56px}}.milestones{z-index:2;grid-template-columns:repeat(4,1fr);gap:28px;max-width:1000px;margin:160px auto 0;padding:0 32px;display:grid;position:relative}.milestones:before{content:"";background:linear-gradient(to right, transparent, var(--olive), transparent);opacity:.45;height:1px;position:absolute;top:65px;left:11%;right:11%}.milestone{text-align:center;z-index:2;position:relative}.milestone .circle{background:radial-gradient(circle at 50% 40%, var(--ivory-bright), var(--ivory-deep));border:1px solid var(--olive-pale);width:130px;height:130px;transition:transform 1.6s var(--ease);border-radius:50%;place-items:center;margin:0 auto 22px;display:grid;position:relative}.milestone:hover .circle{transform:translateY(-4px)}.milestone .circle:after{content:"";border:1px solid var(--olive-pale);opacity:.45;border-radius:50%;position:absolute;inset:-6px}.milestone .circle svg{width:30px;height:30px;color:var(--olive);opacity:.6}.milestone .year{font-family:var(--script);color:var(--olive);margin-bottom:4px;font-size:30px;line-height:1}.milestone h5{font-family:var(--serif);letter-spacing:.35em;text-transform:uppercase;color:var(--ink);margin:0 0 6px;font-size:12px;font-weight:500}.milestone p{font-family:var(--serif);color:var(--ink-soft);margin:0;font-size:14px;font-style:italic;line-height:1.5}@media (max-width:700px){.milestones{grid-template-columns:repeat(2,1fr);gap:40px;margin-top:100px}.milestones:before{display:none}}.gallery{background:linear-gradient(180deg, var(--ivory) 0%, var(--ivory-soft) 50%, var(--ivory) 100%);padding:160px 0;position:relative;overflow:hidden}.gallery .bg-branch{color:var(--olive);opacity:.07;pointer-events:none;z-index:0;position:absolute}.gallery .bg-branch.l{width:200px;height:600px;top:6%;left:-50px}.gallery .bg-branch.r{width:200px;height:600px;bottom:6%;right:-50px;transform:scaleX(-1)}.gallery .bg-branch svg{width:100%;height:100%}.gallery .narrow{z-index:2;margin-bottom:70px;position:relative}.gallery-grid{z-index:2;grid-template-columns:repeat(6,1fr);grid-auto-rows:130px;gap:18px;max-width:1180px;margin:0 auto;padding:0 32px;display:grid;position:relative}.g-tile{background:radial-gradient(ellipse at 50% 35%, var(--ivory-bright), var(--ivory-deep));border:1px solid var(--olive-pale);transition:transform .8s var(--ease), box-shadow .8s var(--ease), border-color .8s var(--ease);place-items:center;display:grid;position:relative;overflow:hidden}.g-tile:hover{will-change:transform;border-color:var(--olive);transform:translateY(-6px);box-shadow:0 24px 50px -24px #1f1b1238}.g-tile svg.placeholder{width:38px;height:38px;color:var(--olive);opacity:.38;transition:opacity .6s var(--ease)}.g-tile:hover svg.placeholder{opacity:.6}.g-tile .cap{font-family:var(--serif);color:var(--ink-soft);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#f5f2e8c7;padding:2px 10px;font-size:12px;font-style:italic;position:absolute;bottom:10px;left:12px}.g-tile .corner{border:1px solid var(--olive-pale);opacity:.5;width:16px;height:16px;position:absolute}.g-tile .corner.tl{border-bottom:none;border-right:none;top:8px;left:8px}.g-tile .corner.br{border-top:none;border-left:none;bottom:8px;right:8px}.g-tile.t1{grid-area:1/1/4/3}.g-tile.t2{grid-area:1/3/3/5}.g-tile.t3{grid-area:1/5/3/7}.g-tile.t4{grid-area:3/3/4/4}.g-tile.t5{grid-area:3/4/4/6}.g-tile.t6{grid-area:3/6/4/7}@media (max-width:800px){.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:160px;gap:14px}.g-tile.t1,.g-tile.t2,.g-tile.t3,.g-tile.t4,.g-tile.t5,.g-tile.t6{grid-area:auto}.g-tile.t1{grid-area:span 2/1/auto/-1}}.travel-map{max-width:640px;margin:48px auto 0;padding:0 32px}.travel-map .map-key{text-align:left;font-family:var(--serif)}.travel-map .map-key .label{letter-spacing:.5em;text-transform:uppercase;color:var(--olive-deep);margin-bottom:12px;font-size:11px}.travel-map .map-key h3{font-family:var(--script);color:var(--forest);margin:0 0 22px;font-size:clamp(48px,6vw,72px);line-height:1}.travel-map .map-key p{color:var(--ink);margin:0 0 14px;font-size:18px;font-weight:600;line-height:1.65}.travel-map .ph{color:var(--ink-soft);font-style:italic}.travel-map .stat-row{border-top:1px solid var(--hairline);grid-template-columns:1fr 1fr;gap:24px;margin:24px 0 0;padding:16px 0 0;display:grid}.travel-map .stat .num{font-family:var(--serif);color:var(--forest);font-size:38px;font-weight:300;line-height:1}.travel-map .stat .lab{font-family:var(--serif);letter-spacing:.42em;text-transform:uppercase;color:var(--olive-deep);margin-top:6px;font-size:11px}@media (max-width:760px){.travel-map .stat-row{grid-template-columns:1fr 1fr}}.envelope{perspective:1000px;width:220px;height:150px;transition:transform .6s var(--ease);margin:0 auto 36px;position:relative}.envelope:hover{transform:translateY(-4px)}.envelope-body{background:var(--ivory-bright);border:1px solid var(--olive);position:absolute;inset:0;overflow:visible;box-shadow:0 18px 40px -22px #1f1b1240}.envelope-body .sprig{width:70px;height:30px;color:var(--olive);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.envelope-flap{transform-origin:top;width:100%;height:100%;transition:transform 1.6s var(--ease);z-index:3;position:absolute;top:0;left:0;transform:rotateX(0)}.envelope-flap svg{width:100%;height:100%;color:var(--olive);background:var(--ivory-deep);display:block}.envelope.open .envelope-flap{transform:rotateX(-180deg)}.envelope-card{z-index:2;transition:transform 1.4s .6s var(--ease);background:var(--ivory-bright);place-items:center;display:grid;position:absolute;inset:4px;transform:translateY(0)}.envelope.open .envelope-card{transform:translateY(-44px)}.envelope-card .inside{font-family:var(--script);color:var(--olive-deep);font-size:34px;line-height:1}.footer-seal{width:116px;height:116px;margin:0 auto 28px;position:relative}.footer-seal .wreath{color:var(--olive-pale);opacity:.9;animation:90s linear infinite rotate;position:absolute;inset:0}.footer-seal .wreath svg{width:100%;height:100%;display:block}.footer-seal .gr{font-family:var(--serif);color:var(--ivory);letter-spacing:.04em;text-align:center;place-items:center;font-size:28px;font-style:italic;font-weight:300;line-height:1;display:grid;position:absolute;inset:0}.footer-seal .gr small{font-family:var(--serif);letter-spacing:.42em;text-transform:uppercase;color:var(--olive-pale);margin-top:4px;font-size:8px;font-style:normal;font-weight:500;display:block}.section-head{text-align:center}.section-head .pre-sprig{width:70px;height:24px;color:var(--olive);margin:0 auto 18px;display:block}.count .sparks{pointer-events:none;position:absolute;inset:0;overflow:hidden}.count .spark{background:var(--olive-pale);opacity:0;border-radius:50%;width:2px;height:2px;animation:9s ease-in-out infinite rise;position:absolute}@keyframes rise{0%{opacity:0;transform:translateY(0)scale(.6)}25%{opacity:.8}to{opacity:0;transform:translateY(-40vh)scale(1.4)}}.growing-vine{pointer-events:none;z-index:2;width:150px;position:absolute;left:20px}.growing-vine .stem-svg{width:100%;height:100%;display:block;position:absolute;inset:0;overflow:visible}.growing-vine .vine-stem{stroke:var(--olive-soft);fill:none;opacity:.55;filter:drop-shadow(0 0 6px #9da58540)}.vine-deco{color:var(--olive-soft);opacity:0;transition:opacity 1.6s var(--ease), transform 1.6s var(--ease);pointer-events:none;transform-origin:50%;position:absolute;transform:translate(-50%,-50%)scale(.3)}.vine-deco svg{width:100%;height:100%;display:block}.vine-deco.on{opacity:.62;transform:translate(-50%,-50%)scale(1)}.vine-deco.leaf{width:56px;height:40px;transition-duration:2.2s}.vine-deco.grape{width:30px;height:44px;transition-duration:1.8s}.vine-deco.tend{width:28px;height:22px;transition-duration:1.4s}.vine-deco.on.leaf{animation:7s ease-in-out infinite leafSway}.vine-deco.on.grape{animation:5s ease-in-out infinite grapeBob}.vine-deco.on.tend{animation:8s ease-in-out infinite tendCurl}@keyframes leafSway{0%,to{transform:translate(-50%,-50%)rotate(-5deg)}50%{transform:translate(-50%,-50%)rotate(5deg)}}@keyframes grapeBob{0%,to{transform:translate(-50%,-50%)translateY(-2px)rotate(-1deg)}50%{transform:translate(-50%,-50%)translateY(2px)rotate(1deg)}}@keyframes tendCurl{0%,to{transform:translate(-50%,-50%)rotate(-6deg)}50%{transform:translate(-50%,-50%)rotate(6deg)}}@media (max-width:960px){.growing-vine{display:none}}.particle-layer{pointer-events:none;z-index:1;position:absolute;inset:0;overflow:hidden}.particle{background:var(--p-color,var(--olive));opacity:0;pointer-events:none;filter:blur(var(--p-blur,0));width:var(--p-size,2px);height:var(--p-size,2px);animation:floatUp var(--p-dur,18s) linear infinite;animation-delay:var(--p-delay,0s);will-change:transform, opacity;border-radius:50%;animation-play-state:paused;position:absolute}body.loaded .particle{animation-play-state:running}.particle.shimmer{animation-name:shimmerP;animation-timing-function:ease-in-out}.particle.fall{animation-name:fallDown}.particle.sway{animation-name:swayUp}@keyframes floatUp{0%{opacity:0;transform:translate(0,0)scale(.6)}15%{opacity:var(--p-op,.4)}85%{opacity:var(--p-op,.4)}to{transform:translate3d(var(--p-dx,20px), -110vh, 0) scale(1.1);opacity:0}}@keyframes swayUp{0%{opacity:0;transform:translate(0,0)scale(.7)}20%{opacity:var(--p-op,.4)}50%{transform:translate3d(calc(var(--p-dx,24px) * .6), -55vh, 0) scale(1)}80%{opacity:var(--p-op,.4)}to{transform:translate3d(calc(var(--p-dx,24px) * -.4), -110vh, 0) scale(.9);opacity:0}}@keyframes shimmerP{0%,to{opacity:0;transform:scale(.5)}50%{opacity:var(--p-op,.5);transform:scale(1.5)}}@keyframes fallDown{0%{opacity:0;transform:translateY(-20vh)scale(.7)}15%{opacity:var(--p-op,.4)}85%{opacity:var(--p-op,.4)}to{transform:translate3d(var(--p-dx,-20px), 110vh, 0) scale(1);opacity:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.rsvp-modal-overlay{z-index:9999;-webkit-backdrop-filter:blur();opacity:0;transition:opacity .95s var(--ease-soft), background-color .95s var(--ease-soft), backdrop-filter .95s var(--ease-soft), -webkit-backdrop-filter .95s var(--ease-soft);background:#131c1500;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0;overflow-y:auto}.rsvp-modal-overlay--visible{opacity:1;-webkit-backdrop-filter:blur(6px);background:#131c159e}.rsvp-modal-content{background:var(--ivory-bright);border:1px solid var(--olive-pale);opacity:0;filter:blur(6px);width:100%;max-width:560px;max-height:90vh;transition:opacity .95s var(--ease-soft), transform 1.05s var(--ease), filter 1.05s var(--ease), box-shadow 1.05s var(--ease);border-radius:3px;padding:48px 40px;position:relative;overflow-y:auto;transform:translateY(36px)scale(.965);box-shadow:0 40px 90px -20px #131c1573}.rsvp-modal-overlay--visible .rsvp-modal-content{opacity:1;filter:blur();transform:translateY(0)scale(1);box-shadow:0 40px 90px -20px #131c1573}.rsvp-modal-overlay--visible .rsvp-modal-head{animation:rsvpModalHeadIn 1.15s var(--ease-soft) .22s both}@keyframes rsvpModalHeadIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.rsvp-modal-overlay,.rsvp-modal-content{filter:none!important;transition-duration:.01ms!important}.rsvp-modal-overlay--visible .rsvp-modal-head{animation:none}}.rsvp-modal-close{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:28px;line-height:1;transition:color .25s;position:absolute;top:18px;right:22px}.rsvp-modal-close:hover{color:var(--gold)}.rsvp-modal-head{text-align:center;margin-bottom:28px}.rsvp-modal-sprig{width:56px;height:20px;color:var(--olive);margin:0 auto 10px;display:block}.rsvp-modal-head h2{font-family:var(--script);color:var(--forest);margin-bottom:6px;font-size:clamp(48px,6vw,72px);line-height:1}.rsvp-sub{font-family:var(--serif);color:var(--ink-soft);font-size:15px;font-style:italic}.rsvp-form{flex-direction:column;gap:22px;display:flex}.rsvp-form-group{text-align:left;flex-direction:column;gap:7px;display:flex}.rsvp-form-group>label{font-family:var(--serif);letter-spacing:.38em;text-transform:uppercase;color:var(--olive-deep);font-size:11px;font-weight:500}.rsvp-input{border:1px solid var(--olive-pale);background:var(--ivory-soft);width:100%;font-family:var(--body);color:var(--ink);box-sizing:border-box;border-radius:2px;padding:11px 14px;font-size:17px;transition:border-color .25s,background .25s}.rsvp-input:focus{border-color:var(--gold);background:var(--ivory-bright);outline:none}.rsvp-count-selector{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.rsvp-count-btn{border:1px solid var(--olive-pale);background:var(--ivory-soft);color:var(--ink);font-family:var(--serif);cursor:pointer;border-radius:2px;padding:9px 4px;font-size:16px;transition:all .2s}.rsvp-count-btn:hover{border-color:var(--olive)}.rsvp-count-btn.active{background:var(--forest);color:var(--ivory-bright);border-color:var(--forest)}.rsvp-event-selector{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.rsvp-event-btn{border:1px solid var(--olive-pale);background:var(--ivory-soft);color:var(--ink);font-family:var(--serif);cursor:pointer;border-radius:2px;justify-content:center;align-items:center;gap:8px;padding:11px 10px;font-size:15px;transition:all .2s;display:flex}.rsvp-event-btn:hover{border-color:var(--olive)}.rsvp-event-btn.active{background:var(--forest);color:var(--ivory-bright);border-color:var(--forest)}.rsvp-event-check{opacity:.55;border:1px solid;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;font-size:11px;line-height:1;display:inline-flex}.rsvp-event-btn.active .rsvp-event-check{opacity:1}.rsvp-event-hint{font-family:var(--serif);color:var(--olive);opacity:.8;margin:8px 0 0;font-size:12.5px;font-style:italic}.rsvp-diet-selector{flex-direction:column;gap:10px;display:flex}.rsvp-diet-option{border:1px solid var(--olive-pale);background:var(--ivory-soft);cursor:pointer;font-family:var(--serif);border-radius:2px;align-items:center;gap:10px;padding:11px 16px;font-size:15px;transition:border-color .2s,background .2s;display:flex}.rsvp-diet-option input[type=radio]{accent-color:var(--olive);cursor:pointer;flex-shrink:0;width:16px;height:16px;margin:0}.rsvp-diet-option:hover{border-color:var(--olive)}.rsvp-diet-option.selected{border-color:var(--gold);background:var(--ivory-bright)}.rsvp-checkbox-label{cursor:pointer;font-family:var(--serif);color:var(--ink);align-items:center;gap:10px;font-size:15px;display:flex}.rsvp-checkbox-label input[type=checkbox]{accent-color:var(--olive);cursor:pointer;flex-shrink:0;width:16px;height:16px}.rsvp-textarea{border:1px solid var(--olive-pale);background:var(--ivory-soft);width:100%;font-family:var(--body);color:var(--ink);resize:vertical;box-sizing:border-box;border-radius:2px;margin-top:8px;padding:11px 14px;font-size:15px;transition:border-color .25s}.rsvp-textarea:focus{border-color:var(--gold);background:var(--ivory-bright);outline:none}.rsvp-submit-btn{font-family:var(--serif);letter-spacing:.44em;text-transform:uppercase;color:var(--ivory);background:var(--forest);cursor:pointer;border:none;border-radius:2px;width:100%;padding:18px;font-size:11px;transition:background .35s,letter-spacing .35s;position:relative}.rsvp-submit-btn:before,.rsvp-submit-btn:after{content:"";background:#c3c8b066;width:1px;position:absolute;top:7px;bottom:7px}.rsvp-submit-btn:before{left:8px}.rsvp-submit-btn:after{right:8px}.rsvp-submit-btn:hover{background:var(--forest-deep);letter-spacing:.5em}.rsvp-submit-btn:disabled{opacity:.55;cursor:not-allowed}.rsvp-error{color:#a72828;font-family:var(--serif);text-align:center;background:#a7282812;border:1px solid #a7282838;border-radius:2px;padding:11px 14px;font-size:14px}.rsvp-success{text-align:center;padding:16px 0}.rsvp-success-wreath{width:90px;height:90px;color:var(--olive);margin:0 auto 20px;animation:30s linear infinite rotateSlow;display:block}.rsvp-success h3{font-family:var(--script);color:var(--forest);margin-bottom:10px;font-size:60px;line-height:1}.rsvp-success-msg{font-family:var(--serif);color:var(--ink);margin-bottom:6px;font-size:19px}.rsvp-success-sub{font-family:var(--serif);color:var(--ink-soft);margin-bottom:28px;font-size:15px;font-style:italic}.rsvp-success-close-btn{font-family:var(--serif);letter-spacing:.34em;text-transform:uppercase;color:var(--forest);border:1px solid var(--olive-pale);cursor:pointer;background:0 0;border-radius:2px;padding:13px 30px;font-size:11px;transition:all .25s}.rsvp-success-close-btn:hover{border-color:var(--forest);background:var(--ivory-soft)}@keyframes rotateSlow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width:600px){.rsvp-modal-content{padding:32px 22px}.rsvp-modal-head h2{font-size:48px}}.music-control{z-index:80;pointer-events:auto;opacity:1;align-items:center;gap:12px;display:flex;position:fixed;bottom:28px;left:28px}.music-buttons{flex-direction:column;align-items:center;gap:8px;display:flex}.music-play-wrap{position:relative}.music-btn-next{width:38px;height:38px}.music-btn-next .music-icon{width:16px;height:16px}.music-track-title{max-width:min(220px,42vw);font-family:var(--serif);letter-spacing:.12em;text-transform:uppercase;color:var(--olive-deep);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:10px;line-height:1.4;overflow:hidden}.music-track-title--toggle{-webkit-backdrop-filter:blur(18px);text-align:center;background:#faf7eebd;border:1px solid #c3c8b0e6;border-radius:2px;max-width:min(340px,86vw);padding:8px 16px;box-shadow:0 12px 28px -16px #1f1b1247}.music-btn{background:var(--ivory-bright);border:1px solid var(--olive-pale);width:46px;height:46px;color:var(--forest);cursor:pointer;transition:all .5s var(--ease);border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 30px -10px #1f1b1233}.music-btn:hover{border-color:var(--olive);transform:translateY(-2px);box-shadow:0 15px 35px -10px #1f1b124d}.music-btn.playing{border-color:var(--olive)}.music-btn.playing:after{content:"";border:1px dashed var(--olive-soft);opacity:.5;border-radius:50%;animation:12s linear infinite rotateSlow;position:absolute;inset:12px}.music-icon{z-index:1;width:18px;height:18px;transition:transform .4s var(--ease);justify-content:center;align-items:center;display:flex;position:relative}.music-btn:hover .music-icon{transform:scale(1.08)}.soundwave{align-items:flex-end;gap:2.5px;width:14px;height:12px;display:flex}.soundwave span{background:var(--olive);transform-origin:bottom;width:1.5px;height:100%;transition:transform .3s var(--ease);border-radius:1px;display:block}.music-btn.playing .soundwave span{animation:1.2s ease-in-out infinite alternate bounceBar}.music-btn.playing .soundwave span:first-child{height:60%;animation-delay:.1s}.music-btn.playing .soundwave span:nth-child(2){height:100%;animation-delay:.3s}.music-btn.playing .soundwave span:nth-child(3){height:40%;animation-delay:0s}.music-btn.playing .soundwave span:nth-child(4){height:80%;animation-delay:.2s}@keyframes bounceBar{0%{transform:scaleY(.2)}to{transform:scaleY(1)}}.music-tooltip{border:1px solid var(--olive-pale);opacity:0;pointer-events:none;transition:all .4s var(--ease);font-family:var(--serif);letter-spacing:.2em;text-transform:uppercase;color:var(--olive-deep);white-space:nowrap;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#f5f2e8e6;border-radius:2px;padding:8px 16px;font-size:10px;transform:translate(-10px);box-shadow:0 10px 25px -10px #1f1b1226}.music-control:hover .music-tooltip{opacity:1;transform:translate(0)}@media (max-width:800px){.music-control{bottom:20px;left:20px}.music-btn{width:42px;height:42px}.music-btn-next{width:34px;height:34px}.music-tooltip{display:none}}.rsvp-float{z-index:80;pointer-events:auto;align-items:center;gap:12px;display:flex;position:fixed;bottom:28px;right:28px}.rsvp-float-btn{background:var(--forest);border:1px solid var(--forest);width:46px;height:46px;color:var(--ivory-bright);cursor:pointer;transition:all .5s var(--ease);font-family:var(--serif);letter-spacing:.12em;text-transform:uppercase;border-radius:50%;justify-content:center;align-items:center;font-size:9px;font-weight:600;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 30px -10px #1f1b124d}.rsvp-float-btn:hover{background:var(--forest-deep);border-color:var(--forest-deep);transform:translateY(-2px);box-shadow:0 15px 35px -10px #1f1b1266}.rsvp-float-tooltip{border:1px solid var(--olive-pale);opacity:0;pointer-events:none;transition:all .4s var(--ease);font-family:var(--serif);letter-spacing:.2em;text-transform:uppercase;color:var(--olive-deep);white-space:nowrap;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#f5f2e8e6;border-radius:2px;padding:8px 16px;font-size:10px;transform:translate(10px);box-shadow:0 10px 25px -10px #1f1b1226}.rsvp-float:hover .rsvp-float-tooltip{opacity:1;transform:translate(0)}.music-guide{background:var(--forest);color:var(--ivory-bright);font-family:var(--serif);letter-spacing:.15em;text-transform:uppercase;white-space:nowrap;pointer-events:none;z-index:10;border-radius:2px;padding:7px 12px;font-size:9px;animation:2s ease-in-out infinite alternate guidePulse;position:absolute;top:50%;left:58px;transform:translateY(-50%);box-shadow:0 8px 20px #131c1540}.music-guide:before{content:"";border-style:solid;border-width:5px;border-color:transparent var(--forest) transparent transparent;position:absolute;top:50%;right:100%;transform:translateY(-50%)}@keyframes guidePulse{0%{opacity:.85;transform:translateY(-50%)translate(-3px);box-shadow:0 4px 10px #131c1533}to{opacity:1;transform:translateY(-50%)translate(3px);box-shadow:0 10px 25px #131c1559}}@media (max-width:800px){.rsvp-float{bottom:20px;right:20px}.rsvp-float-btn{width:42px;height:42px}.rsvp-float-tooltip{display:none}.music-guide{padding:6px 10px;font-size:8px;left:54px}}.env-overlay{z-index:10000;background:radial-gradient(circle at 50% 50%, var(--forest), var(--forest-deep));opacity:0;transition:opacity 1.4s var(--ease), transform 1.4s var(--ease), filter 1.4s var(--ease), background 1.2s ease-in-out;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.env-overlay.env-entered,.env-overlay.env-returning{opacity:1}.env-overlay.fade-out{opacity:0;filter:blur(10px);pointer-events:none;transform:scale(1.05)}.env-overlay:after{content:"";pointer-events:none;z-index:5;opacity:.25;mix-blend-mode:multiply;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyMjAnIGhlaWdodD0nMjIwJz48ZmlsdGVyIGlkPSduJz48ZmVUdXJidWxlbmNlIHR5cGU9J2ZyYWN0YWxOb2lzZScgYmFzZUZyZXF1ZW5jeT0nMS4yJyBudW1PY3RhdmVzPScyJyBzdGl0Y2hUaWxlcz0nc3RpdGNoJy8+PGZlQ29sb3JNYXRyaXggdmFsdWVzPScwIDAgMCAwIDAuMzIgIDAgMCAwIDAgMC4zMCAgMCAwIDAgMCAwLjI0ICAwIDAgMCAwLjA1IDAnLz48L2ZpbHRlcj48cmVjdCB3aWR0aD0nMTAwJScgaGVpZ2h0PScxMDAlJyBmaWx0ZXI9J3VybCgjbiknLz48L3N2Zz4=);position:absolute;inset:0}.env-bg-monogram{color:#7a846014;pointer-events:none;z-index:1;opacity:0;width:600px;height:600px;transition:opacity 2.4s var(--ease);animation:120s linear infinite envSlowRotate;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.env-overlay.env-entered .env-bg-monogram,.env-overlay.env-returning .env-bg-monogram{opacity:1;transition-delay:.1s}.env-bg-monogram svg{width:100%;height:100%}@keyframes envSlowRotate{0%{transform:translate(-50%,-50%)rotate(0)}to{transform:translate(-50%,-50%)rotate(360deg)}}.env-leaves{pointer-events:none;z-index:2;position:absolute;inset:0;overflow:hidden}.env-leaf{color:var(--olive-pale);opacity:0;will-change:transform, opacity;animation:18s linear infinite paused envDrift;position:absolute;bottom:-40px;transform:translateY(0)rotate(0)}.env-overlay.env-entered .env-leaf,.env-overlay.env-returning .env-leaf{animation-play-state:running}.env-leaf svg{width:100%;height:100%;display:block}@keyframes envDrift{0%{opacity:0;transform:translate(0,0)rotate(0)scale(.8)}10%{opacity:.25}50%{opacity:.3;transform:translate(24px,-50vh)rotate(180deg)scale(1)}90%{opacity:.2}to{opacity:0;transform:translate(-10px,-110vh)rotate(360deg)scale(.8)}}.env-content-container{z-index:10;flex-direction:column;align-items:center;gap:32px;display:flex;position:relative}.env-wrapper{perspective:1200px;z-index:10;opacity:0;filter:blur(12px);width:480px;height:330px;transition:opacity 1.8s var(--ease), transform 2s var(--ease), filter 1.8s var(--ease), box-shadow .6s var(--ease);position:relative;transform:translateY(36px)scale(.94);box-shadow:0 30px 70px -20px #0c120e99,0 4px 10px #0c120e33}.env-overlay.env-entered .env-wrapper,.env-overlay.env-returning .env-wrapper{opacity:1;filter:blur();transition-delay:.25s;transform:translateY(0)scale(1)}.env-wrapper:hover:not(.opening):not(.zoom-active){transform:translateY(-4px)scale(1.01);box-shadow:0 36px 80px -22px #0c120ea6,0 6px 14px #0c120e38}.env-wrapper.opening{transition:transform 1.1s var(--ease), opacity 1.2s var(--ease), filter 1.2s var(--ease);transform:translateY(40px)scale(.96)}.env-paper-back,.env-flap-left,.env-flap-right,.env-flap-bottom,.env-flap-top{pointer-events:none;position:absolute;inset:0}.env-paper-back{background:var(--ivory-soft);border:1px solid var(--olive-pale);z-index:1;overflow:hidden}.env-inner-shadow{position:absolute;inset:0;box-shadow:inset 0 0 40px #1f1b1226}.env-flap-left{z-index:4}.env-flap-left svg{filter:drop-shadow(4px 0 6px #1f1b1214);width:100%;height:100%}.env-flap-right{z-index:4}.env-flap-right svg{filter:drop-shadow(-4px 0 6px #1f1b1214);width:100%;height:100%}.env-flap-bottom{z-index:5}.env-flap-bottom svg{filter:drop-shadow(0 -4px 6px #1f1b121a);width:100%;height:100%}.env-flap-top{z-index:6;transform-origin:top;transition:transform 1.4s var(--ease-soft), z-index 0s .6s;transform-style:preserve-3d;transform:rotateX(0)}.env-flap-top svg{filter:drop-shadow(0 6px 8px #1f1b1226);width:100%;height:100%}.env-wrapper.flap-opened .env-flap-top{z-index:2;transform:rotateX(-180deg)}.env-letter-card{background:var(--ivory-bright);z-index:3;width:96%;height:94%;transition:transform 1.6s var(--ease-soft), opacity 1.2s var(--ease), filter 1.2s var(--ease), box-shadow 1.2s var(--ease);padding:10px;position:absolute;top:3%;left:2%;transform:translateY(0);box-shadow:0 4px 15px #1f1b1214}.env-letter-content{animation:envLetterSwap .75s var(--ease) both}.env-overlay:not(.env-entered):not(.env-returning) .env-letter-content{animation-delay:.85s}.env-overlay.env-returning .env-letter-content{animation:none}@keyframes envLetterSwap{0%{opacity:0;filter:blur(6px);transform:translateY(12px)}to{opacity:1;filter:blur();transform:translateY(0)}}.env-letter-border{border:1px solid var(--olive-pale);text-align:center;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:14px;display:flex;position:relative}.env-letter-border .corner{border:1px solid var(--olive);opacity:.6;width:12px;height:12px;position:absolute}.env-letter-border .corner.tl{border-bottom:none;border-right:none;top:6px;left:6px}.env-letter-border .corner.tr{border-bottom:none;border-left:none;top:6px;right:6px}.env-letter-border .corner.bl{border-top:none;border-right:none;bottom:6px;left:6px}.env-letter-border .corner.br{border-top:none;border-left:none;bottom:6px;right:6px}.env-letter-eyebrow{font-family:var(--serif);letter-spacing:.3em;text-transform:uppercase;color:var(--olive-deep);opacity:.8;margin-bottom:8px;font-size:9px}.env-letter-names{font-family:var(--serif);color:var(--forest);margin:4px 0;font-size:clamp(24px,4vw,32px);font-style:italic;font-weight:300;line-height:1.1}.env-letter-names .amp{font-family:var(--script);color:var(--olive);margin:0 8px;font-size:clamp(32px,5vw,44px);font-style:normal;display:inline-block;transform:translateY(-2px)}.env-letter-sprig{color:var(--olive);width:32px;height:16px;margin:4px auto 8px}.env-letter-text{font-family:var(--serif);color:var(--ink-soft);margin:0;font-size:13px;line-height:1.5}.env-letter-text strong{color:var(--ink);letter-spacing:.05em;font-size:14px}.env-letter-footer{font-family:var(--script);color:var(--olive-soft);opacity:0;transition:opacity 1.2s 1.8s var(--ease);margin-top:10px;font-size:20px}.env-wrapper.card-risen .env-letter-card{transform:translateY(-84%)rotate(-1deg);box-shadow:0 25px 50px -15px #0c120e66}.env-wrapper.card-risen .env-letter-footer{opacity:1}.env-ribbon-band{z-index:7;pointer-events:none;opacity:0;height:36px;transition:opacity .8s var(--ease);display:flex;position:absolute;top:50%;left:-4px;right:-4px;transform:translateY(-50%)}.env-overlay.env-entered .env-ribbon-band,.env-overlay.env-returning .env-ribbon-band{opacity:1;transition-delay:1s}.env-ribbon-band .ribbon-left,.env-ribbon-band .ribbon-right{background:var(--olive-deep);border-top:1.5px solid var(--gold-soft);border-bottom:1.5px solid var(--gold-soft);height:100%;transition:transform .8s var(--ease), opacity .6s var(--ease);flex:1}.env-ribbon-band .ribbon-left{transform-origin:0}.env-ribbon-band .ribbon-right{transform-origin:100%}.env-ribbon-band.untied{opacity:1;transition-delay:0s}.env-ribbon-band.untied .ribbon-left{opacity:0;transform:translate(-150px)rotate(-10deg)scaleX(.8)}.env-ribbon-band.untied .ribbon-right{opacity:0;transform:translate(150px)rotate(10deg)scaleX(.8)}.env-ribbon-bow{cursor:pointer;z-index:8;opacity:0;filter:blur(6px);width:120px;height:80px;transition:transform .5s var(--ease), opacity .8s var(--ease), filter .8s var(--ease);background:0 0;border:none;outline:none;padding:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.env-overlay.env-entered .env-ribbon-bow,.env-overlay.env-returning .env-ribbon-bow{opacity:1;filter:blur();transition-delay:1.1s;animation:3.4s cubic-bezier(.34,1.56,.64,1) 2s infinite bowTapHint}@keyframes bowTapHint{0%,50%,to{transform:translate(-50%,-50%)scale(1)}62%{transform:translate(-50%,-54%)scale(1.18)}74%{transform:translate(-50%,-50%)scale(.97)}85%{transform:translate(-50%,-52%)scale(1.09)}94%{transform:translate(-50%,-50%)scale(1)}}.env-overlay.env-entered .env-ribbon-bow .bow-glow,.env-overlay.env-returning .env-ribbon-bow .bow-glow{animation:3.4s cubic-bezier(.34,1.56,.64,1) 2s infinite bowGlowHint}@keyframes bowGlowHint{0%,50%,to{opacity:.16;transform:translate(-50%,-50%)scale(1)}62%{opacity:.55;transform:translate(-50%,-50%)scale(1.5)}}.env-ribbon-bow:hover{animation:none;transform:translate(-50%,-50%)scale(1.08)}.env-ribbon-bow:hover .bow-glow{opacity:.4;animation:none;transform:translate(-50%,-50%)scale(1.2)}.bow-glow{background:var(--gold-soft);opacity:0;filter:blur(8px);z-index:-1;pointer-events:none;width:32px;height:32px;transition:all .5s var(--ease);border-radius:50%;position:absolute;top:35px;left:50%;transform:translate(-50%,-50%)scale(1)}.env-ribbon-bow.untied{opacity:0;filter:blur(6px);pointer-events:none;animation:none;transform:translate(-50%,-50%)scale(.6)}.env-ribbon-bow.untied .bow-glow{animation:none}.bow-svg{filter:drop-shadow(0 4px 6px #0c120e40);width:100%;height:100%;display:block}.env-instructions{text-align:center;color:var(--ivory-bright);opacity:0;filter:blur(6px);transition:opacity 1.4s var(--ease), transform 1.6s var(--ease), filter 1.4s var(--ease);transform:translateY(18px)}.env-overlay.env-entered .env-instructions{opacity:1;filter:blur();transition-delay:1.35s;transform:translateY(0)}.env-overlay.env-returning .env-instructions{opacity:1;filter:blur();transition-delay:0s;transform:translateY(0)}.env-instructions.fade-out{opacity:0;filter:blur(4px);pointer-events:none;transition-duration:.7s;transform:translateY(12px)}.env-title{font-family:var(--serif);letter-spacing:.15em;text-transform:uppercase;color:var(--gold-pale);text-shadow:0 2px 4px #00000026;margin:0 0 8px;font-size:18px}.env-tip{font-family:var(--serif);color:var(--olive-pale);letter-spacing:.05em;opacity:.85;font-size:14px;font-style:italic;animation:2s ease-in-out infinite alternate envTipPulse;display:inline-block}.env-tip-top{letter-spacing:.16em;text-transform:uppercase;color:var(--gold-pale);text-shadow:0 2px 6px #0000004d;opacity:0;filter:blur(6px);transition:opacity 1.2s var(--ease), transform 1.4s var(--ease), filter 1.2s var(--ease);font-size:16px;font-style:normal;font-weight:700;transform:translateY(-12px)}.env-overlay.env-entered .env-tip-top,.env-overlay.env-returning .env-tip-top{opacity:1;filter:blur();transition-delay:.9s;animation:2s ease-in-out 2.1s infinite alternate envTipPulse;transform:translateY(0)}.env-overlay.env-returning .env-tip-top{transition-delay:0s}.env-tip-top.fade-out{opacity:0;filter:blur(4px);animation:none;transform:translateY(-8px)}.env-view-toggle{opacity:0;filter:blur(8px);transition:opacity 1.4s var(--ease), transform 1.6s var(--ease), filter 1.4s var(--ease);justify-content:center;margin-top:22px;display:inline-flex;transform:translateY(16px)}.env-overlay.env-entered .env-view-toggle{opacity:1;filter:blur();transition-delay:1.55s;transform:translateY(0)}.env-overlay.env-returning .env-view-toggle{opacity:1;filter:blur();transition-delay:.15s;transform:translateY(0)}.env-view-toggle.fade-out{opacity:0;filter:blur(4px);pointer-events:none;transition-duration:.7s;transform:translateY(10px)}@media (prefers-reduced-motion:reduce){.env-overlay,.env-wrapper,.env-bg-monogram,.env-instructions,.env-view-toggle,.env-ribbon-bow,.bow-glow,.env-letter-eyebrow,.env-letter-names,.env-letter-sprig,.env-letter-text,.env-letter-content{filter:none!important;opacity:1!important;transition-duration:.01ms!important;animation:none!important;transform:none!important}.env-overlay.env-entered .env-wrapper,.env-overlay.env-returning .env-wrapper{transform:none}}@keyframes envTipPulse{0%{opacity:.7;transform:translateY(0)}to{opacity:1;transform:translateY(4px)}}@media (max-width:520px){.env-wrapper{width:min(440px,92vw);height:290px}.env-letter-names{font-size:clamp(20px,6vw,26px)}.env-letter-names .amp{font-size:clamp(26px,7vw,34px)}.env-letter-text{font-size:11px}.env-letter-text strong{font-size:12px}.env-title{font-size:15px}.env-tip{font-size:12px}}@media (max-width:360px){.env-wrapper{height:250px}.env-letter-border{padding:8px}.env-letter-eyebrow{margin-bottom:4px;font-size:8px}.env-letter-sprig{margin:2px auto 4px}.env-letter-footer{margin-top:4px;font-size:16px}}.env-close-btn{z-index:99;font-family:var(--serif);letter-spacing:.25em;text-transform:uppercase;color:var(--olive-deep);background:var(--ivory-bright);border:1px solid var(--olive-pale);cursor:pointer;transition:all .4s var(--ease);opacity:.9;border-radius:2px;align-items:center;gap:8px;padding:10px 18px;font-size:11px;display:inline-flex;position:fixed;top:24px;right:24px;box-shadow:0 4px 15px #1f1b1214}.env-close-btn:hover{background:var(--forest);color:var(--ivory-bright);border-color:var(--forest);opacity:1;transform:translateY(-2px);box-shadow:0 10px 25px -10px #1f1b1240}.env-close-btn svg{transition:transform .4s var(--ease)}.env-close-btn:hover svg{transform:rotate(90deg)}@media (max-width:800px){.env-close-btn{padding:8px 14px;font-size:9px;top:16px;right:16px}}body.loaded .env-close-btn.section-hidden{opacity:0;filter:blur(8px);pointer-events:none;transition:opacity .4s var(--ease), transform .4s var(--ease), filter .4s var(--ease);transform:translateY(-40px)}.env-wrapper.zoom-active .env-letter-card{opacity:0;filter:blur(2px);transition:transform 1.3s cubic-bezier(.25, 1, .5, 1), opacity .9s .2s var(--ease), filter .9s .2s var(--ease);pointer-events:none;transform:translateY(-105%)scale(5.2)rotate(0)}.env-wrapper.zoom-active .env-paper-back,.env-wrapper.zoom-active .env-flap-left,.env-wrapper.zoom-active .env-flap-right,.env-wrapper.zoom-active .env-flap-bottom,.env-wrapper.zoom-active .env-flap-top{opacity:0;transition:opacity 1s var(--ease), transform 1s var(--ease);transform:scale(.82)}body.engagement-active{--olive:#1f7a8c;--olive-deep:#145260;--olive-soft:#4fa5b3;--olive-pale:#a8d4db;--forest:#8c3a24;--forest-deep:#5c2415;--ivory:#fbf1e8;--ivory-soft:#fdf6ee;--ivory-bright:#fffaf5;--ivory-deep:#ebd9cb}.hero-couple{z-index:2;pointer-events:none;-webkit-user-select:none;user-select:none;object-fit:cover;object-position:center center;-webkit-mask-composite:source-in;opacity:0;filter:blur(8px)saturate(.92);width:clamp(520px,52vw,880px);height:108%;transition:opacity 2.6s var(--ease), filter 2.6s var(--ease);position:absolute;bottom:10%;right:-4%;-webkit-mask-image:linear-gradient(270deg,#000 55%,#0000 100%),linear-gradient(#0000 0%,#000 25%);mask-image:linear-gradient(270deg,#000 55%,#0000 100%),linear-gradient(#0000 0%,#000 25%);-webkit-mask-composite:source-in;mask-composite:intersect}@media (min-width:801px){body:not(.engagement-active) .hero-couple{object-position:center 0%;bottom:15%}body.engagement-active .hero-couple{bottom:-20%}}.hero.ready .hero-couple{opacity:.92;filter:blur()saturate(.96);transition-delay:1.4s}.hero:has(.hero-couple):after{content:"";z-index:3;pointer-events:none;background:radial-gradient(ellipse 84% 64% at 36% 100%, color-mix(in srgb, var(--ivory) 94%, transparent) 0%, transparent 72%), linear-gradient(to top, var(--ivory) 0%, color-mix(in srgb, var(--ivory) 98%, transparent) 26%, color-mix(in srgb, var(--ivory-soft) 62%, transparent) 50%, transparent 100%);height:min(55vh,600px);position:absolute;inset:auto 0 0}.hero:has(.hero-couple) .date-band{gap:8px}.hero:has(.hero-couple) .date-band:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(110% 90% at 50% 100%,#fbf1e8 0%,#fbf1e8b3 42%,#0000 72%);width:min(100%,440px);height:calc(100% + 24px);position:absolute;bottom:-10px;left:50%;transform:translate(-50%)}:is(.hero:has(.hero-couple) .date-band .date-day,.hero:has(.hero-couple) .date-band .date-main,.hero:has(.hero-couple) .date-band .date-place,.hero:has(.hero-couple) .date-band .where){text-shadow:0 0 2px var(--ivory), 0 1px 4px #fbf1e8, 0 6px 34px #fbf1e8fa}.hero:has(.hero-couple) .date-band .date-day{font-size:clamp(12px,1vw,14px);font-weight:600}.hero:has(.hero-couple) .date-band .date-main{font-size:clamp(29px,4vw,45px);font-weight:700}.hero:has(.hero-couple) .date-band .date-place{font-size:clamp(16px,1.4vw,19px);font-weight:500}.hero:has(.hero-couple) .date-band .date-place .place-pin{text-shadow:none;background:color-mix(in srgb, var(--ivory) 88%, var(--forest) 12%);border-color:color-mix(in srgb, var(--forest) 40%, transparent)}:is(.hero:has(.hero-couple) .date-band .date-place .place-pin:hover,.hero:has(.hero-couple) .date-band .date-place .place-pin:focus-visible){background:color-mix(in srgb, var(--ivory) 78%, var(--forest) 22%);transform:translateY(-2px)}.hero:has(.hero-couple) .date-band .where{margin-top:0;font-size:clamp(20px,1.6vw,23px);font-weight:500}.hero:has(.hero-couple) .hero-stage{height:100%;min-height:inherit;flex-direction:column;justify-content:flex-start;align-items:center;padding-top:6vh;display:flex;position:relative;transform:translate(clamp(-160px,-10vw,-40px))}@media (max-width:800px){.hero-couple{object-position:center 32%;-webkit-mask-image:linear-gradient(#0000 0%,#000 11% 62%,#0000008c 82%,#0000 100%);width:100%;height:60%;inset:38% 0 auto;mask-image:linear-gradient(#0000 0%,#000 11% 62%,#0000008c 10%,#0000 90%)}body:not(.engagement-active) .hero-couple{object-position:center -30%;-webkit-mask-image:linear-gradient(#0000 0%,#000 6% 90%,#0000 100%);top:10%;mask-image:linear-gradient(#0000 45%,#000 60% 90%,#0000 100%)}body:not(.engagement-active) .hero.ready .hero-couple{opacity:1}body:not(.engagement-active) .hero:has(.hero-couple):after{background:linear-gradient(to bottom, var(--ivory) 0%, color-mix(in srgb, var(--ivory) 100%, transparent) 5%, color-mix(in srgb, var(--ivory) 96%, transparent) 11%, color-mix(in srgb, var(--ivory-soft) 82%, transparent) 18%, color-mix(in srgb, var(--ivory-soft) 48%, transparent) 26%, transparent 34%), linear-gradient(to top, var(--ivory) 0%, color-mix(in srgb, var(--ivory) 98%, transparent) 8%, color-mix(in srgb, var(--ivory-soft) 72%, transparent) 16%, transparent 26%)}.hero:has(.hero-couple){place-items:stretch stretch}.hero:has(.hero-couple) .hero-stage{flex-direction:column;justify-content:flex-start;align-items:center;height:100%;padding:6vh 0 5vh;display:flex;transform:none}.hero:has(.hero-couple) .hero-stage .sub{margin-bottom:24px}.hero:has(.hero-couple):after{background:linear-gradient(to bottom, var(--ivory) 0%, color-mix(in srgb, var(--ivory) 98%, transparent) 7%, color-mix(in srgb, var(--ivory-soft) 72%, transparent) 14%, transparent 22%), linear-gradient(to top, var(--ivory) 0%, color-mix(in srgb, var(--ivory) 98%, transparent) 12%, color-mix(in srgb, var(--ivory-soft) 82%, transparent) 24%, color-mix(in srgb, var(--ivory-soft) 46%, transparent) 34%, transparent 44%);height:100%;max-height:none;inset:0}}.page-flip-container{transition:opacity 1.2s ease-in-out,transform 1.2s ease-in-out,filter 1.2s ease-in-out}.page-flip-container.switching{opacity:0;filter:blur(14px)saturate(.9);pointer-events:none;transform:scale(.97)translateY(18px)}.view-toggle-stack{z-index:98;opacity:0;filter:blur(10px);pointer-events:none;width:auto;max-width:calc(100vw - 148px);transition:opacity 1.8s var(--ease), transform 2s var(--ease), filter 1.8s var(--ease);flex-direction:column;align-items:center;gap:10px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)translateY(28px)}body.loaded .view-toggle-stack{opacity:1;filter:blur();pointer-events:auto;transition-delay:2.8s;transform:translate(-50%)translateY(0)}body.loaded .view-toggle-stack.has-revealed{transition:opacity .55s var(--ease), transform .6s var(--ease), filter .55s var(--ease);transition-delay:0s}body.loaded .view-toggle-stack.section-hidden{opacity:0;filter:blur(8px);pointer-events:none;transition:opacity .55s var(--ease), transform .6s var(--ease), filter .55s var(--ease);transition-delay:0s;transform:translate(-50%)translateY(40px)}.view-toggle-stack.section-hidden .view-switcher-btn{animation-play-state:paused}.view-switcher{justify-content:center;width:auto;display:flex}.view-switcher-btn{appearance:none;border:1px solid var(--forest);background-color:var(--forest);width:fit-content;color:var(--ivory-bright);cursor:pointer;font-family:var(--serif);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;transition:background-color 1.2s var(--ease), border-color 1.2s var(--ease), color 1.2s var(--ease), box-shadow 1.2s var(--ease), transform .5s var(--ease), opacity .45s var(--ease);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:13px 22px;font-size:12px;font-weight:600;line-height:1.2;display:inline-flex;box-shadow:0 10px 30px -10px #1f1b124d}.view-toggle-stack .view-switcher-btn:not(:disabled):not(.is-switching){animation:viewSwitcherPulse 2.8s var(--ease-soft) infinite}.view-switcher-btn--wedding{background-color:#1f2e22;border-color:#1f2e22}.view-switcher-btn--engagement{background-color:#8c3a24;border-color:#8c3a24}.view-switcher-btn:hover:not(:disabled),.view-switcher-btn:focus-visible:not(:disabled){background-color:var(--forest-deep);border-color:var(--forest-deep);animation-play-state:paused;transform:translateY(-2px);box-shadow:0 15px 35px -10px #1f1b1266}.view-switcher-btn--wedding:hover:not(:disabled),.view-switcher-btn--wedding:focus-visible:not(:disabled){background-color:#131c15;border-color:#131c15}.view-switcher-btn--engagement:hover:not(:disabled),.view-switcher-btn--engagement:focus-visible:not(:disabled){background-color:#5c2415;border-color:#5c2415}.view-switcher-btn.is-switching{animation:none;transform:scale(.97)}.view-switcher-btn:focus-visible{outline:2px solid color-mix(in srgb, var(--forest) 45%, transparent);outline-offset:2px}.view-switcher-btn:disabled{cursor:default;opacity:.7;animation:none}.view-switcher-label{transition:opacity .45s var(--ease), transform .45s var(--ease), filter .45s var(--ease);display:inline-block}.view-switcher-label.is-hidden{opacity:0;filter:blur(2px);transform:translateY(6px)}.view-switcher-label.is-visible{opacity:1;filter:blur();transform:translateY(0)}.view-switcher-btn.is-switching .view-switcher-arrow{opacity:.45;transition:opacity .45s var(--ease), transform .45s var(--ease);animation-play-state:paused;transform:translate(6px)}.view-switcher-arrow{animation:viewSwitcherArrow 1.35s var(--ease-soft) infinite;align-items:center;margin-left:1px;font-size:1.15em;line-height:1;display:inline-flex;position:relative}.view-switcher-arrow:after{content:"→";opacity:0;animation:viewSwitcherArrowTrail 1.35s var(--ease-soft) infinite;position:absolute;left:0;transform:translate(-8px)}@keyframes viewSwitcherPulse{0%,to{transform:scale(.95);box-shadow:0 10px 30px -10px #1f1b124d}50%{transform:scale(1.05);box-shadow:0 15px 35px -12px #1f1b1261}}@keyframes viewSwitcherArrow{0%,to{transform:translate(0)}50%{transform:translate(4px)}}@keyframes viewSwitcherArrowTrail{0%{opacity:0;transform:translate(-8px)}45%{opacity:.42}to{opacity:0;transform:translate(8px)}}@media (max-width:800px){.view-toggle-stack{gap:8px;max-width:calc(100vw - 132px);bottom:18px}.view-switcher-btn{letter-spacing:.08em;padding:12px 18px;font-size:11px}}@media (prefers-reduced-motion:reduce){.view-toggle-stack .view-switcher-btn,.view-switcher-arrow,.view-switcher-arrow:after{animation:none}.view-switcher-btn,.view-switcher-label,.view-switcher-btn.is-switching .view-switcher-arrow{transition:none}}.petal-shower-container{z-index:75;pointer-events:none;opacity:0;transition:opacity 1s ease-in-out;position:absolute;inset:0;overflow:hidden}body.loaded .petal-shower-container{opacity:1}.petal-shower-container.fade-out{opacity:0;transition:opacity .5s ease-in-out}.shower-item{will-change:transform;opacity:0;animation:shower-fall var(--fall-dur) linear infinite;animation-delay:var(--p-delay);pointer-events:none;position:absolute;top:-12%;left:0}.shower-item-inner{will-change:transform;width:100%;height:100%;animation:shower-sway var(--sway-dur) ease-in-out infinite;-webkit-backdrop-filter:blur(10px);position:relative;box-shadow:inset 0 0 10px #fff3}@keyframes shower-fall{0%{opacity:0;transform:translateY(0)}8%{opacity:.95}92%{opacity:.95}to{opacity:0;transform:translateY(115vh)}}@keyframes shower-sway{0%,to{margin-left:0}50%{margin-left:var(--sway-dist)}}.shower-item-inner:after{content:"";opacity:.8;background:#ffffff47;width:1px;height:100%;position:absolute;top:0;left:50%;transform:translate(-50%)}.shower-item-inner.type-petal{border-radius:50%/40% 40% 60% 60%}.theme-engagement .shower-item-inner.variant-1{background:linear-gradient(135deg,#f0b8a473,#e8a0884d)}.theme-engagement .shower-item-inner.variant-2{background:linear-gradient(135deg,#ffdcc880,#f0b8a459)}.theme-engagement .shower-item-inner.variant-3{background:linear-gradient(135deg,#ffc3c37a,#ffaaaa4d)}.theme-engagement .shower-item-inner.variant-4{background:linear-gradient(135deg,#ffd2b980,#f5af9b52)}.shower-item-inner.type-leaf{border-radius:75% 0}.theme-wedding .shower-item-inner.variant-1{background:linear-gradient(135deg,#7a846073,#4b523b4d)}.theme-wedding .shower-item-inner.variant-2{background:linear-gradient(135deg,#9da5857a,#7a846052)}.theme-wedding .shower-item-inner.variant-3{background:linear-gradient(135deg,#c2a3636b,#a4834047)}.theme-wedding .shower-item-inner.variant-4{background:linear-gradient(135deg,#c3c8b07a,#9da58552)}@media (prefers-reduced-motion:reduce){.petal-shower-container{display:none!important}}
