@font-face{font-family:Great Vibes Local;src:url(/fonts/great-vibes-cyrillic.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap;unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Great Vibes Local;src:url(/fonts/great-vibes-latin.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Onest Local;src:url(/fonts/onest-cyrillic.woff2)format("woff2");font-style:normal;font-weight:500;font-display:swap;unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Onest Local;src:url(/fonts/onest-latin.woff2)format("woff2");font-style:normal;font-weight:500;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Onest Local;src:url(/fonts/onest-cyrillic.woff2)format("woff2");font-style:normal;font-weight:600;font-display:swap;unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Onest Local;src:url(/fonts/onest-latin.woff2)format("woff2");font-style:normal;font-weight:600;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Forum Local;src:url(/fonts/forum-cyrillic.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap;unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Forum Local;src:url(/fonts/forum-latin.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-body:"Onest Local", "Segoe UI", sans-serif;--font-serif:"Forum Local", "Times New Roman", serif;--font-display:"Great Vibes Local", "Times New Roman", serif;--radius-xl:44px;--radius-lg:32px;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--color-text:#46363a;--color-accent:#b31234;--color-accent-deep:#72061f;--color-accent-rgb:179, 18, 52;--color-accent-deep-rgb:114, 6, 31;--color-gold:#d0b16d;--color-gold-rgb:208, 177, 109;--color-dot:#a50f2f;--color-dot-soft:#b312343d;--color-line:#72061f7a;--glass-bg:#fffaf66b;--glass-panel-bg:#fffaf6c2;--story-text-bg:#fffaf6db;--glass-bg-soft:var(--glass-bg);--shadow-md:0 18px 52px #72061f1a;--shadow-sm:0 14px 38px #72061f17;--inset-border:0 0 0 1px #72061f14;--container-width:1080px;--container-gutter:2.4rem;--container-gutter-mobile:1.1rem;--container-gutter-xs:.8rem;--section-gap:clamp(4.6rem, 9vw, 7rem);--section-trailing-space:clamp(2.4rem, 6vw, 4.8rem);--timeline-time-col:132px;--timeline-dot-col:34px;--timeline-gap:.9rem;--timeline-pad-x:clamp(1rem, 2.5vw, 1.8rem);--timeline-line-top:.45rem;--timeline-line-bottom:.45rem;--event-card-title-size:clamp(1.34rem, 2.3vw, 1.8rem);--event-card-title-line-height:1.32;--event-card-title-weight:600;--event-card-description-size:clamp(1rem, 1.6vw, 1.22rem);--event-card-description-line-height:1.62;--event-card-mobile-title-size:clamp(1.16rem, 5vw, 1.42rem);--event-card-mobile-title-line-height:1.35;--event-card-mobile-description-size:clamp(.9rem, 4vw, 1rem);--event-card-mobile-description-line-height:1.5;--timeline-line-left:calc(var(--timeline-pad-x) + var(--timeline-time-col) + var(--timeline-gap) + (var(--timeline-dot-col) / 2));--safe-area-top:env(safe-area-inset-top);--safe-area-right:env(safe-area-inset-right);--safe-area-bottom:env(safe-area-inset-bottom);--safe-area-left:env(safe-area-inset-left);--ios-full-height:100svh;--app-min-height:100svh;--app-background-height:100lvh;--page-background-color:#ffe3eb;--page-background-image:radial-gradient(ellipse at 18% 22%, rgba(var(--color-gold-rgb), .18) 0%, rgba(var(--color-gold-rgb), .07) 32%, rgba(var(--color-gold-rgb), 0) 58%), radial-gradient(ellipse at 82% 74%, rgba(var(--color-accent-rgb), .13) 0%, rgba(var(--color-accent-deep-rgb), .035) 34%, rgba(var(--color-accent-deep-rgb), 0) 62%), linear-gradient(135deg, #ffe7ee 0%, #ffdce7 54%, #fde5c9 100%);--page-background-position:center, center, center;--page-background-size:cover}@supports (-webkit-touch-callout:none){:root{--app-min-height:-webkit-fill-available}}@supports (height:100svh){:root{--app-min-height:100svh}}@supports (height:100dvh){:root{--app-min-height:100dvh;--app-background-height:100dvh}}@supports (height:100lvh){:root{--app-background-height:100lvh}}@supports (-webkit-touch-callout:none){:root{--app-min-height:var(--ios-full-height);--app-background-height:var(--ios-full-height)}}@supports (-webkit-touch-callout:none) and (height:100lvh){:root{--app-background-height:100lvh}}*{box-sizing:border-box}html,body{overflow-x:clip}html,body,#root{min-height:100%;min-height:var(--app-min-height);background-color:var(--page-background-color);background-image:var(--page-background-image);background-position:var(--page-background-position);background-repeat:no-repeat;background-size:var(--page-background-size)}body{font-family:var(--font-body);color:var(--color-text);isolation:isolate;margin:0;font-weight:500;position:relative}#root{isolation:isolate;position:relative}body:before{content:"";min-height:100%;min-height:var(--app-background-height);z-index:-1;pointer-events:none;background-color:var(--page-background-color);background-image:var(--page-background-image);background-position:var(--page-background-position);background-repeat:no-repeat;background-size:var(--page-background-size);position:fixed;inset:0;transform:translateZ(0)}.site-shell{z-index:1;min-height:var(--app-min-height);padding-left:var(--safe-area-left);padding-right:var(--safe-area-right);position:relative}.container{width:min(var(--container-width), calc(100% - var(--container-gutter)));margin-inline:auto}.invitation-main{padding-top:calc(clamp(1.2rem, 2.6vw, 2.2rem) + var(--safe-area-top));padding-right:0;padding-bottom:max(24px, calc(clamp(2rem, 5vw, 4rem) + var(--safe-area-bottom)));padding-left:0}.hero-screen__frame,.soft-card,.registry-card,.registry-card__time-block,.registry-card__details,.wedding-calendar,.countdown-card,.countdown-item,.dress-note,.story-photo,.story-photo__content,.timeline-item{background:var(--glass-bg);-webkit-backdrop-filter:none;backdrop-filter:none}.registry-card__time-block,.registry-card__details{background:var(--glass-panel-bg)}.story-photo__content{background:var(--story-text-bg)}.hero-screen__frame{border-radius:var(--radius-xl);min-height:clamp(430px,55vw,640px);box-shadow:var(--shadow-md);border:none;justify-content:center;align-items:flex-start;padding:clamp(5.2rem,9vw,7.4rem) clamp(1.1rem,4vw,3rem) clamp(2.4rem,5vw,4rem);display:flex;position:relative;overflow:hidden}.hero-screen__center,.section-head{text-align:center}.hero-screen__center{z-index:1;justify-items:center;display:grid;position:relative}.hero-screen__title{font-family:var(--font-display);color:var(--color-accent);text-shadow:.55px 0,-.55px 0,0 .55px,0 -.55px;gap:clamp(.02em,.8vw,.12em);margin:0;font-size:clamp(5rem,11.8vw,9.8rem);font-weight:400;line-height:.82;display:grid}.hero-screen__connector{font-size:clamp(2rem,4.6vw,3.6rem);line-height:1}.hero-screen__divider{width:min(380px,74%);color:var(--color-accent);grid-template-columns:minmax(48px,1fr) auto minmax(48px,1fr);align-items:center;gap:clamp(.8rem,2.4vw,1.4rem);margin:clamp(1rem,2.6vw,1.6rem) 0 clamp(.8rem,2vw,1.2rem);display:grid}.hero-screen__divider-line{opacity:.7;background:currentColor;height:1px;transform:translateY(.08em)}.hero-screen__divider-heart{font-family:var(--font-body), "Times New Roman", serif;font-variant-emoji:text;font-size:clamp(1.8rem,4vw,2.8rem);line-height:1}.hero-screen__date{font-family:var(--font-display);color:var(--color-accent);margin:0;font-size:clamp(2.2rem,4.8vw,3.6rem);font-style:italic}.hero-screen,.inv-section{padding-bottom:var(--section-trailing-space)}.inv-section{margin-top:var(--section-gap)}.countdown-section,.timeline-section{content-visibility:auto}.timeline-section{contain-intrinsic-size:1px 1040px}.countdown-section{contain-intrinsic-size:1px 420px}.lazy-section .container{min-height:1px}.lazy-section__placeholder{border-radius:var(--radius-lg);background:0 0;width:100%}.lazy-section--timeline .lazy-section__placeholder{min-height:1040px}.lazy-section--countdown .lazy-section__placeholder{min-height:420px}.section-head{margin-bottom:clamp(1.2rem,2vw,1.8rem)}.section-title{font-family:var(--font-display);color:var(--color-accent);text-shadow:.45px 0,-.45px 0,0 .45px,0 -.45px;margin:.52rem 0 0;font-size:clamp(2.4rem,5vw,3.9rem);font-weight:400}.soft-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:clamp(1.2rem,3vw,2.3rem);position:relative;overflow:hidden}.lead-text{font-family:var(--font-display);letter-spacing:.01em;color:#49392bf0;margin:0;font-size:clamp(2.08rem,4.2vw,3rem);font-weight:400;line-height:1.24}.lead-text+.lead-text{margin-top:.8rem}.dress-code-section{content-visibility:auto;contain-intrinsic-size:1px 420px}.dress-code-section .section-title{font-weight:600}.dress-code-card,.dress-note{-webkit-backdrop-filter:none;backdrop-filter:none}.dress-code-card{box-shadow:none;background:0 0;padding:0}.dress-code-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.72rem,1.7vw,1rem);display:grid}.dress-note{--card-hover-scale:1;border-radius:var(--radius-lg);background:var(--glass-bg);min-width:0;box-shadow:var(--shadow-sm);scale:var(--card-hover-scale);padding:clamp(1rem,2.2vw,1.3rem) clamp(1rem,2.2vw,1.3rem) clamp(1.08rem,2.3vw,1.4rem);transition:transform .7s cubic-bezier(.2,.7,.2,1),box-shadow .32s cubic-bezier(.2,.7,.2,1),scale .32s cubic-bezier(.2,.7,.2,1);position:relative}.dress-note+.dress-note{border-left:0}.dress-note--men{align-content:start;display:grid}.dress-note__title,.dress-note__text{position:relative}.dress-note__title{font-family:var(--font-serif);font-size:var(--event-card-title-size);font-weight:var(--event-card-title-weight);font-synthesis:weight;line-height:var(--event-card-title-line-height);color:var(--color-accent);margin:0}.dress-note__text{max-width:30rem;font-family:var(--font-body);font-size:var(--event-card-description-size);line-height:var(--event-card-description-line-height);color:var(--color-text);margin:.58rem 0 0}.dress-note__lead-word{font-family:inherit;font-size:1em;font-weight:inherit;line-height:inherit;color:inherit}@media (hover:hover) and (pointer:fine){.dress-note:hover{--card-hover-scale:1.045;z-index:4;box-shadow:0 24px 38px -24px rgba(var(--color-accent-deep-rgb), .46)}}.dress-note:focus-within{--card-hover-scale:1.045;z-index:4;box-shadow:0 24px 38px -24px rgba(var(--color-accent-deep-rgb), .46)}.wedding-date-section{content-visibility:auto;contain-intrinsic-size:1px 460px}.registry-section{content-visibility:auto;contain-intrinsic-size:1px 620px}.registry-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-md);-webkit-backdrop-filter:none;backdrop-filter:none;border:none;grid-template:"image time".95fr"image details"1.05fr/minmax(0,1.32fr) minmax(280px,.68fr);gap:clamp(.95rem,2vw,1.35rem);padding:clamp(.95rem,2.4vw,1.35rem);display:grid;position:relative;overflow:hidden}.registry-card:before{content:"";border-radius:inherit;box-shadow:none;pointer-events:none;position:absolute;inset:0}.registry-card__time-block,.registry-card__image-wrap,.registry-card__details{z-index:1;min-width:0;position:relative}.registry-card__time-block{text-align:center;min-height:0;box-shadow:none;border:none;border-radius:22px;grid-area:time;align-content:center;justify-items:center;padding:clamp(.86rem,1.8vw,1.1rem);display:grid}.registry-card__image-wrap{aspect-ratio:1546/999;width:100%;min-height:0;box-shadow:0 22px 36px -26px rgba(var(--color-accent-deep-rgb), .42);border-radius:24px;grid-area:image;align-self:stretch;overflow:hidden}.registry-card__image{object-fit:cover;object-position:center;filter:saturate(.98)contrast(.98);width:100%;height:100%;display:block}.registry-card__label{letter-spacing:.16em;text-transform:uppercase;color:#49392ba3;margin:0;font-size:.78rem;font-weight:600}.registry-card__time{font-family:var(--font-display);color:var(--color-accent);margin-top:.34rem;font-size:clamp(3.8rem,6.3vw,5.55rem);font-style:italic;line-height:.96}.registry-card__date{letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent);margin:.2rem 0 0;font-size:clamp(.88rem,1.5vw,1rem)}.registry-card__details{min-height:0;box-shadow:none;border:none;border-radius:22px;grid-area:details;align-content:center;gap:clamp(.54rem,1.2vw,.72rem);padding:clamp(.9rem,1.7vw,1.12rem);display:grid}.registry-card__title{font-family:var(--font-serif);color:var(--color-accent);margin:0;font-size:clamp(1.5rem,3vw,2.12rem);font-weight:600;line-height:1.22}.registry-card__description,.registry-card__address{color:#49392be6;margin:0;font-size:clamp(.96rem,1.5vw,1.1rem);line-height:1.55}.registry-card__address{font-weight:600}.registry-card__link{border-radius:var(--radius-lg);min-height:50px;font-family:var(--font-body);letter-spacing:.03em;color:#fff;background:linear-gradient(160deg, rgba(var(--color-accent-rgb), .96) 0%, rgba(var(--color-accent-deep-rgb), .96) 100%);box-shadow:0 10px 18px rgba(var(--color-accent-deep-rgb), .2);cursor:pointer;border:none;justify-content:center;justify-self:start;align-items:center;margin-top:.22rem;padding:.72rem 1.28rem;font-size:.98rem;font-weight:600;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);display:inline-flex}.registry-card__link:hover,.registry-card__link:focus-visible{background:linear-gradient(160deg, #c2183d 0%, var(--color-accent-deep) 100%);box-shadow:0 12px 22px rgba(var(--color-accent-deep-rgb), .26)}.registry-card__link:active{box-shadow:0 7px 14px rgba(var(--color-accent-deep-rgb), .18);transform:translateY(0)}.chapel-card{grid-template:"time image".95fr"details image"1.05fr/minmax(280px,.68fr) minmax(0,1.32fr)}.chapel-card .registry-card__image-wrap{aspect-ratio:600/750;align-self:stretch}.chapel-card .registry-card__time-block,.chapel-card .registry-card__details{align-content:center}.venue-section{content-visibility:auto;contain-intrinsic-size:1px 520px}@media (width>=641px){.registry-card__details{text-align:center;justify-items:center}.registry-card__link{justify-self:stretch;width:100%}.chapel-card .registry-card__title{justify-self:center;max-width:12ch;font-size:clamp(1.8rem,3.25vw,2.5rem);font-weight:700;line-height:1.16}}.final-message-section{padding-top:0}.final-message{text-align:center;font-family:var(--font-display);color:var(--color-accent);text-shadow:0 2px 10px rgba(var(--color-accent-deep-rgb), .14);margin:0;padding:.1em 0 .14em;font-size:clamp(4.8rem,10vw,7.8rem);font-weight:400;line-height:1.14;display:block;overflow:visible}.wedding-calendar{box-shadow:var(--shadow-md);-webkit-backdrop-filter:none;backdrop-filter:none;border:none;border-radius:36px;padding:clamp(1.65rem,3.6vw,2.45rem);position:relative;overflow:hidden}.wedding-calendar:before,.wedding-calendar:after{content:none}.wedding-calendar__top{z-index:1;border-bottom:1px solid rgba(var(--color-accent-rgb), .14);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:clamp(1.2rem,2.8vw,1.75rem);padding-bottom:clamp(1rem,2.1vw,1.35rem);display:flex;position:relative}.wedding-calendar__month{font-family:var(--font-body);letter-spacing:.36em;text-transform:uppercase;color:#49392bb8;margin:0;padding-top:.42rem;font-size:clamp(.9rem,1.35vw,1rem);font-weight:600}.wedding-calendar__date{font-family:var(--font-display);color:var(--color-accent);text-shadow:0 1px #ffffff6b;margin:0;font-size:clamp(2.15rem,4.2vw,3.15rem);font-style:italic}.wedding-calendar__date-block{text-align:right;justify-items:end;gap:.16rem;display:grid}.wedding-calendar__date-weekday{letter-spacing:.28em;text-transform:uppercase;color:#49392b8f;margin:0;font-size:clamp(.72rem,1vw,.82rem);font-weight:600}.wedding-calendar__week{z-index:1;grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(.72rem,1.4vw,1rem) clamp(.5rem,1.6vw,1.25rem);display:grid;position:relative}.wedding-calendar__weekday{text-align:center;font-family:var(--font-body);letter-spacing:.34em;text-transform:uppercase;color:#46363a8f;padding:0;font-size:clamp(.86rem,1.5vw,1.08rem);font-weight:600}.wedding-calendar__day{min-height:clamp(2.5rem,4.2vw,3.25rem);box-shadow:none;font-family:var(--font-body);color:var(--color-accent);background:0 0;border:0;border-radius:0;place-items:center;font-size:clamp(1.2rem,2vw,1.42rem);font-weight:600;line-height:1;display:grid;position:relative}.wedding-calendar__day--empty{display:none}.wedding-calendar__day-number{z-index:1;position:relative}.wedding-calendar__day--weekend{color:var(--color-accent)}.wedding-calendar__day--wedding{box-shadow:none;color:var(--color-accent-deep);background:0 0;border-color:#0000;position:relative;overflow:visible;transform:none}.wedding-calendar__day--wedding:before,.wedding-calendar__day--wedding:after{content:none}.wedding-calendar__day--wedding:before{content:"♥︎";z-index:0;color:rgba(var(--color-accent-rgb), .94);font-family:var(--font-body), "Times New Roman", serif;font-variant-emoji:text;text-shadow:0 10px 18px rgba(var(--color-accent-deep-rgb), .12), 0 1px 0 #ffffff80;font-size:clamp(3.4rem,5.8vw,4.65rem);line-height:1;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scaleX(1.04)}.wedding-calendar__day--wedding:after{content:none}.wedding-calendar__day--wedding .wedding-calendar__day-number{color:#fff;font-size:clamp(1.24rem,2.1vw,1.5rem);font-weight:700}.wedding-calendar__note{z-index:1;text-align:left;font-family:var(--font-body);letter-spacing:.04em;color:#49392bb3;margin:0;font-size:clamp(.92rem,1.45vw,1.04rem);font-weight:600;position:relative}.wedding-calendar__footer{z-index:1;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:clamp(1.25rem,2.6vw,1.7rem);display:flex;position:relative}.wedding-calendar__action{border-radius:var(--radius-lg);min-height:50px;font-family:var(--font-body);letter-spacing:.03em;color:#fff;background:linear-gradient(160deg, rgba(var(--color-accent-rgb), .96) 0%, rgba(var(--color-accent-deep-rgb), .96) 100%);box-shadow:0 10px 18px rgba(var(--color-accent-deep-rgb), .2);cursor:pointer;border:none;justify-content:center;align-items:center;padding:.72rem 1.4rem;font-size:.98rem;font-weight:600;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);display:inline-flex}.wedding-calendar__action:hover,.wedding-calendar__action:focus-visible{background:linear-gradient(160deg, #c2183d 0%, var(--color-accent-deep) 100%);box-shadow:0 12px 22px rgba(var(--color-accent-deep-rgb), .26)}.wedding-calendar__action:active{box-shadow:0 7px 14px rgba(var(--color-accent-deep-rgb), .18);transform:translateY(0)}.countdown-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:clamp(1rem,2.8vw,1.8rem)}.countdown-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.7rem,1.6vw,1rem);display:grid}.countdown-item{text-align:center;border-radius:20px;padding:clamp(.85rem,2vw,1.2rem) .6rem;box-shadow:inset 0 0 0 1px #741b2b0d}.countdown-item__value{font-family:var(--font-body);color:var(--color-accent);margin:0;font-size:clamp(1.85rem,4.6vw,2.8rem);font-weight:600;line-height:1}.countdown-item__label{font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text);margin:.34rem 0 0;font-size:clamp(.86rem,1.6vw,1.02rem);font-weight:500}.reveal-on-scroll{opacity:0;will-change:opacity, transform, box-shadow, scale;transition:opacity .65s,transform .7s cubic-bezier(.2,.7,.2,1),box-shadow .32s cubic-bezier(.2,.7,.2,1),scale .32s cubic-bezier(.2,.7,.2,1);transform:translateY(20px)scale(.992)}.reveal-on-scroll.is-visible{opacity:1;transform:translateY(0)scale(1)}.timeline-list{gap:1rem;display:grid;position:relative}.timeline-list:before{content:"";top:var(--timeline-line-top);bottom:var(--timeline-line-bottom);left:var(--timeline-line-left);z-index:2;background:var(--color-line);border-radius:999px;width:3px;position:absolute;transform:translate(-50%)}.timeline-item{--card-hover-scale:1;z-index:1;grid-template-columns:var(--timeline-time-col) var(--timeline-dot-col) 1fr;align-items:center;gap:var(--timeline-gap);min-height:128px;padding:1.25rem var(--timeline-pad-x);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);scale:var(--card-hover-scale);transition:opacity .65s,transform .7s cubic-bezier(.2,.7,.2,1),box-shadow .32s cubic-bezier(.2,.7,.2,1),scale .32s cubic-bezier(.2,.7,.2,1);display:grid;position:relative}@media (hover:hover) and (pointer:fine){.timeline-item:hover{--card-hover-scale:1.045;z-index:4;box-shadow:0 24px 38px -24px rgba(var(--color-accent-deep-rgb), .46)}}.timeline-item:focus-within{--card-hover-scale:1.045;z-index:4;box-shadow:0 24px 38px -24px rgba(var(--color-accent-deep-rgb), .46)}.timeline-item__time,.timeline-item__content{z-index:1;position:relative}.timeline-item__time{font-family:var(--font-body);color:var(--color-accent);justify-self:start;margin:0;padding-left:clamp(.05rem,.4vw,.28rem);font-size:clamp(2rem,3.2vw,2.44rem);font-weight:500}.timeline-item__dot{z-index:1;background:var(--color-dot-soft);border-radius:50%;justify-self:center;width:20px;height:20px;position:relative}.timeline-item__dot:before{content:"";background:var(--color-dot);border-radius:50%;animation:2.6s ease-in-out infinite dot-pulse;position:absolute;inset:6px}.timeline-item__title{font-family:var(--font-serif);font-size:var(--event-card-title-size);font-weight:var(--event-card-title-weight);font-synthesis:weight;line-height:var(--event-card-title-line-height);color:var(--color-accent);margin:0}.timeline-item__description{font-family:var(--font-body);font-size:var(--event-card-description-size);line-height:var(--event-card-description-line-height);color:var(--color-text);margin:.58rem 0 0}@keyframes dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.72;transform:scale(1.12)}}@media (width<=1024px) and (width>=641px){.hero-screen__title{font-size:clamp(4.2rem,12vw,6.4rem)}.hero-screen__connector{font-size:clamp(2.2rem,6.2vw,3.1rem)}.section-title{font-size:clamp(2.8rem,7.6vw,4rem)}:root{--timeline-time-col:118px;--timeline-dot-col:28px}}@media (width<=640px){:root{--container-gutter-mobile:2.25rem;--timeline-time-col:86px;--timeline-dot-col:24px;--timeline-gap:.64rem;--timeline-pad-x:.9rem;--section-gap:clamp(4.2rem, 13vw, 6.2rem);--section-trailing-space:clamp(2rem, 7vw, 3.4rem)}.container{width:min(100%, calc(100% - var(--container-gutter-mobile)))}.invitation-main{padding-top:calc((var(--container-gutter-mobile) / 2) + var(--safe-area-top));padding-bottom:max(24px, calc(2.6rem + var(--safe-area-bottom)))}.hero-screen{margin-top:0}.hero-screen__frame{aspect-ratio:auto;border-radius:32px;min-height:clamp(360px,94vw,520px);max-height:none;padding:4.2rem 1rem 2.4rem}.soft-card,.dress-code-card,.wedding-calendar,.registry-card,.countdown-card,.timeline-item{border-radius:28px}.hero-screen__title{font-size:clamp(3.4rem,18.4vw,5.8rem);line-height:.9}.hero-screen__connector{font-size:clamp(1.7rem,8.4vw,2.6rem)}.hero-screen__date{font-size:clamp(1.36rem,6.9vw,2.1rem)}.section-title{font-size:clamp(2.25rem,11vw,3.2rem)}.lead-text{font-size:clamp(1.56rem,8vw,2.24rem);line-height:1.22}.countdown-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wedding-calendar{border-radius:28px;padding:1.08rem .92rem 1rem}.dress-code-card{border-radius:0;padding:0}.dress-code-grid{grid-template-columns:1fr;gap:.78rem}.dress-note{box-shadow:0 10px 24px rgba(var(--color-accent-deep-rgb), .1);border-radius:28px;padding:.88rem .88rem .94rem}.dress-note+.dress-note{border-top:0;padding-top:.88rem;padding-bottom:.94rem}.dress-note__title{max-width:none;font-size:var(--event-card-mobile-title-size);line-height:var(--event-card-mobile-title-line-height)}.dress-note__text{font-size:var(--event-card-mobile-description-size);line-height:var(--event-card-mobile-description-line-height);margin-top:.36rem}.final-message{font-size:clamp(4.5rem,22vw,6.4rem);line-height:1.12}.registry-card{grid-template:"image""time""details"/1fr;gap:.82rem;padding:.96rem .82rem .92rem}.registry-card__time-block{border-radius:20px;min-height:164px}.registry-card__image-wrap{aspect-ratio:1546/999;border-radius:20px;min-height:0}.registry-card__image{object-position:center}.registry-card__label{letter-spacing:.14em;font-size:.68rem}.registry-card__time{font-size:clamp(3.55rem,18vw,5.2rem)}.registry-card__date{letter-spacing:.05em;font-size:.78rem}.registry-card__details{text-align:center;border-radius:20px;justify-items:center;min-height:auto;padding:.88rem .86rem .96rem}.registry-card__title{font-size:clamp(1.26rem,5.8vw,1.58rem)}.registry-card__description,.registry-card__address{font-size:clamp(.88rem,4.1vw,1rem);line-height:1.5}.registry-card__link{justify-content:center;justify-self:stretch;width:100%;min-height:46px;padding:.66rem .96rem;font-size:.88rem}.wedding-calendar__top{margin-bottom:.92rem;padding-bottom:.72rem}.wedding-calendar__month{letter-spacing:.22em;padding-top:.48rem;font-size:.74rem}.wedding-calendar__date{font-size:clamp(1.62rem,8.2vw,2.15rem)}.wedding-calendar__date-weekday{letter-spacing:.22em;font-size:.54rem}.wedding-calendar__week{gap:.52rem .28rem}.wedding-calendar__weekday{letter-spacing:.22em;font-size:.68rem}.wedding-calendar__day{border-radius:0;min-height:clamp(2rem,9.4vw,2.34rem);font-size:clamp(.92rem,4vw,1.02rem)}.wedding-calendar__day--wedding .wedding-calendar__day-number{font-size:clamp(.94rem,4vw,1.08rem)}.wedding-calendar__day--wedding:before{font-size:clamp(2.85rem,12.8vw,3.25rem)}.wedding-calendar__footer{align-items:stretch;gap:.7rem;margin-top:.96rem}.wedding-calendar__note{letter-spacing:.04em;font-size:.8rem}.wedding-calendar__action{letter-spacing:.03em;width:100%;min-height:46px;padding:.74rem 1.04rem;font-size:.88rem}.story-section,.wedding-date-section,.dress-code-section,.registry-section,.venue-section,.timeline-section,.countdown-section{content-visibility:visible;contain-intrinsic-size:auto}.lazy-section--timeline .lazy-section__placeholder{min-height:880px}.lazy-section--countdown .lazy-section__placeholder{min-height:320px}.countdown-item__value{font-size:clamp(1.7rem,8.8vw,2.2rem)}.timeline-item{gap:.58rem;min-height:102px;padding:.95rem .9rem}.timeline-item__time{font-size:clamp(1.52rem,7vw,1.86rem)}.timeline-item__dot{width:16px;height:16px}.timeline-item__dot:before{inset:4px}.timeline-item__title{font-size:var(--event-card-mobile-title-size);line-height:var(--event-card-mobile-title-line-height)}.timeline-item__description{font-size:var(--event-card-mobile-description-size);line-height:var(--event-card-mobile-description-line-height);margin-top:.36rem}}@media (hover:none) and (pointer:coarse){.timeline-item,.dress-note{-webkit-tap-highlight-color:transparent}.timeline-item:active,.dress-note:active{--card-hover-scale:1.045;z-index:4;box-shadow:0 24px 38px -24px rgba(var(--color-accent-deep-rgb), .46)}}@media (width<=390px){:root{--container-gutter-xs:2.25rem;--timeline-time-col:78px;--timeline-dot-col:22px;--timeline-pad-x:.74rem}.container{width:min(100%, calc(100% - var(--container-gutter-xs)))}.invitation-main{padding-top:calc((var(--container-gutter-xs) / 2) + var(--safe-area-top));padding-bottom:max(24px, calc(2.4rem + var(--safe-area-bottom)))}.hero-screen__frame{border-radius:28px;min-height:0;max-height:none;padding:3.6rem .9rem 2.2rem}.soft-card,.dress-code-card,.wedding-calendar,.registry-card,.countdown-card,.timeline-item{border-radius:28px}.hero-screen__title{font-size:clamp(2.95rem,17.8vw,4.6rem)}.timeline-item{padding:.88rem .74rem}}@media (prefers-reduced-motion:reduce){body:before{animation:none!important}.reveal-on-scroll{opacity:1!important;transition:none!important;transform:none!important}.timeline-item__dot:before{animation:none!important}.story-board{--story-progress:1!important}.story-board__mask-path{stroke-dasharray:1 1!important;stroke-dashoffset:0!important}.story-board__point{opacity:1!important;transition:none!important;transform:translate(-50%,-50%)!important}.story-photo{opacity:1!important;transition:none!important}}.story-section{content-visibility:auto;contain-intrinsic-size:1px 1580px}.story-board{--story-progress:0;isolation:isolate;border-radius:44px;min-height:clamp(1260px,136vw,1600px);padding:clamp(.55rem,1.4vw,1rem);position:relative}.story-board__line{pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.story-board__path{fill:none;stroke-width:3.8px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:9 14}.story-board__path--active{stroke:#5d5143bd;filter:drop-shadow(0 2px 6px rgba(var(--color-accent-deep-rgb), .11))}.story-board__mask-path{fill:none;stroke:#fff;stroke-width:20px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:var(--story-progress) 1;stroke-dashoffset:0}.story-board__point{z-index:2;background:var(--color-dot-soft);width:16px;height:16px;transform:translate(-50%, -50%) scale(calc(.84 + (var(--story-progress) * .16)));opacity:calc(.16 + (var(--story-progress) * .84));border-radius:50%;transition:opacity .24s linear,transform .24s linear;position:absolute;box-shadow:0 0 0 5px #ffffff57}.story-board__point:before{content:"";background:var(--color-dot);border-radius:50%;position:absolute;inset:3px}.story-board__point--1{top:14%;left:34%}.story-board__point--2{top:33%;left:68%}.story-board__point--3{top:52%;left:27%}.story-board__point--4{top:71%;left:71%}.story-board__point--5{top:90.5%;left:36%}.story-photo{--story-photo-progress:0;--photo-tilt:0deg;--photo-hover-scale:1;--photo-x:50%;--photo-y:50%;left:var(--photo-x);top:var(--photo-y);z-index:3;aspect-ratio:1;width:clamp(211px,22.1vw,286px);max-width:calc(100% - 1rem);box-shadow:0 16px 30px rgba(var(--color-accent-deep-rgb), .08);-webkit-backdrop-filter:none;backdrop-filter:none;transform:translate(-50%, -50%) rotate(var(--photo-tilt)) scale(var(--photo-hover-scale));will-change:transform;border:1px solid #ffffff80;border-radius:28px;padding:.5rem;transition:transform .32s cubic-bezier(.2,.7,.2,1);position:absolute}.story-photo:hover,.story-photo:focus-within{--photo-hover-scale:1.045;z-index:4}.story-photo__image-wrap{width:100%;height:100%;box-shadow:none;border-radius:22px;position:relative;overflow:hidden}.story-photo__image{object-fit:cover;opacity:1;filter:none;mix-blend-mode:normal;width:100%;height:100%;display:block;transform:scale(1.08)}.story-photo__content{box-shadow:none;border:1px solid #ffffff7a;border-radius:12px 12px 18px 18px;padding:.46rem .55rem .52rem;position:absolute;bottom:.88rem;left:.88rem;right:.88rem}.story-photo__year{font-family:var(--font-serif);letter-spacing:.16em;text-transform:uppercase;color:#111;margin-bottom:.14rem;font-size:.67rem;display:block}.story-photo__title{font-family:var(--font-serif);font-synthesis:weight;color:#111;margin:0;font-size:clamp(.96rem,1.3vw,1.18rem);font-weight:900;line-height:1.16}.story-photo__text{color:#111;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:.2rem 0 0;font-size:clamp(.69rem,.9vw,.83rem);line-height:1.34;display:-webkit-box;overflow:hidden}.story-photo--1{--photo-x:34%;--photo-y:14%;--photo-tilt:-3.8deg}.story-photo--1 .story-photo__image{object-position:24% center}.story-photo--2{--photo-x:72%;--photo-y:34%;--photo-tilt:4deg}.story-photo--2 .story-photo__image{object-position:center 34%}.story-photo--3{--photo-x:21%;--photo-y:51%;--photo-tilt:-3.9deg}.story-photo--3 .story-photo__image{object-position:62% center}.story-photo--4{--photo-x:77%;--photo-y:71%;--photo-tilt:4.4deg}.story-photo--4 .story-photo__image{object-position:58% center}.story-photo--5{--photo-x:34%;--photo-y:89.5%;--photo-tilt:-2deg;box-shadow:none}.story-photo--5 .story-photo__image{object-position:center 56%}@media (width<=980px){.story-board{min-height:clamp(1320px,184vw,1660px)}.story-photo{width:clamp(194px,28vw,244px)}.story-photo--1{--photo-x:34%;--photo-y:16%}.story-photo--2{--photo-x:71%;--photo-y:35%}.story-photo--3{--photo-x:23%;--photo-y:52%}.story-photo--4{--photo-x:75%;--photo-y:72%}.story-photo--5{--photo-x:35%;--photo-y:90%}.story-board__point--1{top:16%;left:34%}.story-board__point--2{top:35%;left:71%}.story-board__point--3{top:54%;left:26%}.story-board__point--4{top:73%;left:72%}.story-board__point--5{top:90%;left:37%}}@media (width<=640px){.story-section .section-head{margin-bottom:clamp(.7rem,2.8vw,1.1rem)}.story-board{min-height:clamp(1210px,304vw,1650px);padding:.25rem}.story-board__path{stroke-width:3.2px;stroke-dasharray:7 11}.story-board__point{width:12px;height:12px;box-shadow:0 0 0 4px #ffffff52}.story-board__point:before{inset:2px}.story-photo{width:clamp(163px,38.5vw,207px)}.story-photo--1{--photo-x:32%;--photo-y:11.5%;--photo-tilt:-3deg}.story-photo--2{--photo-x:74%;--photo-y:35%;--photo-tilt:3deg}.story-photo--3{--photo-x:20%;--photo-y:52%;--photo-tilt:-3deg}.story-photo--4{--photo-x:77%;--photo-y:72%;--photo-tilt:3deg}.story-photo--5{--photo-x:34%;--photo-y:90.5%;--photo-tilt:-2deg}.story-board__point--1{top:11.5%;left:32%}.story-board__point--2{top:35%;left:74%}.story-board__point--3{top:54%;left:22%}.story-board__point--4{top:73%;left:74%}.story-board__point--5{top:90.5%;left:36%}.story-photo__content{padding:.38rem .46rem .46rem;bottom:.7rem;left:.7rem;right:.7rem}.story-photo__year{font-size:.58rem}.story-photo__title{font-size:clamp(.78rem,3.4vw,.94rem)}.story-photo__text{display:none}}
