@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=DM+Sans:wght@400;500;600;700&family=Parisienne&display=swap');
:root{--ink:#613c43;--plum:#764d59;--muted:#8b6973;--accent:#bd747b;--accent-dark:#a85c67;--blush:#f5dedc;--cream:#fff7ee;--gold:#c8a96c;--leaf:#647f60;--soft-border:#e5c4bb;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--script:'Great Vibes','Brush Script MT',cursive}
*{box-sizing:border-box}
html{scroll-behavior:auto}
body{margin:0;min-height:100%;color:var(--ink);background:#fbece7;font-family:var(--sans);overflow-x:hidden;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}button{cursor:pointer}img{user-select:none;-webkit-user-drag:none}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #c58a78;outline-offset:3px}
::selection{background:#eabfb9;color:#693941}
.topbar{position:fixed;z-index:120;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:clamp(16px,3vw,30px) clamp(18px,4vw,58px);pointer-events:none;mix-blend-mode:multiply}
.brand{display:flex;align-items:center;gap:12px}.brand-mark{display:grid;place-items:center;width:45px;height:45px;border:1px solid rgba(104,65,67,.38);border-radius:50%;font-family:var(--serif);font-size:17px;letter-spacing:-3px;padding-right:3px}.brand-mark span{color:#c98591;font-size:15px}.brand-copy{font-size:9px;letter-spacing:.21em;line-height:1.8;font-weight:700}.top-date{font-size:10px;font-weight:700;letter-spacing:.22em}.top-date span{margin:0 9px;color:var(--accent)}
.chapter-nav{position:fixed;z-index:110;right:clamp(14px,2.5vw,36px);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:16px}
.nav-dot{appearance:none;border:1px solid rgba(111,71,80,.35);border-radius:99px;width:11px;height:11px;background:rgba(255,255,255,.55);padding:0;position:relative;transition:transform .25s,background .25s,border-color .25s;box-shadow:0 2px 5px #553e4011}.nav-dot span{position:absolute;right:24px;top:50%;transform:translateY(-50%);font-size:9px;letter-spacing:.13em;color:var(--ink);opacity:0;transition:opacity .25s;pointer-events:none}.nav-dot:hover span,.nav-dot.active span{opacity:1}.nav-dot.active{background:var(--accent);transform:scale(1.25);border-color:var(--accent)}.nav-rail{position:absolute;top:0;bottom:0;left:calc(50% - .5px);width:1px;background:#8c6d7233;z-index:-1}
.story-meter{position:fixed;z-index:115;left:0;top:0;height:3px;width:100%;background:transparent;pointer-events:none}.story-meter>span{display:block;width:0;height:100%;background:linear-gradient(90deg,#dda0a5,#9b7c94);transform-origin:0 50%}
.chapter-indicator{position:fixed;z-index:120;bottom:26px;left:clamp(18px,4vw,60px);font-family:var(--serif);font-size:17px;font-weight:500;letter-spacing:.06em;pointer-events:none}.chapter-sep{margin:0 5px;color:#b8a1a4}.scroll-hint{position:fixed;z-index:120;bottom:22px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;color:#7b606c;pointer-events:none;transition:opacity .35s}.scroll-hint span{font-size:9px;font-weight:700;letter-spacing:.3em}.scroll-hint i{font-style:normal;font-size:20px;animation:arrow-bob 2s ease-in-out infinite}@keyframes arrow-bob{50%{transform:translateY(6px)}}
.journey{height:calc((var(--chapters) * 1.28 + 0.05) * 100svh);position:relative}.stage{position:sticky;top:0;height:100svh;overflow:hidden;isolation:isolate;background:#f8e6e1}.scene{position:absolute;inset:0;overflow:hidden;isolation:isolate;opacity:0;pointer-events:none;will-change:opacity,transform;transform-origin:center center}.scene:first-of-type{opacity:1}.scene--hero{background:linear-gradient(180deg,#d8d5f3 0%,#f9d6d0 48%,#e4e4c9 100%)}.scene--meet{background:linear-gradient(180deg,#d7d9f4 0%,#f9e1db 55%,#cbdaba 100%)}.scene--event{background:linear-gradient(180deg,#dfd7ed 0%,#f7d7d0 54%,#e7bdb4 100%)}.scene--venue{background:linear-gradient(180deg,#d6d4ef 0%,#fbe0d5 48%,#b7cdac 100%)}.scene--rsvp{background:linear-gradient(180deg,#d9d6ed 0%,#ffdfd2 50%,#d9d9c1 100%)}
.scene-wash{position:absolute;inset:0;z-index:0;background:radial-gradient(circle at 50% 52%,#fff9ef3b 0%,transparent 52%),linear-gradient(180deg,#fff5f032,transparent 40%,#846b5710 100%);pointer-events:none}.stage-grain{position:absolute;z-index:90;inset:0;pointer-events:none;opacity:.13;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 190 190' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.15' filter='url(%23n)'/%3E%3C/svg%3E")}
.layer{position:absolute;z-index:2;width:var(--w,auto);height:auto;max-width:none;left:var(--x,50%);top:var(--y,50%);transform:translate(-50%,-50%);transform-origin:center;pointer-events:none;will-change:transform;backface-visibility:hidden}
.scene-copy{position:absolute;z-index:30;left:50%;transform:translateX(-50%);width:min(90vw,760px);text-align:center;text-shadow:0 1px 16px #fff7ed70}.eyebrow{font-size:clamp(10px,1vw,12px);font-weight:700;letter-spacing:.31em;color:#fff5e9}.eyebrow--dark{color:#835b69}.scene-copy h2,.rsvp-heading h2{font-family:var(--serif);font-weight:500;line-height:1.07;letter-spacing:-.052em;margin:12px 0 8px;font-size:clamp(42px,6.1vw,90px)}.scene-copy h2 em,.rsvp-heading h2 em,.closing h2 em{font-family:var(--script);font-weight:400;color:#ad6d76;letter-spacing:0;font-size:1.3em;line-height:.6}.scene-copy p{margin:7px auto;font-size:clamp(12px,1.2vw,15px);line-height:1.8;letter-spacing:.015em}.small-star{color:#aa7d76;font-size:27px;height:21px}.hero-copy{top:18%}.hero-copy h2{font-size:clamp(52px,7.1vw,105px);margin:12px 0 16px}.scene-date{font-weight:700;letter-spacing:.08em}.scene-small{font-size:12px!important;letter-spacing:.09em!important}.scene-bottom-tag{position:absolute;z-index:23;bottom:11%;left:50%;transform:translateX(-50%);white-space:nowrap;color:#744f56;font-family:var(--script);font-size:clamp(24px,2.2vw,34px);opacity:.82}.scene-bottom-tag span{font:20px var(--serif);margin-left:12px}
/* hero: each cutout is an independently zoomed depth plane */
.img-sky{--x:50%;--y:44%;--w:min(105vw,1350px);z-index:1;opacity:.86}.img-cloud-top{--x:65%;--y:25%;--w:min(28vw,400px);z-index:2;opacity:.7}.img-mountains{--x:50%;--y:79%;--w:min(115vw,1500px);z-index:2}.img-mosque{--x:50%;--y:75%;--w:min(43vw,510px);z-index:3;opacity:.9}.img-moon{--x:74%;--y:24%;--w:min(13vw,180px);z-index:4}.img-portal{--x:50%;--y:61%;--w:min(68vw,780px);z-index:7}.img-couple-back{--x:50%;--y:84%;--w:min(39vw,410px);z-index:9}.img-branch-left{--x:1%;--y:0%;--w:min(46vw,610px);z-index:12}.img-bush-left{--x:2%;--y:99%;--w:min(39vw,550px);z-index:16}.img-bush-right{--x:94%;--y:102%;--w:min(40vw,550px);z-index:16}
/* scene two */
.meet-copy{top:13%}.meet-copy h2{font-size:clamp(43px,5.7vw,75px)}.meet-copy p{max-width:470px}.meet-sky{--x:50%;--y:40%;--w:min(110vw,1320px);z-index:1;opacity:.8}.meet-hills{--x:50%;--y:81%;--w:min(115vw,1450px);z-index:2}.meet-gate{--x:50%;--y:65%;--w:min(68vw,760px);z-index:5}.meet-couple{--x:50%;--y:78%;--w:min(38vw,440px);z-index:8}.meet-flower-left{--x:3%;--y:96%;--w:min(34vw,520px);z-index:13}.meet-flower-right{--x:92%;--y:98%;--w:min(43vw,560px);z-index:13}.meet-lantern-left{--x:23%;--y:45%;--w:min(8vw,95px);z-index:7}.meet-lantern-right{--x:77%;--y:45%;--w:min(8vw,95px);z-index:7}.name-label{position:absolute;z-index:20;bottom:17%;padding:15px 22px 13px;min-width:135px;border:1px solid #e1bbb8;border-radius:16px;background:#fff6eddb;box-shadow:0 10px 30px #76595317;text-align:center;backdrop-filter:blur(4px)}.name-label--left{left:12%}.name-label--right{right:12%}.name-label>span{display:block;color:#9a7b7b;font-size:9px;letter-spacing:.17em}.name-label strong{display:block;margin-top:3px;font-family:var(--script);font-size:38px;font-weight:400;line-height:1}
/* ceremony */
.event-copy{top:10%}.event-copy h2{font-size:clamp(44px,6vw,82px)}.event-date{font-size:13px!important;letter-spacing:.13em!important;font-weight:600}.event-sky{--x:50%;--y:40%;--w:min(110vw,1320px);z-index:1;opacity:.8}.event-mosque{--x:50%;--y:70%;--w:min(47vw,570px);z-index:2;opacity:.75}.event-curtain{--x:50%;--y:68%;--w:min(70vw,790px);z-index:4}.event-platform{--x:50%;--y:91%;--w:min(49vw,610px);z-index:7}.event-seated{--x:50%;--y:82%;--w:min(29vw,350px);z-index:11}.event-bouquet{--x:50%;--y:105%;--w:min(110vw,1400px);z-index:15}.event-cards{position:absolute;z-index:19;top:49%;left:50%;transform:translateX(-50%);width:min(83vw,1050px);display:flex;align-items:center;justify-content:space-between;gap:30px}.event-card{width:clamp(175px,22vw,240px);padding:25px 18px 24px;border:1px solid #e2bab4;border-radius:24px 24px 15px 15px;background:linear-gradient(145deg,#fff8eeef,#fff0e9ef);box-shadow:0 18px 42px #966d6a1c;text-align:center;backdrop-filter:blur(5px)}.event-card .card-icon{font-family:var(--serif);font-size:27px;color:var(--accent)}.event-card h3{font:500 clamp(21px,2.25vw,27px)/1.35 var(--serif);margin:8px 0 11px}.event-card p{font-size:12px;letter-spacing:.04em;font-weight:600;margin:0 0 8px}.event-card small{display:inline-block;padding:6px 10px;border-radius:22px;background:#f9e4dd;color:#915f6e;font-size:10px;letter-spacing:.04em}
/* venue */
.venue-copy{top:13%}.venue-copy h2{font-size:clamp(42px,5.5vw,79px)}.venue-sky{--x:50%;--y:38%;--w:min(115vw,1390px);z-index:1}.venue-mountains{--x:50%;--y:58%;--w:min(119vw,1510px);z-index:2}.venue-trees{--x:50%;--y:76%;--w:min(102vw,1320px);z-index:3}.venue-path{--x:50%;--y:76%;--w:min(70vw,790px);z-index:7}.venue-lights{--x:63%;--y:40%;--w:min(43vw,550px);z-index:10;opacity:.9}.venue-bush-left{--x:4%;--y:100%;--w:min(35vw,480px);z-index:15}.venue-bush-right{--x:98%;--y:97%;--w:min(35vw,500px);z-index:15}.venue-branch{--x:3%;--y:4%;--w:min(38vw,560px);z-index:14}.location-card{position:absolute;z-index:24;bottom:14%;left:6%;width:min(30vw,330px);border:1px solid #e5beb4;border-radius:22px;padding:22px 24px;background:#fff7edf0;box-shadow:0 18px 48px #6f4b4c30;backdrop-filter:blur(7px)}.location-card>span{display:block;color:#aa747a;font-size:9px;font-weight:700;letter-spacing:.19em}.location-card h3{font:500 28px/1.25 var(--serif);margin:11px 0 8px}.location-card p{color:#81686d;font-size:12px;line-height:1.7;margin:0 0 16px}.location-card-line{border-top:1px solid #ecd1c8;padding-top:12px;font-size:11px;letter-spacing:.07em}.location-card-line span{font-size:20px;vertical-align:-2px;margin-right:5px;color:var(--accent)}
/* response */
.rsvp-sky{--x:50%;--y:40%;--w:min(110vw,1300px);z-index:1}.rsvp-hills{--x:50%;--y:77%;--w:min(114vw,1450px);z-index:2}.rsvp-arch{--x:30%;--y:66%;--w:min(61vw,720px);z-index:5}.rsvp-couple{--x:27%;--y:84%;--w:min(30vw,365px);z-index:8}.rsvp-flowers-left{--x:1%;--y:101%;--w:min(37vw,510px);z-index:15}.rsvp-flowers-right{--x:94%;--y:104%;--w:min(36vw,500px);z-index:15}.rsvp-petals{--x:77%;--y:19%;--w:min(26vw,350px);z-index:13;opacity:.7}.rsvp-content{position:absolute;z-index:25;inset:0;pointer-events:none}.rsvp-content>*{pointer-events:auto}.rsvp-heading{position:absolute;left:6%;top:21%;width:36%;text-align:center}.rsvp-heading h2{font-size:clamp(45px,5.5vw,82px);margin:18px 0 16px}.rsvp-heading p{font-size:clamp(12px,1.2vw,15px);line-height:1.9;max-width:360px;margin:auto}.rsvp-form{position:absolute;right:8%;top:15%;width:min(32vw,405px);min-width:340px;padding:26px 29px 23px;border:1px solid #e6c7bf;background:linear-gradient(155deg,#fffaf3f7,#ffece7f4);border-radius:26px;box-shadow:0 20px 65px #774d5430;backdrop-filter:blur(10px);display:flex;flex-direction:column}.form-top-icon{font:30px/1 var(--serif);text-align:center;color:var(--accent)}.rsvp-form h3{font:500 31px/1.2 var(--serif);margin:5px 0 6px;text-align:center}.form-desc{font-size:11px;line-height:1.65;color:#876b70;text-align:center;margin:0 0 12px}.rsvp-form label{font-size:11px;font-weight:700;letter-spacing:.015em;margin:8px 0 5px}.rsvp-form label span{font-weight:400;color:#ab9192}.rsvp-form input,.rsvp-form select,.rsvp-form textarea{width:100%;min-height:39px;background:#fffdf8dd;border:1px solid #ecd3cc;border-radius:11px;padding:10px 12px;outline-color:#c78f93;color:var(--ink);font-size:12px;resize:vertical}.rsvp-form textarea{min-height:60px}.rsvp-form input::placeholder,.rsvp-form textarea::placeholder{color:#b19b9b}.main-button{border:0;border-radius:99px;min-height:51px;background:linear-gradient(120deg,#b5636d,#cb868a);color:white;padding:12px 22px;box-shadow:0 12px 24px #9a5f6835;font-size:12px;font-weight:700;letter-spacing:.045em;display:inline-flex;align-items:center;justify-content:center;gap:18px;transition:filter .2s,transform .2s}.main-button:hover{transform:translateY(-2px);filter:brightness(1.04)}.main-button span:last-child{font-size:20px;font-weight:400}.form-submit{margin-top:15px;min-height:43px}.form-footnote{font-size:9px;color:#9b8083;text-align:center;line-height:1.5;margin:9px 0 0}
/* cover */
.intro{position:fixed;z-index:400;inset:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(180deg,#d6d8f0,#f8dad6 62%,#e5dec9);transition:opacity .85s cubic-bezier(.2,.7,.2,1),visibility .85s}.intro.is-gone{opacity:0;visibility:hidden;pointer-events:none}.intro-bg{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%,#fff9eeaf,transparent 55%)}.intro-cloud{position:absolute;width:min(85vw,730px);top:8%;left:50%;transform:translateX(-50%);opacity:.6}.intro-arch{position:absolute;width:min(64vw,650px);left:50%;top:49%;transform:translate(-50%,-50%);filter:drop-shadow(0 20px 30px #b9858229)}.intro-flowers{position:absolute;width:min(38vw,530px);bottom:-8%;pointer-events:none}.intro-flowers--left{left:-5%}.intro-flowers--right{right:-4%}.intro-content{position:relative;z-index:5;text-align:center;padding:20px;width:min(92vw,580px);margin-top:2vh}.intro .eyebrow{color:#846473}.intro-rule{font:24px var(--serif);margin:10px 0 0;color:#b48686}.intro h1{font:500 clamp(52px,7vw,90px)/1.08 var(--serif);letter-spacing:-.065em;margin:5px 0 13px;text-wrap:nowrap}.intro h1 span{font:400 1.28em/0.5 var(--script);color:#b67278;letter-spacing:0}.intro-date{font-size:clamp(12px,1.5vw,15px);font-weight:700;letter-spacing:.08em;margin:16px 0 5px}.intro-place{font-size:12px;letter-spacing:.08em;margin:0}.intro-guest{width:min(80%,300px);margin:30px auto 18px;padding:14px 10px;border-top:1px solid #a889897c;border-bottom:1px solid #a889897c}.intro-guest span{font-size:9px;letter-spacing:.2em;display:block;color:#8c6b76}.intro-guest strong{font:500 19px var(--serif);display:block;margin-top:7px}.intro-caption{margin:18px 0 0;font:italic 13px var(--serif);color:#8c6d70}
/* after-story closing */
.closing{height:78svh;min-height:440px;background:linear-gradient(#eee0d8,#faece6 65%,#e9d1c9);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;overflow:hidden;padding:50px 24px}.closing>img{position:absolute;width:min(70vw,580px);top:4%;left:50%;transform:translateX(-50%);opacity:.72}.closing>span{font-size:10px;letter-spacing:.27em;font-weight:700;color:#906771;z-index:1}.closing h2{position:relative;font:500 clamp(45px,8vw,88px)/1.3 var(--serif);letter-spacing:-.06em;margin:15px 0 0}.closing p{font-size:13px;letter-spacing:.1em;margin:3px}.closing-heart{font-size:29px;color:#c68892;margin:29px 0 39px}.closing small{font-size:10px;letter-spacing:.13em;color:#98777f}
.toast{position:fixed;z-index:500;left:50%;bottom:72px;transform:translate(-50%,22px);border-radius:12px;background:#674a51;color:#fff7f2;padding:12px 20px;font-size:12px;line-height:1.5;text-align:center;max-width:min(90vw,420px);box-shadow:0 12px 30px #523c3f38;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}.toast.visible{opacity:1;transform:translate(-50%,0)}
@media (max-width:800px){
 .topbar{padding:18px 16px}.brand-mark{width:38px;height:38px;font-size:15px}.brand-copy{font-size:8px;letter-spacing:.12em}.top-date{font-size:8px;letter-spacing:.1em}.top-date span{margin:0 4px}.chapter-nav{right:13px;gap:15px}.nav-dot{width:9px;height:9px}.nav-dot span{display:none}.chapter-indicator{left:16px;bottom:16px;font-size:14px}.scroll-hint{bottom:16px;gap:7px}.scroll-hint span{font-size:8px;letter-spacing:.15em}
 .img-sky{--y:40%;--w:190vw}.img-cloud-top{--x:71%;--y:19%;--w:43vw}.img-mountains{--y:75%;--w:170vw}.img-mosque{--y:74%;--w:91vw}.img-moon{--x:83%;--y:18%;--w:21vw}.img-portal{--y:62%;--w:145vw}.img-couple-back{--y:83%;--w:76vw}.img-branch-left{--x:-14%;--y:2%;--w:77vw}.img-bush-left{--x:-9%;--y:100%;--w:68vw}.img-bush-right{--x:108%;--y:101%;--w:69vw}.hero-copy{top:24%}.hero-copy h2{font-size:clamp(48px,12vw,76px);white-space:nowrap}.hero-copy .eyebrow{font-size:10px;letter-spacing:.23em}.scene-bottom-tag{bottom:10%;font-size:24px}
 .meet-copy{top:15%}.meet-copy h2{font-size:clamp(39px,10vw,55px)}.meet-copy p{max-width:280px;font-size:11px;line-height:1.55}.meet-sky{--w:195vw}.meet-hills{--y:80%;--w:180vw}.meet-gate{--y:68%;--w:139vw}.meet-couple{--y:81%;--w:90vw}.meet-flower-left{--x:-13%;--y:99%;--w:72vw}.meet-flower-right{--x:114%;--y:102%;--w:90vw}.meet-lantern-left{--x:13%;--y:50%;--w:15vw}.meet-lantern-right{--x:85%;--y:50%;--w:15vw}.name-label{bottom:13%;padding:10px 13px;min-width:91px;border-radius:13px}.name-label--left{left:5%}.name-label--right{right:5%}.name-label>span{font-size:7px}.name-label strong{font-size:30px}
 .event-copy{top:13%}.event-copy h2{font-size:clamp(41px,11vw,68px)}.event-date{font-size:11px!important}.event-sky{--w:185vw}.event-mosque{--y:65%;--w:98vw}.event-curtain{--y:63%;--w:155vw}.event-platform{--y:91%;--w:113vw}.event-seated{--y:86%;--w:65vw}.event-bouquet{--y:104%;--w:185vw}.event-cards{top:45%;width:94vw;gap:7px}.event-card{width:42vw;min-width:0;padding:15px 7px 16px;border-radius:18px}.event-card .card-icon{font-size:21px}.event-card h3{font-size:19px;margin:5px 0 8px}.event-card p{font-size:10px}.event-card small{font-size:9px;padding:5px 7px}
 .venue-copy{top:18%}.venue-copy h2{font-size:clamp(38px,9vw,60px)}.venue-sky{--w:190vw}.venue-mountains{--y:58%;--w:200vw}.venue-trees{--y:70%;--w:190vw}.venue-path{--y:70%;--w:113vw}.venue-lights{--x:50%;--y:43%;--w:95vw}.venue-bush-left{--x:-12%;--y:101%;--w:66vw}.venue-bush-right{--x:112%;--y:100%;--w:63vw}.venue-branch{--x:-20%;--y:6%;--w:86vw}.location-card{width:min(88vw,350px);left:50%;transform:translateX(-50%);bottom:11%;padding:15px 19px;text-align:center;border-radius:18px}.location-card h3{font-size:24px;margin:5px 0}.location-card p{font-size:11px;margin:4px 0 10px}.location-card-line{padding-top:9px}
 .rsvp-sky{--w:195vw}.rsvp-hills{--w:195vw}.rsvp-arch{--x:50%;--y:64%;--w:148vw}.rsvp-couple{--x:50%;--y:90%;--w:71vw;opacity:.55}.rsvp-flowers-left{--x:-15%;--y:101%;--w:72vw}.rsvp-flowers-right{--x:115%;--y:101%;--w:75vw}.rsvp-petals{--x:83%;--y:18%;--w:40vw}.rsvp-heading{left:50%;transform:translateX(-50%);top:12%;width:92%}.rsvp-heading h2{font-size:clamp(43px,10vw,64px);margin:7px 0 4px}.rsvp-heading p{font-size:11px;max-width:300px}.rsvp-form{top:30%;right:auto;left:50%;transform:translateX(-50%);width:min(89vw,410px);min-width:0;padding:15px 18px 14px;border-radius:20px}.rsvp-form h3{font-size:24px;margin:2px 0 4px}.form-top-icon{font-size:21px}.form-desc{font-size:10px;margin:0 0 5px}.rsvp-form label{font-size:10px;margin:7px 0 4px}.rsvp-form input,.rsvp-form select,.rsvp-form textarea{font-size:11px;min-height:35px;padding:8px 10px}.rsvp-form textarea{min-height:45px}.form-submit{min-height:38px;margin-top:10px;padding:8px 15px;font-size:11px}.form-footnote{font-size:8px;margin:6px 0 0}
 .intro-arch{width:148vw;top:49%}.intro-cloud{width:152vw;top:18%}.intro-flowers{width:65vw;bottom:-2%}.intro-flowers--left{left:-26%}.intro-flowers--right{right:-24%}.intro-content{margin-top:6vh}.intro h1{font-size:clamp(48px,12.4vw,75px)}.intro-date{font-size:12px}.intro-guest{margin:24px auto 17px}.intro-caption{font-size:11px}.intro .eyebrow{font-size:9px}
}
@media (max-width:380px){.top-date{display:none}.brand-copy{font-size:7px}.hero-copy h2{font-size:47px}.event-cards{top:43%}.event-card{padding:11px 4px}.event-card h3{font-size:17px}.rsvp-form{top:27%;padding:10px 14px}.rsvp-form h3{font-size:22px}.rsvp-form textarea{min-height:36px}.rsvp-heading{top:11%}}
@media (max-height:700px) and (max-width:800px){.hero-copy{top:20%}.meet-copy{top:13%}.event-copy{top:11%}.rsvp-heading{top:9%}.rsvp-form{top:25%;padding-top:10px;padding-bottom:10px}.rsvp-form label{margin-top:4px}.rsvp-form textarea{min-height:38px}.form-submit{margin-top:6px}.intro-guest{margin:15px auto}.intro-arch{width:135vw}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.layer,.scene{will-change:auto}.stage-grain{display:none}}
body.is-locked{overflow:hidden}
/* Smooth the generated landscape-sheet boundaries into the scene gradients. */
.img-sky,.meet-sky,.event-sky,.venue-sky,.rsvp-sky{
  -webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 16%,#000 61%,transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 0%,#000 16%,#000 61%,transparent 100%);
}
.img-mountains,.meet-hills,.venue-mountains,.venue-trees,.rsvp-hills{
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 71%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 0%,#000 71%,transparent 100%);
}
@media(min-width:801px){
 .img-sky,.meet-sky,.event-sky,.venue-sky,.rsvp-sky{--w:max(128vw,1450px)}
}


/* revised for user feedback */
:root{--serif:'Cormorant Garamond',Georgia,serif;--script:'Parisienne','Brush Script MT',cursive}
.topbar,.chapter-indicator,.closing{display:none!important}
.nav-dot span{display:none!important}
.intro-content{margin-top:10vh}
.intro h1,.hero-copy h2{font-family:var(--script);font-weight:400;letter-spacing:.005em}
.intro h1 span,.hero-copy h2 em{font-family:var(--serif);font-size:.6em;color:#ad6d76}
.hero-copy{top:22%}
.hero-copy h2{font-size:clamp(64px,8vw,124px);margin:10px 0 8px}
.scene-copy h2,.rsvp-heading h2{font-family:var(--serif);font-weight:500}
.name-label strong{font-size:44px}
.img-branch-right{--x:102%;--y:4%;--w:min(42vw,610px);z-index:12}
.venue-branch{--x:98%;--y:4%;--w:min(38vw,560px);z-index:14}
.scene-bottom-tag{bottom:9%}
.location-card span,.eyebrow,.scene-small,.top-date,.brand-copy,.nav-dot span{text-transform:none}
@media(max-width:800px){
  .intro-content{margin-top:9vh}
  .hero-copy{top:24%}
  .hero-copy h2{font-size:clamp(58px,15vw,92px)}
  .img-branch-right{--x:120%;--y:5%;--w:84vw}
  .venue-branch{--x:116%;--y:6%;--w:86vw}
}
/* Revision 2 — a longer, directed garden journey. */
.journey{height:calc((var(--chapters) * 1.65 + .1) * 100svh)}
.stage{height:100svh}
.scene{transform-origin:50% 42%}
.chapter-nav{gap:12px}
.nav-dot{width:10px;height:10px}
.nav-dot::after{content:"";position:absolute;inset:-8px;border-radius:50%}
.scroll-hint{bottom:max(22px,env(safe-area-inset-bottom));opacity:0}
.intro{clip-path:inset(0);transition:clip-path .85s cubic-bezier(.76,0,.24,1) .65s,visibility 0s 1.5s}
.intro.is-opening{clip-path:inset(0 0 100% 0);pointer-events:none}
.intro.is-gone{visibility:hidden;opacity:1}
.intro-content{margin-top:0;transition:transform .8s cubic-bezier(.22,1,.36,1),opacity .65s,filter .7s}
.intro-bismillah{display:block;width:clamp(160px,21vw,245px);height:auto;margin:0 auto 27px;mix-blend-mode:multiply;opacity:.8;filter:sepia(.45)}
.intro-invitation{font:400 13px/1.8 var(--sans);letter-spacing:.13em;margin:0 0 18px;color:#785966}
.intro h1{font-size:clamp(60px,7.3vw,100px);margin:0 0 20px}
.intro-guest{margin:27px auto 22px}
.intro .main-button{min-width:186px;font-size:12px}
.intro .main-button span{font-size:12px;font-weight:700}
.intro-arch{transition:transform 1.4s cubic-bezier(.32,.01,.2,1),filter 1.4s;transform-origin:50% 55%}
.intro-flowers{transition:transform 1.4s cubic-bezier(.3,0,.2,1)}
.intro-cloud{transition:transform 1.6s,opacity 1.6s}
.intro.is-opening .intro-content{transform:translateY(-65px) scale(.94);opacity:0;filter:blur(5px)}
.intro.is-opening .intro-arch{transform:translate(-50%,-50%) scale(2.3);filter:blur(3px)}
.intro.is-opening .intro-flowers--left{transform:translate(-45%,20%) scale(1.2)}
.intro.is-opening .intro-flowers--right{transform:translate(45%,20%) scale(1.2)}
.intro.is-opening .intro-cloud{transform:translate(-50%,-25%);opacity:0}
.img-branch-right{--x:89%;--y:6%;--w:min(36vw,520px)}
.venue-branch{--x:92%;--y:5%;--w:min(33vw,500px)}
.hero-copy{top:18%}
.hero-copy h2{font-family:var(--script);font-size:clamp(66px,8vw,124px)}
.hero-copy .eyebrow{font-size:10px;letter-spacing:.2em}
.main-button span:last-child{font-size:inherit;font-weight:inherit}
.scene--promise{background:linear-gradient(#e0dcef,#f8e4dd 55%,#d5debd)}
.scene--date{background:linear-gradient(#e1dced,#f8e7df 50%,#e0d9bc)}
.scene--adab{background:linear-gradient(#e6dfed,#f8ece1 52%,#cdd7b9)}
.scene--thanks{background:linear-gradient(#dcd9ed,#f9dfd4 52%,#c1d0aa)}
.editorial-copy{position:absolute;z-index:30;width:min(84vw,540px);left:50%;top:16%;transform:translateX(-50%);text-align:center}
.editorial-copy h2{font:500 clamp(44px,5.6vw,78px)/1.08 var(--serif);letter-spacing:-.045em;margin:15px 0 24px}
.editorial-copy h2 em{font:400 1.16em/.7 var(--script);color:#ad6d76;letter-spacing:0}
.editorial-copy>p{font-size:13px;line-height:1.95;color:#765963;margin:14px auto;max-width:445px;text-wrap:pretty}
.fine-rule{height:1px;width:65px;background:#b7877b;margin:24px auto}
.signature{display:block;font:400 40px/1.3 var(--script);color:#9c6370;margin-top:22px}
.promise-copy{left:63%;top:20%;width:min(42vw,530px)}
.promise-letter{--x:23%;--y:66%;--w:min(38vw,500px);z-index:9;filter:drop-shadow(0 16px 18px #9d6d771a)}
.promise-branch{--x:88%;--y:7%;--w:35vw;z-index:12}
.promise-hills{--y:93%;--w:140vw;z-index:2;opacity:.65;mask-image:linear-gradient(#000 60%,transparent)}
.promise-clouds{--x:24%;--y:25%;--w:45vw;opacity:.6}
.date-copy{top:12%;width:min(88vw,640px)}
.date-copy h2{font-size:clamp(42px,5.5vw,76px)}
.date-display{display:flex;flex-direction:column;align-items:center;margin:22px 0 20px}
.date-display>span{font-size:10px;letter-spacing:.26em}
.date-display strong{font:400 clamp(80px,9vw,118px)/1.05 var(--serif);letter-spacing:-.06em;padding-right:7px}
.date-gate{--y:61%;--w:min(95vw,980px);opacity:.48}
.date-cloud{--y:28%;--w:80vw;opacity:.4}
.date-flowers{--y:108%;--w:120vw;z-index:15}
.countdown{display:flex;justify-content:center;gap:10px;margin:24px 0}
.countdown>div{width:72px;padding:13px 4px;background:#fff8efbd;border:1px solid #dcc0b6;border-radius:16px 16px 4px 4px}
.countdown strong{display:block;font:500 31px/1.1 var(--serif)}
.countdown span{display:block;font-size:7px;letter-spacing:.19em;margin-top:7px}
.text-button{display:inline-flex;gap:23px;align-items:center;color:#8b5964;text-decoration:none;border-bottom:1px solid #b58c8b;padding:8px 0;font-size:11px;letter-spacing:.04em}
.text-button span{font-size:18px}
/* The road is an orthographic top view. Only this ground plane is tilted. */
.garden-ground{position:absolute;inset:0;z-index:5;perspective:650px;perspective-origin:50% 57%;pointer-events:none;overflow:hidden}
.ground-plane{position:absolute;left:50%;top:67%;width:min(105vw,1200px);height:110svh;transform-origin:50% 0;transform:translateX(-50%) rotateX(var(--ground-tilt,66deg)) translateY(var(--ground-travel,0px));transform-style:preserve-3d;background:linear-gradient(90deg,transparent,#b5c9a682 12%,#b5c9a6 50%,#b5c9a682 88%,transparent)}
.ground-road{position:absolute;left:50%;top:0;transform:translateX(-50%);height:100%;width:60%;object-fit:fill;mask-image:linear-gradient(to bottom,transparent,#000 3%,#000 96%,transparent)}
.venue-house{--x:50%;--y:57%;--w:min(63vw,720px);z-index:7}
.venue-trees{--y:66%;--w:120vw;opacity:.65}
.venue-lights{--y:39%;opacity:.6}
.venue-copy{top:11%}
.location-card{bottom:9%;left:6%;width:min(31vw,355px)}
.adab-copy{top:16%;width:min(83vw,520px)}
.adab-copy h2{margin-bottom:16px}
.adab-hills{--y:93%;--w:145vw;opacity:.45}
.adab-branch{--x:94%;--y:10%;--w:42vw;z-index:12}
.adab-flowers{--x:4%;--y:102%;--w:45vw;z-index:13}
.adab-list{margin:28px auto 0;text-align:left;max-width:445px}
.adab-list>div{display:flex;gap:20px;padding:14px 0;border-top:1px solid #bda39566}
.adab-list>div>span{font:italic 23px var(--serif);color:#b07a83;padding-top:1px}
.adab-list h3{font:600 22px/1.2 var(--serif);margin:0 0 6px}
.adab-list p{font-size:11px;line-height:1.7;margin:0;color:#80666d}
.rsvp-form{max-height:calc(100svh - 100px);overflow-y:auto;overscroll-behavior:contain}
.form-footnote{font-size:10px}
.thanks-copy{top:10%;width:min(82vw,570px)}
.thanks-copy h2{margin-bottom:17px}
.thanks-copy p{max-width:470px;font-size:12px}
.thanks-copy .signature{font-size:46px;margin:16px 0 12px}
.thanks-date{font-size:8px;letter-spacing:.2em;display:block}
.thanks-hills{--y:69%;--w:130vw;opacity:.65}
.thanks-house{--x:50%;--y:68%;--w:min(61vw,710px);z-index:7}
.garden-ground--thanks .ground-plane{top:81%}
.thanks-couple{--x:50%;--y:91%;--w:min(24vw,275px);z-index:10}
.thanks-left{--x:4%;--y:102%;--w:37vw;z-index:15}
.thanks-right{--x:98%;--y:104%;--w:38vw;z-index:15}
.end-note{position:absolute;z-index:30;bottom:max(25px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);font:italic 13px var(--serif);white-space:nowrap;color:#684955}
.music-toggle{position:fixed;z-index:125;left:20px;bottom:max(20px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:9px;border:1px solid #b88d8e77;border-radius:25px;background:#fff7edf0;color:#885866;padding:10px 13px;box-shadow:0 5px 20px #67445415;opacity:0;visibility:hidden;transition:opacity .5s;backdrop-filter:blur(6px)}
.is-open .music-toggle{opacity:1;visibility:visible}
.music-label{font-size:9px;letter-spacing:.06em}
.music-bars{height:15px;display:flex;align-items:center;gap:3px}
.music-bars i{display:block;width:2px;height:4px;background:#a36575;border-radius:2px}
.is-playing .music-bars i{animation:music-wave .9s ease-in-out infinite alternate}
.is-playing .music-bars i:nth-child(2){animation-delay:-.3s}.is-playing .music-bars i:nth-child(3){animation-delay:-.7s}.is-playing .music-bars i:nth-child(4){animation-delay:-.5s}
@keyframes music-wave{to{height:15px}}
@media(max-width:800px){
 .intro-content{margin-top:0;padding:20px 12px;width:94vw}
 .intro-bismillah{width:190px;margin-bottom:25px}
 .intro-invitation{font-size:10px;letter-spacing:.12em;margin-bottom:19px}
 .intro h1{font-size:clamp(53px,14.5vw,85px);margin-bottom:20px}
 .intro-arch{width:155vw;top:52%}
 .intro-cloud{top:17%}
 .intro-guest{margin:25px auto 20px}
 .img-branch-right{--x:94%;--y:3%;--w:68vw}
 .venue-branch{--x:98%;--y:4%;--w:64vw}
 .hero-copy{top:23%}
 .chapter-nav{right:10px;gap:12px}
 .nav-dot{width:7px;height:7px}
 .editorial-copy{width:82vw}
 .editorial-copy h2{font-size:clamp(38px,10.7vw,62px);margin:13px 0 18px}
 .editorial-copy>p{font-size:11px;line-height:1.85}
 .editorial-copy .eyebrow{font-size:8px;letter-spacing:.2em}
 .promise-copy{top:15%;left:50%;width:81vw}
 .fine-rule{margin:20px auto}
 .promise-copy .signature{font-size:33px;margin-top:17px}
 .promise-letter{--x:50%;--y:82%;--w:53vw}
 .promise-hills{--w:200vw;--y:97%}
 .promise-branch{--x:102%;--y:4%;--w:65vw}
 .promise-clouds{--w:90vw;--y:20%}
 .date-copy{top:14%;width:86vw}
 .date-copy h2{font-size:clamp(37px,10vw,60px)}
 .date-gate{--w:150vw;--y:65%}
 .date-display{margin:22px 0 18px}
 .date-display strong{font-size:90px}
 .date-flowers{--w:200vw;--y:107%}
 .countdown{gap:7px;margin:22px 0}
 .countdown>div{width:62px;padding:12px 4px}
 .countdown strong{font-size:28px}
 .venue-copy{top:14%}
 .venue-house{--y:56%;--w:104vw}
 .venue-trees{--y:66%;--w:180vw}
 .ground-plane{top:66%;width:170vw;height:125svh}
 .location-card{left:50%;width:84vw;bottom:10%;padding:16px 18px}
 .location-card>span{font-size:8px}
 .venue-lights{--y:37%;--w:115vw}
 .adab-copy{top:15%;width:79vw}
 .adab-list{margin-top:25px}
 .adab-list>div{padding:14px 0;gap:15px}
 .adab-list h3{font-size:21px}
 .adab-list p{font-size:10px}
 .adab-branch{--x:107%;--y:4%;--w:66vw}
 .adab-flowers{--x:-9%;--y:103%;--w:75vw}
 .adab-hills{--w:210vw}
 .rsvp-heading{top:10%;width:85%}
 .rsvp-heading h2{font-size:47px}
 .rsvp-heading p{font-size:10px;max-width:270px}
 .rsvp-form{top:29%;width:84vw;max-height:calc(71svh - 65px);padding:17px 18px}
 .rsvp-form input,.rsvp-form select{min-height:38px;font-size:12px}
 .rsvp-form textarea{min-height:54px;font-size:12px}
 .rsvp-form label{margin-top:9px}
 .form-submit{min-height:42px}
 .form-footnote{font-size:8px}
 .thanks-copy{top:11%;width:79vw}
 .thanks-copy h2{font-size:51px;margin-bottom:14px}
 .thanks-copy>p{font-size:10px;line-height:1.8;margin:11px auto}
 .thanks-copy .signature{font-size:39px;margin:18px 0 12px}
 .thanks-date{font-size:7px;letter-spacing:.13em}
 .thanks-house{--y:69%;--w:104vw}
 .thanks-hills{--y:70%;--w:210vw}
 .thanks-couple{--y:89%;--w:51vw}
 .thanks-left{--x:-10%;--y:102%;--w:72vw}
 .thanks-right{--x:110%;--y:102%;--w:72vw}
 .garden-ground--thanks .ground-plane{top:82%}
 .end-note{bottom:31px;font-size:11px}
 .music-toggle{left:13px;bottom:max(13px,env(safe-area-inset-bottom));padding:11px}
 .music-label{display:none}
 .scroll-hint{bottom:max(16px,env(safe-area-inset-bottom))}
 .scroll-hint span{font-size:7px;letter-spacing:.17em}
}
@media(max-height:700px){
 .intro-bismillah{width:155px;margin-bottom:16px}
 .intro-invitation{margin-bottom:12px}
 .intro h1{margin-bottom:13px}
 .intro-guest{margin:17px auto}
 .promise-copy{top:11%}.promise-copy>p{font-size:10px}
 .promise-letter{--y:85%;--w:42vw}
 .date-copy{top:9%}.date-display{margin:15px 0}.date-display strong{font-size:71px}
 .countdown{margin:17px 0}.countdown>div{padding:9px 4px}
 .adab-copy{top:9%}.adab-list{margin-top:17px}.adab-list>div{padding:10px 0}
 .rsvp-heading{top:6%}.rsvp-form{top:27%;max-height:calc(73svh - 55px);padding:12px 16px}
 .rsvp-form label{margin-top:5px}.form-desc{display:none}
 .thanks-copy{top:7%}.thanks-copy h2{font-size:43px}.thanks-copy>p{font-size:9px}.thanks-copy .signature{margin:13px 0;font-size:34px}
}
@media(prefers-reduced-motion:reduce){
 .intro.is-opening{clip-path:inset(0 0 100% 0)}
 .music-bars i{animation:none!important}
 .scene{transform:none!important}.ground-plane{transform:translateX(-50%) rotateX(66deg)}
}
.hero-copy h2[tabindex="-1"]:focus{outline:none}
html{scrollbar-width:none}html::-webkit-scrollbar{display:none}
.garden-ground{perspective:1600px}
@media(max-width:800px){
 .hero-copy h2{font-size:clamp(49px,13vw,70px)}
 .img-branch-right{--x:68%;--y:9%;--w:70vw}
 .venue-branch{--x:74%;--y:7%;--w:65vw}
 .event-copy h2{font-size:clamp(35px,9.8vw,57px)}
}
/* Keep keyboard focus from scrolling the clipped camera canvas internally. */
.stage,.scene{overflow:clip}
.end-note{padding:8px 16px;border:1px solid #d8bbb08c;border-radius:20px;background:#fff7edeb;bottom:16px;box-shadow:0 3px 14px #79575a0d}

/* Revision 3: open space, arched stationery, and one anchored garden world. */
.intro-bismillah{
 position:absolute;z-index:6;top:max(5svh,env(safe-area-inset-top));left:50%;
 transform:translateX(-50%);width:clamp(270px,30vw,365px);margin:0;
 transition:transform .8s ease,opacity .6s;opacity:.86;
}
.intro-content{margin-top:9svh}
.intro.is-opening .intro-bismillah{transform:translate(-50%,-35px);opacity:0}
.hero-copy{top:11%}
.img-couple-back{--y:91%;--w:min(48vw,510px)}
.scene--meet{background:linear-gradient(#d7d9f4 0%,#f9e1db 46%,#c4d5b3 79%,#a8be91 100%)}
.meet-sky{--w:145vw;--y:38%}
.meet-hills{--w:160vw;--y:76%}
.meet-gate{--w:min(46vw,550px);--y:64%;z-index:5}
.meet-lawn{--x:50%;--y:98%;--w:min(130vw,1700px);z-index:3}
.meet-couple{--y:84%}
.name-label{
 padding:0;min-width:0;border:0;background:none;box-shadow:none;
 backdrop-filter:none;bottom:15%;text-shadow:0 2px 12px #fff8eddb;
}
.name-label strong{font-size:clamp(43px,4vw,60px)}
.name-label--left{left:20%}.name-label--right{right:20%}
.event-cards{align-items:stretch;gap:35px;top:46%}
.event-card{
 position:relative;isolation:isolate;width:clamp(190px,23vw,265px);
 padding:53px 16px 31px;border:1px solid #d1aaa0;
 border-radius:50% 50% 18px 18px / 31% 31% 12px 12px;
 background:linear-gradient(150deg,#fffaf0,#f7e6d9);
 box-shadow:0 14px 32px #80565b1f,0 2px 0 #d4b49f;
 backdrop-filter:none;
}
.event-card::before{content:"";position:absolute;inset:8px;border:1px solid #d9b8a2;opacity:.75;border-radius:inherit;pointer-events:none;z-index:-1}
.event-card h3{font-size:29px;margin:12px 0 15px}
.event-card h3::after{content:"";display:block;width:35px;height:1px;background:#c5a08f;margin:15px auto 0}
.event-card small{background:none;padding:8px 0 0;color:#98717a;font-size:10px;line-height:1.6}
.event-card p{font-size:12px}
.adab-list>div{gap:19px;align-items:center;padding:17px 0}
.adab-list>div>span.adab-icon{
 flex:0 0 48px;width:48px;height:48px;display:grid;place-items:center;
 padding:10px;border-radius:40% 48% 42% 48%;box-shadow:0 3px 0 #79615a0d;
}
.adab-icon img{width:100%;height:100%;display:block}
.adab-icon--heart-sprout{background:#af7e89}
.adab-icon--modest-dress{background:#8c9c7b}
.adab-icon--prayer-hands{background:#a08dba}
.adab-icon--plate{background:#bd9b6c}
.adab-copy{top:13%}
.music-toggle{
 left:auto;right:max(22px,env(safe-area-inset-right));bottom:auto;
 top:max(22px,calc(env(safe-area-inset-top) + 12px));padding:12px;
 width:43px;height:43px;justify-content:center;
}
.music-label{display:none}
.scroll-hint{bottom:max(20px,env(safe-area-inset-bottom));gap:0}
.scroll-hint i{font-size:25px;line-height:1}
/* A single horizon anchors both the upright house and the road's far edge.
   Only the entire scene camera moves: no independent scale/translation here.
   Road length 1100px * sin(58deg) = 933px, safely below perspective 2400px. */
.garden-world{--garden-horizon:75%;position:absolute;inset:0;z-index:5;pointer-events:none}
.garden-meadow{
 position:absolute;left:-15%;right:-15%;top:calc(var(--garden-horizon) - 10%);bottom:-20%;
 background:linear-gradient(180deg,#b8cba600,#b8cba6 27%,#a3bc91);
}
.garden-world .garden-ground{inset:0;perspective:2400px;perspective-origin:50% var(--garden-horizon);overflow:clip}
.garden-world .ground-plane{
 top:calc(var(--garden-horizon) - 5px);width:clamp(190px,29vw,370px);height:1100px;
 background:none;transform:translateX(-50%) rotateX(58deg);transform-origin:50% 0;
}
.garden-world .ground-road{top:0;width:100%;height:100%;object-fit:fill;mask-image:none}
.garden-house{
 position:absolute;z-index:7;left:50%;bottom:calc(100% - var(--garden-horizon));
 width:min(63vw,720px);height:auto;max-width:none;transform:translateX(-50%);
}
.thanks-world{--garden-horizon:83%}
.thanks-world .garden-house{width:min(58vw,660px)}
.location-card{top:43%;bottom:auto}
.venue-mountains{--y:66%;opacity:.72}
.venue-lights{--y:35%;opacity:.7}
@media(max-width:800px){
 .intro-bismillah{width:74vw;max-width:300px;top:max(5.5svh,env(safe-area-inset-top))}
 .intro-content{margin-top:10svh}
 .intro-arch{top:55%}
 .hero-copy{top:14%}
 .hero-copy h2{margin-bottom:12px}
 .img-couple-back{--w:100vw;--y:91%}
 .meet-sky{--w:230vw;--y:40%}
 .meet-hills{--w:220vw;--y:79%}
 .meet-gate{--w:94vw;--y:66%}
 .meet-lawn{--w:210vw;--y:99%}
 .meet-couple{--w:84vw;--y:86%}
 .meet-copy{top:13%;width:88vw}
 .meet-copy p{max-width:285px}
 .name-label{bottom:16%}
 .name-label strong{font-size:38px}
 .name-label--left{left:8%}.name-label--right{right:8%}
 .event-cards{top:44%;width:89vw;gap:13px}
 .event-card{width:calc((89vw - 13px)/2);padding:38px 8px 23px;border-radius:50% 50% 14px 14px / 28% 28% 10px 10px}
 .event-card::before{inset:6px}
 .event-card h3{font-size:23px;margin:10px 0 13px}
 .event-card h3::after{margin-top:12px;width:29px}
 .event-card p{font-size:10px}
 .event-card small{font-size:9px;max-width:115px;line-height:1.6}
 .adab-copy{top:13%;width:82vw}
 .adab-list>div{gap:14px;padding:16px 0}
 .adab-list>div>span.adab-icon{flex-basis:43px;width:43px;height:43px;padding:9px}
 .adab-list h3{font-size:20px}
 .adab-list p{font-size:10px}
 .music-toggle{left:auto;right:16px;top:max(16px,calc(env(safe-area-inset-top) + 10px));bottom:auto;width:39px;height:39px;padding:10px}
 .venue-world{--garden-horizon:77%}
 .garden-house{width:96vw}
 .garden-world .ground-plane{width:43vw;height:1100px}
 .venue-copy{top:12%}
 .venue-copy h2{font-size:clamp(36px,9.5vw,55px)}
 .venue-lights{--y:45%;--w:110vw;opacity:.55}
 .venue-mountains{--y:69%;--w:210vw}
 .location-card{top:28%;bottom:auto;left:50%;width:81vw;padding:15px 18px;background:#fff8eef0;box-shadow:0 12px 30px #76575b12}
 .location-card h3{font-size:23px}
 .location-card p{font-size:10px}
 .location-card-line{font-size:10px}
 .thanks-world{--garden-horizon:83%}
 .thanks-world .garden-house{width:100vw}
 .thanks-copy{top:10%}
}
@media(max-height:700px) and (max-width:800px){
 .intro-bismillah{top:4svh;width:64vw;max-width:250px}
 .intro-content{margin-top:12svh}
 .hero-copy{top:12%}
 .adab-copy{top:8%}.adab-list{margin-top:15px}.adab-list>div{padding:11px 0}
 .event-card{padding-top:29px;padding-bottom:18px}
 .location-card{top:26%;padding:11px 15px}.location-card h3{font-size:21px}
 .location-card p{font-size:9px;margin:4px 0 7px}.location-card-line{padding-top:6px}
 .venue-world{--garden-horizon:80%}
}
@media(max-width:800px){
 .name-label{bottom:9%}
 .venue-bush-left{--x:0%;--y:103%;--w:60vw}
 .venue-bush-right{--x:100%;--y:103%;--w:60vw}
}
/* Exclude the disconnected top-left fragment in the original flower-bush sheet. */
img[src$="pink-flower-bush.webp"]{clip-path:polygon(0 46%,14% 46%,14% 0,100% 0,100% 100%,0 100%)}

/* Each tap or short swipe plays one complete camera transition. */
body.has-page-navigation{height:100svh;overflow:hidden;overscroll-behavior:none}
.has-page-navigation .journey{height:100svh;min-height:0;overscroll-behavior:none}
.has-page-navigation .stage{position:relative;height:100svh;touch-action:pan-y pinch-zoom}
.has-page-navigation .rsvp-form{touch-action:pan-y;scrollbar-width:thin}
.scene h2[tabindex="-1"]:focus{outline:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Venue stationery: translucent paper, arched shoulders and a quiet inner frame. */
.location-card{
 isolation:isolate;width:min(32vw,360px);padding:25px 26px 23px;
 border:1px solid #c9a596b3;border-radius:90px 90px 27px 27px / 43px 43px 27px 27px;
 background:linear-gradient(145deg,#fffaf0db,#fff2e8c9);
 box-shadow:0 16px 40px #75545c17,inset 0 1px 0 #fffdf4;
 -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);text-align:center;
}
.location-card::before{content:"";position:absolute;inset:7px;z-index:-1;border:1px solid #d8bda884;border-radius:inherit;pointer-events:none}
.location-ornament{display:flex;align-items:center;justify-content:center;gap:10px;color:#b58a78;margin:0 auto 11px}
.location-ornament i{width:30px;height:1px;background:linear-gradient(90deg,transparent,#c8a68c)}
.location-ornament i:last-child{transform:scaleX(-1)}
.location-ornament svg{width:18px;height:21px;display:block}
.location-card>.location-eyebrow{font-size:8px;letter-spacing:.2em;font-weight:600;color:#a07874}
.location-card h3{font:500 40px/1.06 var(--serif);letter-spacing:-.025em;margin:9px 0 6px;color:#704752}
.location-card>.location-province{font-size:8px;letter-spacing:.29em;font-weight:500;color:#9b7c71}
.location-card>p{font:400 11px/1.8 var(--sans);color:#886e70;margin:15px 0 18px;text-wrap:pretty}
.location-card-line{position:relative;border-top:0;padding-top:15px;font:500 10px/1.5 var(--sans);letter-spacing:.065em;color:#805d63}
.location-card-line::before{content:"";position:absolute;top:0;left:15%;right:15%;height:1px;background:linear-gradient(90deg,transparent,#c7a48e,transparent)}
.scene--venue>.layer,.scene--venue>.garden-world{filter:blur(1px)}
@media(max-width:800px){
 .location-card{top:28%;width:80vw;max-width:345px;padding:19px 22px 18px;border-radius:75px 75px 24px 24px / 34px 34px 24px 24px}
 .location-ornament{margin-bottom:9px;gap:9px}
 .location-ornament svg{width:16px;height:18px}
 .location-ornament i{width:25px}
 .location-card>.location-eyebrow{font-size:7px;letter-spacing:.19em}
 .location-card h3{font-size:34px;margin:7px 0 5px}
 .location-card>.location-province{font-size:7px;letter-spacing:.27em}
 .location-card>p{font-size:10px;line-height:1.75;margin:12px 0 13px}
 .location-card-line{font-size:9px;padding-top:12px}
}
@media(max-height:700px) and (max-width:800px){
 .location-card{top:26%;padding:15px 18px 14px}
 .location-ornament{margin-bottom:7px}.location-ornament svg{height:16px}
 .location-card h3{font-size:29px;margin:5px 0}
 .location-card>p{font-size:9px;margin:9px 0 10px}
 .location-card-line{padding-top:10px;font-size:8px}
}
