@import "https://fonts.googleapis.com/css2?family=Great+Vibes&family=Lora:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&family=Noto+Serif:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#14245c;background:var(--navy);font-family:var(--font-display);font-synthesis:none;text-rendering:optimizelegibility;--font-display:"Lora", "Noto Serif", Georgia, "Times New Roman", serif;--font-signature:"Great Vibes", "Lora", "Noto Serif", Georgia, serif;--font-sans:"Lora", "Noto Serif", Georgia, serif;--ivory:#f8f8f6;--paper:#fffefd;--navy:#14245c;--navy-soft:#52618d;--kraft:#dfe4f1;--line:#14245c2e;--radius-card:24px;--radius-control:14px;--radius-pill:999px;--wax-size:clamp(76px, 15vw, 102px);--wax-zoom:2.8}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--ivory);min-width:320px;min-height:100vh;margin:0}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline-offset:4px;outline:3px solid #6f80b8}.state-screen{text-align:center;background:radial-gradient(circle at 50% 38%, #ffffffe6, transparent 58%), radial-gradient(circle at 50% 30%, #dfe4f1b8, transparent 62%), radial-gradient(circle at 50% 118%, #14245c12, transparent 62%), linear-gradient(180deg, var(--ivory), #f2f1ec);place-content:center;justify-items:center;gap:18px;min-height:100svh;padding:32px;display:grid}.state-screen h1,.state-screen p{margin:0}.state-screen h1{font-size:clamp(28px,6vw,52px);font-weight:400}.state-screen p{max-width:440px;color:var(--navy-soft);line-height:1.7}.state-mark{aspect-ratio:1;place-items:center;width:clamp(84px,21vw,112px);display:grid;position:relative}.state-mark img{object-fit:contain;width:100%;height:100%;display:block}.state-loading .state-mark{width:calc(var(--wax-size) * var(--wax-zoom))}.state-loading .state-mark img{animation:2.4s ease-in-out infinite sealFlash}.state-status{clip:rect(0 0 0 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;margin:0;position:absolute;overflow:hidden}.button-primary{border-radius:var(--radius-pill);background:var(--navy);color:#fff;font:600 13px/1.2 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border:0;padding:13px 24px}.invite-shell{background:var(--paper)}body.invitation-locked{overflow:hidden}.invitation-stage{--opening-total:2.3s;--opening-scale:.741935;min-height:100vh}.invitation-stage.motion-none{--opening-total:1ms;--opening-scale:.001}.invitation-stage.motion-romantic{--opening-total:2.7s;--opening-scale:.870968}.invitation-stage.motion-cinematic{--opening-total:3.1s;--opening-scale:1}.invitation-opening{z-index:100;color:#3f4a6b;opacity:1;visibility:visible;min-height:100svh;transition:opacity calc(.8s * var(--opening-scale)) ease, visibility calc(.8s * var(--opening-scale));background:radial-gradient(130% 110% at 50% 18%,#f4efe4 0%,#e9e2d1 62%,#ddd4bf 100%);place-items:center;padding:24px;display:grid;position:fixed;inset:0;overflow:hidden}.envelope{--envelope-inset:24px;z-index:2;aspect-ratio:.68;border-radius:var(--radius-card);color:#3f4a6b;width:min(88vw,52vh,440px);font-family:var(--font-display);cursor:pointer;background:0 0;border:0;padding:0;animation:1s cubic-bezier(.16,1,.3,1) both envelopeRise;position:relative}.envelope:disabled{cursor:default}.envelope-back{border-radius:var(--radius-card);background:linear-gradient(115deg,#fff6,#0000 42%,#3e341e08 88%),linear-gradient(160deg,#f5f2e6 0%,#f0edde 55%,#e9e5d3 100%);display:block;position:absolute;inset:0;overflow:hidden;box-shadow:0 1px 2px #3e341e24,0 34px 80px #3e341e4d}.envelope-recipient{right:var(--envelope-inset);bottom:calc(var(--envelope-inset) + 8px);z-index:3;text-align:center;justify-items:center;gap:6px;animation:.8s cubic-bezier(.16,1,.3,1) .45s both envelopeRise;display:grid;position:absolute;left:54%}.envelope-recipient small{color:#6978aa;font:600 8px/1.4 var(--font-sans);letter-spacing:.28em;text-transform:uppercase}.envelope-recipient strong{color:#2f3d66;text-wrap:balance;letter-spacing:.04em;font-size:clamp(18px,4vw,24px);font-weight:400}.envelope-action{z-index:5;width:max-content;font:700 8px/1.35 var(--font-sans);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;place-content:center;gap:1px;margin:0;padding:0;animation:2.4s ease-in-out .9s infinite openingPrompt;display:grid;position:absolute;top:calc(50% + clamp(38px,7.5vw,51px) + 20px);left:55%;translate:-50%}.envelope-photo-card{z-index:1;aspect-ratio:.68;border-radius:var(--radius-control);background:var(--paper);width:92%;transition:transform calc(1.3s * var(--opening-scale)) cubic-bezier(.16, 1, .3, 1) calc(1.55s * var(--opening-scale));padding:10px 10px 40px;display:block;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)scale(.96);box-shadow:0 14px 40px #3e341e47}.envelope-card-photo{background-color:#857c70;background-position:50%;background-size:cover;border-radius:8px;width:100%;height:100%;display:block}.envelope-card-names{color:#3f4a6b;font:400 22px/1.3 var(--font-signature);text-align:center;position:absolute;bottom:8px;left:0;right:0}.envelope-right-panel{z-index:2;border-radius:0 var(--radius-card) var(--radius-card) 0;clip-path:polygon(41.2% 0,100% 0,100% 100%,41.2% 100%,57.2% 50%);background:linear-gradient(160deg,#f5f2e6 0%,#f0edde 55%,#e9e5d3 100%);display:block;position:absolute;inset:0}.envelope-right-panel:before{content:"";opacity:0;clip-path:polygon(41.2% 0,41.44% 0,57.13% 50%,41.44% 100%,41.2% 100%,56.65% 50%);background:#3e341e24;display:block;position:absolute;inset:0}.invitation-opening.is-opening .envelope-right-panel:before{opacity:1}.envelope-flap{z-index:3;transform-origin:0;transform-style:preserve-3d;transition:transform 1s cubic-bezier(.65,0,.35,1) .48s;display:block;position:absolute;inset:0;transform:perspective(1400px)rotateY(0)}.envelope-flap-face{border-radius:var(--radius-card) 0 0 var(--radius-card);clip-path:polygon(0 0,42% 0,58% 50%,42% 100%,0 100%);filter:drop-shadow(6px 0 7px #3e341e38);background:linear-gradient(15deg,#ffffff80,#0000 48%),linear-gradient(90deg,#0000 55%,#3e341e12 94%),linear-gradient(90deg,#fbf9f0 0%,#f5f2e4 65%,#eeebd9 100%);display:block;position:absolute;inset:0}.envelope-flap-date{top:calc(var(--envelope-inset) + 8px);left:var(--envelope-inset);text-align:center;justify-items:center;width:48px;transition:opacity .26s .62s;display:grid;position:absolute}.envelope-flap-date time{color:#7a8197;letter-spacing:.18em;justify-items:center;gap:8px;font-size:clamp(18px,4vw,24px);font-weight:600;line-height:1;display:grid}.envelope-flap-date time:after{content:"—";color:#52618d;letter-spacing:0;margin-top:2px;font-size:.72em}.envelope-wax{z-index:4;width:var(--wax-size);aspect-ratio:1;pointer-events:none;place-items:center;animation:.9s cubic-bezier(.16,1,.3,1) both waxSettle;display:grid;position:absolute;top:50%;left:55%;transform:translate(-50%,-50%)}.envelope-wax-body{aspect-ratio:1;width:100%;transition:transform calc(.56s * var(--opening-scale)) cubic-bezier(.55, -.2, .8, .4), opacity calc(.56s * var(--opening-scale)) ease;place-items:center;display:grid;position:relative}.envelope-wax-seal{object-fit:contain;width:100%;height:100%;display:block}.invitation-opening.is-opening .envelope{animation:envelopeShift var(--opening-total) cubic-bezier(.16, 1, .3, 1) both}.invitation-opening.is-opening .envelope-flap{transform:perspective(1400px)rotateY(-165deg)}.invitation-opening.is-opening .envelope-flap-date{opacity:0}.invitation-opening.is-opening .envelope-wax-body{opacity:0;transform:translate(52px,-74px)rotate(24deg)scale(1.06)}.invitation-opening.is-opening .envelope-photo-card{transform:translate(-150%,-58%)scale(1)rotate(-5deg)}.invitation-opening.is-card-out .envelope-photo-card{z-index:1}.invitation-opening.is-card-out .envelope-flap{z-index:0}.invitation-opening.is-revealed{opacity:0;visibility:hidden;pointer-events:none}.invitation-opening.is-revealed .envelope-photo-card{z-index:6;transition:transform calc(.85s * var(--opening-scale)) cubic-bezier(.3, 0, .2, 1);transform:translate(-50%,-54%)scale(2.9)}.invitation-stage.is-open:not(.motion-none) .hero-shade{animation:.9s both heroShadeReveal}.invitation-stage.is-open:not(.motion-none) .hero-content{animation:1.1s cubic-bezier(.16,1,.3,1) both heroContentReveal}.hero:focus{outline:none}.hero{color:#fff;background-color:#857c70;background-position:50%;background-size:cover;align-items:flex-end;min-height:100svh;display:flex;position:relative;overflow:hidden}.hero-shade{background:linear-gradient(#0a101a14 30%,#0a101ad6);position:absolute;inset:0}.hero-content{z-index:1;text-align:right;width:100%;padding:72px 36px 20px;position:relative}.event-role,.salutation,.family-side{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.2em}.hero h1{font:400 clamp(56px, 16.5vw, 92px)/1.25 var(--font-signature);letter-spacing:0;white-space:nowrap;justify-content:center;align-items:baseline;gap:.14em;margin:0;padding:.16em 0 .08em;display:flex}.hero h1 span{min-width:0}.hero h1 i{padding:0;font-size:.66em;font-weight:400}.hero h1 span:last-child{padding-left:0}.ornament{--ornament-line:var(--line);--ornament-mark:#14245c57;align-items:center;gap:10px;width:100%;display:flex}.ornament:before,.ornament:after{content:"";background:linear-gradient(90deg, transparent, var(--ornament-line));flex:1;height:1px}.ornament:after{scale:-1 1}.ornament i{border:1px solid var(--ornament-mark);flex:none;width:5px;height:5px;rotate:45deg}.ornament-label{gap:14px;margin:0}.ornament-label b{color:var(--navy-soft);font:700 10px/1.4 var(--font-sans);letter-spacing:.2em;text-transform:uppercase;flex:none}.hero-content .ornament{--ornament-line:#ffffff9e;background:linear-gradient(90deg, transparent, var(--ornament-line), transparent);width:min(280px,64%);height:1px;margin:26px 0 0 auto}.hero-content .ornament:before,.hero-content .ornament:after{display:none}.hero-verse{color:#ffffffe6;white-space:pre-line;max-width:520px;margin:24px 0 0 auto;font-size:clamp(14px,3vw,18px);font-style:italic;line-height:1.7}.invite-content{background:var(--paper);min-width:0}.invite-content>section{animation:1ms both rise;animation-timeline:view();animation-range:entry entry 55%}.section-pad{--section-x:clamp(24px, 6vw, 42px);padding:64px var(--section-x)}.section-heading{margin:0 0 40px;position:relative}.section-heading>span{color:#0000;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-text-stroke:1px #14245c1f;font-size:clamp(88px,16vw,150px);line-height:1;position:absolute;top:-.18em;left:-.04em}.section-heading>p:first-of-type{color:#6978aa;font:400 9px/1.4 var(--font-sans);letter-spacing:.2em;text-transform:uppercase;margin:0;padding-top:clamp(40px,7vw,64px);position:relative}.section-heading>p+p{color:var(--navy-soft);margin:12px 0 0;font-size:14px;font-style:italic;line-height:1.6;position:relative}.section-heading.is-centered>span{left:50%;transform:translate(-50%)}.opening{text-align:center}.salutation{color:var(--navy-soft);margin:0 0 16px;font-size:10px}.opening h2,.events h2,.gallery h2{letter-spacing:-.04em;margin:0;font-size:clamp(32px,8vw,58px);font-weight:400;line-height:1.08}.opening-copy{color:var(--navy-soft);font-family:var(--font-display);text-wrap:balance;margin:20px auto 0;font-size:clamp(18px,4.4vw,20px);line-height:1.75}.opening-copy p{margin:0}.opening-copy p+p{margin-top:4px}.couple{background:#eef1f8;position:relative;overflow:hidden}.couple-ampersand{color:#14245c0e;font:400 clamp(180px, 36vw, 320px)/1 var(--font-signature);pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-42%)}.couple-grid{gap:14px;display:grid;position:relative}.family-column{border-radius:var(--radius-card);text-align:center;background:#fffefd6b;border:0;flex-direction:column;min-width:0;padding:32px 28px;display:flex;box-shadow:0 18px 44px #14245c1a}.family-side{margin:0 0 24px;font-size:9px}.family-column h3{overflow-wrap:anywhere;letter-spacing:-.045em;margin:0;font-size:clamp(48px,12vw,68px);font-weight:400;line-height:.95}.family-column .family-full-name{min-height:3.2em;color:var(--navy-soft);font:700 11px/1.6 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;margin:18px 0 0}.parents{color:var(--navy-soft);text-align:center;justify-items:center;gap:9px;margin:0 0 20px;font-size:13px;line-height:1.55;display:grid}.family-top+.ornament{margin-top:auto;margin-bottom:22px}.family-child{justify-items:center;min-width:0;display:grid}.photo-story{background:var(--navy);grid-template-rows:repeat(2,minmax(180px,42vw));grid-template-columns:1.35fr .65fr;gap:5px;padding:5px;display:grid}.photo-story .photo-frame{min-width:0;display:block;position:relative}.photo-story img{object-fit:cover;border-radius:4px;width:100%;height:100%;display:block}.photo-story .photo-frame:first-child{grid-row:1/3}.photo-story.photo-count-2{background:var(--paper);grid-template-rows:auto;grid-template-columns:1fr;gap:0;padding:clamp(30px,7vw,64px) clamp(20px,5vw,42px) clamp(48px,10vw,96px)}.photo-story.photo-count-2 .photo-frame:first-child{aspect-ratio:3/4;grid-row:auto;justify-self:start;width:76%;box-shadow:0 1px 2px #14245c1a,0 22px 50px #14245c2e}.photo-story.photo-count-2 .photo-frame:last-child{aspect-ratio:3/2;border:clamp(5px, 1.4vw, 10px) solid var(--paper);justify-self:end;width:58%;margin-top:-21%;box-shadow:0 1px 2px #14245c1f,0 24px 54px #14245c3d}.photo-story.photo-count-3{--shelf-pad-x:clamp(10px, 3vw, 30px);--shelf-pad-bottom:clamp(42px, 9vw, 88px);--frame-width:clamp(6px, 1.25vw, 11px);--frame-radius:clamp(9px, 1.7vw, 16px);padding:clamp(28px, 6.5vw, 66px) var(--shelf-pad-x) var(--shelf-pad-bottom);isolation:isolate;perspective:1200px;perspective-origin:50% 38%;transform-style:preserve-3d;background:radial-gradient(110% 85% at 38% 4%,#fffffff5 0%,#fffcf6ad 44%,#fffcf600 78%),linear-gradient(#f6f2ea 0%,#e9dfd1 100%);justify-content:center;align-items:flex-end;gap:0;display:flex;position:relative;overflow:hidden}.photo-story.photo-count-3:before{content:"";height:calc(var(--shelf-pad-bottom) + 28px);z-index:-2;transform-origin:50% 100%;clip-path:polygon(5% 0,95% 0,100% 100%,0 100%);background:radial-gradient(95% 110% at 42% 0,#fffcf5c7,#fffcf500 70%),repeating-linear-gradient(94deg,#46271205 0 1px,#fffaf10a 1px 16px,#46271204 16px 22px),linear-gradient(#eadfce 0%,#d6c2a7 100%);position:absolute;inset:auto -3% 0;transform:translateZ(-18px)rotateX(1.5deg);box-shadow:inset 0 1px #fffdf7eb,inset 0 14px 28px #fffaf229}.photo-story.photo-count-3:after{content:"";left:4%;right:4%;bottom:calc(var(--shelf-pad-bottom) - 13px);z-index:-1;filter:blur(6px);background:radial-gradient(at 50% 0,#2d14084d,#2d140800 76%);height:28px;position:absolute;transform:translateZ(-4px)scaleX(.95)}.photo-story.photo-count-3 .photo-frame{isolation:isolate;padding:var(--frame-width);border-radius:var(--frame-radius);transform-style:preserve-3d;transform-origin:50% 100%;background-blend-mode:soft-light, normal;background-color:#5a2c1c;background-image:linear-gradient(145deg,#ffdcb84d 0%,#ffdcb80a 34%,#2b0c053d 76%,#1807036b 100%),url(/assets/frame-wood-grain-wydxNqsb.webp);background-position:50%,50%;background-size:auto,360px;flex:none;box-shadow:inset 0 1px #ffe4c661,inset 0 -1px #260c0575,0 2px 2px #260f0638,0 10px 18px -10px #260f0680,0 24px 34px -24px #260f066b}.photo-story.photo-count-3 .photo-frame:before,.photo-story.photo-count-3 .photo-frame:after{content:"";z-index:2;pointer-events:none;position:absolute}.photo-story.photo-count-3 .photo-frame:before{border-radius:inherit;inset:0;box-shadow:inset 1px 1px #ffe7cb57,inset -1px -1px #270c0570,inset 0 0 5px #2a0e062e}.photo-story.photo-count-3 .photo-frame:after{inset:var(--frame-width);border-radius:calc(var(--frame-width) * .7);box-shadow:inset 0 0 0 1px #220a047a,inset 0 2px 5px #1b080361,0 0 0 1px #ffdab529}.photo-story.photo-count-3 img{z-index:1;border-radius:calc(var(--frame-width) * .7);height:100%;position:relative}.photo-story.photo-count-3 .photo-frame:nth-child(3){z-index:3;aspect-ratio:3/4;order:1;width:25%;margin-right:-8%;transform:translate(2%)translateY(24px)translateZ(12px)rotateY(2.2deg)rotate(-1.2deg)}.photo-story.photo-count-3 .photo-frame:first-child{z-index:2;aspect-ratio:3/2;order:2;width:58%;transform:rotateX(-.5deg)rotate(.15deg)}.photo-story.photo-count-3 .photo-frame:nth-child(2){z-index:3;aspect-ratio:3/2;order:3;width:26%;margin-left:-6%;transform:translate(-3%)translateY(12px)translateZ(16px)rotateY(-2deg)rotate(.8deg)}.state-missing{grid-template-columns:minmax(0,1fr);padding:clamp(20px,3vw,48px)}.state-photo-story{justify-self:center;width:100%;max-width:1440px}.invite-code-form{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;width:min(100%,440px);display:grid}.invite-code-label{clip:rect(0 0 0 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.invite-code-input{border-radius:var(--radius-pill);min-width:0;color:var(--navy);font:500 15px/1.2 var(--font-sans);background:#ffffffc7;border:0;padding:13px 18px;box-shadow:0 12px 32px #14245c1a}.invite-code-input::placeholder{color:#14245c7a}.invite-code-input:focus-visible{outline-offset:3px;outline:3px solid #6f80b8}.invite-code-form .button-primary:disabled{cursor:default;opacity:.5}.state-screen .invite-code-feedback{color:#8c2f39;grid-column:1/-1;max-width:none;font-size:14px;line-height:1.5}@media (width<=520px){.invite-code-form{grid-template-columns:minmax(0,1fr)}}.events{background:#eef1f8}.event-countdown{background:#ffffff5c;border:0;border-radius:28px;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 clamp(48px,8vw,72px);padding:clamp(22px,5vw,34px) clamp(12px,3vw,28px);display:grid;box-shadow:0 22px 50px #14245c14}.countdown-part{justify-items:center;gap:8px;min-width:0;display:grid;position:relative}.countdown-part strong{letter-spacing:-.04em;font-size:clamp(30px,8vw,58px);font-weight:400;line-height:1}.countdown-part span{color:var(--navy-soft);font:600 clamp(8px, 2vw, 11px)/1.3 var(--font-sans);letter-spacing:.08em;text-transform:uppercase}.countdown-part i{color:#14245c47;font-size:clamp(28px,7vw,52px);font-style:normal;line-height:1;position:absolute;top:.04em;right:-.12em}.event-featured{margin-bottom:clamp(46px,8vw,72px)}.event-list{gap:14px;margin-top:14px;display:grid}.event-list-expanded{gap:clamp(22px,4vw,34px)}.event-list-expanded .event-card.is-attending{z-index:1;background:radial-gradient(circle at 50% 0,#dfe4f1cc,#0000 48%),linear-gradient(#fff,#fbfaf7f5);margin-inline:calc(-1*clamp(6px,2vw,16px));box-shadow:0 0 0 1.5px #14245c47,0 36px 90px #14245c3d}.event-card{border-radius:var(--radius-card);background:linear-gradient(180deg, var(--paper), #fbfaf7);border:0;grid-template-columns:clamp(46px,11vw,64px) minmax(0,1fr) auto;align-items:center;gap:clamp(12px,3vw,22px);padding:clamp(20px,4vw,28px);display:grid;position:relative;box-shadow:0 1px 2px #14245c14,0 14px 34px #14245c14}.event-card.is-featured{border-radius:var(--radius-card);text-align:center;background:radial-gradient(circle at 50% 0,#dfe4f185,#0000 44%),linear-gradient(#fffffff0,#fbfaf7e6);border:0;grid-template-columns:minmax(0,1fr);justify-items:center;padding:clamp(34px,7vw,60px) clamp(20px,5vw,48px);box-shadow:0 28px 72px #14245c24}.event-card-icon{aspect-ratio:1;fill:currentColor;width:100%;max-width:64px;height:auto;display:block}.event-card-house-icon{background:currentColor;-webkit-mask:url(/groom-house.png) 50%/contain no-repeat;mask:url(/groom-house.png) 50%/contain no-repeat}.event-card.is-featured .event-card-icon{max-width:92px;margin-bottom:8px}.event-card-copy{min-width:0}.event-role{color:#6978aa;margin:0 0 14px;font-size:8px}.event-featured-note{max-width:520px;color:var(--navy-soft);font:600 9px/1.6 var(--font-sans);letter-spacing:.16em;text-transform:uppercase;border-top:0;margin:30px auto 0;padding-top:18px}.event-card h3{letter-spacing:-.02em;margin:0;font-size:clamp(23px,5vw,32px);font-weight:400;line-height:1.12}.event-card.is-featured h3{font-size:clamp(40px,9vw,68px)}.event-address{color:var(--navy-soft);font-size:13px;line-height:1.6}.event-venue{margin:18px 0 0;font-weight:700}.event-address{margin:5px 0 0}.event-card a{width:fit-content;color:var(--navy);font:700 10px/1.4 var(--font-sans);letter-spacing:.12em;text-transform:uppercase;text-underline-offset:5px;margin-top:18px;display:inline-block}.event-card.is-featured a{margin-top:22px}.event-card .event-calendar{grid-column:1/-1;justify-self:end;margin-top:4px}.event-card.is-featured .event-calendar{justify-self:center;margin-top:14px}.event-date-block{text-align:right;justify-items:end;min-width:64px;padding-left:clamp(12px,2vw,20px);display:grid;position:relative}.event-date-block:before{content:"";background:linear-gradient(180deg, transparent, var(--line) 20%, var(--line) 80%, transparent);width:1px;position:absolute;top:6%;bottom:6%;left:0}.event-date-block strong{letter-spacing:-.03em;font-size:clamp(32px,6vw,44px);font-weight:400;line-height:.9}.event-date-block span{color:#6978aa;font:400 9px/1.4 var(--font-sans);letter-spacing:.16em;text-transform:uppercase;margin-top:7px}.event-date-block time{margin-top:12px;font-size:18px}.event-date-block small{color:var(--navy-soft);font:400 10px/1.4 var(--font-sans);letter-spacing:.1em;text-transform:capitalize;margin-top:4px}.event-card.is-featured .event-date-block{text-align:center;justify-content:center;align-items:baseline;gap:10px;min-width:0;margin-top:22px;padding:20px 0 0;display:flex}.event-card.is-featured .event-date-block:before{display:none}.event-card.is-featured .event-date-block strong{font-size:clamp(40px,8vw,58px)}.event-card.is-featured .event-date-block span,.event-card.is-featured .event-date-block time,.event-card.is-featured .event-date-block small{margin-top:0}.gallery{background:var(--ivory)}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:dense;gap:8px;display:grid}.gallery-grid button{aspect-ratio:1;background:var(--kraft);cursor:pointer;border:0;border-radius:4px;min-width:0;min-height:0;padding:0;display:block;overflow:hidden}.gallery-grid button.is-feature{grid-area:span 2/span 2}.gallery-grid img{object-fit:cover;width:100%;height:100%;transition:transform .5s cubic-bezier(.16,1,.3,1);display:block}.gallery-grid button:focus-visible img{transform:scale(1.025)}@media (hover:hover){.gallery-grid button:hover img{transform:scale(1.025)}}.gallery-more{border:1px solid var(--line);border-radius:var(--radius-control);width:100%;color:var(--navy);font:700 10px/1.4 var(--font-sans);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;background:0 0;margin-top:22px;padding:16px 22px;transition:background .2s,color .2s}.gallery-more:focus-visible{background:var(--navy);color:var(--paper)}@media (hover:hover){.gallery-more:hover{background:var(--navy);color:var(--paper)}}.rsvp{overflow-anchor:none;background:radial-gradient(circle at 100% 0,#6f80b833,#0000 38%),#f0f2f8;position:relative;overflow:hidden}.rsvp-heading,.rsvp-card{position:relative}.rsvp-heading h2{letter-spacing:-.045em;text-wrap:balance;margin:0;font-size:clamp(38px,9vw,68px);font-weight:400;line-height:.98}.rsvp-heading h2~p{color:var(--navy-soft);margin:24px 0 0;line-height:1.75}.rsvp-card{border-radius:var(--radius-card);-webkit-backdrop-filter:blur(18px);background:#fbf8f1a8;margin-top:42px;padding:26px;box-shadow:0 22px 60px #14245c17}.rsvp-card form{transform-origin:50% 0;animation:.48s cubic-bezier(.16,1,.3,1) both rsvpFormEnter}.rsvp-card fieldset{border:0;min-width:0;margin:0;padding:0}.rsvp-card legend{color:var(--navy);font:600 15px/1.55 var(--font-sans);margin-bottom:14px;display:block}.rsvp-field>span{color:var(--navy);font:700 10px/1.4 var(--font-sans);letter-spacing:.12em;text-transform:uppercase;margin-bottom:14px;display:block}.rsvp-message-field>span{letter-spacing:0;text-transform:none;font-size:15px;font-weight:600;line-height:1.55}.rsvp-options{gap:10px;display:grid}.rsvp-options label{border-radius:var(--radius-control);cursor:pointer;touch-action:manipulation;background:#ffffff70;border:0;align-items:center;gap:12px;min-height:54px;padding:14px 16px;transition:background-color .16s;display:flex}.rsvp-options label.selected{background:#ffffffd6}.rsvp-options input{width:17px;height:17px;accent-color:var(--navy);margin:0}.rsvp-options span{font-size:15px}.rsvp-field{margin-top:28px;display:block}.rsvp-attending-details{transform-origin:50% 0;animation:.42s cubic-bezier(.16,1,.3,1) both rsvpDetailsEnter}.rsvp-field small{color:#52618dc7;font:11px/1.4 var(--font-sans);margin-top:9px;display:block}.guest-stepper{border-radius:var(--radius-control);background:#fff9;border:0;grid-template-columns:46px 66px 46px;width:fit-content;display:grid;overflow:hidden}.guest-stepper button,.guest-stepper output{height:46px;color:var(--navy);background:0 0;border:0;place-items:center;font-size:20px;display:grid}.guest-stepper button{cursor:pointer}.guest-stepper button:disabled{opacity:.32;cursor:default}.guest-stepper output{font-size:17px}.rsvp-field textarea{resize:vertical;border-radius:var(--radius-control);width:100%;color:var(--navy);font:16px/1.6 var(--font-display);background:#ffffff9e;border:0;padding:15px}.rsvp-field textarea:focus{outline:2px solid var(--navy);outline-offset:2px}.rsvp-submit,.rsvp-edit,.rsvp-mobile-cta button{background:var(--navy);color:#fff;font:700 10px/1.4 var(--font-sans);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;border:0}.rsvp-submit{border-radius:var(--radius-control);width:100%;margin-top:28px;padding:17px 22px}.rsvp{padding-bottom:calc(64px + 82px + env(safe-area-inset-bottom,0px))}.rsvp-submit:disabled{opacity:.42;cursor:default}.rsvp-feedback{color:var(--navy-soft);margin:18px 0 0;font-size:13px;line-height:1.6}.rsvp-summary{text-align:center}.rsvp-summary>span{border:0;border-radius:50%;place-items:center;width:48px;height:48px;margin:0 auto 18px;display:grid}.rsvp-summary>p{color:#6978aa;font:700 9px/1.4 var(--font-sans);letter-spacing:.16em;text-transform:uppercase;margin:0 0 9px}.rsvp-summary h3{margin:0;font-size:clamp(27px,6vw,42px);font-weight:400}.rsvp-summary blockquote{color:var(--navy-soft);margin:22px auto 0;font-style:italic;line-height:1.7}.rsvp-summary small{color:#52618dc7;font:11px/1.5 var(--font-sans);margin-top:20px;display:block}.rsvp-edit{border-radius:var(--radius-control);width:100%;color:var(--navy);background:#14245c14;border:0;margin-top:26px;padding:15px 20px}.rsvp-mobile-cta{z-index:10;padding:12px 16px max(12px, env(safe-area-inset-bottom));pointer-events:none;position:fixed;bottom:0;left:0;right:0}.rsvp-mobile-cta button{isolation:isolate;border-radius:var(--radius-pill);color:#fff;-webkit-backdrop-filter:blur(4px)saturate(135%)brightness(1.03);pointer-events:auto;touch-action:manipulation;background:linear-gradient(145deg,#ffffff1f,#0000 38%,#ffffff06 78%),#ffffff06;border:0;width:min(100%,520px);margin:0 auto;padding:17px 22px;transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s;display:block;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffffbf,0 0 9px #0003,0 3px 8px #00000026}.rsvp-mobile-cta button:after{content:"";z-index:0;opacity:0;pointer-events:none;background:radial-gradient(circle,#ffffffb3,#0000 54%);border-radius:50%;transition:opacity .16s,transform .16s cubic-bezier(.2,.8,.2,1);position:absolute;inset:-45%;transform:translate(-38%,18%)scale(.45)}.rsvp-mobile-cta button span{z-index:1;text-shadow:0 1px 2px #070e26e6,0 0 6px #070e268c;position:relative}.rsvp-mobile-cta button:active{transform:scale(.985,.95);box-shadow:inset 0 1px 1px #ffffffeb,inset 0 -1px 1px #14245c42,inset 0 0 18px #fff3,0 8px 22px #070e263d}.rsvp-mobile-cta button:active:after{opacity:.7;transform:translate(-12%)scale(.72)}.closing{text-align:left;background:var(--navy);color:#fff;background-position:50%;background-size:cover;flex-direction:column;justify-content:center;align-items:center;min-height:56svh;display:flex;position:relative;overflow:hidden}.closing-content{width:100%;max-width:620px}.closing blockquote{color:#ffffffeb;max-width:460px;margin:0;font-size:clamp(14px,3vw,18px);font-style:normal;line-height:1.75}.closing blockquote p{margin:0}.closing-names{font:400 clamp(52px, 11vw, 84px)/1.2 var(--font-signature);white-space:nowrap;align-items:baseline;gap:.16em;margin-top:clamp(40px,7vw,60px);display:flex}.closing-names i{font-size:.62em;font-weight:400}.closing-credit{left:max(var(--section-x), calc(50% - 310px));border-radius:var(--radius-pill);color:#ffffff8c;width:fit-content;font:700 8px/1 var(--font-sans);letter-spacing:.16em;text-transform:uppercase;border:1px solid #fff3;align-items:center;gap:6px;padding:6px 12px;text-decoration:none;transition:color .2s,border-color .2s,transform .2s;display:inline-flex;position:absolute;bottom:clamp(14px,3vw,20px)}.closing-credit svg{flex:none;width:10px;height:10px}.closing-credit:focus-visible{color:#fff;border-color:#ffffffb3}@media (hover:hover){.closing-credit:hover{color:#fff;border-color:#ffffffb3}}.closing-credit:active{transform:scale(.97)}.gallery-lightbox{z-index:300;isolation:isolate;padding:max(68px, calc(env(safe-area-inset-top) + 60px)) 0 max(12px, env(safe-area-inset-bottom));overscroll-behavior:contain;background:#000;flex-direction:column;animation:.22s cubic-bezier(.16,1,.3,1) both galleryViewerEnter;display:flex;position:fixed;inset:0;overflow:hidden}.gallery-stage{touch-action:pan-y;overscroll-behavior-x:contain;flex:1;min-height:0;position:relative;overflow:hidden}.gallery-track{will-change:transform;height:100%;transition:transform .34s cubic-bezier(.22,.61,.36,1);display:flex}.gallery-slide{height:100%;padding:0 max(10px, env(safe-area-inset-left));flex:0 0 100%;grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:center;display:grid}.gallery-slide img{width:auto;max-width:100%;height:auto;max-height:100%;display:block}.gallery-close,.gallery-previous,.gallery-next{z-index:3;width:44px;height:44px;color:var(--paper);cursor:pointer;-webkit-backdrop-filter:blur(18px)saturate(140%);touch-action:manipulation;background:#262628d1;border:0;border-radius:50%;place-items:center;transition:opacity .2s,background .2s;display:grid;position:absolute}.gallery-close svg,.gallery-previous svg,.gallery-next svg{width:20px;height:20px}.gallery-close:focus-visible,.gallery-previous:focus-visible,.gallery-next:focus-visible{outline:2px solid var(--paper);outline-offset:2px}.gallery-close{top:max(14px, env(safe-area-inset-top));left:max(14px, env(safe-area-inset-left))}.gallery-previous,.gallery-next{display:none;top:50%;transform:translateY(-50%)}.gallery-previous{left:max(16px, env(safe-area-inset-left))}.gallery-next{right:max(16px, env(safe-area-inset-right))}.gallery-previous:disabled,.gallery-next:disabled{opacity:.28;cursor:default}.gallery-filmstrip{padding:14px max(14px, env(safe-area-inset-right)) 6px max(14px, env(safe-area-inset-left));overscroll-behavior-x:contain;scrollbar-width:none;flex:none;justify-content:safe center;align-items:center;gap:3px;display:flex;overflow-x:auto}.gallery-filmstrip::-webkit-scrollbar{display:none}.gallery-thumb{opacity:.5;cursor:pointer;touch-action:manipulation;background:0 0;border:0;border-radius:0;flex:none;width:30px;height:52px;padding:0;transition:width .26s cubic-bezier(.22,.61,.36,1),opacity .26s;overflow:hidden}.gallery-thumb img{object-fit:cover;width:100%;height:100%;display:block}.gallery-thumb.is-current{opacity:1;outline:2px solid var(--paper);outline-offset:-2px;width:58px}.gallery-thumb:focus-visible{outline:2px solid var(--paper);outline-offset:2px}.gallery-status{clip:rect(0 0 0 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;margin:0;position:absolute;overflow:hidden}.music-control{z-index:20;width:37.5px;height:37.5px;position:fixed;top:16px;right:16px}.music-control:before,.music-control:after{content:"";opacity:0;pointer-events:none;border:1px solid #ffffffc7;border-radius:50%;position:absolute;inset:-3.25px;box-shadow:0 0 0 1px #14245c57,inset 0 0 0 1px #14245c57}.music-control button{isolation:isolate;z-index:1;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(4px)saturate(135%)brightness(1.03);touch-action:manipulation;background:linear-gradient(145deg,#ffffff1f,#0000 38%,#ffffff06 78%),#ffffff06;border:0;border-radius:50%;place-items:center;width:100%;height:100%;font-size:13.5px;transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff9e,0 0 0 1px #14245c14}.music-control button:after{content:"";z-index:0;opacity:0;pointer-events:none;background:radial-gradient(circle,#ffffffb3,#0000 54%);border-radius:50%;transition:opacity .16s,transform .16s cubic-bezier(.2,.8,.2,1);position:absolute;inset:-45%;transform:translate(-38%,18%)scale(.45)}.music-control button span{z-index:1;text-shadow:0 1px 2px #070e26e6,0 0 6px #070e268c;position:relative}.music-control button:active{transform:scale(.94);box-shadow:inset 0 0 0 1px #ffffffe6,inset 0 0 18px #ffffff3d,0 0 0 1px #14245c1f}.music-control button:active:after{opacity:.7;transform:translate(0,0)scale(1)}.music-control>span{clip:rect(0 0 0 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.music-control.is-playing:before,.music-control.is-playing:after{animation:2.4s ease-out infinite musicWave}.music-control.is-playing:after{animation-delay:1.2s}.music-control.is-playing button span{animation:1s ease-in-out infinite musicWiggle}.music-control.is-unavailable{opacity:.58}@media (width<=699px){.envelope{width:min(80vw,43.52svh,420px)}.envelope-photo-card{aspect-ratio:auto;height:calc(100% - 10px)}.closing{justify-content:flex-end;min-height:46svh}.closing blockquote{line-height:1.62}.closing-names{margin-top:26px;font-size:42px}.has-mobile-cta .hero-content{padding-bottom:calc(8px + 82px + env(safe-area-inset-bottom,0px))}.has-mobile-cta .closing{padding-bottom:calc(64px + 82px + env(safe-area-inset-bottom,0px))}.has-mobile-cta .closing .closing-credit{bottom:calc(16px + 82px + env(safe-area-inset-bottom,0px))}.envelope-wax{animation-name:waxSettleMobile}.envelope-right-panel{transform-origin:100%;transform-style:preserve-3d}.envelope-recipient strong{letter-spacing:.02em;font-size:clamp(16px,4.4vw,22px);line-height:1.18}.invitation-opening.is-opening .envelope{animation:none}.invitation-opening.is-opening .envelope-flap{animation:mobileLeftFlapOpen var(--opening-total) ease-in-out both}.invitation-opening.is-opening .envelope-right-panel{animation:mobileRightFlapOpen var(--opening-total) ease-in-out both}.invitation-opening.is-opening .envelope-recipient{animation:mobileRightContentOpen var(--opening-total) ease-in-out both}.invitation-opening.is-opening .envelope-photo-card{transition:none;transform:translate(-50%,-50%)scale(.96)}.invitation-opening.is-revealed .envelope-photo-card{transition:transform calc(.85s * var(--opening-scale)) cubic-bezier(.3, 0, .2, 1);transform:translate(-50%,-64%)scale(2.4)}}@media (width>=700px){.section-pad{--section-x:clamp(48px, 7vw, 86px);padding:84px var(--section-x)}.couple-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.family-column h3{font-size:clamp(48px,5vw,66px)}.photo-story{grid-template-rows:repeat(2,minmax(260px,34vw))}.rsvp-card{padding:38px}.rsvp-options{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-previous,.gallery-next{display:grid}.gallery-close:hover,.gallery-previous:not(:disabled):hover,.gallery-next:not(:disabled):hover{background:#48484ce6}.gallery-thumb{width:34px;height:60px}.gallery-thumb.is-current{width:68px}}@media (width>=1000px){.gallery-more{width:fit-content;margin-inline:auto;padding:18px 46px}.invite-shell{grid-template-columns:45% 55%;align-items:start;display:grid}.hero{height:100vh;position:sticky;top:0}.hero-content{padding:72px clamp(38px,4vw,70px) 58px}.hero h1{font-size:clamp(62px,7.6vw,116px)}.section-pad{--section-x:clamp(54px, 5.5vw, 88px);padding:88px var(--section-x)}.photo-story{grid-template-rows:repeat(2,minmax(260px,28vw))}.rsvp{padding-bottom:88px}.rsvp-mobile-cta{display:none}.music-control{top:24px;right:24px}}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.music-control button,.rsvp-mobile-cta button{color:var(--navy);background:linear-gradient(145deg,#ffffff57,#c6d5f938 50%,#7088cc2e),#e2e9fcd6}}@media (prefers-contrast:more){.music-control button,.rsvp-mobile-cta button{color:#fff;background:#070e26fa;box-shadow:0 10px 24px #070e2657}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.state-loading .state-mark img,.envelope-wax{animation:none}.invitation-opening.is-opening,.invitation-stage.is-open .hero-shade,.invitation-stage.is-open .hero-content{animation-duration:1ms;animation-iteration-count:1}.rsvp-options label,.music-control button,.music-control button:after,.rsvp-mobile-cta button,.rsvp-mobile-cta button:after{transition:none}.music-control button:active,.rsvp-mobile-cta button:active{transform:none}.rsvp-card form,.rsvp-attending-details,.gallery-lightbox{animation:none}.gallery-track,.gallery-thumb{transition-duration:1ms}.music-control.is-playing button span,.music-control.is-playing:before,.music-control.is-playing:after{animation:none}.envelope,.envelope-recipient,.envelope-action,.invitation-opening.is-opening,.invitation-opening.is-opening .envelope,.invitation-opening.is-opening .envelope-photo-card{animation-duration:1ms;animation-iteration-count:1}.envelope-flap,.envelope-flap-date,.envelope-wax,.gallery-grid img{transition-duration:1ms}.event-card{transform:none}}@keyframes rise{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}@keyframes envelopeRise{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}@keyframes envelopeShift{0%,50%{transform:none}79%,to{transform:rotate(1.4deg)translate(16px,6px)}}@keyframes mobileLeftFlapOpen{0%,12%{transform:perspective(1400px)rotateY(0)}48%,to{transform:perspective(1400px)rotateY(-165deg)}}@keyframes mobileRightFlapOpen{0%,52%{transform:perspective(1400px)rotateY(0)}82%,to{transform:perspective(1400px)rotateY(165deg)}}@keyframes mobileRightContentOpen{0%,52%{opacity:1}70%,to{opacity:0}}@keyframes rsvpFormEnter{0%{opacity:0;transform:translateY(18px)scale(.985)}to{opacity:1;transform:none}}@keyframes rsvpDetailsEnter{0%{opacity:0;transform:translateY(14px)scale(.99)}to{opacity:1;transform:none}}@keyframes galleryViewerEnter{0%{opacity:0;transform:scale(1.03)}to{opacity:1;transform:none}}@keyframes openingPrompt{0%,to{opacity:.56;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}@keyframes heroShadeReveal{0%{opacity:0}to{opacity:1}}@keyframes heroContentReveal{0%{opacity:0;transform:translateY(34px)}to{opacity:1;transform:translateY(0)}}@keyframes sealFlash{0%,to{opacity:1}50%{opacity:.24}}@keyframes waxSettleMobile{0%{transform:translate(-50%, -50%) translateX(calc(-1 * min(4vw, 2.176svh, 21px))) scale(var(--wax-zoom))}to{transform:translate(-50%,-50%)}}@keyframes waxSettle{0%{transform:translate(-50%, -50%) translateX(calc(-1 * min(4.4vw, 2.6vh, 22px))) scale(var(--wax-zoom))}to{transform:translate(-50%,-50%)}}@keyframes musicWiggle{0%,to{translate:0 1px;rotate:-9deg}50%{translate:0 -2px;rotate:9deg}}@keyframes musicWave{0%{opacity:.5;transform:scale(.94)}70%,to{opacity:0;transform:scale(1.35625)}}.verse{background:var(--ivory)}.verse h2{letter-spacing:-.04em;margin:0;font-size:clamp(32px,8vw,58px);font-weight:400;line-height:1.08}.verse-teaser{border-radius:var(--radius-card);background:var(--navy-dark,#14245c);cursor:pointer;border:0;width:100%;margin:28px 0 0;padding:0;display:block;position:relative;overflow:hidden;box-shadow:0 24px 48px -28px #14245c8c}.verse-teaser canvas{width:100%;height:auto;image-rendering:pixelated;image-rendering:crisp-edges;display:block}.verse-enter{border-radius:var(--radius-pill);color:var(--navy);font:600 12px/1.2 var(--font-sans);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;-webkit-backdrop-filter:blur(12px);background:#ffffffeb;align-items:center;gap:8px;padding:13px 22px;transition:transform .18s,background .18s;display:inline-flex;position:absolute;bottom:22px;left:50%;transform:translate(-50%);box-shadow:0 12px 28px -12px #14245c99}.verse-teaser:hover .verse-enter,.verse-teaser:focus-visible .verse-enter{background:#fff;transform:translate(-50%)translateY(-2px)}.verse-stage{z-index:320;isolation:isolate;background:var(--navy-dark,#14245c);overscroll-behavior:contain;touch-action:none;outline:none;animation:.22s cubic-bezier(.16,1,.3,1) both galleryViewerEnter;position:fixed;inset:0;overflow:hidden}.verse-canvas{width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges;cursor:pointer;touch-action:none;display:block;position:absolute;inset:0}.verse-layer{pointer-events:none;position:absolute;inset:0;overflow:hidden}.verse-layer>div{will-change:transform;position:absolute;top:0;left:0}.verse-name,.verse-table,.verse-bubble{margin-left:-50%}.verse-name{border-radius:var(--radius-pill);color:#fff;font:600 10px/1.3 var(--font-sans);white-space:nowrap;transform-origin:50% 100%;background:#14245cb8;padding:2px 7px}.verse-name.is-self{color:var(--navy);background:#e7c56bf2}.verse-name.is-npc,.verse-name.is-couple{color:var(--navy);background:#ffffffeb}.verse-name.is-couple{box-shadow:0 0 0 1px #e7c56b}.verse-table{border-radius:var(--radius-pill);color:var(--navy);font:600 9px/1.3 var(--font-sans);letter-spacing:.04em;white-space:nowrap;background:#ffffffd1;padding:1px 6px}.verse-bubble{max-width:180px;color:var(--navy);font:500 12px/1.35 var(--font-sans);background:#fff;border-radius:12px;padding:7px 10px;animation:.18s ease-out both verseBubble;box-shadow:0 10px 24px -14px #14245c99}.verse-bubble:after{content:"";background:#fff;width:8px;height:8px;position:absolute;bottom:-5px;left:50%;transform:translate(-50%)rotate(45deg)}.verse-bubble.is-npc{background:var(--navy);color:#fff}.verse-bubble.is-npc:after{background:var(--navy)}.verse-layer .verse-name,.verse-layer .verse-table,.verse-layer .verse-bubble{margin-left:0;left:0}.verse-layer .verse-name,.verse-layer .verse-table,.verse-layer .verse-table,.verse-layer .verse-bubble{translate:-50% -100%}@keyframes verseBubble{0%{opacity:0;scale:.92}to{opacity:1;scale:1}}.verse-bar{padding:calc(env(safe-area-inset-top) + 14px) 16px 14px;color:#fff;pointer-events:none;background:linear-gradient(#14245cd9,#14245c00);justify-content:space-between;align-items:center;gap:16px;display:flex;position:absolute;top:0;left:0;right:0}.verse-bar>div{gap:2px;min-width:0;display:grid}.verse-bar strong{font:600 15px/1.3 var(--font-display);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.verse-bar span{font:400 11px/1.3 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;opacity:.8}.verse-close{color:#fff;cursor:pointer;pointer-events:auto;-webkit-backdrop-filter:blur(12px);background:#ffffff29;border:0;border-radius:50%;flex:none;place-items:center;width:42px;height:42px;font-size:18px;display:grid}.verse-close:focus-visible,.verse-toggle:focus-visible,.verse-send:focus-visible{outline-offset:2px;outline:3px solid #e7c56b}.verse-hint{left:50%;top:calc(env(safe-area-inset-top) + 76px);border-radius:var(--radius-pill);max-width:min(92vw,420px);color:var(--navy);font:500 12px/1.4 var(--font-sans);text-align:center;pointer-events:none;background:#ffffffeb;margin:0;padding:9px 14px;animation:.26s ease-out both galleryViewerEnter;position:absolute;transform:translate(-50%)}.verse-chat{padding:0 12px calc(env(safe-area-inset-bottom) + 12px);gap:8px;display:grid;position:absolute;bottom:0;left:0;right:0}.verse-log{color:#fff;-webkit-backdrop-filter:blur(14px);overscroll-behavior:contain;background:#14245cc7;border-radius:18px;max-height:min(38vh,280px);padding:10px 12px;overflow-y:auto}.verse-log p{font:400 13px/1.45 var(--font-sans);overflow-wrap:anywhere;margin:0 0 6px}.verse-log p strong{color:#e7c56b;margin-right:6px;font-weight:600}.verse-log p.is-self strong{color:#b9d7ee}.verse-log p.is-couple strong{color:#fff}.verse-log-empty{opacity:.7}.verse-compose{align-items:center;gap:8px;display:flex}.verse-compose input{border-radius:var(--radius-pill);min-width:0;height:44px;color:var(--navy);font:400 15px/1.2 var(--font-sans);background:#fffffff0;border:0;flex:1;padding:0 16px}.verse-compose input:focus-visible{outline:3px solid #e7c56b}.verse-toggle,.verse-send{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(12px);background:#ffffff29;border:0;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;font-size:20px;display:grid;position:relative}.verse-toggle[aria-pressed=true]{color:var(--navy);background:#fffffff0}.verse-toggle i{border-radius:var(--radius-pill);min-width:18px;color:var(--navy);font:700 10px/18px var(--font-sans);background:#e7c56b;padding:0 5px;font-style:normal;position:absolute;top:-2px;right:-2px}.verse-send{color:var(--navy);background:#e7c56b}.verse-send:disabled{opacity:.45;cursor:default}@media (width>=700px){.verse-chat{width:360px;padding-bottom:16px;padding-right:16px;left:auto}.verse-log{max-height:42vh}.verse-hint{top:auto;bottom:calc(env(safe-area-inset-bottom) + 20px);left:16px;transform:none}}.couple-verse{background:var(--navy);color:#fff;text-align:center;min-height:100dvh;padding:clamp(32px,8vw,72px) clamp(20px,6vw,48px)}.couple-verse-kicker{color:#e7c56b;font:600 12px/1.4 var(--font-sans);letter-spacing:.18em;text-transform:uppercase;margin:0 0 8px}.couple-verse h1{font:400 clamp(32px, 6vw, 48px)/1.1 var(--font-display);margin:0 0 8px}.couple-verse>p:not(.couple-verse-kicker){opacity:.8;max-width:420px;margin:0 auto}.couple-verse-rooms{gap:20px;max-width:760px;margin:32px auto 0;display:grid}.couple-verse-rooms .verse-teaser{margin:0}.couple-verse-rooms canvas{aspect-ratio:4/3;object-fit:cover;object-position:top}@media (width>=720px){.couple-verse-rooms{grid-template-columns:1fr 1fr}}
