@font-face{font-display:swap;font-family:Alegreya;font-style:italic;font-weight:400 600;src:url(/storybook/fonts/alegreya-4UaHrEBBsBhlBjvfkSLk967p57F2IwN-Pw.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Alegreya;font-style:italic;font-weight:400 600;src:url(/storybook/fonts/alegreya-4UaHrEBBsBhlBjvfkSLk96rp57F2IwM.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Alegreya;font-style:normal;font-weight:400 600;src:url(/storybook/fonts/alegreya-4UaBrEBBsBhlBjvfkSLlx6jj4JN0EwI.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Alegreya;font-style:normal;font-weight:400 600;src:url(/storybook/fonts/alegreya-4UaBrEBBsBhlBjvfkSLhx6jj4JN0.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:EB Garamond;font-style:italic;font-weight:400 600;src:url(/storybook/fonts/eb-garamond-SlGWmQSNjdsmc35JDF1K5GRweD81ZyHKpWiGIg.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:EB Garamond;font-style:italic;font-weight:400 600;src:url(/storybook/fonts/eb-garamond-SlGWmQSNjdsmc35JDF1K5GRweDs1ZyHKpWg.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:EB Garamond;font-style:normal;font-weight:400 600;src:url(/storybook/fonts/eb-garamond-SlGUmQSNjdsmc35JDF1K5GRxSDk_YAPIlWk.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:EB Garamond;font-style:normal;font-weight:400 600;src:url(/storybook/fonts/eb-garamond-SlGUmQSNjdsmc35JDF1K5GR1SDk_YAPI.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}:root{--paper:#f2ece2;--panel:#fdfbf6;--ink:#3c2e25;--muted:#6e5b4e;--accent:#ac6a4c;--accent-deep:#8a4f37;--line:#ac6a4c55;--serif:"EB Garamond",Georgia,serif;--body:"Alegreya",Georgia,serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:64px}body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.55 var(--body);-webkit-font-smoothing:antialiased}body:has(dialog[open]){overflow:hidden}body:has(.invitation-envelope),html:has(.invitation-envelope){overflow:hidden}button,input,select,textarea{font:inherit}a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a{color:inherit;text-decoration:none}a,button,input,select,textarea{outline-color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:5px}::selection{background:#c98a6f55}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:fixed;top:-100px;left:20px;z-index:500;padding:12px 20px;background:var(--panel);border-radius:10px}.skip-link:focus{top:12px}.storybook-root{position:relative;min-height:100vh;overflow-x:clip;isolation:isolate}.story-content[hidden]{display:none}.story-content[inert] .hero-copy *,.story-content[inert] .scroll-invitation svg{animation-play-state:paused}.invitation-envelope{--fold:51%;position:fixed;inset:0;z-index:200;min-height:100svh;overflow:hidden;background:#949c6b;perspective:1800px;isolation:isolate;color:#2e3821}.envelope-paper{background-color:#949c6b;background-image:url(/envelope/embossed-paper.svg);background-size:310px 440px}.envelope-back{position:absolute;inset:0;background-color:#7c8557;filter:brightness(.92)}.envelope-pocket{position:absolute;inset:0;-webkit-clip-path:polygon(0 28%,50% 52%,100% 28%,100% 100%,0 100%);clip-path:polygon(0 28%,50% 52%,100% 28%,100% 100%,0 100%);background-position:35px 65px;box-shadow:inset 0 -30px 90px #56613c45}.envelope-pocket:after{content:"";position:absolute;inset:0;background:linear-gradient(130deg,#eef2d612,transparent 50%,#52613a12)}.envelope-flap-shadow{position:absolute;inset:0;background:#303a2050;-webkit-clip-path:polygon(0 0,100% 0,100% 30%,50% 53%,0 30%);clip-path:polygon(0 0,100% 0,100% 30%,50% 53%,0 30%);filter:blur(6px);transform:translateY(7px)}.envelope-flap{position:absolute;inset:0 0 auto;height:52%;transform-origin:center top;-webkit-backface-visibility:hidden;backface-visibility:hidden;will-change:transform}.envelope-flap-paper{position:absolute;inset:0;-webkit-clip-path:polygon(0 0,100% 0,100% 55%,50% 100%,0 55%);clip-path:polygon(0 0,100% 0,100% 55%,50% 100%,0 55%);background-position:0 0;background-color:#9ca474}.envelope-flap-paper:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#f0f3d820,transparent 55%,#58643d15)}.envelope-gold-edge{position:absolute;inset:0;background:linear-gradient(100deg,#f9ddb6,#e4bc84 45%,#fff0cb 80%);-webkit-clip-path:polygon(0 54.5%,50% 99.6%,100% 54.5%,100% 55%,50% 100%,0 55%);clip-path:polygon(0 54.5%,50% 99.6%,100% 54.5%,100% 55%,50% 100%,0 55%);opacity:.72}.envelope-initials{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);margin:0;color:#f2d58d;font:400 clamp(58px,8vw,104px)/1 var(--serif);letter-spacing:.08em;white-space:nowrap;text-shadow:0 1px 1px #58401eaa,0 -1px #fff3bf60;pointer-events:none}.envelope-initials>span{font-size:.62em;font-style:italic;vertical-align:.08em;letter-spacing:0;margin-inline:.06em}.envelope-letter{position:absolute;left:50%;top:27%;width:min(66vw,510px);height:55%;padding:54px 20px;background:#faf3e7;border:1px solid #d4b389;box-shadow:0 15px 50px #75492c2a;text-align:center;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:20px}.envelope-letter>span{font-style:italic;font-size:21px}.envelope-letter strong{font:400 clamp(24px,4vw,42px) var(--serif)}.envelope-letter strong i{color:#b8914e}.envelope-letter small{font:400 14px var(--serif);letter-spacing:.16em}.envelope-seal{--seal-size:clamp(104px,15vw,126px);position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);width:var(--seal-size);height:var(--seal-size);padding:8px;border:0;border-radius:45% 48% 42% 49%/48% 42% 49% 44%;background:linear-gradient(125deg,#b17a25 2%,#fff0ac 13%,#e2b952 27%,#bd872c 43%,#f9d981 64%,#a36d1d 83%,#edca69 95%);box-shadow:2px 7px 10px #7444205c,inset 1px 2px 2px #fff3b9,inset -2px -3px 2px #9a671d;color:#7e531a;transition:filter .2s ease,box-shadow .2s ease}.envelope-seal:before{content:"";position:absolute;inset:5px;border-radius:45% 49% 46% 48%/48% 44% 50% 43%;border:2px solid #efce7e;box-shadow:inset 1px 1px 2px #a6782c,1px 1px 2px #9c6b22,-1px -1px 2px #fff0b1}.seal-face{position:relative;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:50%;border:2px solid #c28d35;background:radial-gradient(ellipse at 35% 28%,#f1d283,#e2b75b 65%,#c8973e);box-shadow:inset 1px 2px 3px #a6752a8a,1px 2px 2px #ffe7a2;text-shadow:0 1px #f6d88f}.seal-ornament{font-size:15px;line-height:1;opacity:.7}.seal-caption{font:italic 500 clamp(14px,2vw,16px)/1.03 var(--serif);margin-top:2px}.seal-monogram{font:500 8px/1 var(--serif);letter-spacing:.16em;margin-top:6px;opacity:.7}.envelope-seal:focus-visible{outline:2px solid #77491d;outline-offset:9px}@media (hover:hover){.envelope-seal:hover{filter:brightness(1.06);box-shadow:2px 9px 15px #74442066,inset 1px 2px 2px #fff3b9,inset -2px -3px 2px #9a671d}}.envelope-address{position:absolute;top:70%;left:24px;right:24px;text-align:center;color:#f2d58d;text-shadow:0 1px 1px #58401eaa,0 -1px #fff3bf60;pointer-events:none}.envelope-address p{font:500 clamp(12px,1.2vw,15px) var(--serif);letter-spacing:.24em;text-transform:uppercase;margin:0 0 12px}.envelope-address h1{font:400 clamp(40px,5.5vw,68px)/1.15 var(--serif);margin:0 0 16px}.envelope-address h1 span{font-style:italic;font-size:.72em;margin-inline:3px}.envelope-address>span{font:500 clamp(16px,1.7vw,20px) var(--serif);letter-spacing:.13em}.envelope-opening-message{position:absolute;bottom:max(24px,env(safe-area-inset-bottom));width:100%;text-align:center;font:italic 18px var(--body);color:#f2d58d;margin:0;text-shadow:0 1px 1px #58401eaa}@supports ((-webkit-background-clip:text) or (background-clip:text)) or (-webkit-background-clip:text){.envelope-address h1,.envelope-initials{background:linear-gradient(115deg,#fff0b5,#d5a64e 23%,#f7df98 45%,#c89b45 68%,#ffe8a4 87%,#d3a34d);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 1px 1px #4b3e20b3)}}.invitation-envelope[data-opening=true]{animation:envelope-away .55s ease-in .95s both;pointer-events:none}.invitation-envelope[data-opening=true] .envelope-seal{animation:seal-release .42s ease-in forwards}.invitation-envelope[data-opening=true] .envelope-flap{animation:flap-open 1.05s cubic-bezier(.4,0,.2,1) .13s both}.invitation-envelope[data-opening=true] .envelope-flap-shadow{animation:soft-arrival .3s reverse both}.invitation-envelope[data-opening=true] .envelope-letter{animation:letter-unfold 1s cubic-bezier(.2,.65,.25,1) .35s both}.invitation-envelope[data-opening=true] .envelope-address{animation:soft-arrival .3s reverse both}#invitation-title:focus{outline:none}@keyframes seal-release{to{opacity:0;transform:translate(-50%,-25%) scale(1.12) rotate(8deg)}}@keyframes flap-open{to{transform:rotateX(168deg)}}@keyframes letter-unfold{to{transform:translate(-50%,-30%)}}@keyframes envelope-away{to{opacity:0;transform:translateY(8%);visibility:hidden}}@media(max-width:650px){.envelope-paper{background-size:270px 385px}.envelope-address h1{font-size:clamp(32px,9.5vw,52px)}}@media(max-height:480px){.envelope-initials{font-size:clamp(42px,7vw,64px)}.envelope-address{top:76%}.envelope-address p,.envelope-opening-message{display:none}.envelope-address h1{font-size:32px;margin-bottom:6px}.envelope-address>span{font-size:15px}.envelope-seal{--seal-size:86px}.seal-caption{font-size:12px}.seal-ornament{font-size:10px}}@media(prefers-reduced-motion:reduce){.invitation-envelope[data-opening=true]{animation:soft-arrival .12s reverse both}.invitation-envelope[data-opening=true] .envelope-flap,.invitation-envelope[data-opening=true] .envelope-letter,.invitation-envelope[data-opening=true] .envelope-seal{animation:none}}.motion-backdrop{position:fixed;inset:0;height:100lvh;background:var(--paper);pointer-events:none;z-index:-1;overflow:hidden}.motion-backdrop canvas,.motion-backdrop img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.motion-backdrop canvas{opacity:0;transition:opacity .3s ease}.story-content{position:relative}.story-nav{position:-webkit-sticky;position:sticky;top:0;z-index:60;height:64px;display:flex;align-items:center;justify-content:space-between;gap:30px;padding:0 max(24px,calc((100% - 1120px) / 2));background:#f2ece2cf;border-bottom:1px solid #ac6a4c3d;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.story-monogram{font:400 17px var(--serif);letter-spacing:.12em;color:var(--accent-deep);white-space:nowrap}.story-menu{display:flex;align-items:center;gap:clamp(14px,2vw,28px)}.story-menu>a{font:400 12px var(--serif);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);position:relative;padding:22px 0}.story-menu>a:after{content:"";position:absolute;inset:auto 0 13px;height:1px;background:var(--accent);transform:scaleX(0);transition:transform .3s}.story-menu>a:hover,.story-menu>a[aria-current]{color:var(--accent-deep)}.story-menu>a:hover:after,.story-menu>a[aria-current]:after{transform:scaleX(1)}.menu-toggle{display:none;border:0;padding:8px;background:transparent;color:var(--ink)}.scene{scroll-margin-top:64px}.scene,.scene-stage{position:relative;min-height:0}.scene-stage{height:auto;padding:88px 24px}.hero-stage{min-height:calc(100svh - 64px)}.chapter-inner{width:100%;max-width:1120px;margin-inline:auto;position:relative}.chapter-heading{text-align:center;position:relative;z-index:0;isolation:isolate}.chapter-heading:before{content:"";pointer-events:none;position:absolute;z-index:-1;width:min(94vw,850px);height:min(85vh,520px);left:50%;top:50%;transform:translate(-50%,-50%);background:radial-gradient(closest-side,#f2ece2c7,#f2ece258 58%,transparent 83%)}.chapter-kicker{color:var(--accent);font:500 12px/1.6 var(--serif);letter-spacing:.4em;text-transform:uppercase;margin:0;padding-left:.4em}.chapter-heading h2{font:400 clamp(38px,7vw,60px)/1.04 var(--serif);letter-spacing:.01em;margin:12px 0 0;text-wrap:balance}.chapter-note{color:var(--muted);font-style:italic;text-align:center;margin:28px auto 0;font-size:17px;text-shadow:0 1px 12px #fdfbf6}.panning-stage{padding:80px 24px;overflow:visible}[data-reveal]{transition:opacity .9s ease,transform .9s cubic-bezier(.2,.65,.25,1)}.motion-enabled [data-reveal]:not(.is-visible){opacity:0;transform:translateY(22px)}.hero-stage{display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;text-align:center}.hero-copy{transform-origin:center}.hero-kicker{animation:soft-arrival 1.1s both}.hero-copy h1{display:flex;flex-direction:column;align-items:center;position:relative;color:var(--ink);font:400 clamp(42px,9vw,80px)/1 var(--serif);letter-spacing:.01em;margin:18px 0 0;text-shadow:0 1px 24px #f2ece2aa}.hero-name{display:block}.hero-name+.hero-amp+.hero-name{margin-top:.04em}.hero-name>span{display:inline-block;animation:letter-arrival 1.2s both;animation-delay:var(--letter-delay,0s)}.hero-amp{position:absolute;top:45%;left:50%;transform:translateX(-50%);font-size:.42em;font-style:italic;color:var(--accent);z-index:2;animation:soft-arrival 1.4s both}.hero-date{display:flex;justify-content:center;align-items:center;gap:16px;margin:36px 0 0;font:400 clamp(15px,2.4vw,18px) var(--body);text-transform:uppercase;letter-spacing:.2em;animation:soft-arrival 1.2s .3s both}.hero-date:after,.hero-date:before{content:"";width:30px;height:1px;background:var(--line)}.hero-city{font:400 12px var(--serif);text-transform:uppercase;letter-spacing:.3em;margin:14px 0 0;animation:soft-arrival 1.2s .45s both}.scroll-invitation{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);display:flex;align-items:center;flex-direction:column;gap:9px;color:var(--muted);font-size:13px;font-style:italic;white-space:nowrap;text-shadow:0 1px 10px var(--paper)}.scroll-invitation svg{animation:scroll-cue 2.5s ease-in-out infinite}.memory-stage{display:flex;align-items:center;flex-direction:column;overflow:clip}.memory-stage .chapter-heading{flex-shrink:0;z-index:2}.memory-corridor{display:grid;grid-template-columns:repeat(3,minmax(0,300px));justify-content:center;align-self:stretch;grid-gap:28px;gap:28px;position:relative;margin:48px auto 8px;width:100%;max-width:1000px;padding:14px 8px 28px}.memory-card{position:relative;width:100%;aspect-ratio:4/5;background:#b18a6c;border:0;border-radius:20px;overflow:hidden;box-shadow:0 24px 48px -28px #4a362aaa;padding:0;text-align:left;isolation:isolate;transition:transform .3s ease;scroll-snap-align:start}.memory-card:first-child{transform:rotate(-2deg)}.memory-card:nth-child(2){transform:translateY(-8px)}.memory-card:nth-child(3){transform:rotate(2deg)}@media(hover:hover){.memory-card:hover{transform:translateY(-10px) rotate(0)}}.memory-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.memory-shade{position:absolute;inset:0;background:linear-gradient(0deg,#1a130eeb,#1a130e88 30%,#1a130e10 65%,transparent)}.memory-expand{position:absolute;right:15px;top:15px;border-radius:50%;background:#f2ece2a3;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);width:36px;height:36px;display:grid;place-items:center;color:var(--accent-deep)}.memory-caption{position:absolute;inset:auto 0 0;padding:23px;display:flex;flex-direction:column;gap:6px;color:#fdfbf6;text-shadow:0 1px 10px #0005}.memory-date{font:400 12px var(--serif);letter-spacing:.14em;text-transform:uppercase}.memory-caption strong{font:500 26px/1.1 var(--serif)}.memory-caption>span:last-child{font:400 15px/1.4 var(--body);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}.memory-controls{display:none;align-items:center;justify-content:center;gap:20px;flex-shrink:0;margin-top:8px;color:var(--accent-deep)}.memory-controls button{width:36px;height:36px;border:1px solid #ac6a4c40;background:#f2ece277;border-radius:50%;display:grid;place-items:center;color:inherit}.memory-controls>span{font-size:12px;letter-spacing:.2em}.countdown-stage{display:flex;align-items:center;justify-content:center}.countdown-inner{position:relative;max-width:640px;width:100%;text-align:center;isolation:isolate}.countdown-inner:before{content:"";position:absolute;pointer-events:none;z-index:-1;width:min(92vw,740px);height:440px;top:50%;left:50%;transform:translate(-50%,-50%);background:radial-gradient(closest-side,#f2ece2cc,#f2ece260 60%,transparent 83%)}.countdown-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:clamp(12px,4vw,40px);gap:clamp(12px,4vw,40px);margin-top:46px}.countdown-window{display:block;overflow:hidden;line-height:1}.countdown-value{display:block;font:500 clamp(48px,10vw,84px)/1 var(--serif);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;animation:digit-arrival .48s cubic-bezier(.2,.65,.25,1)}.countdown-label{display:block;margin-top:12px;font:400 12px var(--serif);letter-spacing:.24em;text-transform:uppercase;color:var(--accent)}.countdown-date{margin:36px 0 0;color:var(--muted);font-size:17px;font-style:italic}.day-tabs{display:flex;align-items:end;justify-content:center;gap:clamp(24px,6vw,48px);margin:30px 0 35px}.day-tabs button{position:relative;border:0;background:transparent;padding:0 0 12px;color:var(--muted);opacity:.6;font:400 clamp(18px,3.4vw,24px) var(--serif)}.day-tabs button:after{position:absolute;bottom:0;left:0;right:0;height:2px;content:"";background:var(--accent);transform:scaleX(0);transition:transform .4s cubic-bezier(.2,.65,.25,1)}.day-tabs button[aria-selected=true]{opacity:1;color:var(--ink)}.day-tabs button[aria-selected=true]:after{transform:scaleX(1)}.frost-card{border:1px solid #ac6a4c42;border-radius:20px;background:radial-gradient(ellipse 45% 30% at 12% 10%,#fffffa45,transparent 60%),radial-gradient(ellipse 50% 40% at 88% 18%,#60442e38,transparent 65%),radial-gradient(ellipse 45% 30% at 20% 88%,#60442e30,transparent 65%),linear-gradient(165deg,#fdfbf6b0,#f2ece270);backdrop-filter:blur(9px) saturate(1.05);-webkit-backdrop-filter:blur(9px) saturate(1.05);box-shadow:0 24px 48px -28px #4a362a80}.program-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,300px));justify-content:center;grid-gap:16px;gap:16px}.program-card{padding:38px 32px;min-height:380px;display:flex;flex-direction:column;position:relative;animation:card-arrival .7s both;animation-delay:var(--card-delay,0s)}.program-index{position:absolute;right:30px;top:38px;color:#6e5b4e80;font:400 16px var(--serif);letter-spacing:.08em}.program-day{margin:33px 0 22px;font:500 54px/.9 var(--serif)}.program-day small{display:block;margin-top:7px;color:var(--muted);font:400 12px var(--serif);text-transform:uppercase;letter-spacing:.15em}.program-card h3{font:500 25px/1.15 var(--serif);margin:0}.fine-rule{width:40px;height:1px;background:var(--line);display:block;margin:23px 0 0}.program-description{font-size:16px;line-height:1.5;margin:16px 0 26px;color:#4a3b30}.program-location{font-size:14px;color:var(--muted);margin:auto 0 0}.dress-inner .chapter-kicker,.dress-panel .small-caps{color:#375239}.dress-inner .chapter-heading h2{color:#304c35}.dress-intro{max-width:780px;color:#46533e;font-size:20px;line-height:1.6}.dress-color-summary,.dress-intro{margin:26px auto 0;text-align:center;text-shadow:0 1px 12px var(--panel)}.dress-color-summary{max-width:660px;color:#304c35;font:400 22px/1.4 var(--serif);text-wrap:balance}.dress-palette{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-gap:22px 20px;gap:22px 20px;list-style:none;padding:clamp(26px,4vw,44px);max-width:660px;margin:30px auto 0}.dress-palette li{grid-column:span 2;display:flex;flex-direction:column;align-items:center;gap:12px;font:400 16px var(--serif);letter-spacing:.03em}.dress-palette li:nth-child(5){grid-column:2/span 2}.color-swatch{display:block;flex-shrink:0;width:88px;height:88px;border:1px solid #263d242b;border-radius:50%;background-repeat:no-repeat;box-shadow:0 12px 20px -12px #263d2480}.dress-panel{max-width:660px;padding:clamp(26px,4vw,44px);margin:36px auto 0;text-align:center}.dress-mens-palette{display:flex;justify-content:center;gap:48px;list-style:none;padding:0;margin:24px 0 0}.dress-mens-palette li{display:flex;flex-direction:column;align-items:center;gap:12px;font:400 16px var(--serif)}.small-caps{margin:0 0 12px;color:var(--accent);font:400 12px var(--serif);letter-spacing:.16em;text-transform:uppercase}.diamond-divider{display:flex;align-items:center;justify-content:center;gap:16px;margin:25px 0;color:var(--accent);font-size:9px}.diamond-divider:after,.diamond-divider:before{content:"";width:min(22vw,245px);height:1px;background:linear-gradient(90deg,transparent,var(--line))}.diamond-divider:after{transform:rotate(180deg)}.dress-wish{font-style:italic;margin:0;font-size:17px;color:var(--muted)}.faq-list{display:flex;flex-direction:column;gap:20px;margin-top:38px}.faq-item{padding:22px 26px;transition:box-shadow .3s}.faq-item:hover{box-shadow:0 26px 52px -26px #4a362a85}.faq-item h3{margin:0;font:500 21px/1.3 var(--serif)}.faq-item h3 button{width:100%;background:none;border:0;padding:0;color:var(--ink);font:inherit;text-align:left;display:flex;justify-content:space-between;gap:20px}.faq-mark{flex-shrink:0;width:16px;height:16px;position:relative;margin-top:5px}.faq-mark:after,.faq-mark:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--accent);transition:transform .3s}.faq-mark:after{transform:rotate(90deg)}.faq-item[data-open=true] .faq-mark:after{transform:rotate(0deg)}.faq-answer{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .4s ease,opacity .4s ease}.faq-answer>div{min-height:0;overflow:hidden}.faq-answer p{font-size:17px;line-height:1.6;color:#4a3b30;margin:15px 0 0}.faq-item[data-open=true] .faq-answer{grid-template-rows:1fr;opacity:1}.map-inner{text-align:center;max-width:1020px}.map-intro{margin:16px 0 20px;font-size:17px;font-style:italic;color:var(--muted)}.map-day-tabs{display:inline-flex;gap:8px;margin:0 auto 20px;padding:5px;background:#f2ece27a;border:1px solid #ac6a4c33;border-radius:999px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.map-day-tabs button{background:none;border:0;color:var(--muted);font:400 16px var(--serif);padding:9px 24px;border-radius:999px;transition:background .3s,color .3s}.map-day-tabs button[aria-selected=true]{background:var(--accent);color:var(--panel)}.map-location>h3{font:500 24px var(--serif);margin:0}.map-location>p{font-size:16px;color:var(--muted);margin:5px auto 16px;max-width:800px;text-wrap:balance}.map-frame{height:clamp(240px,40vh,410px);overflow:hidden;border-radius:20px;border:1px solid #ac6a4c55;background:#f2ece2d9;box-shadow:0 24px 48px -28px #4a362a80}.map-frame iframe{border:0;width:100%;height:100%;display:block}.map-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:24px;margin-top:24px}.route-button{display:inline-flex;gap:10px;align-items:center;background:var(--accent);color:var(--panel);border-radius:999px;padding:12px 24px;font:400 15px var(--serif);transition:background .25s,transform .25s}.route-button:hover{background:var(--accent-deep);transform:translateY(-2px)}.map-external{font-size:15px;color:var(--accent-deep);display:inline-flex;align-items:center;gap:7px}.map-external:hover{text-decoration:underline}.finale-chapter{position:relative;min-height:0}.finale-stage{height:65svh;min-height:400px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:0 24px clamp(90px,18vh,180px);overflow:hidden;text-align:center}.finale-stage:after{content:"";position:absolute;inset:auto 0 0;height:45vh;background:linear-gradient(0deg,#1b1830b8,transparent);pointer-events:none}.finale-signature{position:relative;z-index:1;color:#f4ece5;text-shadow:0 2px 24px #1b1830b3}.finale-signature p{margin:0 0 3px;font-size:24px;font-style:italic}.finale-signature strong{font:500 clamp(28px,4vw,38px) var(--serif);display:block}.finale-signature>span{display:block;font-size:16px;letter-spacing:.08em;margin-top:8px}.reply-panel{position:relative;z-index:2;min-height:100svh;margin-top:0;background:var(--paper);border-radius:24px 24px 0 0;box-shadow:0 -40px 80px -40px #3c2e2588;padding:clamp(50px,8vw,96px) 24px 40px;scroll-margin-top:64px}.reply-inner{max-width:544px;margin:0 auto}.reply-inner>.chapter-kicker{text-align:center;font-size:10px;letter-spacing:.25em}.reply-inner>h2{font:400 clamp(34px,6vw,44px)/1.04 var(--serif);text-align:center;margin:16px 0 0}.reply-intro{text-align:center;color:var(--muted);font-size:17px;font-style:italic;margin:18px 0 38px}.reply-form{display:grid;grid-gap:26px;gap:26px}.field-label,.reply-form legend{display:block;color:var(--accent-deep);font:400 12px/1.5 var(--serif);letter-spacing:.14em;text-transform:uppercase}.field-label>span,.reply-form legend>span{color:var(--muted);font-size:10px;letter-spacing:.04em;margin-left:5px}.reply-form input:not([type=radio]):not([type=checkbox]),.reply-form select,.reply-form textarea{display:block;width:100%;color:var(--ink);background:#fdfbf633;border:1px solid #ac6a4c44;border-radius:12px;padding:14px 16px;margin-top:10px;letter-spacing:0;font:400 18px/1.4 var(--body);text-transform:none;transition:border-color .25s,background .25s}.reply-form input::placeholder,.reply-form textarea::placeholder{color:#8b7664aa}.reply-form textarea{resize:vertical;min-height:120px}.reply-form input:focus,.reply-form select:focus,.reply-form textarea:focus{background:#fdfbf6a0;border-color:var(--accent)}.reply-form fieldset{border:0;margin:0;padding:0;min-width:0}.reply-form legend{margin-bottom:12px;padding:0}.attendance-choices{display:flex;gap:10px}.choice-button{display:block;position:relative;flex:1 1;cursor:pointer}.choice-button input{position:absolute;opacity:0;width:1px;height:1px}.choice-button span{display:block;padding:12px 18px;color:var(--accent-deep);border:1px solid #ac6a4c44;border-radius:999px;text-align:center;font:400 18px var(--serif);transition:background .3s,color .3s}.choice-button input:checked+span{background:var(--accent);border-color:var(--accent);color:var(--panel)}.choice-button input:focus-visible+span{outline:2px solid var(--accent);outline-offset:4px}.reply-submit{margin-top:4px;background:var(--accent);color:var(--panel);border:0;border-radius:999px;min-height:54px;display:flex;align-items:center;justify-content:center;gap:16px;font:400 18px var(--serif);transition:background .25s,transform .25s}.reply-submit:hover:not(:disabled){background:var(--accent-deep);transform:translateY(-2px)}.reply-error{color:#973c32;margin:0;padding:12px 16px;background:#973c3209;border-radius:12px;font-size:16px}.reply-privacy{color:var(--muted);font-size:13px;text-align:center;margin:-9px 0 0}.reply-success{padding:36px 0 20px;text-align:center;color:var(--accent-deep)}.reply-success svg{margin:auto}.reply-success h3{font:400 34px var(--serif);margin:14px 0}.reply-success>p{color:var(--muted);font-size:18px}.underlined-button{padding:8px 0;border:0;border-bottom:1px solid var(--line);color:var(--accent-deep);background:none;font-size:16px}.story-footer{text-align:center;margin-top:64px;padding-top:30px;border-top:1px solid #ac6a4c33;color:var(--muted)}.story-footer>span{color:var(--accent-deep);font:400 25px var(--serif);letter-spacing:.12em}.story-footer>p{font-style:italic;font-size:16px;margin:12px 0 22px}.story-footer>a{color:var(--accent-deep);font-size:13px;border-bottom:1px solid #ac6a4c44}.memory-dialog{padding:0;border:0;border-radius:24px;background:var(--panel);color:var(--ink);width:min(920px,calc(100% - 32px));max-height:86svh;overflow:auto;box-shadow:0 32px 64px -32px #000a}.memory-dialog::-webkit-backdrop{background:#1a130eb8;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.memory-dialog::backdrop{background:#1a130eb8;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.memory-dialog-inner{position:relative;display:grid;grid-template-columns:1fr 1fr;min-height:400px}.memory-dialog-inner>img{width:100%;height:100%;max-height:80svh;min-height:400px;object-fit:cover}.memory-dialog-text{padding:48px 40px;display:flex;flex-direction:column;justify-content:center}.memory-dialog-text>h2{font:500 36px/1.12 var(--serif);margin:16px 0 0}.memory-dialog-text>p:not(.chapter-kicker){font-size:19px;color:var(--muted);line-height:1.6;margin:0}.dialog-diamond{font-size:9px;color:var(--accent);margin:24px 0}.dialog-close{position:absolute;right:14px;top:14px;width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:50%;color:var(--accent-deep);background:#f2ece2c7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}@keyframes letter-arrival{0%{opacity:0;transform:translateY(20px) rotate(8deg);filter:blur(4px)}to{opacity:1;transform:translateY(0) rotate(0);filter:blur(0)}}@keyframes soft-arrival{0%{opacity:0}to{opacity:1}}@keyframes digit-arrival{0%{opacity:.2;transform:translateY(65%)}to{opacity:1;transform:translateY(0)}}@keyframes card-arrival{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes scroll-cue{0%,to{transform:translateY(0)}50%{transform:translateY(7px)}}@media (max-width:900px){.story-menu{gap:14px}.story-menu>a{font-size:10px;letter-spacing:.1em}.program-card{padding:32px 26px;min-height:350px}}@media (max-width:650px){.story-nav{padding:0 22px;height:60px}.story-monogram{font-size:16px}.menu-toggle{display:grid;place-items:center}.story-menu{display:none;position:absolute;left:12px;right:12px;top:70px;flex-direction:column;align-items:stretch;gap:0;padding:12px 22px;border:1px solid var(--line);border-radius:18px;background:#f2ece2f5;box-shadow:0 20px 45px -30px #4a362a99}.story-menu[data-open=true]{display:flex}.story-menu>a{font-size:13px;padding:13px 0}.story-menu>a:after{bottom:8px;transform-origin:left}.scene{min-height:0}.scene-stage{padding:60px 22px;min-height:0}.hero-stage{min-height:calc(100svh - 60px)}.chapter-kicker{font-size:10px;letter-spacing:.34em}.chapter-heading h2{font-size:clamp(34px,9vw,42px)}.hero-stage{padding:60px 20px 80px}.hero-copy h1{font-size:clamp(44px,13vw,64px)}.hero-date{font-size:14px;letter-spacing:.14em;gap:12px;margin-top:32px}.hero-date:after,.hero-date:before{width:18px}.hero-city{font-size:10px;letter-spacing:.25em}.scroll-invitation{bottom:25px;font-size:12px}.memory-stage{padding-top:85px}.memory-corridor{display:flex;justify-content:flex-start;gap:18px;width:calc(100% + 16px);padding:12px 8px 24px;margin-top:30px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none}.memory-card{flex:0 0 min(78vw,285px);width:min(78vw,285px);border-radius:18px}.memory-card:nth-child(n){transform:none}.memory-caption{padding:20px}.memory-caption strong{font-size:25px}.memory-caption>span:last-child{font-size:14px}.memory-controls{display:flex;margin-top:14px}.countdown-grid{gap:14px;margin-top:36px}.countdown-value{font-size:clamp(39px,11vw,58px)}.countdown-label{font-size:9px;letter-spacing:.16em}.countdown-date{font-size:15px}.day-tabs{gap:28px;margin:28px 0}.day-tabs button{font-size:17px}.program-cards{display:grid;grid-template-columns:1fr;grid-gap:16px;gap:16px;overflow:visible}.program-card{display:grid;grid-template-columns:65px 1fr;grid-gap:0 20px;gap:0 20px;min-height:0;padding:26px 22px}.program-index{right:16px;top:16px;font-size:12px}.program-day{grid-column:1;grid-row:1/span 3;margin:8px 0 0;font-size:46px}.program-card h3{grid-column:2;font-size:24px;margin-right:10px}.program-card .fine-rule{display:none}.program-description{grid-column:2;margin:12px 0;font-size:15px}.program-location{grid-column:2;margin:0;font-size:13px}.chapter-note{margin-top:20px;font-size:14px}.dress-intro{font-size:17px;margin-top:22px}.dress-color-summary{font-size:20px;margin-top:22px}.dress-palette{gap:20px 8px;margin-top:26px;padding:26px 22px}.color-swatch{width:clamp(38px,11vw,52px);height:clamp(38px,11vw,52px)}.dress-palette li{gap:10px;font-size:12px;letter-spacing:0}.dress-panel{margin-top:30px;padding:26px 22px}.dress-mens-palette{gap:36px}.dress-mens-palette .color-swatch{width:64px;height:64px}.dress-mens-palette li{font-size:14px}.small-caps{font-size:10px;margin-bottom:9px}.diamond-divider{margin:22px 0}.dress-wish{font-size:16px}.faq-list{margin-top:30px;gap:16px}.faq-item{padding:20px}.faq-item h3{font-size:20px}.faq-answer p,.map-intro{font-size:16px}.map-location>h3{font-size:23px}.map-location>p{font-size:14px}.map-frame{height:300px;border-radius:16px}.map-actions{gap:15px;margin-top:18px;flex-direction:column}.route-button{font-size:15px}.map-external{font-size:14px}.finale-signature p{font-size:21px}.reply-panel{padding:54px 24px 30px}.reply-inner>.chapter-kicker{font-size:9px;letter-spacing:.2em}.reply-inner>h2{font-size:36px;line-height:1.08}.reply-intro{font-size:16px}.field-label,.reply-form legend{font-size:11px;letter-spacing:.1em}.choice-button span,.reply-form input:not([type=radio]):not([type=checkbox]),.reply-form select,.reply-form textarea{font-size:17px}.memory-dialog-inner{grid-template-columns:1fr;min-height:0}.memory-dialog-inner>img{height:34svh;min-height:220px}.memory-dialog-text{padding:28px}.memory-dialog-text>h2{font-size:30px}.memory-dialog-text>p:not(.chapter-kicker){font-size:17px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation:none!important;transition:none!important}.memory-card:nth-child(n){transform:none}}@media print{.map-frame,.memory-controls,.motion-backdrop,.reply-form,.scroll-invitation,.story-footer>a,.story-nav{display:none!important}.finale-chapter,.finale-stage,.scene,.scene-stage{height:auto!important;min-height:0!important;position:relative!important;padding:30px 20px}.hero-copy,[data-pan],[data-reveal]{transform:none!important}[data-reveal]{opacity:1!important}.frost-card{background:var(--panel)}.memory-corridor{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:20px;gap:20px}.memory-card{position:relative;left:auto;top:auto;transform:none!important;opacity:1!important;width:100%}.reply-panel{margin-top:0;box-shadow:none}.finale-signature{color:var(--ink);text-shadow:none}}.motion-enabled .program-reveal:not(.is-visible) .program-card{animation-name:none}.memory-dialog-inner{animation:soft-arrival .3s both}.dialog-nav{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:50%;background:#f2ece2b8;color:var(--accent-deep);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.dialog-nav:disabled{cursor:default;opacity:.3}.dialog-prev{left:12px}.dialog-next{right:12px}.dialog-count{position:absolute;bottom:14px;left:25%;transform:translateX(-50%);background:#3c2e2599;color:var(--panel);border-radius:999px;padding:4px 12px;font-size:12px;letter-spacing:.12em}@media(max-width:650px){.dialog-count{left:50%;top:calc(34svh - 40px);bottom:auto}.dialog-nav{top:17svh}}.faq-chapter .chapter-heading h2,.map-chapter .chapter-heading h2{color:#fff8ef;text-shadow:0 2px 20px #2c203d99}.faq-chapter .chapter-heading:before,.map-chapter .chapter-heading:before{opacity:0}.faq-chapter .chapter-kicker,.map-chapter .chapter-kicker{color:#edc6a7;text-shadow:0 1px 8px #2c203d99}.map-external,.map-intro,.map-location>h3,.map-location>p{color:#fff8ef;text-shadow:0 1px 12px #2c203dbb}.faq-item{background-color:#fdfbf6ab}