/* Original stationery interiors. Every selector is scoped to these three designs. */
.sn-invitation{--sn-ink:#39332a;--sn-muted:#70634f;--sn-accent:#8a6a32;--sn-paper:#faf6eb;--sn-paper-rgb:250,246,235;--sn-rule:#bba67b66;--sn-shadow:#493b211c;--sn-display:'Cormorant Garamond',Georgia,serif;--sn-sans:'DM Sans',Arial,sans-serif;margin:0;background:#eee8d9;color:var(--sn-ink);font:400 15px/1.85 var(--sn-sans);overflow-x:clip}
.sn-invitation.sn-wisteria-letters{--sn-ink:#3d3c53;--sn-muted:#69647e;--sn-accent:#69617f;--sn-paper:#faf8fd;--sn-paper-rgb:250,248,253;--sn-rule:#9c95ad70;--sn-shadow:#3323441f;background:#e7e4ed}
.sn-invitation.sn-tuscan-reverie{--sn-ink:#f3e3cf;--sn-muted:#d0b296;--sn-accent:#e9bc87;--sn-paper:#41232c;--sn-paper-rgb:65,35,44;--sn-rule:#d6a57866;--sn-shadow:#200b1940;background:#3c232a}
.sn-invitation *,.sn-invitation *::before,.sn-invitation *::after{box-sizing:border-box}
.sn-invitation :where(h1,h2,h3,p,figure,dl,dd){margin:0}
.sn-invitation :where(h1,h2,h3,p,a,span,dt,dd,figcaption){overflow-wrap:anywhere}
.sn-invitation :where(img,svg,video){max-width:100%}
.sn-invitation :where(a,button,input,select,textarea):focus-visible{outline:2px solid var(--sn-accent);outline-offset:5px}
.sn-invitation a{color:inherit;text-underline-offset:5px}
.sn-invitation button,.sn-invitation input,.sn-invitation textarea,.sn-invitation select{font:inherit;color:inherit;max-width:100%;min-width:0}
.sn-invitation button{cursor:pointer}
.sn-invitation button:disabled{cursor:default;opacity:.65}
.sn-invitation [hidden]{display:none!important}
.sn-invitation #stationery-content{position:relative;z-index:1}
.sn-invitation #stationery-content h1[tabindex="-1"]:focus{outline:none}
.sn-invitation .sn-scenery{position:fixed;z-index:0;inset:0;overflow:hidden;pointer-events:none;isolation:isolate}
.sn-invitation .sn-scenery-image{position:absolute;inset:-3%;background:var(--sn-scene) center/cover no-repeat;animation:sn-scene-drift 36s ease-in-out infinite alternate;will-change:transform}
.sn-invitation .sn-scenery-light{position:absolute;inset:-20%;background:radial-gradient(ellipse at 30% 30%,#fff8d742,transparent 50%);mix-blend-mode:soft-light;animation:sn-light-drift 18s ease-in-out infinite alternate;pointer-events:none}
.sn-invitation[data-motion="paused"] .sn-scenery-image,.sn-invitation[data-motion="paused"] .sn-scenery-light,.sn-invitation[data-motion="paused"] .sn-hero-stationery::after{animation-play-state:paused}
.sn-invitation.sn-wisteria-letters .sn-scenery-light{background:radial-gradient(ellipse at 70% 55%,#efdbff66,transparent 48%)}
.sn-invitation.sn-tuscan-reverie .sn-scenery-light{background:radial-gradient(ellipse at 50% 25%,#ffdca755,transparent 55%)}
.sn-invitation .sn-access-skip{position:fixed;left:16px;top:16px;z-index:220;padding:10px 16px;background:var(--sn-paper);transform:translateY(-200%)}
.sn-invitation .sn-access-skip:focus{transform:none}
.sn-invitation .sn-preview{display:flex;justify-content:center;align-items:center;gap:18px;flex-wrap:wrap;background:var(--sn-paper);padding:10px 20px;font-size:12px}
.sn-invitation .sn-eyebrow{font:500 10px/1.8 var(--sn-sans);letter-spacing:.19em;text-transform:uppercase;color:var(--sn-muted)}
.sn-invitation h2{font:400 clamp(34px,5vw,54px)/1.12 var(--sn-display);text-wrap:balance}
.sn-invitation h3{font:500 clamp(25px,3.6vw,35px)/1.2 var(--sn-display);text-wrap:balance}
.sn-invitation .sn-botanical{width:62px;height:92px;color:var(--sn-accent)}
.sn-invitation .sn-hero{min-height:100svh;padding:76px 30px 62px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;isolation:isolate}
.sn-invitation .sn-hero-stationery{width:min(100%,520px);position:relative;padding:42px 38px 46px;text-align:center;background:rgba(var(--sn-paper-rgb),.94);box-shadow:0 12px 50px var(--sn-shadow);border:1px solid var(--sn-rule);isolation:isolate}
.sn-invitation .sn-hero-stationery::before{content:'';position:absolute;inset:11px;border:1px solid var(--sn-rule);pointer-events:none;z-index:-1}
.sn-invitation .sn-hero-stationery::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(112deg,transparent 25%,#fff9e32b 44%,transparent 62%);background-size:250% 100%;animation:sn-foil 14s ease-in-out infinite}
.sn-invitation .sn-hero-crest{position:relative;display:grid;place-items:center;margin:0 auto 20px;height:100px;width:112px}
.sn-invitation .sn-hero-crest .sn-botanical{position:absolute;inset:auto;transform:rotate(-25deg);opacity:.6}
.sn-invitation .sn-hero-crest span{position:relative;font:500 24px/1 var(--sn-display);text-shadow:0 1px #fff8}
.sn-invitation .sn-names{font:400 clamp(49px,7.5vw,78px)/.98 var(--sn-display);letter-spacing:-.025em;margin:22px 0;display:grid;gap:9px}
.sn-invitation .sn-names i{font-size:.5em;line-height:1.1;font-weight:400;color:var(--sn-accent)}
.sn-invitation .sn-cover-line{font:400 italic 21px/1.4 var(--sn-display);margin:22px auto;max-width:24ch}
.sn-invitation .sn-date{display:grid;gap:3px;font-size:11px;letter-spacing:.06em;margin:26px 0}
.sn-invitation .sn-date strong{font-weight:500;font-size:14px;letter-spacing:.02em}
.sn-invitation .sn-link{display:inline-flex;align-items:center;justify-content:center;gap:12px;font-size:11px;letter-spacing:.06em;text-decoration:none;border-bottom:1px solid var(--sn-rule);padding:10px 0;min-height:44px}
.sn-invitation .sn-link svg,.sn-invitation .sn-calendar svg,.sn-invitation .sn-rsvp-actions svg{flex:0 0 18px;width:18px;height:18px;vertical-align:middle}
.sn-invitation .sn-personal{max-width:540px;padding:14px 26px;text-align:center;background:rgba(var(--sn-paper-rgb),.94);box-shadow:0 4px 25px var(--sn-shadow)}
.sn-invitation .sn-personal>p:last-child{font:400 24px/1.4 var(--sn-display)}
.sn-invitation .sn-scene-caption{position:absolute;right:90px;bottom:22px;display:flex;align-items:center;gap:12px;background:rgba(var(--sn-paper-rgb),.93);padding:8px 13px;font-size:9px;letter-spacing:.16em}
.sn-invitation .sn-scene-caption span{width:30px;height:1px;background:currentColor;opacity:.5}
.sn-invitation.sn-gilded-vow .sn-hero-stationery{border-radius:46% 46% 4px 4px/20% 20% 4px 4px;padding-top:54px;background:transparent;box-shadow:none;border-color:transparent}
.sn-invitation.sn-gilded-vow .sn-hero-stationery::before{border-radius:inherit}
.sn-invitation.sn-gilded-vow .sn-hero-crest{margin-bottom:25px}
.sn-invitation.sn-wisteria-letters .sn-hero{align-items:flex-start;padding-left:max(6vw,calc((100vw - 1100px)/2));min-height:110svh}
.sn-invitation.sn-wisteria-letters .sn-hero-stationery{width:min(100%,460px);border-radius:3px 70px 3px 3px;text-align:left;padding:36px 42px;background:linear-gradient(120deg,rgba(var(--sn-paper-rgb),.8),rgba(var(--sn-paper-rgb),.48));box-shadow:0 12px 50px #54496512}
.sn-invitation.sn-wisteria-letters .sn-hero-stationery::before{border-radius:2px 55px 2px 2px}
.sn-invitation.sn-wisteria-letters .sn-hero-crest{margin-left:0}
.sn-invitation.sn-wisteria-letters .sn-cover-line{margin-left:0}
.sn-invitation.sn-wisteria-letters .sn-names{font-style:italic;font-size:clamp(50px,7.5vw,75px)}
.sn-invitation.sn-wisteria-letters .sn-personal{align-self:flex-start}
.sn-invitation.sn-tuscan-reverie .sn-hero{align-items:flex-end;padding-right:max(6vw,calc((100vw - 1100px)/2));padding-top:120px}
.sn-invitation.sn-tuscan-reverie .sn-hero-stationery{width:min(100%,470px);padding:32px 40px 40px;background:rgba(var(--sn-paper-rgb),.94);border:1px solid #c49363}
.sn-invitation.sn-tuscan-reverie .sn-hero-stationery::before{inset:9px;border-color:#c4936380}
.sn-invitation.sn-tuscan-reverie .sn-hero-crest{height:80px;margin-bottom:12px}
.sn-invitation.sn-tuscan-reverie .sn-hero-crest span{text-shadow:none}
.sn-invitation.sn-tuscan-reverie .sn-personal{align-self:flex-end}
.sn-invitation .sn-main{width:min(100% - 48px,1000px);margin:auto;position:relative}
.sn-invitation .sn-section{margin:110px 0;position:relative}
.sn-invitation .sn-section-title{width:fit-content;max-width:100%;margin:0 auto 36px;text-align:center;padding:20px 30px;background:rgba(var(--sn-paper-rgb),.96);border-top:1px solid var(--sn-rule);border-bottom:1px solid var(--sn-rule)}
.sn-invitation .sn-section-title .sn-eyebrow{margin-bottom:9px}
.sn-invitation .sn-story-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:35px}
.sn-invitation .sn-portrait{padding:10px;background:var(--sn-paper);border:1px solid var(--sn-rule);box-shadow:0 10px 40px var(--sn-shadow);transform:rotate(-2deg)}
.sn-invitation .sn-portrait img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
.sn-invitation .sn-story-paper{padding:34px;background:rgba(var(--sn-paper-rgb),.96);box-shadow:0 10px 35px var(--sn-shadow);position:relative}
.sn-invitation .sn-story-paper p{font:400 23px/1.65 var(--sn-display)}
.sn-invitation .sn-chapter{display:block;font:400 44px/1 var(--sn-display);color:var(--sn-accent);margin-bottom:22px}
.sn-invitation .sn-signature{font:400 italic 27px var(--sn-display);text-align:right;margin-top:24px;color:var(--sn-accent)}
.sn-invitation.sn-gilded-vow .sn-story-paper{border:1px solid var(--sn-rule);outline:1px solid var(--sn-rule);outline-offset:-8px}
.sn-invitation.sn-wisteria-letters .sn-story-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:0}
.sn-invitation.sn-wisteria-letters .sn-story-paper{margin-left:-32px;z-index:1;transform:translateY(32px);border-radius:3px 48px 3px 3px}
.sn-invitation.sn-wisteria-letters .sn-portrait{transform:rotate(2deg)}
.sn-invitation.sn-tuscan-reverie .sn-story-grid{direction:rtl;gap:40px}
.sn-invitation.sn-tuscan-reverie .sn-story-grid>*{direction:ltr}
.sn-invitation.sn-tuscan-reverie .sn-story-paper{border-left:2px solid var(--sn-accent);background:rgba(var(--sn-paper-rgb),.97)}
.sn-invitation .sn-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start}
.sn-invitation .sn-gallery figure{padding:10px 10px 16px;background:var(--sn-paper);box-shadow:0 8px 28px var(--sn-shadow);border:1px solid var(--sn-rule)}
.sn-invitation .sn-gallery figure:nth-child(even){margin-top:55px}
.sn-invitation .sn-gallery img{width:100%;display:block;aspect-ratio:4/5;object-fit:cover}
.sn-invitation .sn-gallery figcaption{font:400 italic 21px/1.4 var(--sn-display);padding:17px 10px 0;text-align:center}
.sn-invitation .sn-film video{display:block;width:100%;max-height:75vh;background:#111;box-shadow:0 10px 40px var(--sn-shadow)}
.sn-invitation .sn-family-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;text-align:center}
.sn-invitation .sn-family-grid>div{background:rgba(var(--sn-paper-rgb),.96);padding:35px 25px;border:1px solid var(--sn-rule)}
.sn-invitation .sn-family-grid h3{margin:15px 0}
.sn-invitation .sn-countdown-scene{margin:100px auto;text-align:center;max-width:650px;padding:45px 24px;background:rgba(var(--sn-paper-rgb),.94);border:1px solid var(--sn-rule);border-radius:48% 48% 4px 4px/15% 15% 4px 4px}
.sn-invitation .sn-countdown-scene h2{margin:12px 0 30px;font-size:clamp(29px,5vw,44px)}
.sn-invitation .sn-countdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.sn-invitation .sn-countdown b{display:block;font:400 clamp(35px,6vw,60px)/1 var(--sn-display);color:var(--sn-accent)}
.sn-invitation .sn-countdown span{font-size:9px;letter-spacing:.12em;text-transform:uppercase}
.sn-invitation .sn-events{max-width:760px;margin:auto}
.sn-invitation .sn-event{display:grid;grid-template-columns:64px minmax(0,1fr);gap:20px;position:relative}
.sn-invitation .sn-event-marker{display:flex;flex-direction:column;align-items:center;align-self:stretch;gap:0;color:var(--sn-accent)}
.sn-invitation .sn-event-marker span{display:grid;place-items:center;width:58px;height:58px;border:1px solid var(--sn-rule);border-radius:50%;font:400 27px var(--sn-display);background:var(--sn-paper);flex-shrink:0}
.sn-invitation .sn-event-marker i{display:block;flex:1;min-height:32px;width:1px;background:var(--sn-accent);opacity:.5}
.sn-invitation .sn-event:last-child .sn-event-marker i{display:none}
.sn-invitation .sn-event-paper{background:rgba(var(--sn-paper-rgb),.97);border:1px solid var(--sn-rule);padding:30px 36px;margin-bottom:30px;box-shadow:0 8px 32px var(--sn-shadow)}
.sn-invitation .sn-event-paper h3{margin:8px 0}
.sn-invitation .sn-event-time{font:400 italic 26px var(--sn-display);color:var(--sn-accent);margin-bottom:18px}
.sn-invitation .sn-event-paper p+p{margin-top:12px}
.sn-invitation .sn-venue{font-size:13px}
.sn-invitation .sn-badge{font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.sn-invitation .sn-calendar{display:flex;gap:8px 20px;flex-wrap:wrap;border-top:1px solid var(--sn-rule);margin-top:20px;padding-top:12px}
.sn-invitation .sn-calendar a{display:inline-flex;gap:6px;align-items:center;min-height:44px;font-size:10px;text-decoration:none}
.sn-invitation.sn-tuscan-reverie .sn-events{max-width:900px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}
.sn-invitation.sn-tuscan-reverie .sn-event{display:block}
.sn-invitation.sn-tuscan-reverie .sn-event-marker{align-items:flex-start;margin-bottom:12px}
.sn-invitation.sn-tuscan-reverie .sn-event-marker i{display:none}
.sn-invitation.sn-tuscan-reverie .sn-event-paper{height:calc(100% - 70px);margin:0;border-top:2px solid var(--sn-accent)}
.sn-invitation .sn-paper{background:rgba(var(--sn-paper-rgb),.97);padding:32px;border:1px solid var(--sn-rule)}
.sn-invitation .sn-details{background:rgba(var(--sn-paper-rgb),.97);padding:18px 30px;border:1px solid var(--sn-rule)}
.sn-invitation .sn-details>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:25px;padding:18px 0;border-bottom:1px solid var(--sn-rule)}
.sn-invitation .sn-details>div:last-child{border:0}
.sn-invitation .sn-details dt{font:500 23px/1.3 var(--sn-display)}
.sn-invitation .sn-details dd{font-size:13px}
.sn-invitation .sn-paper .sn-details{padding:10px 0;border:0;background:none}
.sn-invitation .sn-rsvp-paper{max-width:660px;margin:auto;text-align:center;padding:55px 46px;background:rgba(var(--sn-paper-rgb),.98);border:1px solid var(--sn-rule);outline:1px solid var(--sn-rule);outline-offset:-10px;box-shadow:0 14px 45px var(--sn-shadow)}
.sn-invitation .sn-rsvp-paper h2{margin:14px 0 22px}
.sn-invitation .sn-rsvp-paper #rsvpForm{text-align:left;margin-top:28px}
.sn-invitation .sn-rsvp-paper label{display:block;font-size:12px;margin:18px 0 7px}
.sn-invitation .sn-rsvp-paper :is(textarea,select,input){width:100%;padding:12px;background:var(--sn-paper);border:1px solid var(--sn-rule);border-radius:2px;font-size:16px}
.sn-invitation .sn-rsvp-paper input[type="radio"],.sn-invitation .sn-rsvp-paper input[type="checkbox"]{width:auto}
.sn-invitation .sn-rsvp-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}
.sn-invitation .sn-rsvp-actions button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:12px 20px;border:1px solid var(--sn-rule);background:none;font-size:12px}
.sn-invitation .sn-rsvp-actions button:first-child{background:var(--sn-ink);color:var(--sn-paper)}
.sn-invitation .sn-note{font-size:11px;margin-top:24px}
.sn-invitation #rsvpDone{margin-top:20px}
.sn-invitation .sn-wishes{background:rgba(var(--sn-paper-rgb),.97);padding:25px;border:1px solid var(--sn-rule)}
.sn-invitation .sn-qr{display:block;width:180px;max-width:100%;height:auto;padding:8px;background:#fff;margin:28px auto 0}
.sn-invitation .sn-footer{text-align:center;margin:130px auto 0;padding:42px 24px 100px;background:rgba(var(--sn-paper-rgb),.97);border:1px solid var(--sn-rule);max-width:740px}
.sn-invitation .sn-footer>.sn-eyebrow{margin:22px 0}
.sn-invitation .sn-footer-names{font:400 clamp(33px,6vw,50px)/1.1 var(--sn-display);margin:15px 0}
.sn-invitation .sn-footer-names i{font-size:.65em;color:var(--sn-accent)}
.sn-invitation .sn-footer>a{display:inline-block;margin-top:30px;font-size:10px;letter-spacing:.15em;text-decoration:none}
.sn-invitation .iv-guest-details{--iv-guest-ink:var(--sn-ink);--iv-guest-heading-font:var(--sn-display);--iv-guest-rule:var(--sn-rule);margin:100px auto;background:rgba(var(--sn-paper-rgb),.97);padding:32px;border:1px solid var(--sn-rule)}
.sn-invitation .sn-motion{position:fixed;left:max(14px,env(safe-area-inset-left));bottom:max(16px,env(safe-area-inset-bottom));z-index:85;display:flex;align-items:center;gap:8px;min-height:44px;padding:10px 14px;border:1px solid var(--sn-rule);border-radius:25px;background:var(--sn-paper);color:var(--sn-ink);box-shadow:0 3px 18px var(--sn-shadow);font-size:10px;line-height:1.1}
/* Only a fully styled, initialized overlay can conceal the complete HTML invitation. */
.sn-invitation .sn-opening{--sn-opening-ready:1;position:fixed;z-index:100;inset:0;isolation:isolate;overflow:hidden;background:var(--sn-paper);outline:none}
html.sn-opening-active{overflow:hidden}
.sn-invitation .sn-opening-backdrop{position:absolute;z-index:-2;inset:-20px;background:var(--sn-scene) center/cover no-repeat;filter:blur(10px);opacity:.7}
.sn-invitation .sn-opening-stage{position:absolute;inset:0;margin:auto;width:min(100%,56.25svh);height:100%;z-index:-1;overflow:hidden;box-shadow:0 0 70px var(--sn-shadow)}
.sn-invitation .sn-opening-stage>img,.sn-invitation .sn-opening-stage>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.sn-invitation .sn-opening-stage>video{z-index:1}
.sn-invitation .sn-opening-skip{position:absolute;right:max(18px,env(safe-area-inset-right));top:max(18px,env(safe-area-inset-top));display:flex;align-items:center;gap:8px;z-index:5;min-height:44px;padding:9px 13px;background:rgba(var(--sn-paper-rgb),.96);border:1px solid var(--sn-rule);border-radius:25px;font-size:10px}
.sn-invitation .sn-opening-top{position:absolute;top:12%;left:50%;transform:translateX(-50%);width:min(90%,400px);text-align:center;pointer-events:none;background:rgba(var(--sn-paper-rgb),.89);padding:13px 18px}
.sn-invitation .sn-opening-top h2{font:400 25px/1.2 var(--sn-display);margin-top:5px}
.sn-invitation .sn-opening-trigger{position:absolute;inset:29% 0 13%;width:min(100%,56.25svh);margin:auto;border:0;background:none;color:var(--sn-ink);padding:0}
.sn-invitation .sn-opening-trigger:focus-visible{outline-offset:-6px}
.sn-invitation .sn-tap-ring{display:none}
.sn-invitation #sn-opening-hint{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:max-content;max-width:90%;font-size:11px;letter-spacing:.06em;background:rgba(var(--sn-paper-rgb),.95);padding:9px 17px;border-radius:2px;pointer-events:none}
.sn-invitation .sn-opening-brand{position:absolute;bottom:5%;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:.18em;white-space:nowrap;background:rgba(var(--sn-paper-rgb),.88);padding:5px 12px}
.sn-invitation .sn-revealed-note{position:absolute;top:43%;left:50%;transform:translate(-50%,-40%) scale(.95);width:min(78%,330px);max-height:60%;overflow:auto;opacity:0;visibility:hidden;pointer-events:none;text-align:center;padding:28px 22px;background:rgba(var(--sn-paper-rgb),.96);border:1px solid var(--sn-rule);outline:1px solid var(--sn-rule);outline-offset:-7px;box-shadow:0 8px 35px var(--sn-shadow)}
.sn-invitation .sn-revealed-names{font:400 43px/.95 var(--sn-display);margin:18px 0;display:grid;gap:8px}
.sn-invitation .sn-revealed-names i{font-size:22px;color:var(--sn-accent)}
.sn-invitation .sn-revealed-note>p:last-child{font-size:11px}
.sn-invitation .sn-opening[data-state="opening"] .sn-opening-top,.sn-invitation .sn-opening[data-state="opening"] .sn-opening-trigger,.sn-invitation .sn-opening[data-state="leaving"] .sn-opening-top,.sn-invitation .sn-opening[data-state="leaving"] .sn-opening-trigger{opacity:0;pointer-events:none;transition:opacity .7s}
.sn-invitation .sn-opening[data-state="opening"] .sn-revealed-note,.sn-invitation .sn-opening[data-state="leaving"] .sn-revealed-note{animation:sn-note-reveal 1.4s cubic-bezier(.2,.65,.2,1) 4.7s both}
.sn-invitation .sn-opening[data-state="opening"] .sn-envelope,.sn-invitation .sn-opening[data-state="leaving"] .sn-envelope{animation:sn-envelope-recede 2s ease-in-out 2.2s both}
.sn-invitation .sn-opening[data-video="playing"] .sn-envelope{animation:none}
.sn-invitation .sn-opening[data-state="leaving"]{opacity:0;transition:opacity .8s ease}
@keyframes sn-scene-drift{from{transform:scale(1.02) translate3d(-.5%,0,0)}to{transform:scale(1.065) translate3d(.5%,-.6%,0)}}
@keyframes sn-light-drift{from{transform:translate3d(-3%,0,0);opacity:.6}to{transform:translate3d(4%,2%,0);opacity:1}}
@keyframes sn-foil{0%,100%{background-position:100% 0}50%{background-position:0 0}}
@keyframes sn-note-reveal{from{opacity:0;visibility:hidden;transform:translate(-50%,-30%) scale(.95)}to{opacity:1;visibility:visible;transform:translate(-50%,-40%) scale(1)}}
@keyframes sn-envelope-recede{from{opacity:1;transform:scale(1)}to{opacity:.18;transform:scale(1.07)}}
@media(min-width:1000px){.sn-invitation.sn-gilded-vow .sn-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.sn-invitation.sn-gilded-vow .sn-gallery figure:nth-child(3n+2){margin-top:55px}.sn-invitation.sn-gilded-vow .sn-gallery figure:nth-child(3n){margin-top:15px}}
@media(max-width:650px){
 .sn-invitation .sn-scene-caption{display:none}
 .sn-invitation{font-size:14px}.sn-invitation .sn-hero{padding:65px 24px 80px;min-height:100svh}
 .sn-invitation .sn-hero-stationery{padding:32px 27px}.sn-invitation .sn-names{font-size:clamp(43px,12vw,66px)}
 .sn-invitation .sn-hero-crest{height:75px;margin-bottom:18px}.sn-invitation .sn-hero-crest .sn-botanical{height:78px}
 .sn-invitation .sn-cover-line{font-size:20px}.sn-invitation .sn-date{margin:24px 0}
 .sn-invitation.sn-wisteria-letters .sn-hero{padding:100px 24px 150px;min-height:112svh;align-items:flex-start}
 .sn-invitation.sn-wisteria-letters .sn-hero-stationery{width:92%;padding:30px 27px}.sn-invitation.sn-wisteria-letters .sn-names{font-size:clamp(43px,12vw,62px)}
 .sn-invitation.sn-tuscan-reverie .sn-hero{padding:140px 24px 75px}.sn-invitation.sn-tuscan-reverie .sn-hero-stationery{padding:28px 26px}
 .sn-invitation .sn-main{width:calc(100% - 36px)}.sn-invitation .sn-section{margin:72px 0}.sn-invitation .sn-section-title{padding:17px 20px;margin-bottom:27px}
 .sn-invitation .sn-story-grid,.sn-invitation.sn-wisteria-letters .sn-story-grid,.sn-invitation.sn-tuscan-reverie .sn-story-grid{grid-template-columns:minmax(0,1fr);gap:25px;direction:ltr}
 .sn-invitation .sn-portrait{max-width:88%;margin:auto}.sn-invitation .sn-story-paper{padding:28px;max-width:95%;margin:auto}
 .sn-invitation.sn-wisteria-letters .sn-story-paper{margin:-42px 0 0 20px;transform:none;max-width:calc(100% - 20px)}
 .sn-invitation .sn-story-paper p{font-size:22px}.sn-invitation .sn-gallery{gap:15px}.sn-invitation .sn-gallery figure{padding:6px 6px 12px}.sn-invitation .sn-gallery figcaption{font-size:18px;padding:12px 3px 0}.sn-invitation .sn-gallery figure:nth-child(even){margin-top:32px}
 .sn-invitation .sn-family-grid{grid-template-columns:1fr;gap:20px}.sn-invitation .sn-countdown-scene{margin:90px 0;padding:38px 18px}.sn-invitation .sn-countdown{gap:7px}
 .sn-invitation .sn-event{grid-template-columns:40px minmax(0,1fr);gap:11px}.sn-invitation .sn-event-marker span{width:38px;height:38px;font-size:20px}.sn-invitation .sn-event-paper{padding:23px 20px}
 .sn-invitation.sn-tuscan-reverie .sn-events{grid-template-columns:1fr}.sn-invitation.sn-tuscan-reverie .sn-event{display:grid;grid-template-columns:40px minmax(0,1fr)}.sn-invitation.sn-tuscan-reverie .sn-event-paper{height:auto}
 .sn-invitation .sn-details{padding:10px 22px}.sn-invitation .sn-details>div{grid-template-columns:1fr;gap:8px}.sn-invitation .sn-paper{padding:25px}
 .sn-invitation .sn-rsvp-paper{padding:40px 26px}.sn-invitation .sn-rsvp-actions{display:grid}.sn-invitation .sn-rsvp-actions button{width:100%}.sn-invitation .sn-wishes{padding:16px}
 .sn-invitation .iv-guest-details{margin:72px auto;padding:24px 19px}.sn-invitation .sn-footer{margin-top:90px;padding:35px 24px 100px}
 .sn-invitation .sn-opening-stage{width:100%}.sn-invitation .sn-revealed-note{width:78%;max-width:300px;padding:25px 18px}.sn-invitation .sn-revealed-names{font-size:clamp(29px,10vw,42px)}
}
@media(max-height:570px) and (min-width:651px){.sn-invitation .sn-opening-top{top:8%;left:20%;width:25%}.sn-invitation .sn-opening-stage,.sn-invitation .sn-opening-trigger{width:56.25svh}.sn-invitation .sn-revealed-note{width:220px;top:45%;padding:18px}.sn-invitation .sn-revealed-names{font-size:30px}.sn-invitation .sn-opening-brand{bottom:4%}}
@media(prefers-reduced-motion:reduce){.sn-invitation .sn-scenery-image,.sn-invitation .sn-scenery-light,.sn-invitation .sn-hero-stationery::after{animation:none!important;will-change:auto}.sn-invitation .sn-opening *{animation:none!important;transition:none!important}.sn-invitation :where(*){scroll-behavior:auto!important}}
