*{box-sizing:border-box}
:root{--paper:#f7f1e8;--paper2:#fffaf2;--ink:#49372f;--muted:#90796c;--wine:#7a343e;--gold:#b58b52;--line:#d8c5a7}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Cairo",sans-serif}
.is-hidden{display:none!important}
.opening{position:fixed;inset:0;z-index:20;display:grid;place-items:center;overflow:hidden;background:radial-gradient(ellipse at center,#fffaf2 0%,#efe2d1 72%,#e7d5c0 100%);transition:opacity .9s ease,visibility .9s ease}
.opening.is-opening{opacity:0;visibility:hidden;pointer-events:none}
.opening-glow{position:absolute;width:min(85vw,680px);aspect-ratio:1;border:1px solid #c8a97955;border-radius:50%;box-shadow:0 0 0 18px #c8a97912,0 0 0 38px #c8a9790b}
.opening-content{position:relative;z-index:2;text-align:center;padding:30px 20px}
.opening-kicker,.bismillah{font-family:"Amiri",serif;font-size:clamp(20px,4vw,28px);color:var(--wine)}
.wax-seal-wrap{margin:48px auto 22px;width:154px;height:154px;display:grid;place-items:center;border:1px solid #b58b5280;border-radius:50%;padding:10px}
.wax-seal{width:132px;height:132px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#f9e9d1;cursor:pointer;background:radial-gradient(circle at 35% 28%,#ad6570,#7a343e 55%,#57232d);box-shadow:inset 0 0 0 2px #d9b77b,inset 0 0 0 7px #7a343e,0 9px 24px #5c303333;outline:none;transition:transform .35s,filter .35s}
.wax-seal:hover{transform:scale(1.06) rotate(-3deg);filter:brightness(1.08)}
.seal-ornament{font-size:29px;line-height:1}
.seal-text{font-family:"Amiri",serif;font-size:22px;line-height:1.15;margin-top:3px}
.opening-hint{color:#806b5d;font-size:14px;letter-spacing:.2px}
.opening-bottom{margin-top:70px;color:#9a826e;font-size:12px}
.curtain{position:absolute;top:0;bottom:0;width:50%;background:linear-gradient(135deg,#77313c,#57232d);z-index:1;transition:transform 1.2s cubic-bezier(.7,0,.2,1)}
.curtain:after{content:"";position:absolute;inset:18px;border:1px solid #c8a97966}
.curtain-left{left:0}.curtain-right{right:0}
.opening.is-opening .curtain-left{transform:translateX(-105%)}
.opening.is-opening .curtain-right{transform:translateX(105%)}
.hero{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:50px 20px 30px;background:linear-gradient(#f8f2e9dd,#f8f2e9ee),url("assets/paper-texture.jpg") center/cover}
.hero-frame{position:relative;width:min(100%,760px);padding:55px 28px 45px;text-align:center;border:1px solid var(--line);outline:1px solid #d8c5a755;outline-offset:8px}
.ornament{color:var(--gold);font-size:25px;letter-spacing:8px}.ornament-top{margin-bottom:20px}.ornament-bottom{margin-top:24px}
.intro{font-family:"Amiri",serif;font-size:21px;color:var(--muted);margin:12px 0}
.event-label{color:var(--wine);font-size:15px;margin:25px 0 5px}
.hero h1{font-family:"Amiri",serif;font-weight:700;font-size:clamp(48px,10vw,82px);color:var(--wine);margin:0;line-height:1.3}
.hero h1 i{font-family:"Amiri",serif;font-style:normal;color:var(--gold);font-size:.7em;padding:0 12px}
.gold-line{display:flex;align-items:center;gap:12px;justify-content:center;color:var(--gold);margin:18px auto;width:min(250px,70%)}
.gold-line:before,.gold-line:after{content:"";height:1px;background:var(--line);flex:1}
.verse{font-family:"Amiri",serif;font-size:clamp(19px,3.6vw,25px);line-height:1.9;margin:20px auto 4px;max-width:610px;color:#59483d}
.verse-ref{font-size:12px;color:var(--muted);margin:0}
.scroll-cue{margin-top:35px;color:#9a826e;font-size:12px}.scroll-cue span{display:block;width:1px;height:28px;background:var(--gold);margin:0 auto 8px}
.section-wrap{padding:88px 20px;text-align:center;max-width:1000px;margin:auto}
.eyebrow{color:var(--gold);font-size:13px;letter-spacing:1px;margin:0 0 8px}
.section-wrap h2{font-family:"Amiri",serif;color:var(--wine);font-size:clamp(32px,6vw,44px);font-weight:700;margin:0 0 12px}
.section-note{color:var(--muted);font-size:14px;margin:0 auto 28px;max-width:600px}
.date-card{max-width:520px;margin:35px auto 28px;border:1px solid var(--line);background:#fffaf4;padding:25px 20px;box-shadow:0 12px 35px #6e49300c}
.date-top{color:var(--gold);font-size:13px}
.date-main{display:flex;align-items:center;justify-content:center;gap:18px;margin:12px 0;color:var(--wine);font-family:"Amiri",serif}
.date-main strong{font-size:66px;line-height:1;border-left:1px solid var(--line);border-right:1px solid var(--line);padding:0 22px}
.date-main span{font-size:19px}
.date-time{color:var(--muted);font-size:14px}
.countdown-wrap>p{font-size:14px;color:var(--muted)}
.countdown{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.countdown div{width:78px;padding:13px 5px;background:#efe4d6;border:1px solid #e0ceb7}
.countdown strong{display:block;font-size:25px;color:var(--wine);font-weight:700;font-variant-numeric:tabular-nums}
.countdown span{font-size:11px;color:var(--muted)}
.venue{background:#f0e6d9;max-width:none}
.venue-card{max-width:560px;margin:30px auto 0;padding:36px 20px;background:#fbf7f0;border:1px solid var(--line)}
.venue-icon{font-size:35px;color:var(--gold)}
.venue-card h3{font-family:"Amiri",serif;font-size:30px;color:var(--wine);margin:10px 0}
.venue-card p{color:var(--muted);font-size:14px}
.map-link{display:inline-block;margin-top:12px;color:var(--wine);text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:4px;font-size:13px}
.map-link span{padding-right:8px;color:var(--gold)}
.photo-grid{display:grid;grid-template-columns:1.2fr 1fr;grid-template-rows:180px 180px;gap:14px;max-width:720px;margin:30px auto}
.photo{margin:0;overflow:hidden;background:#e6d7c4;border:7px solid #fffaf3;box-shadow:0 7px 22px #4d332015}
.photo-large{grid-row:span 2}
.photo img{width:100%;height:100%;object-fit:cover;display:block}
.gallery-caption{font-family:"Amiri",serif;color:var(--muted);font-size:20px}
.message-section{max-width:none;background:#f0e6d9}
.message-form{max-width:520px;margin:30px auto 0;text-align:right;background:#fbf7f0;padding:28px;border:1px solid var(--line)}
.message-form label{display:block;color:#725c4e;font-size:13px;margin:0 0 7px}
.message-form input,.message-form textarea{width:100%;font:inherit;font-size:14px;border:1px solid #dfd0bc;background:#fffdf9;padding:12px 14px;margin-bottom:18px;color:var(--ink);outline:none;border-radius:0}
.message-form input:focus,.message-form textarea:focus{border-color:var(--gold)}
.message-form textarea{resize:vertical}
.message-form button{width:100%;border:0;background:var(--wine);color:#fff8ed;font:inherit;padding:13px;cursor:pointer;transition:background .2s}
.message-form button:hover{background:#602831}.message-form button:disabled{opacity:.6;cursor:wait}
.form-status{text-align:center;font-size:13px;min-height:20px;color:var(--wine);margin:12px 0 0}
.footer{padding:55px 20px 40px;text-align:center;background:#5c2932;color:#f8eee0}
.footer-flourish{font-size:30px;color:#d7b57e}
.footer p{font-family:"Amiri",serif;font-size:21px;margin:8px 0}
.footer h2{font-family:"Amiri",serif;font-size:38px;margin:5px 0 20px;color:#f2d9b2}
.footer small{font-size:11px;color:#d7bd9f}
.expired-screen{position:fixed;inset:0;z-index:50;background:var(--paper);display:grid;place-items:center;padding:24px}
.expired-card{text-align:center;max-width:460px;border:1px solid var(--line);padding:55px 28px;background:#fffaf3}
.expired-flower{font-size:40px;color:var(--gold)}
.expired-card h1{font-family:"Amiri",serif;color:var(--wine);font-size:40px}
.expired-card p{color:var(--muted);line-height:1.9}
@media(max-width:600px){.hero-frame{padding:42px 17px 35px}.intro{font-size:18px}.hero h1{font-size:56px}.verse{font-size:19px}.section-wrap{padding:68px 17px}.date-main{gap:10px}.date-main strong{font-size:54px;padding:0 13px}.date-main span{font-size:15px}.photo-grid{grid-template-rows:135px 135px;gap:9px}.message-form{padding:20px}.opening-bottom{margin-top:55px}}
