.heart{position:relative;container-type:inline-size}.heart img{display:block;width:100%;height:auto;filter:drop-shadow(0 14px 22px rgba(0,0,0,.38));-webkit-user-select:none;user-select:none}.heart-text{position:absolute;left:50%;top:45%;translate:-50% -50%;display:grid;gap:.3em;text-align:center;color:var(--heart-ink);white-space:nowrap}.heart-line{white-space:pre-line;font-size:clamp(.55rem,4.3cqw,1rem);font-weight:400;line-height:1.35;letter-spacing:.04em}.heart-date{font-size:clamp(.95rem,9.5cqw,2.3rem);line-height:1;color:var(--emerald)}.scene{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;overflow:hidden;background:var(--emerald-deep)}.scene-backdrop{position:absolute;top:0;right:0;bottom:0;left:0}.scene-backdrop img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 34%}.scene-backdrop:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 70% 60% at 50% 50%,#00000024,#0009),linear-gradient(to bottom,rgba(0,0,0,.25),transparent 30%,transparent 70%,rgba(0,0,0,.3))}.scene-stage{position:relative;display:grid;justify-items:center;translate:0 10vh;animation:env-float 5.5s ease-in-out infinite}.env-caption{color:var(--cream);text-align:center;margin-bottom:clamp(1.4rem,3.5vw,2.4rem)}.env-caption-names{margin:0;white-space:pre-line;font-size:clamp(1.45rem,4.6vw,2.4rem);font-weight:300;letter-spacing:.03em;line-height:1.15}.env{position:relative;width:min(86vw,560px);aspect-ratio:100 / 68;container-type:inline-size;perspective:1400px;-webkit-tap-highlight-color:transparent}.velvet{background-color:var(--emerald);background-image:url(/assets/velvet-BDvbcaYV.webp);background-size:100cqw 100cqw;background-position:0 0}.env-back{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;border-radius:4px;box-shadow:0 30px 50px #00000080,0 8px 14px #00000059}.env-back:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,#0000008c,#0003 45%,#00000059)}.env-flap{position:absolute;left:0;top:0;width:100%;height:50%;z-index:5;transform-origin:50% 0;transform-style:preserve-3d}.env-face{position:absolute;top:0;right:0;bottom:0;left:0;clip-path:polygon(0 0,100% 0,50% 100%);backface-visibility:hidden}.env-face-front:after,.env-face-back:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.env-face-front:after{background:linear-gradient(to bottom,#ffffff12,#0000002e 85%)}.env-face-back{transform:rotateX(180deg);clip-path:polygon(0 100%,100% 100%,50% 0);background-position:0 100cqw}.env-face-back:after{background:linear-gradient(to top,#00000073,#00000026)}.env-slot{position:absolute;left:-20cqw;right:-20cqw;top:-160cqw;bottom:0;z-index:3;overflow:hidden}.env-heart{position:absolute;left:50%;bottom:-22cqw;width:62cqw;translate:-50% 0;transform-origin:50% 50%}.env-piece{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;filter:drop-shadow(0 -3px 4px rgba(0,0,0,.6))}.env-piece-left{filter:drop-shadow(3px 0 4px rgba(0,0,0,.55))}.env-piece-right{filter:drop-shadow(-3px 0 4px rgba(0,0,0,.55))}.env-piece>i{position:absolute;top:0;right:0;bottom:0;left:0;display:block}.env-piece>i:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.env-piece-left>i{clip-path:polygon(0 0,50% 50%,0 100%)}.env-piece-left>i:after{background:linear-gradient(to right,#ffffff0f,#0000006b)}.env-piece-right>i{clip-path:polygon(100% 0,50% 50%,100% 100%)}.env-piece-right>i:after{background:linear-gradient(to left,#ffffff0f,#0000006b)}.env-piece-bottom>i{clip-path:polygon(0 100%,50% 50%,100% 100%)}.env-piece-bottom>i:after{background:linear-gradient(to top,#ffffff14,#0000004d)}.env-seal{position:absolute;left:50%;top:50%;width:22cqw;translate:-50% -50%;z-index:6;animation:seal-pulse 2.8s ease-in-out infinite;border-radius:50%;cursor:pointer}.env-seal img{display:block;width:100%;height:auto;filter:drop-shadow(0 4px 6px rgba(0,0,0,.45));transform-origin:50% 50%;pointer-events:none}.env-hint{position:absolute;left:50%;bottom:8cqw;translate:-50% 0;z-index:6;color:var(--cream);font-size:clamp(.6rem,2.2cqw,.8rem);letter-spacing:.24em;text-transform:uppercase;white-space:nowrap;opacity:.85;animation:hint-pulse 2.8s ease-in-out infinite;pointer-events:none}.scene.is-open .env-seal,.scene.is-open .env-hint{animation:none}.scene.is-open .env-seal{pointer-events:none}@media(max-width:640px){.scene-stage{translate:0 -6vh}}@keyframes env-float{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes seal-pulse{0%,to{scale:1}50%{scale:1.04}}@keyframes hint-pulse{0%,to{opacity:.55}50%{opacity:1}}.paper{min-height:100dvh;--body-pad: clamp(2.2rem, 6vw, 4.5rem);--body-pad-x: clamp(1.4rem, 6vw, 4rem);display:flex;flex-direction:column;background:var(--cream);color:var(--ink)}.paper-nav{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:.9rem calc(var(--frame-inset) + .6rem) .6rem;font-size:.95rem;color:var(--ink-soft)}.paper-nav a{position:relative;padding-bottom:2px;transition:color .35s var(--ease-out)}.paper-nav a:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease-out)}.paper-nav a:hover,.paper-nav a:focus-visible,.paper-nav a.active{color:var(--ink)}.paper-nav a:hover:after,.paper-nav a:focus-visible:after,.paper-nav a.active:after{transform:scaleX(1);transform-origin:left}.paper-nav a:focus-visible{outline:1px dotted var(--frame);outline-offset:5px}.paper-nav-names{font-size:1rem;letter-spacing:.04em}.paper-nav-names:after{display:none}.paper-nav-names .amp{font-size:1.15em;color:var(--accent)}.paper-nav-links{display:flex;gap:1.6rem}.paper-sheet{position:relative;flex:1;margin:0 var(--frame-inset) var(--frame-inset)}.paper-body{position:relative;padding:var(--body-pad) var(--body-pad-x);text-align:center}@media(max-width:520px){.paper-nav{font-size:.85rem;gap:.8rem}.paper-nav-links{gap:1rem}}.paper-nav-music{position:relative;display:inline-grid;place-items:center;width:28px;height:28px;margin-left:.2rem;border:1px solid currentColor;border-radius:50%;color:var(--ink-soft);transition:color .35s var(--ease-out)}.paper-nav-music svg{width:13px;height:13px;fill:currentColor}.paper-nav-music.is-off:after{content:"";position:absolute;width:1px;height:24px;background:currentColor;rotate:45deg}.paper-nav-music:hover,.paper-nav-music:focus-visible{color:var(--ink)}.paper-nav-music:focus-visible{outline:1px dotted var(--frame);outline-offset:3px}.details{text-align:center}.details :where(h2,h3,p,dd,dl){margin:0}.details>*+*{margin-top:3rem}.details .details-kicker{margin-bottom:1.2rem;color:var(--accent);font-weight:400}.details-rows{display:grid;gap:1.4rem;max-width:420px;margin-inline:auto}.details-row{display:grid;gap:.3rem}.details-row dt{color:var(--ink-soft)}.details-row dd{font-size:clamp(1.3rem,3.8vw,1.7rem);font-weight:400;line-height:1.3;color:var(--ink);text-wrap:balance}.details-row-sub{display:block;margin-top:.2rem;font-size:.95rem;font-weight:300;letter-spacing:.03em;color:var(--ink-soft)}.details .details-tiles{display:flex;justify-content:center;max-width:480px;margin:0 auto;padding:0;list-style:none}.details .details-tile{flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:.35rem;min-width:0;padding:.2rem .5rem .4rem}.details .details-tile+.details-tile{border-left:1px solid color-mix(in srgb,var(--ink) 25%,transparent)}.details .details-tile-value{font-size:clamp(2.2rem,8vw,3.4rem);line-height:1.1;color:var(--ink);font-variant-numeric:lining-nums tabular-nums}.details .details-tile-label{font-size:.8rem;letter-spacing:.08em;color:var(--ink-soft)}.details .details-today{font-size:clamp(1.4rem,4.5vw,1.8rem);color:var(--accent);text-wrap:balance}.details .details-map-wrap{position:relative;height:300px;overflow:hidden;border:1px solid var(--frame);border-radius:2px;background:var(--cream-deep)}.details .details-map{display:block;width:100%;height:100%;border:0}.details .details-button{position:relative;isolation:isolate;display:inline-block;margin-top:1.4rem;padding:.7rem 1.6rem;overflow:hidden;border:1px solid var(--accent);border-radius:999px;color:var(--accent);font-size:.9rem;letter-spacing:.14em;transition:color .4s var(--ease-out),translate .4s var(--ease-out),box-shadow .4s var(--ease-out)}.details .details-button:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:var(--accent);transform:scaleY(0);transform-origin:bottom;transition:transform .45s var(--ease-out)}.details .details-button:hover,.details .details-button:focus-visible{color:var(--cream);translate:0 -2px;box-shadow:0 14px 24px -14px #18423199}.details .details-button:hover:before,.details .details-button:focus-visible:before{transform:scaleY(1)}.details .details-button:focus-visible{outline:2px solid var(--frame);outline-offset:3px}@media(min-width:720px){.details .details-map-wrap{height:360px}}@media(max-width:520px){.details>*+*{margin-top:2.2rem}.details .details-tile{padding-inline:.25rem}}.invite-root{transform-origin:50% 40%}.invite-hero{position:relative;display:grid;place-items:center;min-height:calc(100dvh - 4.2rem - var(--frame-inset) - var(--body-pad));padding-bottom:5rem}.invite-hero-body{display:grid;justify-items:center;gap:.2rem;max-width:560px}.invite-names{margin:0;font-size:clamp(2rem,7vw,3.6rem);font-weight:300;letter-spacing:.02em;line-height:1.15;color:var(--ink)}.invite-names .amp{font-size:1.05em;color:var(--accent);margin:0 .08em}.invite-sub{margin:.4rem 0 0;font-size:clamp(.95rem,2.6vw,1.2rem);color:var(--ink-soft);letter-spacing:.06em}.invite-date{margin:.6rem 0 0;font-size:clamp(1.8rem,6vw,2.8rem);line-height:1;color:var(--accent)}.invite-note{margin:clamp(1.6rem,4vw,2.4rem) 0 0;padding:clamp(1.2rem,3vw,1.8rem) clamp(1.2rem,4vw,2.2rem);border:2px dotted color-mix(in srgb,var(--ink) 55%,transparent);max-width:400px}.invite-note p{margin:0;font-size:clamp(.9rem,2.4vw,1.05rem);line-height:1.75;color:var(--ink)}.invite-bow{margin-top:clamp(1.6rem,4vw,2.4rem);width:clamp(110px,22vw,170px);height:auto;transform-origin:50% 27%;filter:drop-shadow(0 8px 10px rgba(0,0,0,.18));transition:filter .5s var(--ease-out)}.invite-bow:hover{filter:drop-shadow(0 12px 14px rgba(0,0,0,.22))}.invite-scroll{position:absolute;left:50%;bottom:0;translate:-50% 0;display:grid;justify-items:center;gap:.6rem;color:var(--ink-soft);transition:color .4s var(--ease-out)}.invite-scroll:hover,.invite-scroll:focus-visible{color:var(--accent)}.invite-scroll .caps{font-size:.62rem}.invite-scroll-line{width:1px;height:44px;background:currentColor}.invite-section{position:relative;max-width:640px;margin:0 auto;padding-top:clamp(3.5rem,9vw,6rem)}.invite-closing{padding-bottom:clamp(1rem,3vw,2rem)}.invite-closing-line{margin:0;font-size:clamp(1.4rem,4vw,2rem);font-weight:300;line-height:1.4;color:var(--accent);text-wrap:balance}.invite-signature{margin:1.2rem 0 0;font-size:1rem;letter-spacing:.06em;color:var(--ink-soft)}.invite-signature .amp{color:var(--accent)}.invite-corner{--lift: 0px;position:absolute;width:clamp(72px,15vw,190px);height:auto;opacity:.82;pointer-events:none}.invite-corner-bl,.invite-corner-br{width:clamp(96px,17vw,220px)}.invite-corner-tl{top:calc(22px - var(--body-pad));left:calc(22px - var(--body-pad-x))}.invite-corner-tr{top:calc(22px - var(--body-pad));right:calc(22px - var(--body-pad-x));scale:-1 1}.invite-corner-bl{bottom:16px;left:calc(22px - var(--body-pad-x))}.invite-corner-br{bottom:16px;right:calc(22px - var(--body-pad-x));scale:-1 1}@media(min-width:1100px){.invite-corner{position:fixed;z-index:2}.invite-corner-tl,.invite-corner-tr{top:calc(4.2rem + 28px - var(--lift))}.invite-corner-tl,.invite-corner-bl{left:calc(var(--frame-inset) + 28px)}.invite-corner-tr,.invite-corner-br{right:calc(var(--frame-inset) + 28px)}.invite-corner-bl,.invite-corner-br{bottom:calc(var(--frame-inset) + 32px)}}.loader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;background:var(--emerald-deep);transition:opacity .7s ease}.loader.is-hidden{opacity:0;pointer-events:none}.loader-ring{position:relative;width:54px;height:54px;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--gold) 26%,transparent);border-top-color:var(--gold);animation:loader-spin 1.1s linear infinite}.loader-ring:after{content:"";position:absolute;top:9px;right:9px;bottom:9px;left:9px;border-radius:50%;border:1px solid transparent;border-bottom-color:color-mix(in srgb,var(--gold) 70%,transparent);animation:loader-spin 1.7s linear infinite reverse}@keyframes loader-spin{to{transform:rotate(360deg)}}@font-face{font-family:"BPG Serif";src:url(/assets/bpg-serif-fIvElJKF.woff2) format("woff2");font-weight:300 700;font-style:normal;font-display:swap;unicode-range:U+10A0-10FF,U+1C90-1CBF,U+2D00-2D2F,U+20BE}:root{--cream: #f4ecdf;--cream-deep: #ece2cf;--emerald: #256047;--emerald-deep: #0f2c20;--heart-ink: #2c6a50;--olive: #6e7232;--olive-deep: #4f5323;--gold: #c09a4a;--gold-deep: #7a5a14;--gold-ink: #86651a;--gold-accent: #96721f;--gold-light: #b8923a;--frame: var(--gold-deep);--accent: var(--gold-accent);--accent-deep: var(--gold-deep);--ink: var(--gold-ink);--ink-soft: color-mix(in srgb, var(--gold-ink) 85%, var(--cream));--font-ka: "BPG Serif", "Noto Serif Georgian", "Noto Serif", Georgia, serif;--font-script: "Pinyon Script", "Cormorant Garamond", cursive;--font-latin: "Cormorant Garamond", Georgia, serif;--frame-inset: clamp(10px, 2.2vw, 28px);--ease-out: cubic-bezier(.22, 1, .36, 1)}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}html{cursor:default;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}body{background:var(--emerald-deep);color:var(--ink);font-family:var(--font-ka);font-weight:300;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:inherit;text-decoration:none;cursor:default}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:default}.script{font-family:var(--font-script);font-weight:400}.script-strong{-webkit-text-stroke:.022em currentColor;paint-order:stroke fill}.latin{font-family:var(--font-latin)}.amp{font-family:var(--font-latin);font-style:italic;font-weight:400}.caps{letter-spacing:.22em;text-transform:uppercase;font-size:.72rem}[role=button]{cursor:default}img{-webkit-user-drag:none}
