:root{--scene-paper:#faf5e9;--scene-ink:#222633;--scene-light:#fffbf4;--scene-gold:#d1af6b;--scene-rose:#91545f;--scene-forest:#294433;--scene-night:#21283c;--scene-ivory:#e1d6c2;--scene-scrim:#0a0f1a91;--scene-edge:#04070f4d;--scene-shadow:0 26px 70px #0c111d38;--scene-seal-shadow:0 4px 9px #0c111d59, inset 0 0 0 2px #fffbf433, inset 0 0 0 7px #0c111d17;--scene-seal-light:#f3d39299;--scene-paper-grain:#322d220b;--scene-opening-gold:#ffd577cc;--scene-opening-glow:0 0 45px 12px var(--scene-seal-light), 0 -60px 100px 15px var(--scene-opening-gold);--scene-fold-shadow:0 3px 8px var(--scene-edge)}@supports (color:lab(0% 0 0)){:root{--scene-paper:lab(96.5861% .523269 6.50705);--scene-ink:lab(15.146% .7893 -9.19516);--scene-light:lab(98.8877% .350505 4.58025);--scene-gold:lab(73.5098% 6.22603 39.4079);--scene-rose:lab(43.365% 26.9871 5.33706);--scene-forest:lab(26.3568% -14.2656 6.97666);--scene-night:lab(16.1923% 1.5036 -13.8252);--scene-ivory:lab(86.1884% 1.06597 11.5901);--scene-scrim:lab(4.32289% .346497 -7.70617/.57);--scene-edge:lab(1.92972% .179827 -3.65737/.3);--scene-shadow:0 26px 70px lab(5.14202% .337563 -8.31669/.22);--scene-seal-shadow:0 4px 9px lab(5.14202% .337563 -8.31669/.35), inset 0 0 0 2px lab(98.8877% .350505 4.58025/.2), inset 0 0 0 7px lab(5.14202% .337563 -8.31669/.09);--scene-seal-light:lab(86.3083% 4.87411 36.5859/.6);--scene-paper-grain:lab(18.8618% .892401 7.89354/.045);--scene-opening-gold:lab(87.4849% 8.48955 55.5503/.8)}}.scene-experience{isolation:isolate;background:var(--scene-night);height:auto;min-height:720px;color:var(--scene-light);position:relative;overflow:hidden}.scene-experience.scene-phone{min-height:740px}.scene-experience.scene-full{min-height:100svh}.scene-backdrop,.scene-foreground,.scene-water{object-fit:cover;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.scene-backdrop{animation:scene-pan calc(38s / var(--scene-speed,1)) ease-in-out infinite alternate}.scene-film{object-fit:cover;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.scene-cinematic .scene-backdrop{animation:none}.scene-film-playing .scene-scrim{opacity:0}.scene-film-playing .scene-copy{opacity:0;pointer-events:none}.scene-cinematic .scene-scrim{transition:opacity 1.5s}.scene-phone .scene-film{object-fit:cover}.scene-foreground{clip-path:polygon(0 0,16% 0,19% 100%,0 100%,0 0,100% 0,84% 0,81% 100%,100% 100%,100% 0);animation:scene-sway calc(12s / var(--scene-speed,1)) ease-in-out infinite alternate;opacity:.6}.scene-water{clip-path:inset(55% 0 12%);opacity:.25;animation:scene-water calc(7s / var(--scene-speed,1)) ease-in-out infinite alternate}.scene-scrim{background:linear-gradient(var(--scene-edge),var(--scene-scrim) 38%,var(--scene-scrim) 60%,var(--scene-edge));pointer-events:none;position:absolute;inset:0}.scene-copy{z-index:2;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:22px;max-width:640px;min-height:720px;margin:auto;padding:90px 32px 64px;display:flex;position:relative}.scene-copy>*{overflow-wrap:anywhere;max-width:100%;margin:0}.scene-copy[aria-hidden=true]{opacity:0;pointer-events:none}.scene-copy h2{text-wrap:balance;font-family:inherit;font-size:64px;font-weight:400;line-height:1.07}.scene-copy .scene-message{max-width:440px;font-size:19px;line-height:1.6}.scene-copy .scene-opening-line{text-transform:uppercase;letter-spacing:0;font-size:12px}.scene-copy .scene-date{font-size:18px;line-height:1.65}.scene-copy .scene-rule{background:var(--scene-gold);width:48px;height:1px}.scene-font-editorial{font-family:Instrument Serif,Georgia,serif}.scene-font-classic{font-family:Georgia,serif}.scene-font-modern{font-family:Work Sans,sans-serif}.scene-font-modern h2{font-size:48px}.scene-tools{z-index:6;gap:6px;display:flex;position:absolute;top:18px;right:18px}.scene-tools button{background:var(--scene-scrim);color:var(--scene-light);border:1px solid color-mix(in oklch,var(--scene-light) 30%,transparent)}.scene-cta{background:var(--scene-paper);color:var(--scene-ink);border:1px solid var(--scene-paper);height:auto;padding:12px 22px}.scene-cta:hover{background:var(--scene-ivory);color:var(--scene-ink)}.scene-snow{pointer-events:none;position:absolute;inset:0;overflow:hidden}.scene-snow i{top:-5%;left:var(--particle-x);background:var(--scene-light);opacity:.65;width:3px;height:3px;animation:scene-snow calc(var(--particle-duration) / var(--scene-speed,1)) linear infinite;animation-delay:var(--particle-delay);border-radius:50%;position:absolute}.scene-envelope-stage{z-index:4;background:radial-gradient(ellipse at center,var(--scene-light),var(--scene-paper) 75%);color:var(--scene-ink);flex-direction:column;justify-content:center;align-items:center;gap:40px;padding:50px 24px;transition:opacity 1.2s,visibility 1.2s;display:flex;position:absolute;inset:0}.scene-envelope-stage.scene-dismissed{opacity:0;visibility:hidden;pointer-events:none}.scene-envelope-stage .scene-greeting{text-align:center;overflow-wrap:anywhere;max-width:90%;font-family:Instrument Serif,Georgia,serif;font-size:22px;transition:opacity .5s}.scene-opening .scene-greeting{opacity:0}.scene-envelope{aspect-ratio:1.48;background:var(--envelope-colour);width:min(560px,100%);box-shadow:var(--scene-shadow);perspective:1400px;border-radius:3px;transition:transform 3.8s cubic-bezier(.22,.61,.36,1);position:relative;transform:rotate(-2deg)}.scene-envelope:before{content:"";background:repeating-linear-gradient(35deg,transparent 0 2px,var(--scene-paper-grain) 2px 3px),linear-gradient(145deg,color-mix(in oklch,var(--scene-light) 14%,transparent),transparent 50%,var(--scene-edge));position:absolute;inset:0}.scene-pocket{background:linear-gradient(0deg,var(--envelope-colour),transparent),var(--envelope-art) center/cover;clip-path:polygon(0 100%,50% 48%,100% 100%);z-index:2;filter:drop-shadow(var(--scene-fold-shadow));position:absolute;inset:0}.scene-envelope-side{z-index:2;background:linear-gradient(135deg,color-mix(in oklch,var(--envelope-colour) 48%,transparent),var(--envelope-colour)),var(--envelope-art) center/cover;position:absolute;inset:0}.scene-envelope-left{clip-path:polygon(0 0,54% 53%,0 100%)}.scene-envelope-right{clip-path:polygon(100% 0,46% 53%,100% 100%)}.scene-flap{background:linear-gradient(180deg,color-mix(in oklch,var(--envelope-colour) 28%,transparent),color-mix(in oklch,var(--envelope-colour) 55%,transparent)),var(--envelope-art) center/cover;clip-path:polygon(0 0,100% 0,50% 60%);transform-origin:top;z-index:3;filter:drop-shadow(var(--scene-fold-shadow));position:absolute;inset:0}.scene-envelope-light{z-index:0;pointer-events:none;opacity:0;-webkit-mask-image:radial-gradient(ellipse,var(--scene-ink) 25%,transparent 70%);mask-image:radial-gradient(ellipse,var(--scene-ink) 25%,transparent 70%);background:radial-gradient(ellipse at 50% 78%,var(--scene-light) 0%,var(--scene-opening-gold) 20%,transparent 65%),conic-gradient(from 235deg at 50% 90%,transparent,var(--scene-seal-light) 18deg,transparent 30deg,var(--scene-opening-gold) 48deg,transparent 60deg,var(--scene-seal-light) 80deg,transparent 90deg);position:absolute;inset:-65% -15% -10%}.scene-opening .scene-envelope-light{animation:4.8s both scene-light-release}@keyframes scene-light-release{0%,12%{opacity:0;transform:scale(.6)}40%{opacity:.8}72%{opacity:1;transform:scale(1.15)}to{opacity:0;transform:scale(1.4)}}.scene-letter{z-index:1;background:url(/assets/letter-card-TeI7Zk2N.jpg) center/cover no-repeat,var(--scene-paper);color:var(--scene-ink);box-shadow:var(--scene-shadow);text-align:center;overflow-wrap:anywhere;letter-spacing:.03em;flex-direction:column;justify-content:center;align-items:center;gap:clamp(4px,2.2cqw,14px);padding:9% 12%;font-size:13px;transition:transform 1.8s cubic-bezier(.22,.61,.36,1) 1.5s;display:flex;position:absolute;inset:5% 4%;overflow:hidden;container-type:inline-size}.scene-letter strong{overflow-wrap:normal;word-break:normal;letter-spacing:.01em;font-size:clamp(17px,6.2cqw,32px);font-weight:400;line-height:1.08}.scene-letter-ornament{color:var(--scene-gold);letter-spacing:6px;opacity:.85;font-size:13px}.scene-letter-initials{color:var(--scene-gold);letter-spacing:.35em;text-transform:uppercase;font-size:clamp(11px,3cqw,15px)}.scene-letter-eyebrow{letter-spacing:.22em;text-transform:uppercase;color:color-mix(in oklch,var(--scene-ink) 65%,transparent);font-size:clamp(8px,2.2cqw,10.5px)}.scene-letter-rule{background:linear-gradient(90deg,transparent,color-mix(in oklch,var(--scene-gold) 80%,transparent),transparent);width:88px;height:1px;position:relative}.scene-letter-rule:after{content:"◆";color:var(--scene-gold);font-size:6px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.scene-letter>span:last-child{letter-spacing:.14em;text-transform:uppercase;opacity:.8;font-size:clamp(8.5px,2.4cqw,11.5px);line-height:1.35}.scene-letter>span:nth-last-child(2){letter-spacing:.1em;font-size:clamp(9.5px,2.7cqw,12.5px)}.scene-letter-christmas .scene-letter-initials{border-color:color-mix(in oklch,var(--scene-forest) 65%,transparent);color:var(--scene-forest);box-shadow:inset 0 0 0 3px var(--scene-paper),inset 0 0 0 4px color-mix(in oklch,var(--scene-forest) 30%,transparent)}.scene-seal{aspect-ratio:1;background:radial-gradient(ellipse at 35% 25%,color-mix(in oklch,var(--seal-colour) 65%,var(--scene-light)),var(--seal-colour) 58%,color-mix(in oklch,var(--seal-colour) 70%,var(--scene-ink)));width:clamp(84px,24%,124px);height:auto;color:var(--scene-ink);box-shadow:var(--scene-seal-shadow);z-index:5;white-space:normal;text-shadow:0 1px 1px var(--scene-seal-light);border-radius:47% 51% 45% 49%;flex-direction:column;gap:0;font-family:Instrument Serif,Georgia,serif;font-size:24px;line-height:1.1;transition:transform .65s,opacity .4s;display:flex;position:absolute;top:44%;left:50%;transform:translate(-50%,-20%)}.scene-seal-wreath{opacity:.65;font-size:21px;line-height:1}.scene-seal-wreath:last-child{transform:rotate(180deg)}.scene-seal:hover{background:var(--seal-colour);filter:brightness(1.06)}.scene-seal{animation:2.4s ease-in-out infinite scene-seal-pulse}@keyframes scene-seal-pulse{0%,to{box-shadow:var(--scene-seal-shadow),0 0 color-mix(in oklch,var(--scene-opening-gold) 45%,transparent),0 0 18px 3px color-mix(in oklch,var(--scene-seal-light) 40%,transparent)}50%{box-shadow:var(--scene-seal-shadow),0 0 0 9px color-mix(in oklch,var(--scene-opening-gold) 0%,transparent),0 0 26px 8px color-mix(in oklch,var(--scene-seal-light) 65%,transparent)}}.scene-opening .scene-flap{animation:1.4s .6s forwards scene-flap-open}@keyframes scene-flap-open{0%{z-index:3;transform:rotateX(0)}49%{z-index:3}50%{z-index:0}to{z-index:0;transform:rotateX(180deg)}}.scene-seal:before{content:"";border:1px solid color-mix(in oklch,var(--scene-ink) 25%,transparent);box-shadow:inset 0 1px 2px var(--scene-edge);pointer-events:none;border-radius:50%;position:absolute;inset:9px}.scene-opening .scene-envelope{transform:rotate(0)translateY(65px)scale(1.035)}.scene-opening .scene-seal{pointer-events:none;animation:1.8s forwards scene-seal-release}.scene-opening .scene-letter{transform:translateY(-108%)}@keyframes scene-seal-release{0%{box-shadow:var(--scene-seal-shadow)}35%{box-shadow:var(--scene-seal-shadow),var(--scene-opening-glow);filter:brightness(1.18);opacity:1;transform:translate(-50%,-20%)scale(1.04)}65%{opacity:1}to{opacity:0;transform:translate(-50%,-65%)rotate(-8deg)scale(1.18)}}.scene-envelope-caption{text-transform:uppercase;letter-spacing:0;font-size:11px;transition:opacity .3s}.scene-opening .scene-envelope-caption{opacity:0}.scene-skip{color:var(--scene-ink);text-decoration:underline}.scene-copy.scene-reveal>*{animation:1.2s both scene-rise;animation-delay:calc(var(--text-index,0) * .16s)}.scene-copy.scene-entrance-fade>*{animation-name:scene-fade}.scene-copy.scene-entrance-zoom>*{animation-name:scene-zoom}.scene-paused .scene-backdrop,.scene-paused .scene-foreground,.scene-paused .scene-water,.scene-paused .scene-snow i{animation-play-state:paused!important}.scene-still *,.scene-still :before{animation:none!important}.scene-still .scene-flap,.scene-still .scene-letter,.scene-still .scene-seal,.scene-still .scene-envelope-stage{transition:none}.scene-phone .scene-copy h2{font-size:48px}.scene-phone .scene-copy{gap:20px;min-height:740px;padding-inline:24px}.scene-full .scene-copy{min-height:100svh;padding-bottom:calc(6rem + env(safe-area-inset-bottom))}@keyframes scene-pan{0%{transform:scale(1.015)translate(-.35%)}to{transform:scale(1.065)translate(.35%)}}@keyframes scene-sway{0%{transform:scale(1.025)rotate(-.35deg)}to{transform:scale(1.035)rotate(.35deg)}}@keyframes scene-water{0%{transform:scaleX(1.01)translateY(-2px)}to{transform:scaleX(1.035)translateY(3px)}}@keyframes scene-snow{to{transform:translate(25px,900px)}}@keyframes scene-rise{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes scene-fade{0%{opacity:0}to{opacity:1}}@keyframes scene-zoom{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@media(max-width:640px){.scene-experience{min-height:680px}.scene-copy h2{font-size:48px}.scene-copy{gap:18px;min-height:680px;padding-inline:24px}.scene-copy .scene-message{font-size:18px}}@media(prefers-reduced-motion:reduce){.scene-experience *,.scene-experience :before{transition:none!important;animation:none!important}}.scene-rsvp-cta{left:50%;bottom:calc(5.5rem + env(safe-area-inset-bottom));z-index:6;box-shadow:0 8px 24px color-mix(in oklab,var(--scene-night) 35%,transparent);white-space:nowrap;animation:.6s ease-out both scene-cta-in;position:fixed;transform:translate(-50%)}@keyframes scene-cta-in{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){.scene-rsvp-cta{animation:none}}.scene-cinematic .scene-film{transition:opacity 1.2s ease-out}.scene-film-winding .scene-scrim{opacity:.35;transition:opacity 1.4s ease-out}.scene-film-done .scene-film{opacity:.6}.scene-film-done .scene-scrim{opacity:1;transition:opacity .9s ease-out}.scene-copy .scene-cta{background:var(--brand);color:var(--brand-foreground,var(--scene-paper));border-color:var(--brand);box-shadow:0 10px 28px color-mix(in oklab,var(--scene-night) 45%,transparent);margin-top:8px;padding:16px 28px;font-size:17px}.scene-copy .scene-cta:hover{background:var(--brand-hover,var(--brand));color:var(--brand-foreground,var(--scene-paper))}.scene-copy.scene-reveal .scene-cta{animation:1.2s both scene-rise,2.4s ease-in-out 3s infinite scene-cta-pulse;animation-delay:calc(var(--text-index,0) * .16s),3s}@keyframes scene-cta-pulse{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-2px)scale(1.04)}}@media(prefers-reduced-motion:reduce){.scene-copy.scene-reveal .scene-cta{animation:none}}
