@import url('https://fonts.googleapis.com/css2?family=Aref+Ruqaa:wght@400;700&family=Amiri:ital,wght@0,400;0,700;1,400&family=Noto+Sans+Arabic:wght@300;400;500&display=swap');
:root{--ivory:#f3eee4;--ink:#504638;--gold:#aa864e;--light:#d4b881;--hold:0}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--ivory);font:14px 'Noto Sans Arabic',sans-serif;overflow-x:hidden}.ambient{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 15% 25%,#d9bd8640,transparent 55%),radial-gradient(ellipse at 90% 70%,#fffdf8b0,transparent 60%);z-index:-1}#dust{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:8}header,footer{display:flex;justify-content:space-between;align-items:center;padding:27px 6%;font-size:11px;color:#8b785b}header>span:first-child{font:24px Amiri,serif}.latin{font-family:serif;letter-spacing:3px;font-size:8px}main{position:relative}#entrance{text-align:center;min-height:calc(100svh - 145px);padding:5px 20px 35px}.overline{font-size:11px;font-weight:400;letter-spacing:.3px;color:var(--gold);margin:15px 0}h1,h2{font-family:Amiri,serif;font-weight:400;line-height:1.55;margin:8px 0}h1{font-size:clamp(40px,5vw,65px)}h2{font-size:clamp(42px,6vw,72px)}em{font-style:normal;color:var(--gold)}.invitation-line{font:18px Amiri;margin:6px 0 26px;color:#8b7961}.portal{width:min(77vw,330px);height:min(111vw,465px);position:relative;margin:22px auto 20px;border-radius:180px 180px 4px 4px;isolation:isolate;perspective:1000px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:pointer;box-shadow:0 0 0 1px #b4965f45,0 0 0 10px #fff9,0 0 0 11px #b4965f25,0 20px 65px #8a6c3e22}.portal:before{content:'';position:absolute;inset:-25px;border-radius:inherit;background:radial-gradient(ellipse,#e8c88730,transparent 68%);filter:blur(12px);z-index:-1}.door{position:absolute;inset:0;width:50%;background-image:url('/assets/palace-gate.png');background-size:200% 100%;backface-visibility:hidden;will-change:transform;transition:transform 2.3s cubic-bezier(.18,.7,.18,1),filter 2s;border:1px solid #c5a56930}.door-left{left:0;border-radius:180px 0 0 0;background-position:left center;transform-origin:left center}.door-right{right:0;border-radius:0 180px 0 0;background-position:right center;transform-origin:right center}.portal-light{position:absolute;inset:1px;border-radius:inherit;background:radial-gradient(ellipse at 50% 45%,#fff 0%,#fff7de 45%,#c6ab7950 100%);box-shadow:0 0 calc(12px + var(--hold)*50px) #eac97c66}.seam{position:absolute;top:3%;bottom:0;left:50%;width:1px;background:#fff4c6;box-shadow:0 0 10px #f9d88b;opacity:calc(.2 + var(--hold)*.8);pointer-events:none}.portal-touch{position:absolute;width:78px;height:78px;left:calc(50% - 39px);top:47%;display:grid;place-items:center;color:#ffedbf;filter:drop-shadow(0 0 9px #c2973d)}.portal-touch svg{position:absolute;inset:0;fill:none;stroke:#fff0c5;transform:rotate(-90deg);stroke-width:1}.track{opacity:.3}.ring{stroke-dasharray:264;stroke-dashoffset:calc(264*(1 - var(--hold)));filter:drop-shadow(0 0 3px #fff)}.portal-touch span{font-size:23px}.portal-caption{position:absolute;bottom:22px;left:0;right:0;font:16px Amiri;color:#fff2d3;text-shadow:0 1px 10px #513b1e}.hold-hint{font:21px Amiri;margin:24px 0 0}.small-note{font-size:10px;color:#9e8b70;margin:6px 0}.edition{display:block;font-size:9px;color:#ad9f8c;margin-top:23px}.unsealing .door-left{transform:rotateY(-105deg);filter:brightness(1.25)}.unsealing .door-right{transform:rotateY(105deg);filter:brightness(1.25)}.unsealing .portal-touch,.unsealing .portal-caption,.unsealing .seam{opacity:0;transition:opacity .45s}.unsealing .portal-light{box-shadow:0 0 100px 50px #fff7d5;transition:box-shadow 1.5s}.chapter{position:relative;min-height:100svh;text-align:center;padding:115px 30px;display:flex;flex-direction:column;align-items:center;justify-content:center;scroll-margin-top:35px;max-width:1000px;margin:auto}.chapter-number{position:absolute;top:45px;left:0;right:0;font-size:9px;letter-spacing:2px;color:#aa9778}.chapter:before{content:'';position:absolute;inset:85px 6% 55px;border:1px solid #b89c6333;border-radius:300px 300px 0 0;pointer-events:none}.body-copy{font:21px/2.1 Amiri;color:#8b7964;margin-top:28px}.scroll-hint{position:absolute;bottom:60px;text-decoration:none;color:var(--gold);font:30px Amiri}.names{display:flex;flex-direction:column;align-items:center;font:clamp(46px,7vw,76px)/1.6 Amiri;color:var(--gold);margin:28px auto}.names i{font:italic 34px Georgia;color:#bba985;margin:5px}.placeholder{font-size:10px;color:#b5a58e;line-height:2}.petal-line{color:#b9a176;margin:40px auto 0}.icon{width:30px;height:30px;color:var(--gold);margin:auto;display:block}.date-medallion{margin:35px auto 0;display:flex;align-items:center;flex-direction:column;gap:18px;border-block:1px solid #b89c6340;padding:30px 25px;min-width:240px;font:19px Amiri}.date-medallion strong{font:32px Amiri;color:var(--gold)}.closing{margin-top:100px}.closing>p{font:23px Amiri;color:#9e8b6d}.quiet-button{border:0;border-bottom:1px solid #b49a6e55;background:none;color:#9d8259;padding:12px 20px;font:17px Amiri;cursor:pointer;margin-top:30px;min-height:44px}.reveal{opacity:0;transform:translateY(25px);filter:blur(6px);transition:opacity 1.3s,transform 1.5s cubic-bezier(.16,1,.3,1),filter 1.3s}.reveal.visible{opacity:1;transform:none;filter:none}nav{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:10;width:min(80%,450px);display:flex;align-items:center;gap:20px;padding:13px 23px;background:#fffaf0d9;border:1px solid #d2bd9544;border-radius:99px;backdrop-filter:blur(15px);font:16px Amiri;color:#9f8354}.progress-track{height:1px;background:#d4c6ab;flex:1}#progress{height:100%;width:0;background:var(--gold)}footer{padding-bottom:30px;font-size:9px}body.entered footer{padding-bottom:100px}body.entered header{position:absolute;top:0;left:0;right:0;z-index:5}.nav-flower{font-size:13px}#status{text-align:center;color:var(--gold)}[hidden]{display:none!important}:focus-visible{outline:2px solid #aa864e;outline-offset:7px}@media(min-width:800px){#entrance{padding-top:0}.portal{width:300px;height:415px}#entrance h1{font-size:53px}}@media(max-width:400px){header{padding:22px 25px}.portal{width:72vw;height:104vw}.latin{font-size:7px;letter-spacing:1.5px}.body-copy{font-size:19px}.chapter{padding-right:23px;padding-left:23px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.reveal{opacity:1;transform:none;filter:none}}
.door-left{right:auto}.door-right{left:auto}
/* Behind the doors: a real bridal scene, then a full-screen forward camera move. */
.portal{transform-style:preserve-3d}.bridal-world{position:absolute;inset:0;border-radius:inherit;overflow:hidden;background:#a99574;z-index:0}.bridal-world img{width:100%;height:100%;object-fit:cover;object-position:50% 60%;transform:scale(1);transition:transform 5s cubic-bezier(.15,.6,.2,1),filter 2s;filter:brightness(.6)}.door{z-index:2}.portal-touch,.portal-caption,.seam{z-index:3}.portal-light{z-index:0}.aisle-light{position:absolute;inset:0;background:linear-gradient(0deg,#d1ac4830,transparent 45%);mix-blend-mode:screen}.unsealing .bridal-world img{transform:scale(1.12);filter:brightness(1)}.unsealing .portal-light{box-shadow:0 0 55px 10px #d6b36e55}.cinema{position:fixed;inset:0;overflow:hidden;z-index:20;background:#75624c;pointer-events:none}.cinema-image{position:absolute;inset:0;background:url('/assets/bridal-hall-cinematic.png') center 58%/cover no-repeat;transform-origin:50% 50%;will-change:transform}.cinema-vignette{position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 20%,#21170e66 100%),linear-gradient(0deg,#21170e80,transparent 38%)}.cinema-caption{position:absolute;bottom:10%;left:25px;right:25px;text-align:center;font:clamp(25px,4vw,42px)/1.8 Amiri;color:#fff3d7;text-shadow:0 2px 25px #352515;animation:cinemaWords 4.8s ease both}@keyframes cinemaWords{0%,20%{opacity:0;transform:translateY(12px)}45%,90%{opacity:1;transform:none}100%{opacity:0}}@media(min-aspect-ratio:1/1){.cinema-image{background-size:cover;background-position:center 47%}}@media(prefers-reduced-motion:reduce){.bridal-world img{transform:none!important;filter:brightness(1)}.cinema{display:none!important}}
.header-signature{font:15px Amiri,serif;color:#a18b69}header>span:first-child{font-size:22px}#entrance h1{line-height:1.4}.invitation-line{max-width:360px;margin-left:auto;margin-right:auto}footer{gap:15px}footer>span:last-child{font-family:Amiri,serif;font-size:15px}@media(max-width:400px){header>span:first-child{font-size:19px}.header-signature{font-size:13px}footer{font-size:8px}footer>span:last-child{font-size:13px}}
/* A cinematic scene player replaces the long invitation page entirely. */
body.entered{overflow:hidden;background:#302517}body.entered>header,body.entered>footer{display:none}.film-stage{position:fixed;inset:0;z-index:2;color:#fff2d4;overflow:hidden;touch-action:none;perspective:1200px;background:#352619}.film-background{position:absolute;inset:-3%;background:url('/assets/bridal-hall-cinematic.png') center 56%/cover no-repeat;transform:scale(1.08);transition:transform 2s cubic-bezier(.16,.6,.2,1),filter 1.8s,background-position 2s;filter:brightness(.65)}.film-stage[data-view='1'] .film-background{transform:scale(1.24) translateX(-3%);filter:brightness(.48);background-position:48% 48%}.film-stage[data-view='2'] .film-background{transform:scale(1.38) translateX(3%);filter:brightness(.44);background-position:58% 60%}.film-stage[data-view='3'] .film-background{transform:scale(1.1);filter:brightness(.55)}.film-shade{position:absolute;inset:0;background:linear-gradient(0deg,#21170ff0,transparent 80%),linear-gradient(90deg,#21170f22,#21170f33);pointer-events:none}.film-grain{position:absolute;inset:18px;border:1px solid #e3c89130;pointer-events:none;z-index:3}.film-top{position:absolute;top:max(35px,env(safe-area-inset-top));left:35px;right:35px;display:flex;justify-content:space-between;font:16px Amiri;color:#dfc89d;z-index:4}.film-top>span:last-child{direction:ltr;font:11px Georgia;letter-spacing:2px}.film-shot{position:absolute;inset:0;padding:100px 8% 150px;display:flex;align-items:flex-end;justify-content:center;visibility:hidden;opacity:0;transform:translate3d(0,45px,-80px);filter:blur(9px);transition:opacity .85s,transform 1.2s cubic-bezier(.16,1,.3,1),filter 1s,visibility .85s;pointer-events:none}.film-shot.is-current{opacity:1;transform:translate3d(0,0,0);filter:blur(0);visibility:visible;pointer-events:auto}.shot-copy{width:min(100%,620px);text-align:right;position:relative}.film-eyebrow{color:#e0bf83;font-size:11px;letter-spacing:.6px;margin-bottom:25px}.film-shot h2{font-size:clamp(45px,7vw,82px);line-height:1.5;text-shadow:0 3px 30px #1c100c50}.film-shot h2 em{color:#e1bf7c}.film-copy{font:22px/2 Amiri;color:#e5d3b3;margin:25px 0}.signature{font:20px Amiri;color:#cfb991;margin-top:28px}.fine-rule{display:block;width:50px;height:1px;background:#e0bf8370;margin:22px 0}.gesture-hint{position:absolute;left:8%;bottom:140px;font:12px Amiri;color:#e7cfa1;writing-mode:vertical-rl;letter-spacing:1px}.gesture-hint span{font-size:23px;margin-top:15px}.couple-copy{text-align:center;align-self:center}.film-shot .bride-name{font-size:clamp(100px,18vw,180px);line-height:1.3;color:#f3dbab}.film-shot .groom-name{font-size:clamp(55px,9vw,95px);line-height:1.5}.couple-link{display:block;font:28px Amiri;color:#cbb184}.couple-copy .film-copy{font-size:19px}.couple-ornament{font-size:17px;color:#cfa968;margin-top:24px}.occasion-line{display:flex;gap:20px;align-items:center;margin-top:35px;padding:25px 0;border-top:1px solid #e5c99540}.film-icon{width:30px;height:30px;flex-shrink:0;color:#dab577}.occasion-line strong{font:28px Amiri;display:block}.occasion-line span{font:17px Amiri;color:#cdb99a;display:block;margin-top:8px}.venue-note{display:flex;align-items:center;gap:15px;font:22px Amiri;margin-top:30px;color:#d8c4a2}.film-replay{display:block;border:0;background:none;border-bottom:1px solid #bda17460;color:#c8af86;padding:12px 0;font:17px Amiri;margin-top:35px;cursor:pointer;min-height:44px}.film-navigation{position:fixed;bottom:max(30px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(86%,620px);z-index:12;background:none;border:0;border-radius:0;backdrop-filter:none;padding:12px 0;display:flex;align-items:center;justify-content:center;gap:22px;color:#e4cca0}.scene-arrow{background:none;border:1px solid #d3b47555;border-radius:50%;width:42px;height:42px;color:#f1dcb6;font:24px Amiri;cursor:pointer}.scene-arrow:disabled{opacity:.2;cursor:default}.scene-tabs{display:flex;gap:5px;align-items:center;direction:rtl}.scene-tabs button{width:36px;height:42px;padding:10px 3px;border:0;background:none;cursor:pointer}.scene-tabs button span{display:block;height:2px;width:100%;background:#e1bd7950;transition:background .5s,transform .5s}.scene-tabs button[aria-current] span{background:#ffe3a7;transform:scaleY(1.8);box-shadow:0 0 10px #d9ad5f55}.scene-label{position:absolute;top:-15px;left:0;right:0;text-align:center;font:14px Amiri;color:#c3ab82;pointer-events:none}body.entered #dust{z-index:7}.film-stage:focus-visible{outline:none}@media(min-width:800px){.film-shot{justify-content:flex-start;padding-right:13%;padding-left:13%}.couple-copy{text-align:center;width:55%;margin-left:auto}.film-background{background-position:center 47%}.film-shade{background:linear-gradient(90deg,#24170d33,#21170fe0),linear-gradient(0deg,#21170fcc,transparent)}.gesture-hint{left:10%}}@media(max-height:700px){.film-shot{padding-top:70px;padding-bottom:120px}.film-shot h2{font-size:42px}.film-shot .bride-name{font-size:85px}.film-copy{margin:15px 0;font-size:20px}.film-navigation{bottom:18px}.couple-copy .film-eyebrow{margin-bottom:8px}.couple-copy .film-copy{margin-top:10px}.couple-ornament{margin-top:10px}}@media(prefers-reduced-motion:reduce){.film-shot{transition:none;transform:none;filter:none}.film-background{transition:none}}
/* Quiet cinematic lighting; the original gate and scene player remain intact. */
.invitation-line,.wedding-signature{font-family:'Aref Ruqaa',Amiri!important;font-size:28px!important;line-height:1.9!important}.film-shot .bride-name,.film-shot .groom-name{font-family:'Aref Ruqaa',Amiri;font-weight:400;font-size:clamp(63px,9vw,108px);line-height:1.7;position:relative;margin:0;color:#f2ddb1;text-shadow:0 0 25px #d6ac5322}.couple-link{font:30px/1.4 'Aref Ruqaa',Amiri}.couple-copy{padding-top:12px}.film-shot h2{color:#f3e8d5}.film-shot h2 em{color:#d9c192}.film-copy{color:#e4d9c5}.film-eyebrow{font:16px/1.8 Amiri;letter-spacing:0;color:#d2b985}.shot-copy>*{transition:opacity 1.2s,transform 1.5s,filter 1.3s;opacity:0;transform:translateY(13px);filter:blur(4px)}.is-current .shot-copy>*{opacity:1;transform:none;filter:none;transition-delay:var(--copy-delay,0ms)}.cinematic-light{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:5;opacity:0;transition:opacity 2.4s;mix-blend-mode:screen}.unsealing .cinematic-light,.entered .cinematic-light{opacity:1}.spotlight{position:absolute;top:-20%;height:150%;width:53%;background:conic-gradient(from 167deg at 50% 0%,transparent 0deg,#f8e1af12 8deg,#f8e1af25 14deg,#f8e1af08 22deg,transparent 27deg);filter:blur(13px);transform-origin:50% 0%;left:-13%;transform:rotate(-18deg);animation:spotDrift 18s ease-in-out infinite alternate}.spotlight-right{left:auto;right:-30%;opacity:.45;transform:rotate(22deg);animation-delay:-9s}.spotlight-halo{position:absolute;inset:0;background:radial-gradient(ellipse at calc(38% + var(--light-x,0)*8%) calc(43% + var(--light-y,0)*5%),#e5c78a10,transparent 43%);transition:background-position .3s}.unsealing .spotlight{animation:spotArrival 2.6s ease-out both,spotDrift 18s 2.6s ease-in-out infinite alternate}@keyframes spotArrival{from{opacity:0;filter:blur(25px);transform:rotate(-35deg)}to{opacity:1;filter:blur(13px);transform:rotate(-18deg)}}@keyframes spotDrift{to{transform:rotate(-7deg)}}.cinema:after{content:'';position:absolute;inset:0;background:linear-gradient(115deg,transparent 20%,#ffe4ae20 35%,transparent 47%);filter:blur(15px);pointer-events:none;animation:cinemaSpot 4.8s ease both}@keyframes cinemaSpot{0%{opacity:0;transform:translateX(-12%)}35%{opacity:.8}100%{opacity:.3;transform:translateX(12%)}}.cinema-caption{font-family:'Aref Ruqaa',Amiri;font-size:clamp(35px,5vw,60px)}.couple-copy:after{content:'';position:absolute;inset:10% -5%;z-index:-1;background:radial-gradient(ellipse,#1b111b60,transparent 70%);pointer-events:none}.film-shot .groom-name,.film-shot .bride-name{background:linear-gradient(110deg,#d6bc8c 25%,#fff6df 43%,#d6bc8c 55%,#eddbb7 75%);background-size:250% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:nameSheen 9s ease-in-out infinite}.is-current .groom-name{animation-delay:.6s}.is-current .bride-name{animation-delay:1.2s}@keyframes nameSheen{0%,20%{background-position:100% 50%}65%,100%{background-position:0% 50%}}.occasion-line strong{font-size:25px;line-height:1.8}.fine-rule{background:#e0bf8340}.film-background{filter:brightness(.63) saturate(.8)}.film-shade{background:linear-gradient(0deg,#1b121ce6,transparent 90%),linear-gradient(90deg,#1b121c12,#1b121c4d)}@media(min-width:800px){.film-shade{background:linear-gradient(90deg,#1b121c08,#1b121cd9),linear-gradient(0deg,#1b121c88,transparent)}}@media(max-width:600px){.film-shot .bride-name,.film-shot .groom-name{font-size:68px;line-height:1.6}.wedding-signature{font-size:29px!important}.occasion-line strong{font-size:23px}.cinematic-light{opacity:.7}.shot-copy{padding-bottom:5px}}@media(max-height:700px){.film-shot .bride-name,.film-shot .groom-name{font-size:58px;line-height:1.5}.couple-copy .film-eyebrow{margin-bottom:12px}}@media(prefers-reduced-motion:reduce){.cinematic-light{display:none}.shot-copy>*{transition:none;filter:none;transform:none}.film-shot .groom-name,.film-shot .bride-name{animation:none;color:#f0deb9;background:none}.cinema:after{animation:none}}
/* One continuous photographic layer for entrance, opening move and every scene. */
body,body.entered{background:#281b21;color:#e9dcc5;min-height:100svh}.shared-background{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:-1;background:#281b21}.shared-photo{position:absolute;inset:0;background:url('/assets/bridal-hall-cinematic.png') center 56%/cover no-repeat;filter:brightness(.64) saturate(.8);transform:scale(1);will-change:transform}.shared-shade{position:absolute;inset:0;background:linear-gradient(0deg,#21151dd9,transparent 80%),linear-gradient(90deg,#21151d22,#21151d70)}.ambient{display:none}.film-stage,.cinema{background:transparent}.film-background,.film-shade,.cinema-image,.cinema-vignette,.cinema:after{display:none}.film-stage[data-view] .film-background{transform:none;filter:none}.cinema{z-index:1}header{position:absolute;inset:0 0 auto;justify-content:center;padding:22px;color:#cdb58d;pointer-events:none}header>span:first-child{font:15px Amiri}footer{display:none}#entrance{min-height:100svh;padding:70px 20px 40px;display:flex;align-items:center;justify-content:center;flex-direction:column}#entrance h1{font-size:clamp(45px,5vw,64px);margin:0 0 10px;color:#f2e6d1}#entrance h1 em{color:#dcc59a}#entrance .invitation-line{font:21px/1.8 Amiri!important;color:#d4c1a5;margin:0 0 17px;max-width:320px}#entrance .hold-hint{color:#e0cda9}.portal{box-shadow:0 0 0 1px #c7a97566,0 0 0 9px #301d2266,0 0 0 10px #c7a97526,0 20px 65px #130a1130}.cinematic-light{z-index:6;mix-blend-mode:screen;opacity:0}.center-spot{position:absolute;top:-28%;left:9%;width:82%;height:135%;transform-origin:50% 0;clip-path:polygon(48% 0,52% 0,100% 100%,0 100%);background:linear-gradient(180deg,#fff3cf70 0%,#efd7a53b 28%,#e3c48b0a 85%,transparent);filter:blur(23px);opacity:0}.center-pool{position:absolute;left:17%;right:17%;top:32%;height:48%;background:radial-gradient(ellipse,#f5dfa423,transparent 68%);filter:blur(24px);opacity:0}.unsealing .cinematic-light,.entered .cinematic-light{opacity:1}.unsealing .center-spot{animation:centralSpotOn 3.2s ease both}.unsealing .center-pool{animation:poolOn 3s .5s ease both}@keyframes centralSpotOn{0%{opacity:0;transform:scaleX(.35)}45%{opacity:.9}100%{opacity:.58;transform:scaleX(1)}}@keyframes poolOn{to{opacity:1}}.film-shot h2{background-image:linear-gradient(110deg,#e7d5b3 15%,#fff8e8 42%,#d6bc8c 60%,#f3e8d1 80%);background-size:260% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:textLightPass 7s ease-in-out infinite;text-shadow:0 0 23px #ead09a26,0 2px 15px #160b1299}.film-shot h2 em{color:inherit}.film-copy,.dinner-note{color:#f0e1c6;text-shadow:0 0 13px #e3c58935,0 2px 12px #180c16}.fine-rule{display:none}@keyframes textLightPass{0%,20%{background-position:100% 50%}70%,100%{background-position:0% 50%}}.occasion-copy{align-self:center}.occasion-copy h2{font-size:clamp(42px,5vw,62px);margin:0 0 22px}.editorial-date{display:flex;align-items:center;gap:27px;padding:15px 0 5px;direction:rtl}.date-number{font:100px/1.2 Amiri;color:#ecd5a4;direction:ltr;text-shadow:0 0 25px #d2ad6030}.date-words{display:flex;flex-direction:column;border-right:1px solid #c8a97566;padding-right:25px;text-align:right}.date-words strong{font:30px/1.7 Amiri;font-weight:400;color:#f1e1c3}.date-words>span{font:25px/1.7 Amiri;color:#ddc6a2}.hijri-date{font:19px/1.8 Amiri;color:#c7b497;margin:7px 0 20px}.countdown{width:fit-content;border-top:1px solid #d1b17b38;padding-top:17px;margin-top:20px;max-width:100%}.countdown>p{font:17px Amiri;color:#c4af8b;text-align:center;margin-bottom:10px}.countdown-units{display:flex;direction:ltr;gap:14px;align-items:flex-start;justify-content:center}.countdown-units>div{display:flex;flex-direction:column;align-items:center;min-width:44px}.countdown-units strong{font:34px/1.3 Amiri;font-weight:400;font-variant-numeric:tabular-nums;color:#e8d0a3;text-shadow:0 0 15px #e8ca8440}.countdown-units small{font:13px Amiri;color:#c3ad8b;margin-top:3px}.countdown-units b{font:25px/1.5 Amiri;font-weight:400;opacity:.5;color:#c4ab7c}.dinner-note{font:21px/1.8 Amiri;margin-top:22px}.welcome-copy .film-copy{margin-top:20px}@media(max-width:600px){#entrance{padding-top:60px}.portal{margin-top:20px}.center-spot{left:-20%;width:140%;top:-20%;height:120%;filter:blur(16px)}.occasion-copy h2{font-size:42px;margin-bottom:16px}.editorial-date{gap:20px}.date-number{font-size:81px}.date-words{padding-right:20px}.date-words strong{font-size:27px}.date-words>span{font-size:23px}.countdown-units{gap:11px}.countdown-units strong{font-size:30px}.countdown-units>div{min-width:37px}.countdown{margin-top:15px}.hijri-date{font-size:18px;margin-bottom:14px}.dinner-note{font-size:20px;margin-top:20px}}@media(max-height:740px){#entrance{padding-top:46px;padding-bottom:23px}.portal{width:240px;height:340px}#entrance h1{font-size:42px}#entrance .invitation-line{font-size:19px!important}.hold-hint{font-size:19px;margin-top:17px}.occasion-copy h2{font-size:35px;margin-bottom:8px}.editorial-date{padding-top:5px}.date-number{font-size:65px}.date-words strong{font-size:24px}.date-words>span{font-size:21px}.countdown{margin-top:10px;padding-top:12px}.countdown-units strong{font-size:28px}.hijri-date{margin:4px 0 10px}.dinner-note{font-size:18px;margin-top:12px}}@media(prefers-reduced-motion:reduce){.film-shot h2{background:none;color:#efddba;animation:none;text-shadow:none}.shared-photo{transform:none!important}.cinematic-light{display:none}}
/* Strongly defocused entrance; one image resolves smoothly as the doors open. */
.shared-photo{inset:-30px;filter:blur(19px) brightness(.57) saturate(.8);transition:filter 3.8s ease}.unsealing .shared-photo,.entered .shared-photo{filter:blur(0) brightness(.64) saturate(.8)}#entrance h1{margin-bottom:15px}.portal{transition:box-shadow .25s;box-shadow:0 0 0 1px #c7a97577,0 0 0 9px #301d2266,0 0 0 10px #c7a97526,0 0 calc(22px + var(--hold)*70px) #ebce8a55,0 0 calc(45px + var(--hold)*110px) #e1b96922}.portal:before{inset:-40px;filter:blur(24px);background:radial-gradient(ellipse,#f8d58a55,transparent 65%);opacity:calc(.4 + var(--hold)*.6)}.portal-touch{filter:drop-shadow(0 0 calc(10px + var(--hold)*16px) #fce5ab)}.unsealing .portal-light{box-shadow:0 0 80px 30px #f3d58b80}.opening-flash{position:fixed;inset:0;z-index:9;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 50% 50%,#ffedba65,transparent 65%)}.unsealing .opening-flash{animation:softOpeningFlash 1.8s ease-out both}@keyframes softOpeningFlash{0%{opacity:0}30%{opacity:.8}100%{opacity:0}}.center-spot{clip-path:none;top:-40%;left:-5%;width:110%;height:145%;background:radial-gradient(ellipse at 50% 0%,#fff8e1a0 0%,#ffebbb55 12%,#efd6a02b 33%,transparent 66%);mask-image:radial-gradient(ellipse at 50% 12%,#000 8%,#0009 45%,transparent 72%);filter:blur(42px)}.center-pool{background:radial-gradient(ellipse,#f7dfb52d,transparent 70%);filter:blur(35px)}@keyframes centralSpotOn{0%{opacity:0;transform:scaleX(.65);filter:blur(60px)}45%{opacity:.95}100%{opacity:.72;transform:scaleX(1);filter:blur(42px)}}.rising-mist{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:5;opacity:.45;transition:opacity 2s}.unsealing .rising-mist,.entered .rising-mist{opacity:1}.rising-mist i{position:absolute;left:-25%;width:150%;height:65%;bottom:-60%;background:radial-gradient(ellipse at 20% 75%,#dbd3c333,transparent 50%),radial-gradient(ellipse at 65% 70%,#eee2c72b,transparent 48%),radial-gradient(ellipse at 85% 80%,#c8becd26,transparent 48%);filter:blur(36px);animation:mistRise 20s linear infinite;opacity:0}.rising-mist i:nth-child(2){animation-delay:-7s;animation-duration:24s;left:-35%;transform:scaleX(-1)}.rising-mist i:nth-child(3){animation-delay:-14s;animation-duration:28s;left:-15%}@keyframes mistRise{0%{transform:translate3d(-3%,0,0) scale(1);opacity:0}18%{opacity:.75}55%{opacity:.35}100%{transform:translate3d(5%,-150%,0) scale(1.35);opacity:0}}@media(max-width:600px){.center-spot{left:-30%;width:160%;top:-30%;height:140%;filter:blur(36px)}.rising-mist i{filter:blur(28px);height:60%}}@media(prefers-reduced-motion:reduce){.shared-photo{transition:none}.opening-flash,.rising-mist{display:none}.portal{transition:none}}
/* A final quiet scene, reached after the venue, with a soft focus pull. */
.ending .shared-photo{filter:blur(20px) brightness(.48) saturate(.7);transition:filter 1.8s ease}.closing-shot,.closing-shot.is-current{align-items:center;justify-content:center;padding:80px 28px}.closing-copy{width:min(100%,650px);text-align:center;align-self:center;margin:0!important}.closing-shot h2{font-family:'Aref Ruqaa',Amiri;font-size:clamp(49px,6.5vw,80px);line-height:1.8;margin:18px 0 22px;text-shadow:0 0 30px #d8bd7550,0 0 65px #e8d4a320}.closing-shot h2 em{font-size:.92em}.closing-star{display:block;font:21px Amiri;color:#dfc593;filter:drop-shadow(0 0 12px #e3c48490)}.closing-subtitle{font:25px/1.9 Amiri;color:#e4d3b6;margin:10px 0 0;text-shadow:0 0 17px #d6b47638}.closing-copy .film-replay{margin:50px auto 0;font-size:18px;color:#cbb997;border-color:#baa27655}.closing-glow{position:absolute;inset:15% 4%;background:radial-gradient(ellipse,#d9b97517,transparent 65%);pointer-events:none;opacity:0;transition:opacity 2s}.closing-shot.is-current .closing-glow{opacity:1}.ending .film-top{opacity:0;transition:opacity .8s;pointer-events:none}.film-top{transition:opacity .8s}.ending .center-spot{opacity:.3!important}.ending .rising-mist{opacity:.5}.closing-copy>:nth-child(1){--copy-delay:250ms!important}.closing-copy>:nth-child(2){--copy-delay:550ms!important}.closing-copy>:nth-child(3){--copy-delay:1000ms!important}.closing-copy>:nth-child(4){--copy-delay:1500ms!important}@media(max-width:600px){.closing-shot h2{font-size:49px;line-height:1.9}.closing-subtitle{font-size:23px}.closing-copy .film-replay{margin-top:42px}.scene-tabs button{width:30px}.film-navigation{gap:18px}}@media(max-height:700px){.closing-shot h2{font-size:43px;margin:12px 0}.closing-copy .film-replay{margin-top:30px}.closing-subtitle{font-size:21px}}@media(prefers-reduced-motion:reduce){.ending .shared-photo{transition:none}.closing-glow,.film-top{transition:none}}
.closing-line{display:block;opacity:0;transform:translateY(10px);transition:opacity 1.3s ease,transform 1.6s ease}.is-current .closing-line{opacity:1;transform:none;transition-delay:.65s}.is-current .closing-line:nth-child(2){transition-delay:1.05s}@media(prefers-reduced-motion:reduce){.closing-line{transition:none;transform:none}}
/* Continuous opening: fade the gate while the same image advances underneath. */
.opening-transition .film-shot,.opening-transition .is-current .shot-copy>*{opacity:0!important;transform:translateY(18px);filter:blur(5px);transition:none!important}.film-navigation{transition:opacity 1s ease}.opening-transition .film-navigation{opacity:0;pointer-events:none}.welcome-line{display:block;opacity:0;transform:translateY(12px);filter:blur(4px);transition:opacity 1.25s ease,transform 1.6s cubic-bezier(.16,1,.3,1),filter 1.3s}.is-current .welcome-line{opacity:1;transform:none;filter:none;transition-delay:.2s}.is-current .welcome-line:nth-child(2){transition-delay:.5s}.opening-transition .welcome-line{opacity:0!important;transform:translateY(12px);filter:blur(4px);transition:none}.welcome-copy .film-copy{--copy-delay:850ms!important}.welcome-copy h2{--copy-delay:0ms!important}@media(prefers-reduced-motion:reduce){.welcome-line{transition:none;transform:none;filter:none}.film-navigation{transition:none}}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.sound-controls{position:fixed;top:max(78px,calc(env(safe-area-inset-top) + 65px));right:35px;z-index:30;display:flex;align-items:center;gap:10px;direction:rtl;padding:5px 10px;border:1px solid #d7bd8833;border-radius:30px;background:#261a235e;backdrop-filter:blur(10px);opacity:0;pointer-events:none;transition:opacity .8s}.unsealing .sound-controls,.entered .sound-controls{opacity:1;pointer-events:auto}.sound-controls button{display:grid;place-items:center;width:32px;height:32px;padding:5px;border:0;background:none;color:#d8c194;cursor:pointer}.sound-controls svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}.sound-controls button[aria-pressed=true] .sound-waves{opacity:.2}.sound-controls label{display:flex;align-items:center}.sound-controls input{width:70px;height:25px;accent-color:#cfb47f;cursor:pointer;margin:0;direction:ltr}.ending .sound-controls{top:32px}@media(max-width:600px){.sound-controls{right:28px;top:72px}.sound-controls input{width:60px}}
