/* Guest welcome: original DOM choreography over decorative setting artwork. */
.welcome-experience{--w-ink:#fff8ed;--w-gold:#f2d6a6;--w-deep:#442e26;--w-paper:#f6e9d6;padding-top:10px;scroll-margin-top:130px}
.welcome-experience [hidden]{display:none!important}
.welcome-experience button{cursor:pointer;touch-action:manipulation;font-family:inherit;line-height:1.35;min-width:44px;min-height:44px}
.welcome-experience button:focus-visible,.welcome-experience article:focus-visible{outline:3px solid #bd863e;outline-offset:3px}
.welcome-experience button:disabled{cursor:default;opacity:.55}
.w-topline{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 0 12px}
.w-theme-name{font-size:14px;color:#715632;font-weight:600;letter-spacing:.03em}
.w-text-button{border:0;background:transparent;color:#715632;padding:8px 0 8px 8px;font-size:14px}
.w-stage{position:relative;isolation:isolate;overflow:hidden;min-height:590px;border-radius:160px 160px 20px 20px;background:#6c412c;color:var(--w-ink);box-shadow:0 12px 35px #30261918}
.w-stage:after{content:'';z-index:-1;position:absolute;inset:0;background:linear-gradient(180deg,#2f20183d 0%,#281a155c 28%,#231510c9 70%,#241810e8);pointer-events:none}
.w-background{position:absolute;z-index:-3;inset:0;width:100%;height:100%;object-fit:cover;object-position:58% center}
.w-stage h2{color:inherit;font-family:WeddingSerif,Georgia,serif;font-weight:400;letter-spacing:-.035em;overflow-wrap:anywhere}
.w-entry{position:relative;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:590px;padding:65px 24px 40px;text-align:center}
.w-eyebrow{color:var(--w-gold);font-size:14px;letter-spacing:.13em;text-transform:uppercase;line-height:1.6;margin:0 0 24px}
.w-names{font-size:clamp(38px,10vw,53px);line-height:1.12;margin:0;width:100%}
.w-names>span{display:block}
.w-names .w-ampersand{font-size:31px;font-style:italic;margin:5px auto;color:var(--w-gold)}
.w-entry-date{font-size:16px;letter-spacing:.035em;margin:20px 0 26px;color:var(--w-ink)}
.w-enter{display:flex;align-items:center;justify-content:center;gap:10px;max-width:100%;border:1px solid #f6dfb4aa;border-radius:999px;padding:12px 20px;background:#fbefd9;color:#4e3827;font-size:16px;font-weight:600;box-shadow:0 4px 20px #24160f33}
.w-seal{font-size:20px;font-weight:400}
.w-entry-note{font-size:14px;line-height:1.55;margin-top:18px;color:var(--w-gold)}
.w-decor{position:absolute;inset:0;z-index:-2;pointer-events:none;overflow:hidden}
.w-sun{position:absolute;top:11%;left:calc(50% - 36px);width:72px;height:72px;background:#ffe9c6;border-radius:50%;box-shadow:0 0 65px #ffc87d66}
.w-dune{position:absolute;bottom:-60px;left:-30%;width:150%;height:240px;border-radius:50% 70% 0 0;transform:rotate(-14deg);background:linear-gradient(150deg,#b98c65,#654731)}
.w-dune-back{bottom:0;left:-40%;transform:rotate(14deg);background:linear-gradient(130deg,#d5ad76,#a36a42)}
.w-portal{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.w-door{position:absolute;top:0;bottom:0;width:51%;background:linear-gradient(110deg,#bd8856ed,#74432eed 65%,#422b22ed);transition:transform 1.8s cubic-bezier(.22,.7,.15,1),opacity 1.6s;box-shadow:inset -1px 0 #f0c9915c}
.w-door-left{left:0;clip-path:polygon(0 0,100% 0,94% 30%,100% 68%,100% 100%,0 100%)}
.w-door-right{right:0;transform-origin:right center;background:linear-gradient(250deg,#c99962eb,#75442feb 65%,#422b22eb);clip-path:polygon(0 0,100% 0,100% 100%,0 100%,5% 68%,0 30%)}
.w-door:after{content:'';position:absolute;left:-75%;right:-55%;height:40%;bottom:-8%;border:1px solid #edca9960;border-radius:50% 60% 0 0;transform:rotate(-20deg);box-shadow:0 -18px 0 #e6bd8630,0 -45px 0 #f2d8b115}
.w-opened .w-door-left{transform:translateX(-105%) rotate(-7deg);opacity:0}
.w-opened .w-door-right{transform:translateX(105%) rotate(7deg);opacity:0}
.w-envelope-flap,.w-lantern,.w-vine,.w-petal{display:none}
.w-setting{position:absolute;bottom:15px;left:20px;right:20px;z-index:2;font-size:14px;color:var(--w-gold);text-align:center;line-height:1.4;opacity:.9;pointer-events:none}
.w-slides{position:relative;z-index:2}
.w-slide{display:flex;min-height:590px;flex-direction:column;align-items:center;justify-content:center;padding:58px 28px 65px;text-align:center;outline:none}
.w-slide .w-eyebrow{margin:0 0 20px}
.w-story-mark{font:48px/1.15 WeddingSerif,Georgia,serif;color:var(--w-gold);margin-bottom:24px}
.w-story-title{font-size:35px;line-height:1.17;margin:0 0 21px}
.w-story-text{font-size:17px;line-height:1.8;white-space:pre-line;color:var(--w-ink);overflow-wrap:anywhere;width:100%;max-width:320px}
.w-story-names{font:italic 25px/1.5 WeddingSerif,Georgia,serif;color:var(--w-gold);margin-top:27px;overflow-wrap:anywhere;max-width:100%}
.w-story-date{display:grid;gap:4px;margin-top:25px;font-size:16px;line-height:1.5}
.w-story-date strong{font-weight:600;color:var(--w-gold)}
.w-story-date span{max-width:100%;overflow-wrap:anywhere}
.w-invited{margin-top:25px;padding:12px 20px;border:1px solid #f2d6a6aa;border-radius:999px;color:#4e3827;background:#fff2d9;font-size:16px;font-weight:600}
.w-couple-photo{margin:0 0 22px;width:180px;max-width:90%;height:180px;padding:6px;background:#fffcf7;border:1px solid #f2d6a6aa;box-shadow:0 6px 25px #110e1438;transform:rotate(-3deg)}
.w-couple-photo img{width:100%;height:100%;object-fit:contain;display:block;background:#fffcf7}
.w-stage[data-chapter="2"] .w-slide{padding-top:40px}
.w-stage[data-chapter="2"] .w-story-title{font-size:31px;margin-bottom:15px}
.w-transitioning .w-slide:not([hidden]){animation:w-copy-reveal 1.1s both}
.w-transitioning .w-couple-photo{animation:w-photo-unfold 1.3s both}
.w-transitioning .w-dune-front{animation:w-sand-front 2.7s both}
.w-transitioning .w-dune-back{animation:w-sand-back 3s both}
.w-transitioning .w-sun{animation:w-sun-rise 2.7s both}
.w-deck{padding:15px 2px 4px}
.w-chapter-controls{display:flex;align-items:center;justify-content:space-between;gap:3px;margin-bottom:6px}
.w-small-button{border:0;background:transparent;color:#6a5134;font-size:14px;padding:9px 8px}
.w-progress{display:flex;gap:2px}
.w-dot{border:0;background:transparent;position:relative;color:#796e60;font-size:14px;padding:10px 6px;font-variant-numeric:tabular-nums}
.w-dot:after{content:'';display:block;height:2px;border-radius:3px;background:#ddd4c6;position:absolute;bottom:5px;left:10px;right:10px}
.w-dot[aria-current="step"]{color:#4e3827;font-weight:700}
.w-dot[aria-current="step"]:after{background:#8e6735}
.w-utilities{display:flex;align-items:center;justify-content:center;gap:4px 5px;flex-wrap:wrap;padding-top:6px;border-top:1px solid #e9e2d8}
.w-sound{display:flex;align-items:center;gap:7px;border:1px solid #d8c9b3;background:#fffdf8;color:#58442d;border-radius:999px;font-size:14px;padding:9px 14px}
.w-sound:before{content:'♪';font-size:19px;line-height:1}
.w-sound[aria-pressed="true"]{background:#5e492f;color:white;border-color:#5e492f}
.w-state,.w-sound-status,.w-disclosure{font-size:14px;line-height:1.55;color:#6b655c;margin:12px 5px 0;text-align:center}
.w-sound-status{color:#4f593e}
.w-disclosure{font-size:14px;color:#777168;margin-top:10px}
.w-film{margin:18px 0 0;border:1px solid #e1d8c8;border-radius:15px;background:#fffdfa;overflow:hidden}
.w-film summary{padding:16px;min-height:52px;cursor:pointer;font-size:16px;color:#5d472e;font-weight:600}
.w-film summary:focus-visible{outline:3px solid #bd863e;outline-offset:-3px}
.w-video{display:block;width:100%;max-height:500px;aspect-ratio:9/12;background:#1e211f;object-fit:contain}
.w-film-note{font-size:14px;line-height:1.6;color:#6b655c;padding:14px 16px}
.has-welcome-experience>.breadcrumb{display:none}
.has-welcome-experience>.invitation-card{margin-top:28px}

/* Palace: hinged, inlaid double doors; lanterns settle after the reveal. */
.welcome-experience[data-theme="palace"]{--w-ink:#fff7e5;--w-gold:#edcc8b;--w-deep:#162b3a}
[data-theme="palace"] .w-stage{border-radius:155px 155px 18px 18px;background:#142a37;border:1px solid #b79960}
[data-theme="palace"] .w-stage:before{content:'';position:absolute;inset:12px;border:1px solid #e8cc8d50;border-radius:145px 145px 9px 9px;z-index:1;pointer-events:none}
[data-theme="palace"] .w-stage:after{background:linear-gradient(180deg,#14263212,#081c32a3 32%,#071b2ae0 75%,#091a28ec)}
[data-theme="palace"] .w-background{object-position:center}
[data-theme="palace"] .w-sun,[data-theme="palace"] .w-dune{display:none}
[data-theme="palace"] .w-portal{perspective:1000px}
[data-theme="palace"] .w-door{clip-path:none;opacity:1;background:repeating-linear-gradient(90deg,transparent 0 21px,#d3ad6730 22px 23px),linear-gradient(100deg,#123343,#1b4050 45%,#0c202d);border:1px solid #c8a660;transition:transform 2s cubic-bezier(.2,.65,.2,1),opacity 1.8s;box-shadow:inset 0 0 50px #040d1899}
[data-theme="palace"] .w-door-left{transform-origin:left center}
[data-theme="palace"] .w-door-right{transform-origin:right center}
[data-theme="palace"] .w-door:before{content:'';position:absolute;inset:45px 15px 26px;border:1px solid #cba75d8f;border-radius:80px 80px 0 0;box-shadow:inset 0 0 0 5px #e7c17c18,0 0 0 5px #e7c17c18}
[data-theme="palace"] .w-door:after{width:18px;height:18px;left:auto;right:8px;top:53%;border:2px solid #e9c375;border-radius:50%;box-shadow:0 3px 5px #0005;transform:none;background:#bd8d42}
[data-theme="palace"] .w-door-right:after{left:8px;right:auto}
[data-theme="palace"].w-opened .w-door-left{transform:rotateY(-100deg);opacity:.1}
[data-theme="palace"].w-opened .w-door-right{transform:rotateY(100deg);opacity:.1}
[data-theme="palace"] .w-lantern{display:block;position:absolute;top:82px;width:25px;height:42px;background:linear-gradient(90deg,#b48c42,#ffe2a2 50%,#b48c42);border-radius:40% 40% 22% 22%;border:2px solid #c5a16a;box-shadow:0 0 30px #ffcf713d;transform-origin:50% -90px}
[data-theme="palace"] .w-lantern:before{content:'';position:absolute;width:1px;height:100px;background:#d7b66b;bottom:100%;left:50%}
.w-lantern-left{left:30px}.w-lantern-right{right:30px}
[data-theme="palace"].w-transitioning .w-lantern-left{animation:w-lantern 2.8s ease-out both}
[data-theme="palace"].w-transitioning .w-lantern-right{animation:w-lantern 2.8s ease-out reverse both}
[data-theme="palace"] .w-entry{padding-top:80px}

/* Garden: folded invitation, paper wings, opening vines and a finite petal fall. */
.welcome-experience[data-theme="garden"]{--w-ink:#254b3d;--w-gold:#476547;--w-deep:#254b3d}
[data-theme="garden"] .w-stage{border-radius:22px;background:#edf0df;border:1px solid #d3ddc7;box-shadow:0 12px 35px #32543a14}
[data-theme="garden"] .w-background{object-position:center}
[data-theme="garden"] .w-stage:after{background:linear-gradient(180deg,#f7f5e7b3,#faf6e5e6 30%,#f7f3e5ed 74%,#e5ebd9c9)}
[data-theme="garden"] .w-stage:before{content:'';position:absolute;inset:15px;border:1px solid #47745242;border-radius:200px 200px 4px 4px;pointer-events:none;z-index:1}
[data-theme="garden"] .w-sun,[data-theme="garden"] .w-dune{display:none}
[data-theme="garden"] .w-door{clip-path:none;background:linear-gradient(135deg,#edf1dfeb,#e1e8d2f5);border:1px solid #b5c5aa;transition:transform 1.6s ease,opacity 1.5s;box-shadow:0 2px 12px #25432e18}
[data-theme="garden"] .w-door-left{transform-origin:left bottom;clip-path:polygon(0 0,100% 33%,100% 100%,0 100%)}
[data-theme="garden"] .w-door-right{transform-origin:right bottom;clip-path:polygon(0 33%,100% 0,100% 100%,0 100%)}
[data-theme="garden"] .w-door:after{display:none}
[data-theme="garden"] .w-envelope-flap{display:block;position:absolute;inset:0;background:linear-gradient(155deg,#f8f4e5,#e4e9d6);clip-path:polygon(0 0,100% 0,100% 30%,50% 51%,0 30%);transform-origin:center top;transition:transform 1.6s,opacity 1s;border-top:1px solid #b3c3a4}
[data-theme="garden"].w-opened .w-envelope-flap{transform:rotateX(160deg);opacity:0}
[data-theme="garden"].w-opened .w-door-left{transform:translate(-100%,30%) rotate(-18deg);opacity:0}
[data-theme="garden"].w-opened .w-door-right{transform:translate(100%,30%) rotate(18deg);opacity:0}
[data-theme="garden"] .w-entry{padding-top:65px}
[data-theme="garden"] .w-enter,[data-theme="garden"] .w-invited{color:#fffaf0;background:#365640;border-color:#365640;box-shadow:0 5px 18px #1e48271a}
[data-theme="garden"] .w-vine{display:block;position:absolute;top:30px;width:70px;height:270px;border:2px solid #53785270;border-radius:50%;transform:rotate(-24deg)}
[data-theme="garden"] .w-vine:before,[data-theme="garden"] .w-vine:after{content:'';position:absolute;width:34px;height:65px;border-radius:80% 0 80% 0;background:#6c8c5b88;top:40px;left:12px;box-shadow:12px 90px 0 #7f9b6599}
[data-theme="garden"] .w-vine:after{top:90px;left:-14px;transform:rotate(-80deg);background:#8da87599;box-shadow:8px 85px 0 #6b865e88}
.w-vine-left{left:-26px}.w-vine-right{right:-26px;rotate:180deg}
[data-theme="garden"].w-transitioning .w-vine{animation:w-vine-unfold 2.4s both}
[data-theme="garden"] .w-petal{display:block;position:absolute;left:12%;top:-40px;width:14px;height:22px;border-radius:75% 10% 75% 20%;background:#d99e9cb8;opacity:0}
[data-theme="garden"] .w-petal:nth-of-type(9){left:29%;animation-delay:.3s}
[data-theme="garden"] .w-petal:nth-of-type(10){left:42%;animation-delay:.7s;background:#f0cabe}
[data-theme="garden"] .w-petal:nth-of-type(11){left:62%;animation-delay:.1s}
[data-theme="garden"] .w-petal:nth-of-type(12){left:75%;animation-delay:.5s;background:#c38d8f99}
[data-theme="garden"] .w-petal:nth-of-type(13){left:89%;animation-delay:.2s}
[data-theme="garden"].w-transitioning .w-petal{animation-name:w-petal-fall;animation-duration:2.5s;animation-timing-function:ease-in;animation-fill-mode:both}

@keyframes w-copy-reveal{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@keyframes w-photo-unfold{from{opacity:0;transform:translateY(30px) rotate(-12deg) scale(.85)}to{opacity:1;transform:translateY(0) rotate(-3deg) scale(1)}}
@keyframes w-sand-front{from{transform:translateX(-10%) rotate(-22deg)}to{transform:translateX(0) rotate(-14deg)}}
@keyframes w-sand-back{from{transform:translateX(12%) rotate(23deg)}to{transform:translateX(0) rotate(14deg)}}
@keyframes w-sun-rise{from{transform:translateY(60px);opacity:.3}to{transform:translateY(0);opacity:1}}
@keyframes w-lantern{0%{transform:rotate(12deg)}35%{transform:rotate(-7deg)}70%{transform:rotate(3deg)}100%{transform:rotate(0)}}
@keyframes w-vine-unfold{from{transform:rotate(-50deg) translateY(40px);opacity:.3}to{transform:rotate(-24deg) translateY(0);opacity:1}}
@keyframes w-petal-fall{0%{transform:translate(0,-10px) rotate(0);opacity:0}12%{opacity:.8}90%{opacity:.5}100%{transform:translate(45px,650px) rotate(260deg);opacity:0}}
.w-paused .w-decor *{animation-play-state:paused!important}
.w-reduced *{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){.welcome-experience *{animation:none!important;transition:none!important}}
@media(max-width:359px){.w-stage,.w-entry,.w-slide{min-height:570px}.w-entry{padding-inline:18px}.w-slide{padding-inline:20px}.w-story-title{font-size:31px}.w-story-text{font-size:16px}.w-topline{gap:4px}.w-small-button{padding-inline:5px}.w-chapter-controls{flex-wrap:wrap;justify-content:center}.w-chapter-controls>.w-small-button{flex:1 1 58px}.w-progress{gap:0}.w-theme-name{max-width:90px}.w-text-button{max-width:165px}}

/* Keep entry, sound and chapter navigation usable above the fixed contact dock.
   Long/custom text scrolls inside the scene instead of pushing controls away. */
.w-topline{gap:7px;padding:3px 0 10px;min-height:57px}
.w-theme-name{flex:1;min-width:0;line-height:1.35;font-size:14px}
.w-topline .w-sound{flex:none;min-width:104px;justify-content:center;padding:9px 11px}
.w-topline .w-text-button{flex:none;font-size:14px;padding:9px 3px;min-width:52px;white-space:nowrap}
.w-stage{height:var(--w-stage-height,clamp(210px,calc(100svh - 350px),540px));min-height:0}
.w-entry{height:100%;min-height:0;overflow:auto;overscroll-behavior:contain;padding:40px 22px 28px;scrollbar-width:thin;justify-content:safe center}
.w-entry>*{flex-shrink:0}
.w-slides{height:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c1a67780 transparent}
.w-slide{min-height:100%;padding:35px 26px 30px}
.w-stage[data-chapter="2"] .w-slide{padding-top:30px}
.w-setting{display:none}
.w-eyebrow{margin-bottom:18px}
.w-entry-date{margin:16px 0 22px}
.w-entry-note{margin-top:15px}
.w-story-mark{font-size:38px;margin-bottom:20px}
.w-story-title{font-size:32px;margin-bottom:18px}
.w-story-text{font-size:17px;line-height:1.65}
.w-story-names{font-size:23px;margin-top:20px}
.w-slide .w-eyebrow{margin-bottom:17px}
.w-story-date{margin-top:18px}
.w-invited{margin-top:19px}
.w-deck{padding-top:8px}
.w-utilities{padding-top:3px}
.w-reading-hint{position:absolute;bottom:0;left:0;right:0;z-index:4;font-size:14px;line-height:1.4;color:#fff8ed;background:#45352cef;text-align:center;margin:0;padding:6px 8px;pointer-events:none}
[data-theme="palace"] .w-reading-hint{background:#132b3aef}
[data-theme="garden"] .w-reading-hint{background:#f4f1e4f5;color:#254b3d}
[data-theme="palace"] .w-entry,[data-theme="garden"] .w-entry{padding-top:40px}
.w-stage:has(.w-entry:not([hidden])){border-radius:120px 120px 18px 18px}
[data-theme="garden"] .w-stage:has(.w-entry:not([hidden])){border-radius:22px}
.w-opened .w-stage{border-radius:28px 28px 18px 18px}
.w-opened[data-theme="palace"] .w-stage:before{border-radius:20px 20px 9px 9px}
@media(max-width:359px){
 .w-topline{gap:5px}.w-topline .w-sound{min-width:95px;padding-inline:8px}.w-theme-name{max-width:none}.w-topline .w-text-button{min-width:48px}
 .w-stage,.w-entry,.w-slide{min-height:0}.w-slide{min-height:100%;padding-inline:19px}.w-stage[data-chapter="2"] .w-slide{padding-inline:19px}
 .w-chapter-controls{flex-wrap:nowrap;gap:0}.w-chapter-controls>.w-small-button{flex:1 1 54px}.w-progress{gap:0}.w-dot{padding-inline:3px}
 .w-story-title{font-size:29px}.w-stage[data-chapter="2"] .w-story-title{font-size:28px}.w-story-text{font-size:16px}
 .w-utilities{gap:1px}.w-utilities .w-small-button{padding-inline:4px;font-size:14px}
}
@media(max-height:740px){
 .w-entry,[data-theme="palace"] .w-entry,[data-theme="garden"] .w-entry{justify-content:flex-start;padding:26px 18px 20px}
 .w-names{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:0 7px;font-size:33px;line-height:1.14}
 .w-names .w-ampersand{font-size:25px;margin:0;color:var(--w-gold)}
 .w-entry .w-eyebrow{margin-bottom:13px;font-size:14px;letter-spacing:.08em}
 .w-entry-date{font-size:16px;margin:14px 0 17px}.w-entry-note{display:none}
 .w-slide,.w-stage[data-chapter="2"] .w-slide{padding-top:24px;padding-bottom:24px;justify-content:flex-start}
 .w-slide .w-eyebrow{margin-bottom:12px}.w-story-mark{display:none}.w-story-title{font-size:27px;line-height:1.2;margin-bottom:13px}
 .w-stage[data-chapter="2"] .w-story-title{font-size:27px}.w-story-text{font-size:16px;line-height:1.55}.w-story-names{font-size:21px;margin-top:14px}
 .w-story-date{margin-top:16px}.w-invited{margin-top:16px}.w-couple-photo{width:150px;height:150px;margin-bottom:18px}
 .w-state,.w-disclosure{margin-top:8px}
}
