:root{--paper:#fcf9f1;--ivory:#f5f0e6;--ink:#58482e;--gold:#947036;--line:#c5af7e;--stage:clamp(660px,150vw,840px)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:'Cormorant Garamond',Georgia,serif;min-width:280px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}button:focus-visible,a:focus-visible{outline:3px solid #755820;outline-offset:8px}main{position:relative;max-width:560px;margin:28px auto;box-shadow:0 15px 75px #58482e18;background:var(--paper);overflow:hidden}.ambient{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 12% 15%,#fffdf7,transparent 60%),radial-gradient(ellipse at 93% 92%,#d6c7a344,transparent 60%);z-index:-1}.cover{height:var(--stage);position:relative;isolation:isolate;text-align:center;overflow:hidden;background:var(--paper)}.door{position:absolute;top:0;bottom:0;width:50%;background-image:url('arch.jpg');background-size:200% 100%;transition:transform 1.9s cubic-bezier(.65,0,.25,1);z-index:-1}.door-left{left:0;background-position:left;border-right:1px solid #ad8d5555}.door-right{right:0;background-position:right;border-left:1px solid #ad8d5555}.door:after{content:'';position:absolute;inset:22px 12px;border:1px solid #bca36c33;pointer-events:none}.cover-copy{position:absolute;left:10%;right:10%;top:29%;transition:opacity .55s}.eyebrow,.cover-date,.month,.hero-date{font-family:Manrope,sans-serif;font-weight:400;letter-spacing:.2em;font-size:12px}.cover-copy .eyebrow{font-size:10px;letter-spacing:.15em}.small-script{font-style:italic;font-size:20px;line-height:1.5}.cover-copy .small-script{margin:18px 0 10px}.cover h1{font-weight:400;font-size:57px;line-height:1;margin:0;color:#826437;display:flex;flex-direction:column}.cover h1 span{font-style:italic;font-size:27px;line-height:1.4}.seal{position:absolute;left:50%;top:65%;transform:translate(-50%,-50%);width:76px;height:76px;border-radius:50%;border:3px double #c4a36b;background:radial-gradient(circle at 30% 25%,#ead6a4,#bb995c 62%,#9a773e);color:#725021;box-shadow:0 5px 10px #6e53294a,inset 0 0 0 5px #dec18b,inset 0 0 0 6px #ab874c;cursor:pointer;transition:opacity .4s,box-shadow .3s}.seal:hover{box-shadow:0 7px 18px #6e53296a,inset 0 0 0 5px #ead2a5,inset 0 0 0 6px #ab874c}.seal span{font-size:29px;text-shadow:0 1px #f5e1b9}.seal i{font-size:16px;padding:0 1px}.open-hint{position:absolute;top:72%;left:0;right:0;font-size:18px;font-style:italic;color:#7e6a49;transition:opacity .4s}.cover-date{position:absolute;top:80%;left:0;right:0;font-size:11px;transition:opacity .4s}.opening{position:absolute;inset:0 0 auto;z-index:5;background:transparent;pointer-events:none}.opening .door-left{transform:translateX(-101%)}.opening .door-right{transform:translateX(101%)}.opening .seal,.opening .cover-copy,.opening .open-hint,.opening .cover-date{opacity:0}.invitation[hidden],.cover[hidden]{display:none}.hero{position:relative;height:var(--stage);background:url('arch.jpg') center/100% 100% no-repeat;text-align:center}.hero-copy{position:absolute;inset:25% 13% auto;animation:reveal 2s ease both}.bismillah{font-family:Amiri,serif;font-size:27px;color:#896a34;line-height:1.7;margin:0 0 6px}.translation{font-family:Manrope,sans-serif;font-size:11px;line-height:1.7;color:#82735c;margin:0}.hero .small-script{font-size:18px;margin:25px 0 18px}.hero h2{display:flex;flex-direction:column;font-weight:400;font-size:72px;line-height:.93;letter-spacing:-.025em;margin:0;color:#7e6134;outline:none}.hero h2 span{font-style:italic;font-size:30px;line-height:1.6;color:#a7894d}.hero-invite{font-size:20px;line-height:1.4;margin:24px 0 20px}.hero-date{font-size:12px;letter-spacing:.22em}.scroll-cue{position:absolute;bottom:3.5%;left:0;right:0;color:#725a34;text-decoration:none;font-style:italic;font-size:17px}.scroll-cue span{display:block;font-style:normal;font-size:24px;line-height:1}.celebration{position:relative;padding:65px 30px 50px;text-align:center;background:linear-gradient(#fcf9f1,#f7f0e2)}.celebration:before,.celebration:after{content:'';position:absolute;inset:25px 22px;border:1px solid #b3935344;pointer-events:none}.celebration:after{inset:31px 28px;border-color:#b3935322}.ornament{color:var(--gold);font-size:28px;line-height:1;margin:0 0 30px}.celebration .eyebrow{font-size:10px}.welcome{font-size:32px;font-style:italic;line-height:1.3;margin:25px 0}.fine-rule{width:42px;height:1px;background:var(--line);margin:28px auto}.invite-copy{font-size:20px;line-height:1.5;margin:25px 0}.date-block{display:flex;align-items:center;justify-content:center;gap:25px;margin:35px 0}.date-line{width:50px;height:1px;background:var(--line)}.month{font-size:12px}.day{display:block;font-size:75px;line-height:1.1;margin-top:8px;color:#79613a}.venue-label{margin:0 0 10px}.venue{font-size:48px;font-weight:400;margin:0}.restaurant{font-size:21px;margin:2px 0 0;font-style:italic}.blessing{font-size:21px;font-style:italic;line-height:1.5;margin:0 0 30px}footer{text-align:center;padding:24px 20px 38px;background:#f7f0e2}.closing{font-size:21px;font-style:italic;line-height:1.6;margin:0 0 20px}.closing span{font-size:32px}.replay{background:none;border:0;border-bottom:1px solid #bba476;color:#796849;padding:10px 0;font-family:Manrope,sans-serif;font-size:12px;cursor:pointer}.replay span{margin-right:7px;font-size:17px}@keyframes reveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){main{margin:0 auto}.cover h1{font-size:52px}.hero-copy{left:12%;right:12%;top:24%}.bismillah{font-size:23px}.hero h2{font-size:62px}.hero .small-script{font-size:16px;margin:20px 0 16px}.hero-invite{font-size:19px;margin:20px 0 18px}.translation{font-size:10px}.cover-copy .eyebrow{font-size:9px}.welcome{font-size:29px}}@media(max-width:360px){.bismillah{font-size:21px}.hero h2{font-size:56px}.hero-copy{left:10%;right:10%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
/* A short, gentle cue draws attention to the opening control. */
.cover{cursor:pointer}
.seal:before,.seal:after{content:'';position:absolute;inset:-9px;padding:3px;border-radius:50%;pointer-events:none;background:conic-gradient(from 0deg,transparent 0deg,#d9581822 85deg,#e96724 195deg,#ffae38 275deg,#fff0ad 325deg,transparent 360deg);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;animation:seal-fire-orbit 2.8s linear infinite}
.seal:before{inset:-12px;padding:8px;opacity:.4;filter:blur(4px)}
@keyframes seal-fire-orbit{to{transform:rotate(360deg)}}
.seal:after{inset:-8px;padding:3px;background:conic-gradient(#ffa600,#ffe77a 12deg,#ff7900 35deg,#df430099 70deg,#ffab0b 100deg,#ffe270 112deg,#ef5900 145deg,#d43d0066 180deg,#ff9800 220deg,#fff09a 235deg,#f45f00 260deg,#d9360077 295deg,#ffa600);filter:url('#seal-flame') drop-shadow(0 -2px 1.5px #ff8518aa);animation:seal-fire-orbit 5.7s linear infinite,seal-fire-flicker .37s ease-in-out infinite alternate}
.seal:before{inset:-11px;padding:5px;background:conic-gradient(#ee500077,#ffa71988,transparent,#ff681699,#ffb52d77,transparent,#ee500077);filter:url('#seal-flame') blur(1.8px);animation:seal-fire-orbit 8s linear infinite reverse,seal-fire-flicker .61s ease-in-out infinite alternate;opacity:.45}
@keyframes seal-fire-flicker{0%{opacity:.65;border-radius:48% 52% 49% 51%}37%{opacity:.95;border-radius:51% 48% 52% 49%}70%{opacity:.78}100%{opacity:1;border-radius:49% 51% 48% 52%}}
@media(prefers-reduced-motion:reduce){.seal:before{display:none}.seal:after{filter:none;animation:none;opacity:.7}}
.cover.opening .seal:before,.cover.opening .seal:after{animation:none;opacity:0}
.cover .open-hint{max-width:280px;font-style:normal;font-size:17px;line-height:1.4;color:#69512d}
/* Keep the seal after the names in document flow, including Safari text resizing. */
.cover{display:flex;flex-direction:column;align-items:center;height:auto;min-height:var(--stage);padding:calc(var(--stage) * .27) 10% 80px}
.cover-copy{position:relative;inset:auto;width:100%;flex:none}
.seal{position:relative;inset:auto;transform:none;flex:none;margin:28px 0 0}
.open-hint{position:relative;inset:auto;margin:20px 0 0;flex:none}
.cover-date{position:relative;inset:auto;margin:24px 0 0;flex:none}
.languages{position:fixed;z-index:20;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));display:flex;gap:2px;padding:4px;border:1px solid #b99a6455;border-radius:24px;background:#fcf9f1f5;box-shadow:0 2px 12px #58482e12}
.languages button{border:0;background:transparent;border-radius:20px;min-width:40px;min-height:36px;padding:7px;color:#786039;font-family:Manrope,sans-serif;font-size:12px;cursor:pointer}
.languages button[aria-pressed=true]{background:#876a38;color:#fffaf0}
.translation,.hero-invite,.welcome,.invite-copy,.blessing{white-space:pre-line}
.hero{height:auto;min-height:var(--stage);display:flex;flex-direction:column;align-items:center;padding:calc(var(--stage) * .24) 13% 24px}
.hero-copy{position:relative;inset:auto;width:100%}
.scroll-cue{position:relative;inset:auto;margin-top:auto;padding-top:28px}
html[lang=ru] .open-hint,html[lang=uz] .open-hint{font-size:17px}
@media(max-width:600px){.hero-copy{inset:auto}.hero{padding-left:12%;padding-right:12%}.languages{top:max(10px,env(safe-area-inset-top));right:10px}}
.sound-toggle{position:fixed;z-index:20;top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));display:flex;align-items:center;gap:6px;min-height:46px;padding:8px 12px;border:1px solid #b99a6455;border-radius:24px;background:#fcf9f1f5;color:#786039;font-family:Manrope,sans-serif;font-size:11px;box-shadow:0 2px 12px #58482e12;cursor:pointer}.sound-toggle>span:first-child{font-size:20px}.sound-toggle[aria-pressed=true]{color:#624a22}@media(max-width:600px){.sound-toggle{top:max(10px,env(safe-area-inset-top));left:10px}}

.event-time{font-family:Manrope,sans-serif;font-size:22px;letter-spacing:.08em;margin:-15px 0 34px;color:#79613a}
.venue a{color:inherit;text-decoration:none}.venue a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.map-link{position:relative;display:inline-block;max-width:100%;margin-top:20px;padding:12px 18px;border:1px solid #b69a63;border-radius:24px;color:#6d522b;background:#fffaf0;font-family:Manrope,sans-serif;font-size:14px;line-height:1.5;text-decoration:none}
.map-link:hover{background:#f1e5cb}
.scroll-cue{font-family:Manrope,sans-serif;font-style:normal;font-size:14px;font-weight:500;line-height:1.5;color:#6d522b;text-decoration:underline;text-underline-offset:4px;padding-top:24px}
.scroll-cue span{margin-top:6px;font-size:28px;animation:scroll-nudge 1.8s ease-in-out 4}
@keyframes scroll-nudge{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
/* Use a pixel height captured at entry; in-app browser toolbar resizes must not stretch artwork. */
@media(max-width:600px){
  :root{--stage:var(--locked-stage, max(660px,100vh))}
  html,body{min-height:100%;background:var(--ivory)}
  main{min-height:var(--stage);background:var(--paper)}
  .cover,.hero{min-height:var(--stage)}
  .ambient{display:none}
}

/* Automatic opening and clearly separated event details. */
.cover{cursor:default}
.seal-display{cursor:default}
.seal-display:hover{box-shadow:0 5px 10px #6e53294a,inset 0 0 0 5px #dec18b,inset 0 0 0 6px #ab874c}
.seal-display:before,.seal-display:after{display:none}
.open-hint{font-family:Manrope,sans-serif;font-style:normal;font-size:13px;letter-spacing:.04em}
.open-hint:after{content:'';display:inline-block;width:1.5em;text-align:left;animation:opening-dots 1.2s steps(4,end) infinite}
@keyframes opening-dots{0%{content:''}25%{content:'.'}50%{content:'..'}75%,100%{content:'...'}}

.celebration{padding:30px 22px;background:linear-gradient(180deg,#fcf9f1 0%,#f7f0e2 100%)}
.celebration:before{inset:18px 14px;border-color:#b3935350}
.celebration:after{inset:24px 20px;border-color:#b3935325}
.detail-section{position:relative;margin:0;padding:58px 26px;border-bottom:1px solid #c5af7e66}
.detail-section:last-child{border-bottom:0}
.intro-section{padding-top:48px}
.intro-section .ornament{margin-bottom:26px}
.section-kicker{margin:0 0 26px;font-family:Manrope,sans-serif;font-size:10px;font-weight:500;letter-spacing:.24em;color:#806538}
.welcome{margin:22px 0 0}
.invite-copy{max-width:390px;margin:34px auto 0;padding-top:30px;border-top:1px solid #c5af7e66}

.schedule-section{background:linear-gradient(90deg,transparent,#fffaf080,transparent)}
.schedule-section .date-block{margin:4px 0 16px}
.schedule-section .day{font-size:82px}
.event-time{display:inline-block;margin:0;padding:10px 22px;border-top:1px solid #c5af7e;border-bottom:1px solid #c5af7e;font-size:24px;letter-spacing:.13em;color:#72582e}

.venue-section{padding-top:56px;padding-bottom:60px}
.venue-section .venue{line-height:1}
.venue-section .restaurant{margin-top:8px}
.map-actions{display:flex;flex-direction:column;align-items:stretch;gap:12px;max-width:310px;margin:30px auto 0}
.map-actions .map-link{display:block;width:100%;margin:0;padding:13px 18px;border-radius:3px;font-size:12px;letter-spacing:.02em}
.map-actions .yandex-map{background:#8b6a35;color:#fffaf0;border-color:#8b6a35}
.map-actions .yandex-map:hover{background:#74572b}
.map-actions .google-map{background:#fffaf0}

.blessing-section{padding-top:52px;padding-bottom:45px}
.blessing-section .ornament{margin-bottom:26px}
.blessing-section .ornament-last{margin:28px 0 0}
.blessing-section .blessing{margin:0}

@media(max-width:600px){
  .celebration{padding:26px 16px}
  .celebration:before{inset:14px 10px}
  .celebration:after{inset:20px 16px}
  .detail-section{padding-left:18px;padding-right:18px}
  .welcome{font-size:28px}
  .schedule-section .day{font-size:76px}
}
@media(prefers-reduced-motion:reduce){.open-hint:after{animation:none;content:'...'}}

/* The cover now opens on its own, without an opening control or status copy. */
.cover{justify-content:flex-start;padding-top:calc(var(--stage) * .31)}
.cover-date{margin-top:42px}

/* Keep the translated scroll prompt readable above the floral artwork. */
.scroll-cue{z-index:4;max-width:min(100%,340px);margin-left:auto;margin-right:auto;padding:10px 20px 9px;border:1px solid #b99b6460;border-radius:16px;background:linear-gradient(120deg,#fffaf0f2,#f7eddef0);box-shadow:0 5px 18px #5d43251f;text-decoration:none;text-shadow:0 1px #fff;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.scroll-cue span{margin-top:1px;line-height:.85}
html[lang=ru] .scroll-cue,html[lang=uz] .scroll-cue{font-size:13px}

/* Fill the complete iPhone canvas, including the notch and dynamic browser bars. */
@media(max-width:600px){
  html,body{width:100%;min-height:100%;min-height:100dvh}
  main{width:100%;max-width:none;min-height:100dvh;margin:0;box-shadow:none}
  .cover,.hero{width:100%;min-height:var(--locked-stage,100svh);background-size:100% 100%}
}
