.door-opening{--door-world-width:max(100vw,calc(100svh * 2 / 3));position:absolute;inset:0;overflow:hidden;isolation:isolate;pointer-events:none;background:transparent}.door-opening__world{position:absolute;left:50%;top:50%;width:var(--door-world-width);aspect-ratio:2/3;transform-origin:50.09765625% 51.7578125%;will-change:transform}.door-opening__painting{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:fill;-webkit-user-select:none;-moz-user-select:none;user-select:none}.door-opening__hinges,.door-opening__portal{position:absolute;left:41.9921875%;top:40.8854166667%;width:16.2109375%;height:21.7447916667%}.door-opening__portal{display:flex;align-items:center;justify-content:center;background:transparent;box-shadow:inset 0 0 calc(var(--door-world-width) * .022) #58452928}.door-opening__small-title{color:#34412f;text-align:center;font-family:Georgia,Times New Roman,serif;font-size:calc(var(--door-world-width) * .018);font-style:italic;font-weight:400;line-height:1.35;letter-spacing:.015em}.door-opening__hinges{perspective:calc(var(--door-world-width) * .65);perspective-origin:50% 50%;transform-style:preserve-3d}.door-opening__leaf{position:absolute;top:0;width:50%;height:100%;background-image:url(/art/door.webp);background-repeat:no-repeat;background-size:1233.734939759% 459.880239521%;background-position-y:52.24625624%;-webkit-backface-visibility:hidden;backface-visibility:hidden;will-change:transform}.door-opening__leaf--left{left:0;background-position-x:45.696068013%;transform-origin:left center}.door-opening__leaf--right{right:0;background-position-x:54.516471838%;transform-origin:right center}@media (prefers-reduced-motion:reduce){.door-opening__world{transform:translate(-50%,-50%)!important;will-change:auto}.door-opening__leaf{transform:none!important;will-change:auto}.door-opening__small-title{display:none}}.door-opening__dog{position:absolute;width:10%;aspect-ratio:630/425;transform-origin:50% 100%;pointer-events:none}.welcome-scene{position:absolute;inset:0;overflow:hidden;background:#fbf6ec}.welcome-canopy{position:absolute;inset:0;background-image:url(/art/wedding-avatar-v4.webp);background-size:100% auto;background-position:top;background-repeat:no-repeat;mask-image:linear-gradient(#000,#000 15%,transparent 43%);-webkit-mask-image:linear-gradient(#000,#000 15%,transparent 43%)}.welcome-figures{position:absolute;width:100%;height:100%;inset:0;overflow:visible}@media(max-aspect-ratio:3/4){.welcome-figures{width:140%;left:-20%;height:100%}.welcome-canopy{background-size:auto 120%;mask-image:linear-gradient(#000,transparent 45%);-webkit-mask-image:linear-gradient(#000,transparent 45%)}}@media(prefers-reduced-motion:reduce){.welcome-scene *{transition:none!important;animation:none!important}}@font-face{font-family:Allura;src:url(/art/Allura-Regular.ttf) format("truetype");font-style:normal;font-weight:400;font-display:swap}.painted-story{position:absolute;inset:0;overflow:hidden;background:#f7efdf;--world-width:max(100vw,380svh)}.painted-story__camera{position:absolute;top:0;left:0;width:var(--world-width);height:100%;will-change:transform}.painted-story__landscape{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 60%;pointer-events:none}.painted-story__entrance{position:absolute;inset:0}.story-place{position:absolute;top:0;bottom:0;width:100vw;transform:translateX(-50%)}.story-place--title{left:22%}.story-place--wedding{left:66%}.story-place--title .save-date{background:none!important;justify-content:center;bottom:22%;padding:24px}.story-place--title .save-date h1{font-size:clamp(35px,5vw,68px);max-width:none;letter-spacing:-1.5px}.story-place--title .save-date>p:first-child{font-size:clamp(25px,3vw,40px);margin-bottom:20px}.story-place .welcome-scene{background:transparent;overflow:visible;top:0;bottom:6%}.story-place .welcome-canopy{display:none}.story-characters{position:absolute;bottom:8%;left:50%;transform:translateX(-50%);width:auto;height:38%;max-width:85vw;overflow:visible}.story-characters--wedding{height:39%}.story-drop{position:absolute;left:54%;width:8px;height:13px;border-radius:50% 50% 60% 60%;background:#5f8885;transform:rotate(-15deg)}.story-paint-wave{position:absolute;top:81%;left:54%;width:28%;height:10%;border-radius:43% 57% 38% 62%;background:radial-gradient(ellipse,#70959088,#9bb6ac99 60%,transparent 72%);filter:blur(5px);transform-origin:center}.story-sparkles{position:absolute;inset:0;pointer-events:none}.story-sparkles i{position:absolute;width:5px;height:10px;border-radius:50%;background:#ffe2a4;animation:story-glimmer 3s ease-in-out infinite alternate}@keyframes story-glimmer{0%{opacity:.15;transform:scale(.5) rotate(-25deg)}to{opacity:.8;transform:scale(1.2) rotate(25deg)}}.rsvp-page--painted{position:relative;display:block;min-height:100svh;overflow:hidden}.rsvp-page--painted .painted-story{position:fixed}.rsvp-page--painted .rsvp-content{position:relative;z-index:1;min-height:100svh;width:min(520px,94vw);margin:0 auto;background:#fffaf1eb;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:28px 16px}@media(max-aspect-ratio:3/4){.story-place--title .save-date{bottom:15%}.story-place .welcome-figures{width:230%;left:-65%}.story-place--welcome{--drop-start:67%}.story-characters{height:31%;bottom:11%}.story-characters--wedding{height:34%}}@media(prefers-reduced-motion:reduce){.story-sparkles i{animation:none}.painted-story__camera{will-change:auto}}.entrance-fronds{position:absolute;inset:-12% -10% 0;pointer-events:none;transform-origin:50% 0;will-change:transform}.entrance-fronds img{width:100%;height:100%;object-fit:cover;object-position:center top}.entrance-fronds--left{-webkit-clip-path:inset(0 50% 0 0);clip-path:inset(0 50% 0 0)}.entrance-fronds--right{-webkit-clip-path:inset(0 0 0 50%);clip-path:inset(0 0 0 50%)}.story-passing-fronds{position:absolute;top:-20%;width:70vw;height:60%;pointer-events:none;transform-origin:top center}.entrance-middle-fronds{position:absolute;left:-23%;top:25%;width:76%;height:85%;pointer-events:none;transform-origin:0 70%;-webkit-clip-path:inset(0 48% 0 0);clip-path:inset(0 48% 0 0);will-change:transform}.entrance-middle-fronds img{width:100%;height:100%;object-fit:contain;object-position:top left}.painted-story__depth{position:absolute;inset:0;transform-origin:50% 53%;will-change:transform}.story-alebrije{position:absolute;left:73%;bottom:8%;height:11%;width:auto;max-width:20%;object-fit:contain;transform-origin:50% 90%}.story-trunk-layer{position:absolute;top:-15%;height:130%;width:15vh;pointer-events:none;transform-origin:50% 85%;will-change:transform}.story-trunk-layer>img{position:relative;width:100%;height:100%;object-fit:fill}.story-trunk-shadow{position:absolute;top:77%;left:40%;width:55vh;height:5vh;border-radius:35% 65% 60% 40%;background:#625b3733;filter:blur(9px);transform:rotate(-28deg);transform-origin:left center}@media(max-aspect-ratio:3/4){.painted-story{--world-width:max(100vw,285svh)}}.opening-lettering>h1,.opening-lettering>p{will-change:opacity,clip-path,transform}.story-place--title .opening-lettering{bottom:15%}.story-place--title .opening-lettering h1{font-size:clamp(38px,5.4vw,70px);line-height:1.2}.entrance-near-trunk{position:absolute;left:-18vh;top:-20%;width:55vh;height:145%;pointer-events:none;transform-origin:50% 70%;will-change:transform}.entrance-near-trunk img{width:100%;height:100%;object-fit:fill;filter:brightness(.83) saturate(.8) drop-shadow(4px 2px 7px #40392118)}.opening-step,.opening-steps{position:absolute}.opening-step{inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:24px;gap:20px;text-align:center}.opening-step__save{font-family:Georgia,serif;font-style:italic;font-size:clamp(32px,5vw,62px);margin:0}.opening-step__place{font-family:Georgia,serif;font-size:clamp(24px,3.5vw,44px);line-height:1.3;margin:0}.opening-step .reveal-date{margin:0}.opening-step h1{margin:0!important}.story-caption{position:absolute;top:24%;left:50%;width:90%;transform:translateX(-50%);text-align:center;pointer-events:none;color:#173e30}.story-caption h1{font-family:Georgia,serif;font-size:clamp(35px,5vw,65px);font-weight:400;line-height:1.2;margin:0}.story-caption h1 i{color:#a95837;font-size:.75em}.story-caption--date{top:33%}.story-caption--date>p:first-child{font-family:Georgia,serif;font-size:clamp(23px,3vw,38px);line-height:1.3;margin:0 0 18px}.story-caption .reveal-date{font-size:clamp(17px,2vw,24px)}.opening-held-foliage{inset:0;will-change:transform}.door-keeper,.opening-held-foliage{position:absolute;pointer-events:none}.door-keeper{bottom:9%;left:50%;height:23%;width:auto;max-width:36%;transform:translateX(-50%);overflow:visible}.entrance-vegetation{inset:0;transform-origin:50% 53%;will-change:transform}.entrance-vegetation,.welcome-guide{position:absolute;pointer-events:none}.welcome-guide{bottom:3%;left:22%;height:56%;aspect-ratio:620/1024;transform:translateX(-50%)}.courtyard-alebrije{position:absolute;left:12%;bottom:12%;height:8%;width:auto;max-width:18%;object-fit:contain}.welcome-guide svg{filter:none}.story-place--title .opening-lettering{bottom:34%;mix-blend-mode:multiply}.story-place--title .opening-step__save{font-family:Allura,cursive;font-style:normal;letter-spacing:0;white-space:nowrap;transform:none;color:#53603b;background:linear-gradient(112deg,#56613be8,#354a31d9 29%,#78805bdb 46%,#354a31ed 72%,#606b42de);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.entrance-near-trunk--right{right:-18vh}.toast-back{position:absolute;left:50%;bottom:3%;height:54%;width:auto;max-width:90vw;object-fit:contain;transform:translateX(-50%)}.story-caption--names h1{font-family:Allura,cursive;font-size:clamp(48px,7vw,88px);line-height:1.1;font-weight:400}.story-caption--names{top:10%}.story-caption--names h1{display:flex;flex-direction:column;align-items:center;font-size:clamp(44px,6vw,72px);line-height:.9;gap:3px}.story-caption--names h1>span{font-size:1em}.story-caption--names h1>i{font-size:.65em;line-height:.8;font-style:normal}.painted-story{--caption-top:33%;--caption-size:clamp(58px,10vw,118px)}.story-place--title .opening-lettering{top:var(--caption-top);bottom:auto;height:auto;padding:0}.story-place--title .opening-step{position:relative;inset:auto;padding:0}.story-caption,.story-caption--date,.story-caption--names{top:var(--caption-top)}.story-caption .reveal-date,.story-caption h1,.story-caption--date>p:first-child,.story-caption--names h1>i,.story-caption--names h1>span,.story-place--title .opening-step__save{font-family:Allura,cursive;font-size:var(--caption-size);font-weight:400;font-style:normal;line-height:1;letter-spacing:0;margin:0}.story-caption--names h1{gap:0}.story-caption--date{display:flex;flex-direction:column;align-items:center;gap:0}.story-place--title .opening-lettering{transform:translateY(-50%)}.story-caption{transform:translate(-50%,-50%)}.story-place--title .opening-step__save{font-size:clamp(58px,10vw,118px)}.story-caption--names h1>i{font-size:calc(var(--caption-size) * .55);line-height:.9}.story-backdrop{position:absolute;left:0;width:100%;height:max(100%,calc(var(--world-width) / 3));top:min(0px,calc((100svh - var(--world-width) / 3) * .6));pointer-events:none}.story-backdrop svg{display:block}.toast-back{overflow:visible}.welcome-guide{bottom:-55%;height:110%}.development-seek{position:fixed;bottom:12px;left:50%;transform:translateX(-50%);z-index:50;display:flex;align-items:center;gap:8px;width:min(580px,94vw);padding:8px 10px;background:#fff8ebed;border:1px solid #b9a98a;border-radius:10px;color:#39422d;font:12px system-ui;box-sizing:border-box}.development-seek input{min-width:30px;flex:1 1;accent-color:#526448}.development-seek button{border:0;background:#e8dfcd;color:inherit;border-radius:5px;padding:8px;white-space:nowrap}.development-seek output{min-width:42px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.story-place--title .opening-lettering{top:calc(var(--caption-top) + 4%)}.story-place--title .opening-step__save{font-family:Snell Roundhand,Allura,cursive;font-size:clamp(54px,8.6vw,102px);font-weight:400;color:#50372f;background:none;-webkit-text-fill-color:#50372f;line-height:1.15;opacity:.92}.story-place--welcome{left:42%}.story-passing-fronds{top:-12vh;width:72vh;height:48vh;object-fit:contain;transform-origin:50% 0}.story-characters--wedding{height:49%;bottom:5%}@media(max-aspect-ratio:3/4){.story-characters--wedding{height:45%;bottom:7%}}.story-passing-fronds{top:-21vh;height:44vh}.story-place--wedding{left:65%}.story-caption--date .reveal-date,.story-caption--names h1>i,.story-caption--names h1>span{font-family:Snell Roundhand,Allura,cursive;color:#50372f;-webkit-text-fill-color:#50372f;font-weight:400;opacity:.92}.story-caption--date .reveal-date,.story-caption--names h1>span{font-size:clamp(54px,8.6vw,102px);line-height:1.15}.story-caption--names h1>i{font-size:clamp(30px,4.73vw,56px)}.story-caption--date{gap:12px}.story-caption--date .wedding-location{font-family:Georgia,Times New Roman,serif;font-size:clamp(16px,2.5vw,29px);font-weight:400;line-height:1.3;letter-spacing:.045em;text-transform:uppercase;color:#50372f;margin:0}.toast-back{left:calc(50% - 2vh);bottom:-3%}.entrance-fronds--left{transform:translate(-5%,5%) rotate(-8deg) scale(1.06);transform-origin:0 15%}.entrance-fronds--right{transform:translate(6%,-10%) rotate(7deg) scale(.89);transform-origin:100% 0}.entrance-near-trunk{left:-20vh;width:46vh;top:-13%;height:137%}.entrance-near-trunk--right{left:auto;right:-12vh;width:30vh;top:-30%;height:155%}.story-final-fronds{position:absolute;left:-93vh;top:10vh;width:100vh;height:67vh;-webkit-clip-path:inset(0 0 0 50%);clip-path:inset(0 0 0 50%);pointer-events:none;transform-origin:100% 4%;will-change:transform}.story-final-fronds img{display:block;width:100%;height:100%;object-fit:contain}.entrance-near-trunk--back-left{left:-3vh;top:-24%;width:20vh;height:145%}.entrance-near-trunk--back-left img{filter:brightness(.92) saturate(.72)}.story-mariachi{position:absolute;left:18.6%;bottom:7%;height:43%;aspect-ratio:350/575;transform:translateX(-50%);pointer-events:none}.welcome-guide{left:54%}.story-mariachi--violin{left:25.1%}.story-backdrop-painting{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.story-backdrop>svg{position:relative}