@font-face{font-family:Manege;src:url(./manege-light-bmXEqQNF.woff)format("woff");font-display:optional;font-style:normal;font-weight:300}@font-face{font-family:Source Serif Wedding;src:url(./source-serif-pro-regular-G30Xd70S.woff)format("woff");font-display:optional;font-style:normal;font-weight:400}:root{--dress-code-cocoa:#5e3926;--dress-code-sky:#bcddfc;--dress-code-emerald:#056349;--dress-code-mandarin:#ff711b;--dress-code-fuchsia:#d54c9f;--dress-code-amethyst:#5b2b75;--paper:#f7f1e8;--page-bg:#e6ded2;--ink:#31342c;--accent:var(--dress-code-emerald);--white:#fffdf8;--hairline:color-mix(in srgb, var(--ink) 46%, transparent);--soft-shadow:color-mix(in srgb, var(--ink) 13%, transparent);--surface-hairline:color-mix(in srgb, var(--ink) 12%, transparent);--surface-shadow:color-mix(in srgb, var(--ink) 10%, transparent);--surface-highlight:color-mix(in srgb, var(--white) 34%, transparent);--schedule-line-color:color-mix(in srgb, var(--ink) 62%, transparent);--heart-color:var(--dress-code-amethyst);--font-body:"Source Serif Wedding", Georgia, serif;--font-display:"Manege", serif;--text-label-size:14px;--text-body-size:16px;--text-section-title-size:20px;--text-hero-name-size:56px;--text-hero-date-size:42px;--text-hero-name-line:.78;--text-line-tight:1;--text-line-body:1.15;--decor-calendar-heart-size:94px;--decor-schedule-heart-size:30px;color:var(--ink);background:var(--paper);font:var(--text-label-size) var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper)}body{background:var(--paper);min-width:320px;min-height:100svh;margin:0;overflow-x:hidden}button,input,textarea,select{font:inherit}button{color:inherit}img{max-width:100%;display:block}h1,h2,p,ol{margin:0}.wedding-section{text-align:center;margin:44px 14px;position:relative}.wedding-section.no-gap{margin-block:0}.wedding-section.small-gap{margin-block:20px}.wedding-section h2{color:var(--ink);font-family:var(--font-body);font-size:var(--text-section-title-size);font-weight:400;line-height:var(--text-line-body);margin-block:10px 22px}.wedding-section p{max-width:270px;color:var(--ink);font-size:var(--text-body-size);line-height:var(--text-line-body);margin:0 auto}.button{min-width:118px;min-height:30px;font-size:var(--text-label-size);font-weight:400;line-height:var(--text-line-tight);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:6px 18px;text-decoration:none;display:inline-flex}.button:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 70%, var(--paper));outline-offset:3px}.button-primary{background:var(--accent);color:var(--white)}.button-secondary{border:1px solid var(--accent);color:var(--accent);background:0 0}.wedding-page{background:var(--paper);opacity:0;justify-content:flex-start;min-height:100svh;padding:0;transition:opacity .48s;display:flex;position:relative}.wedding-page.is-ready{opacity:1}.invitation-card{z-index:1;background:var(--paper);width:100%;min-height:100svh;padding-block:18px;position:relative;overflow:hidden}.desktop-decor{display:none}@media (prefers-reduced-motion:reduce){.wedding-page{opacity:1;transition:none}}.lazy-image{background:color-mix(in srgb, var(--ink) 7%, var(--paper));max-width:100%;display:block;position:relative;overflow:hidden}.lazy-image>img{object-fit:contain;opacity:0;width:100%;max-width:none;height:100%;transition:opacity .28s;display:block}.lazy-image-skeleton{z-index:1;border-radius:inherit;background:linear-gradient(100deg, transparent 32%, color-mix(in srgb, var(--white) 48%, transparent) 50%, transparent 68%), color-mix(in srgb, var(--ink) 7%, var(--paper));pointer-events:none;background-size:220% 100%,100% 100%;transition:opacity .22s;animation:1.35s ease-in-out infinite lazy-image-shimmer;display:block;position:absolute;inset:0;overflow:hidden}.lazy-image.is-loaded{background:0 0}.lazy-image.is-loaded>img,.lazy-image.is-error>img{opacity:1}.lazy-image.is-loaded .lazy-image-skeleton,.lazy-image.is-error .lazy-image-skeleton{opacity:0;animation:none}@keyframes lazy-image-shimmer{0%{background-position:120% 0,0 0}to{background-position:-120% 0,0 0}}@media (prefers-reduced-motion:reduce){.lazy-image>img,.lazy-image-skeleton{transition:none}.lazy-image-skeleton{animation:none}}.top-note{color:var(--ink);font-size:var(--text-label-size);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;font-weight:400;display:grid}.top-note i{background:var(--hairline);height:1px;display:block}.title-block{text-align:start;flex-direction:column;justify-content:start;width:min(100%,270px);margin:20px 30px 0;display:flex}.title-block .hero-names{max-width:none;color:var(--ink);font-family:var(--font-display);font-size:var(--text-hero-name-size);letter-spacing:0;font-weight:300;line-height:var(--text-hero-name-line);text-transform:uppercase;margin:0}.title-block .hero-date{max-width:none;color:var(--accent);font-family:var(--font-body);font-size:var(--text-hero-date-size);line-height:var(--text-line-tight);margin:0;display:block}.hero-we{border:8px solid var(--white);width:calc(100% - 28px);max-width:none;box-shadow:0 12px 28px var(--soft-shadow);aspect-ratio:1080/771;border-radius:10px;margin:14px auto;display:block}.intro p{font-weight:400}.calendar-strip{justify-content:space-between;align-items:center;width:100%;min-height:88px;margin-block:16px;padding-inline:20px;display:flex}.calendar-day{inline-size:42px;color:var(--accent);font-size:var(--text-section-title-size);line-height:var(--text-line-tight);flex:0 0 42px;place-items:center;display:grid;position:relative}.calendar-day.is-active{--calendar-date-x:0px;--calendar-heart-x:0px;color:var(--paper);font-weight:400}.calendar-heart{--heart-position:translate(calc(-50% + var(--calendar-heart-x)), -45%);z-index:0;inline-size:var(--decor-calendar-heart-size);block-size:var(--decor-calendar-heart-size);color:var(--heart-color);fill:currentColor;transform-origin:50%;animation:2.8s ease-in-out infinite heart-pulse;display:block;position:absolute;top:50%;left:50%}.calendar-date{z-index:1;position:relative}.calendar-day.is-active .calendar-date{transform:translate(calc(-50% + var(--calendar-date-x)), -50%);position:absolute;top:50%;left:50%}.location{align-items:center;gap:12px;margin-inline:20px;display:flex}.location-chair{aspect-ratio:320/375;flex:1 1 0;width:100%;min-width:0;min-height:0}.location-content{text-align:left;flex-direction:column;flex:1 1 0;justify-items:start;min-width:0;display:flex}.location-title{color:var(--ink);font-family:var(--font-body);font-size:var(--text-section-title-size);font-weight:400;line-height:var(--text-line-body);margin-bottom:8px}.location p{margin:0;font-weight:400}.location-content .open-map{align-self:flex-start;min-width:0;max-width:100%;margin-top:16px;padding:10px 24px}.details p{max-width:295px;font-weight:400}.details-list{flex-direction:column;gap:40px;display:flex}.detail-image{aspect-ratio:720/285;width:100%;max-width:none;margin:20px auto}.detail-image.is-wide-banner{aspect-ratio:3}.form p{max-width:300px;font-weight:400}.form .warning{flex-direction:column;gap:6px;display:flex}.form .fill-upto{color:var(--accent);font-size:var(--text-section-title-size);line-height:var(--text-line-tight);place-items:start center;position:relative}.form>.fill-form-button{margin-block:20px;padding:12px 24px}.contact-card{align-content:center;justify-items:center;gap:8px;max-width:308px;min-height:208px;margin:10px auto 0;padding:40px 30px;display:grid;position:relative}.contact-card>.contact-frame{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.contact-frame>img{object-fit:fill}.contact-card p,.contact-card a{z-index:1;position:relative}.contact-card p{max-width:210px;margin-bottom:4px}.contacts{flex-direction:column;gap:10px;display:flex}.chandelier{aspect-ratio:1;width:180px;margin:0 auto 30px}.signature{text-align:left;max-width:none}.signature span{color:var(--dress-code-amethyst);display:block}.closing-illustration{aspect-ratio:1;width:100%;max-width:none;margin:20px auto}@keyframes heart-pulse{0%,to{transform:var(--heart-position) scale(1)}35%{transform:var(--heart-position) scale(1.08)}55%{transform:var(--heart-position) scale(.98)}75%{transform:var(--heart-position) scale(1.03)}}.schedule-rail{height:1060px;position:relative}.schedule-line{width:180px;height:780px;position:absolute;top:112px;left:50%;overflow:visible;transform:translate(-50%)}.schedule-line>path{fill:none;stroke:var(--schedule-line-color);stroke-dasharray:5 8;stroke-linecap:round;stroke-width:2.2px}.schedule-heart{fill:var(--heart-color);opacity:0;pointer-events:none;stroke:var(--paper);stroke-linejoin:round;stroke-width:5px;paint-order:stroke fill;transition:opacity .16s}.schedule ol{padding:0;list-style:none}.schedule-item{top:var(--schedule-item-top);z-index:1;width:142px;color:var(--ink);font-size:var(--text-label-size);line-height:var(--text-line-tight);justify-items:center;display:grid;position:absolute}.schedule-item.is-left{left:var(--schedule-item-offset,2px)}.schedule-item.is-right{right:var(--schedule-item-offset,2px)}.schedule-item.is-center{left:50%;transform:translate(-50%)}.schedule-image{width:var(--schedule-image-width);margin-bottom:5px}.schedule-item:first-child .schedule-image{aspect-ratio:1844/1494}.schedule-item:nth-child(2) .schedule-image{aspect-ratio:2316/1890}.schedule-item:nth-child(3) .schedule-image{aspect-ratio:480/348}.schedule-item:nth-child(4) .schedule-image{aspect-ratio:160/215}.schedule-item:nth-child(5) .schedule-image{aspect-ratio:1214/1055}.schedule-item:nth-child(6) .schedule-image{aspect-ratio:480/424}.schedule-item:nth-child(7) .schedule-image{aspect-ratio:160/187}.schedule-item time{color:var(--accent);font-size:var(--text-section-title-size);font-weight:400}.schedule-item span{margin-top:4px;font-weight:400}.dress p{max-width:305px;font-weight:400}.dress-code-palette{justify-content:center;gap:14px;margin-block:20px;display:flex}.dress-color{background:var(--color);width:42px;height:42px;box-shadow:0 0 0 1px var(--surface-hairline);cursor:pointer;animation:8s ease-in-out infinite dress-color-breathe;animation-delay:calc(var(--i) * 1.2s);border:0;border-radius:50%;padding:0;display:block}.dress-color:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 70%, var(--paper));outline-offset:4px}.dress-color-preview{min-height:106px;color:var(--ink);font-size:var(--text-body-size);font-weight:400;line-height:var(--text-line-body);justify-items:center;gap:16px;margin-top:18px;display:grid}.dress-color-preview-swatch{aspect-ratio:1;width:50%;box-shadow:0 0 0 1px var(--surface-hairline);border-radius:50%;transition:background-color .52s,box-shadow .52s,transform .52s;display:block;position:relative;overflow:hidden}.dress-color-preview-swatch.is-gradient{animation:5.5s ease-in-out infinite dress-gradient-glow}.dress-color-preview-swatch:before{border-radius:inherit;background:var(--dress-gradient);content:"";filter:blur(9px)saturate(.9);opacity:0;transition:opacity .62s;position:absolute;inset:-34%}.dress-color-preview-swatch.is-gradient:before{opacity:1;animation:18s linear infinite dress-gradient-flow}.dress-color-preview-swatch:after{background:radial-gradient(circle at 34% 26%, var(--surface-highlight), transparent 40%);content:"";opacity:0;transition:opacity .62s;position:absolute;inset:0}.dress-color-preview-swatch.is-gradient:after{opacity:1}.dress-color-preview-name{text-align:center;min-width:120px;animation:.26s dress-color-name-in}@keyframes dress-gradient-flow{to{transform:rotate(360deg)}}@keyframes dress-gradient-glow{0%,to{box-shadow:0 0 0 1px var(--surface-hairline);transform:scale(1)}50%{box-shadow:0 0 0 1px var(--surface-hairline), 0 10px 22px var(--surface-shadow);transform:scale(1.02)}}@keyframes dress-color-name-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes dress-color-breathe{0%,to{box-shadow:0 0 0 1px var(--surface-hairline);transform:scale(1)}35%{box-shadow:0 0 0 1px var(--surface-hairline), 0 10px 24px color-mix(in srgb, var(--color) 45%, transparent);transform:scale(1.14)}60%{transform:scale(1)}}@media (width>=720px){:root,html,body{background:var(--page-bg)}.wedding-page{background:var(--page-bg);justify-content:center;padding:0 28px}.invitation-card{width:390px;box-shadow:0 30px 80px var(--soft-shadow)}}@media (width>=1024px){.wedding-page{--desktop-card-width:430px}.invitation-card{width:var(--desktop-card-width);padding-block:22px}.desktop-decor{width:calc((100vw - var(--desktop-card-width)) / 2);pointer-events:none;min-width:220px;display:block;position:fixed;top:0;bottom:0;overflow:hidden}.desktop-decor-left{left:0}.desktop-decor-right{right:0}.desktop-decor .lazy-image{filter:blur(1.2px)saturate(.82);mix-blend-mode:multiply;opacity:.24;transform-origin:50%;position:absolute}.desktop-decor-left .lazy-image:first-child{opacity:.2;aspect-ratio:1844/1494;width:min(22vw,250px);top:5svh;right:18px;transform:rotate(-14deg)}.desktop-decor-left .lazy-image:nth-child(2){filter:blur(1.8px)saturate(.78);opacity:.18;aspect-ratio:320/375;width:min(30vw,350px);top:34svh;right:-28px;transform:rotate(9deg)}.desktop-decor-right .lazy-image:first-child{opacity:.18;aspect-ratio:1;width:min(26vw,320px);top:4svh;left:-34px;transform:rotate(11deg)}.desktop-decor-right .lazy-image:nth-child(2){filter:blur(1.5px)saturate(.8);opacity:.2;aspect-ratio:1;width:min(20vw,250px);top:37svh;left:36px;transform:rotate(-8deg)}.desktop-decor-right .lazy-image:nth-child(3){opacity:.22;aspect-ratio:2316/1890;width:min(21vw,270px);bottom:6svh;right:28px;transform:rotate(17deg)}}@media (width>=1280px){.wedding-page{--desktop-card-width:460px}.desktop-decor .lazy-image{opacity:.26}.desktop-decor-left .lazy-image:first-child{width:240px;right:62px}.desktop-decor-left .lazy-image:nth-child(2){width:370px;right:-12px}.desktop-decor-right .lazy-image:first-child{width:350px;left:-54px}.desktop-decor-right .lazy-image:nth-child(2){width:270px;left:70px}.desktop-decor-right .lazy-image:nth-child(3){width:290px;right:62px}}@media (width<=380px){:root{--text-hero-name-size:52px;--text-hero-date-size:38px}.calendar-strip{padding-inline:12px}.dress-code-palette{gap:10px}.dress-color{width:38px;height:38px}}
