:root{
  --cream:#f8f1e5;
  --cream-deep:#e9dbc2;
  --paper:#fffaf1;
  --line:rgba(131,90,40,.28);
  --gold:#ba8748;
  --gold-deep:#825725;
  --gold-light:#e5c58b;
  --ink:#403226;
  --ink-soft:#6d5a46;
  --rose:#e5c5c4;
  --rose-deep:#c98e91;
  --green:#92a88c;
  --shadow:0 18px 40px rgba(84,58,24,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-height:100vh;font-family:"Cormorant",serif;color:var(--ink);background:
  radial-gradient(circle at 15% 10%, rgba(255,255,255,.75), transparent 26%),
  radial-gradient(circle at 85% 18%, rgba(255,255,255,.5), transparent 22%),
  radial-gradient(circle at 25% 80%, rgba(230,197,195,.24), transparent 30%),
  radial-gradient(circle at 82% 76%, rgba(182,209,221,.22), transparent 32%),
  linear-gradient(180deg,#fbf6ee,#f4e8d5 36%,#f9f3ea 100%);
  overflow-x:hidden;
}
body.locked{overflow:hidden}
img{max-width:100%;display:block}
button,input{font:inherit}
.page-glow{position:fixed;border-radius:50%;filter:blur(60px);pointer-events:none;z-index:-1;opacity:.55}
.glow-a{width:300px;height:300px;background:rgba(255,225,183,.55);left:-60px;top:120px}
.glow-b{width:260px;height:260px;background:rgba(245,197,206,.35);right:-40px;top:360px}
.glow-c{width:320px;height:320px;background:rgba(204,223,233,.32);left:50%;bottom:-90px;transform:translateX(-50%)}

.opening-scene{position:relative;min-height:100svh;display:grid;place-items:center;padding:24px 18px 54px;overflow:hidden;isolation:isolate}
.opening-backdrop{position:absolute;inset:0;pointer-events:none}
.column{position:absolute;bottom:-10vh;width:14vw;max-width:120px;min-width:78px;height:76vh;background:linear-gradient(180deg,#fefaf3 0%,#f1dfc2 22%,#fffaf0 44%,#ddc097 70%,#fefaf3 100%);border:1px solid rgba(143,98,44,.18);box-shadow:inset 0 0 0 6px rgba(255,255,255,.38);opacity:.65}
.column:before{content:"";position:absolute;left:-10%;right:-10%;top:-20px;height:48px;border-radius:18px 18px 8px 8px;background:linear-gradient(180deg,#f7eddc,#d8b27b)}
.column.left{left:3vw}.column.right{right:3vw}
.top-arch{position:absolute;left:50%;top:-16vw;transform:translateX(-50%);width:min(92vw,900px);height:min(50vw,420px);border-radius:0 0 50% 50%;border:1px solid rgba(143,98,44,.18);background:radial-gradient(circle at 50% 64%, rgba(255,250,240,.98) 0 30%, rgba(255,250,240,.1) 31% 52%, transparent 54%)}
.flower-cluster{position:absolute;width:min(28vw,340px);aspect-ratio:1;bottom:10%;filter:drop-shadow(0 8px 16px rgba(110,79,38,.08));opacity:.95}
.flower-cluster:before,.flower-cluster:after,.flower-cluster div{content:"";position:absolute;border-radius:50%}
.flower-cluster:before{inset:0;background:
  radial-gradient(circle at 26% 56%, #fdf7ef 0 9%, transparent 10%),
  radial-gradient(circle at 38% 43%, #f7ead5 0 8%, transparent 9%),
  radial-gradient(circle at 52% 62%, #fbf6ec 0 10%, transparent 11%),
  radial-gradient(circle at 67% 40%, #eed9bc 0 8%, transparent 9%),
  radial-gradient(circle at 76% 60%, #fffdf8 0 7%, transparent 8%),
  radial-gradient(circle at 56% 80%, #e7dbc2 0 7%, transparent 8%),
  radial-gradient(circle at 15% 30%, rgba(188,143,83,.48) 0 1%, transparent 1.5%),
  radial-gradient(circle at 70% 12%, rgba(188,143,83,.44) 0 1%, transparent 1.5%),
  radial-gradient(circle at 91% 43%, rgba(188,143,83,.44) 0 1.2%, transparent 1.7%),
  radial-gradient(circle at 5% 72%, rgba(188,143,83,.44) 0 1.2%, transparent 1.7%);
}
.flower-cluster:after{inset:10% 8%;background:
  linear-gradient(118deg, transparent 0 42%, rgba(134,158,122,.5) 43% 45%, transparent 46%),
  linear-gradient(148deg, transparent 0 55%, rgba(134,158,122,.42) 56% 58%, transparent 59%),
  linear-gradient(70deg, transparent 0 48%, rgba(134,158,122,.42) 49% 51%, transparent 52%);
opacity:.58}
.cluster-left{left:-4vw}.cluster-right{right:-4vw;transform:scaleX(-1)}

.opening-copy{position:absolute;top:58px;left:50%;transform:translateX(-50%);text-align:center;z-index:3;padding:0 16px;max-width:640px}
.opening-kicker{margin:0 0 8px;text-transform:uppercase;letter-spacing:.26em;font-size:12px;color:var(--gold-deep)}
.opening-copy h1{margin:0;font:500 clamp(42px,8vw,76px) "Cormorant Garamond",serif;color:var(--gold-deep);letter-spacing:.08em}
.opening-sub{margin:10px auto 0;max-width:420px;font-size:20px;line-height:1.35;color:var(--ink-soft)}
.reveal-soft{animation:softFloat 4s ease-in-out infinite}
@keyframes softFloat{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-4px)}}

.envelope-stage{position:relative;width:min(92vw,920px);padding:140px 0 0;display:grid;place-items:center;z-index:4}
.envelope{position:relative;appearance:none;border:0;background:transparent;width:min(92vw,540px);aspect-ratio:1.3/1;cursor:pointer;outline:none}
.envelope-shadow{position:absolute;left:8%;right:8%;bottom:9%;height:22%;border-radius:50%;background:radial-gradient(circle, rgba(89,64,28,.24) 0, rgba(89,64,28,.10) 46%, transparent 74%);filter:blur(10px)}
.envelope-back,.envelope-front,.envelope-flap,.letter-preview{position:absolute;left:50%;transform:translateX(-50%);width:100%}
.envelope-back{bottom:0;height:68%;border:1px solid rgba(137,97,47,.28);background:linear-gradient(180deg,#fef8f0,#ecdabb);border-radius:10px;box-shadow:var(--shadow)}
.envelope-back:before{content:"";position:absolute;inset:14px;border:1px solid rgba(131,90,40,.18);border-radius:8px}
.letter-preview{bottom:18%;width:76%;height:46%;padding:12px;transition:transform .9s cubic-bezier(.2,.8,.2,1), opacity .4s ease;z-index:2}
.letter-preview-inner{height:100%;border-radius:10px;border:1px solid rgba(145,103,49,.20);background:linear-gradient(180deg,#fffdf9,#f7efe0);box-shadow:0 8px 18px rgba(95,67,28,.08);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:18px}
.letter-preview-inner p{margin:0 0 10px;font-size:16px;line-height:1.3;color:var(--ink-soft)}
.letter-preview-inner strong{font:500 clamp(28px,5vw,44px) "Cormorant Garamond",serif;color:var(--gold-deep);letter-spacing:.08em;line-height:1}
.letter-preview-inner strong span{display:block;font-size:24px;font-style:italic;color:var(--gold);letter-spacing:.05em;margin:6px 0 3px}
.letter-preview-inner small{font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.envelope-front{bottom:0;height:68%;pointer-events:none}
.envelope-front.left{clip-path:polygon(0 0, 50% 56%, 0 100%);background:linear-gradient(180deg,#f3e4ca,#e5cfab);border-left:1px solid rgba(131,90,40,.24);border-bottom:1px solid rgba(131,90,40,.24);border-bottom-left-radius:10px}
.envelope-front.right{clip-path:polygon(100% 0, 50% 56%, 100% 100%);background:linear-gradient(180deg,#f3e4ca,#e5cfab);border-right:1px solid rgba(131,90,40,.24);border-bottom:1px solid rgba(131,90,40,.24);border-bottom-right-radius:10px}
.envelope-front.center{clip-path:polygon(0 100%,50% 48%,100% 100%);background:linear-gradient(180deg,#f7ebd6,#eddab8);border-bottom:1px solid rgba(131,90,40,.24);border-radius:0 0 10px 10px;z-index:3}
.envelope-flap{bottom:28%;height:42%;transform:translateX(-50%);transform-origin:top center;background:linear-gradient(180deg,#fef8f0,#efe0c6);clip-path:polygon(0 0,100% 0,50% 100%);border:1px solid rgba(131,90,40,.24);border-bottom:none;border-radius:10px 10px 0 0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:14%;z-index:5;transition:transform 1.05s cubic-bezier(.2,.84,.25,1)}
.basmala{font-family:"Amiri",serif;font-size:clamp(22px,3.2vw,32px);color:var(--gold-deep);text-align:center;line-height:1.15;padding:0 20px}
.flourish{margin-top:10px;font-size:20px;color:var(--gold)}
.seal{position:absolute;left:50%;bottom:25%;transform:translateX(-50%);width:84px;height:84px;border-radius:50%;z-index:6;background:radial-gradient(circle at 32% 28%, #f6db9f 0, #b88340 55%, #7c531f 100%);display:flex;align-items:center;justify-content:center;gap:10px;color:#fff7ea;font:500 28px "Cormorant Garamond",serif;letter-spacing:.06em;box-shadow:0 10px 20px rgba(92,59,18,.28), inset 0 0 0 2px rgba(255,255,255,.22);transition:transform .5s ease, opacity .45s ease;animation:pulseSeal 2.4s ease-in-out infinite}
.seal i{width:1px;height:34px;background:rgba(255,245,226,.8)}
@keyframes pulseSeal{0%,100%{transform:translateX(-50%) scale(1)}50%{transform:translateX(-50%) scale(1.04)}}
.envelope-flowers{position:absolute;bottom:14%;width:140px;height:120px;z-index:7;pointer-events:none}
.envelope-flowers.left{left:-40px}.envelope-flowers.right{right:-40px;transform:scaleX(-1)}
.envelope-flowers::before,.envelope-flowers::after{content:"";position:absolute;inset:0}
.envelope-flowers::before{background:
  radial-gradient(circle at 26% 78%, #fffaf2 0 13%, transparent 14%),
  radial-gradient(circle at 44% 48%, #f1dfbf 0 12%, transparent 13%),
  radial-gradient(circle at 62% 74%, #fffdf9 0 10%, transparent 11%),
  radial-gradient(circle at 76% 36%, #efd6b2 0 8%, transparent 9%),
  radial-gradient(circle at 90% 68%, #fff9ef 0 7%, transparent 8%),
  radial-gradient(circle at 52% 18%, rgba(129,164,118,.82) 0 2%, transparent 2.5%),
  radial-gradient(circle at 18% 24%, rgba(129,164,118,.7) 0 2%, transparent 2.6%),
  radial-gradient(circle at 82% 6%, rgba(129,164,118,.7) 0 2%, transparent 2.6%)}
.envelope-flowers::after{background:
  linear-gradient(128deg, transparent 0 36%, rgba(127,157,116,.62) 37% 39%, transparent 40%),
  linear-gradient(78deg, transparent 0 46%, rgba(127,157,116,.55) 47% 49%, transparent 50%),
  linear-gradient(148deg, transparent 0 62%, rgba(127,157,116,.55) 63% 65%, transparent 66%);opacity:.8}
.tap-hint{position:absolute;left:50%;bottom:-42px;transform:translateX(-50%);text-transform:uppercase;letter-spacing:.18em;font-size:12px;color:var(--gold-deep);white-space:nowrap}
.tap-hint b{display:block;font-size:16px;animation:bounce 1.4s ease-in-out infinite}
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}

.message-card{position:absolute;left:50%;top:12%;transform:translate(-50%, 18px) scale(.92);width:min(94vw,700px);display:grid;grid-template-columns:240px 1fr;gap:18px;padding:20px;border-radius:24px;border:1px solid rgba(134,93,41,.24);background:linear-gradient(180deg, rgba(255,251,244,.98), rgba(246,233,209,.96));box-shadow:0 22px 42px rgba(88,60,23,.16);opacity:0;pointer-events:none;transition:opacity .85s ease, transform .85s cubic-bezier(.2,.84,.25,1);z-index:8}
.message-card.visible{opacity:1;transform:translate(-50%, 0) scale(1)}
.message-photo-frame{border-radius:18px;padding:10px;background:linear-gradient(180deg,#fffefb,#ebdbc2);border:1px solid rgba(138,97,46,.18);box-shadow:inset 0 0 0 1px rgba(255,255,255,.6)}
.message-photo-frame img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:14px;box-shadow:0 10px 20px rgba(76,49,16,.10)}
.message-card-body{display:flex;flex-direction:column;justify-content:center;text-align:center;padding:12px 8px}
.message-top{margin:0 0 12px;text-transform:uppercase;letter-spacing:.22em;font-size:11px;color:var(--ink-soft)}
.message-main{margin:0 0 14px;font-size:28px;line-height:1.25;font-family:"Cormorant Garamond",serif;color:var(--ink)}
.message-names{font:500 clamp(34px,5vw,58px) "Cormorant Garamond",serif;color:var(--gold-deep);letter-spacing:.06em;line-height:1.05;margin-bottom:10px}
.message-names span{display:block;font-size:26px;font-style:italic;color:var(--gold)}
.message-bottom{margin:0;font-size:18px;font-style:italic;color:var(--ink-soft)}

.envelope.open .envelope-flap{transform:translateX(-50%) rotateX(180deg)}
.envelope.open .letter-preview{transform:translateX(-50%) translateY(-110px)}
.envelope.open .seal{opacity:0;transform:translateX(-50%) translateY(10px) scale(.88)}
.envelope.open .tap-hint{opacity:0}
.opening-scene.done{min-height:36svh;padding-bottom:10px}
.opening-scene.done .opening-copy{opacity:0;transition:opacity .6s ease}
.opening-scene.done .envelope-stage{transform:scale(.9);opacity:.1;pointer-events:none;transition:transform .8s ease, opacity .8s ease}

.butterfly-layer,.spark-layer,.petal-layer{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:12}
.flying-butterfly{position:absolute;width:28px;height:22px;transform:translate(-50%,-50%);animation:butterflyFlight var(--dur) ease-out forwards}
.flying-butterfly::before,.flying-butterfly::after{content:"";position:absolute;top:0;width:14px;height:20px;background:radial-gradient(circle at 30% 35%, rgba(255,255,255,.98), rgba(246,239,221,.92) 58%, rgba(233,212,173,.86) 100%);border-radius:65% 45% 60% 40%;box-shadow:0 0 8px rgba(255,255,255,.36)}
.flying-butterfly::before{left:1px;transform-origin:100% 50%;animation:wingL .22s ease-in-out infinite alternate}
.flying-butterfly::after{right:1px;transform-origin:0 50%;transform:scaleX(-1);animation:wingR .22s ease-in-out infinite alternate}
@keyframes wingL{from{transform:rotate(22deg)}to{transform:rotate(-8deg)}}
@keyframes wingR{from{transform:scaleX(-1) rotate(22deg)}to{transform:scaleX(-1) rotate(-8deg)}}
@keyframes butterflyFlight{0%{opacity:0;transform:translate(-50%,-50%) scale(.3) rotate(0)}10%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(var(--r)) scale(var(--s))}}
.spark{position:absolute;width:6px;height:6px;border-radius:50%;background:radial-gradient(circle,#fffbe7 0,#f3d18d 68%,rgba(243,209,141,0) 72%);animation:sparkle var(--dur) ease-out forwards;box-shadow:0 0 10px rgba(255,245,198,.85)}
@keyframes sparkle{0%{opacity:0;transform:translate(0,0) scale(.1)}8%{opacity:1}100%{opacity:0;transform:translate(var(--x),var(--y)) scale(1.2)}}
.petal{position:absolute;width:16px;height:20px;background:radial-gradient(circle at 35% 30%, #fffef9 0, #f6e2ea 42%, #f0cfd7 78%, rgba(240,207,215,0) 100%);border-radius:65% 35% 60% 40%;animation:petalFall var(--dur) linear forwards;filter:drop-shadow(0 3px 4px rgba(116,81,96,.14))}
@keyframes petalFall{0%{opacity:0;transform:translate(-50%,-50%) rotate(0deg) scale(.4)}10%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(var(--r)) scale(var(--s))}}

.invitation{opacity:0;transform:translateY(18px);pointer-events:none;transition:opacity .7s ease, transform .7s ease;padding:12px 14px 70px}
.invitation.visible{opacity:1;transform:none;pointer-events:auto}
.section-shell{position:relative;width:min(1080px,100%);margin:0 auto 22px;border:1px solid rgba(131,90,40,.14);border-radius:26px;background:linear-gradient(180deg,rgba(255,253,249,.92),rgba(245,235,221,.90));box-shadow:0 12px 24px rgba(83,58,24,.08), inset 0 0 0 1px rgba(255,255,255,.34);backdrop-filter:blur(6px)}
.hero{padding:52px 24px 38px;text-align:center;overflow:hidden}
.hero-ornaments{position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(90deg, transparent 0 7%, rgba(145,106,53,.10) 7.1% 7.3%, transparent 7.5% 92.5%, rgba(145,106,53,.10) 92.7% 92.9%, transparent 93%),
  radial-gradient(circle at 50% 0, rgba(255,255,255,.8) 0 18%, transparent 19%),
  radial-gradient(circle at 10% 100%, rgba(255,255,255,.55) 0 8%, transparent 9%),
  radial-gradient(circle at 90% 100%, rgba(255,255,255,.55) 0 8%, transparent 9%)}
.arabic{margin:0 0 18px;font:400 clamp(22px,4vw,34px) "Amiri",serif;color:var(--gold-deep)}
.intro{margin:0 auto 22px;max-width:760px;font-size:clamp(18px,2.5vw,28px);line-height:1.55;color:var(--ink-soft)}
.hero-names h2{margin:0;font:500 clamp(54px,9vw,110px) "Cormorant Garamond",serif;letter-spacing:.06em;line-height:.92;color:var(--gold-deep)}
.hero-names span{display:block;margin:12px 0 14px;font:italic clamp(24px,4vw,40px) "Cormorant Garamond",serif;color:var(--gold)}
.hero-flourish{display:flex;align-items:center;justify-content:center;gap:14px;color:var(--gold);margin:24px 0 12px}.hero-flourish i{width:90px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}.hero-flourish i:last-child{transform:scaleX(-1)}.hero-flourish b{font-size:12px}
.tagline{margin:0;font-size:clamp(24px,4vw,36px);line-height:1.3;font-family:"Cormorant Garamond",serif}.tagline em{color:var(--gold);font-style:italic}

.photo-section{padding:22px}.photo-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,420px);gap:22px;align-items:center}.photo-copy{padding:16px 14px 16px 8px}.eyebrow{margin:0 0 10px;text-transform:uppercase;letter-spacing:.22em;font-size:12px;color:var(--gold-deep)}.photo-copy h3{margin:0 0 12px;font:500 clamp(28px,4vw,46px) "Cormorant Garamond",serif;color:var(--ink);line-height:1.1}.photo-copy p:last-child{margin:0;font-size:22px;line-height:1.45;color:var(--ink-soft)}
.photo-frame{position:relative;padding:14px;border-radius:28px;background:linear-gradient(180deg,#fffefb,#e8d8bc);border:1px solid rgba(138,97,46,.18);box-shadow:var(--shadow)}
.photo-frame:before{content:"";position:absolute;inset:8px;border-radius:22px;border:1px solid rgba(138,97,46,.18)}
.photo-frame.large img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:22px}
.date-banner{padding:22px 24px;text-align:center;background:linear-gradient(135deg,rgba(236,218,189,.98),rgba(255,252,246,.9),rgba(233,212,180,.96))}
.date-line{display:flex;align-items:center;justify-content:center;gap:22px;flex-wrap:wrap}.date-line span{font-size:16px;text-transform:uppercase;letter-spacing:.18em;color:var(--ink-soft)}.date-line strong{font:500 clamp(34px,6vw,64px) "Cormorant Garamond",serif;color:var(--gold-deep)}

.details-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px;padding:18px}.lux-card{position:relative;grid-column:span 4;min-height:330px;border:1px solid rgba(128,88,39,.28);border-radius:18px;background:linear-gradient(180deg,rgba(255,251,244,.98),rgba(242,228,203,.92));padding:28px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:inset 0 0 28px rgba(170,129,72,.06)}
.detail-card{grid-column:span 4}.countdown-card{grid-column:span 12;min-height:260px}.half-card{grid-column:span 6;min-height:340px}
.card-corner{position:absolute;width:34px;height:34px;border-color:rgba(151,105,48,.4)}.card-corner.tl{left:8px;top:8px;border-top:1px solid;border-left:1px solid}.card-corner.tr{right:8px;top:8px;border-top:1px solid;border-right:1px solid}.card-corner.bl{left:8px;bottom:8px;border-bottom:1px solid;border-left:1px solid}.card-corner.br{right:8px;bottom:8px;border-bottom:1px solid;border-right:1px solid}
.clock{width:146px;height:146px;border-radius:50%;border:5px double var(--gold);background:radial-gradient(circle,#fffaf2,#ead9bc);position:relative;box-shadow:inset 0 0 0 6px rgba(255,255,255,.5), 0 10px 20px rgba(91,61,23,.14);margin-bottom:16px}.tick{position:absolute;font-family:"Cormorant Garamond",serif;font-size:15px;color:var(--ink-soft)}.t12{top:10px;left:50%;transform:translateX(-50%)}.t3{right:10px;top:50%;transform:translateY(-50%)}.t6{bottom:8px;left:50%;transform:translateX(-50%)}.t9{left:10px;top:50%;transform:translateY(-50%)}.hand{position:absolute;left:50%;bottom:50%;transform-origin:bottom;background:var(--ink);border-radius:2px}.hour{height:40px;width:3px;transform:rotate(195deg)}.minute{height:56px;width:2px;transform:rotate(180deg)}.clock-pin{position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px;border-radius:50%;background:var(--gold)}
.big-data{font:500 34px "Cormorant Garamond",serif;color:var(--ink)}
.pin-mark{color:var(--gold);font-size:22px;margin:4px 0}.venue-name{margin:0;font:500 clamp(30px,4vw,42px) "Cormorant Garamond",serif;color:var(--gold-deep);font-style:italic}.venue-loc{margin:8px 0 14px;font-size:13px;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-soft);line-height:1.6}.gate-art{width:200px;height:88px;position:relative;margin:8px 0 18px;border-bottom:2px solid var(--gold)}.gate-art b{position:absolute;left:50%;bottom:0;width:100px;height:74px;transform:translateX(-50%);border:3px double var(--gold);border-bottom:0;border-radius:52px 52px 0 0;background:repeating-linear-gradient(90deg,transparent 0 10px,rgba(126,86,36,.35) 11px 12px)}.gate-art span{position:absolute;bottom:0;width:30px;height:80px;border:1px solid var(--gold);background:linear-gradient(90deg,#ead7b6,#fff6e6,#caa875)}.gate-art span:first-child{left:10px}.gate-art span:last-child{right:10px}
.royal-btn{appearance:none;border:1px solid var(--gold-deep);background:rgba(255,250,240,.74);color:var(--gold-deep);text-decoration:none;border-radius:999px;padding:12px 18px;text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-family:"Cormorant",serif;cursor:pointer;transition:transform .22s ease, box-shadow .22s ease, background .22s ease}.royal-btn:hover{transform:translateY(-2px);box-shadow:0 10px 20px rgba(96,62,22,.14)}.royal-btn.filled{background:linear-gradient(180deg,#b98543,#8d612c);color:#fff7e5;border-color:#8b5f2d}
.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;width:min(100%,760px)}.countdown div{padding:14px 8px;border-radius:12px;border:1px solid rgba(133,94,43,.24);background:rgba(255,250,242,.74)}.countdown strong{display:block;font:500 clamp(30px,5vw,44px) "Cormorant Garamond",serif;color:var(--ink)}.countdown span{display:block;text-transform:uppercase;letter-spacing:.16em;font-size:10px;color:var(--ink-soft)}
.calendar-icon{width:94px;height:82px;border:4px solid var(--gold);border-radius:10px;position:relative;margin:0 0 22px;background:rgba(255,255,255,.42)}.calendar-icon:before{content:"";position:absolute;top:14px;left:0;right:0;border-top:4px solid var(--gold)}.calendar-icon:after{content:"•   •";position:absolute;top:-17px;left:0;right:0;color:var(--gold);font-size:30px;letter-spacing:18px;transform:translateX(7px)}.calendar-icon span{position:absolute;inset:24px 0 0;display:grid;place-items:center;font:500 32px "Cormorant Garamond",serif;color:var(--ink)}
#rsvpForm{width:min(100%,520px)}.field-label{display:block;text-align:left;margin:0 0 6px 10px;font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-soft)}.royal-input{width:100%;border:1px solid rgba(126,86,36,.28);background:rgba(255,250,240,.72);border-radius:999px;padding:14px 16px;font-size:17px;color:var(--ink);outline:none;margin-bottom:12px}.royal-input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(167,117,54,.10)}.rsvp-choice{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 12px}.choice{border:1px solid rgba(126,86,36,.3);border-radius:999px;padding:13px 12px;background:rgba(255,250,240,.72);font:600 13px "Cormorant",serif;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);cursor:pointer;transition:.2s}.choice.active{background:linear-gradient(180deg,#b98543,#8d612c);color:#fff8e8;border-color:#8c612f}.submit-rsvp{width:100%}.rsvp-status{min-height:22px;margin:12px 0 0;font-size:17px;color:#6e5a3c}

.closing{padding:42px 24px;text-align:center;overflow:hidden}.closing-sky{position:absolute;inset:0;background:radial-gradient(circle at 50% 110%, rgba(209,166,95,.28), transparent 36%), linear-gradient(180deg, rgba(255,255,255,.45), rgba(244,229,203,.15))}.monogram{position:relative;z-index:1;width:118px;height:118px;margin:0 auto 18px;border:1px solid var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;gap:12px;font:500 40px "Cormorant Garamond",serif;color:var(--gold-deep);background:rgba(255,250,243,.7)}.monogram:after{content:"";position:absolute;inset:-10px;border:1px solid rgba(167,117,54,.3);border-radius:50%}.monogram i{width:1px;height:44px;background:rgba(126,86,36,.4)}.closing p{position:relative;z-index:1;margin:0 0 10px;font-size:clamp(22px,3.4vw,34px);font-family:"Cormorant Garamond",serif;line-height:1.3;color:var(--ink)}.closing small{position:relative;z-index:1;display:block;text-transform:uppercase;letter-spacing:.18em;font-size:11px;color:var(--ink-soft)}
.reveal-on-scroll{opacity:0;transform:translateY(26px);transition:opacity .8s ease, transform .8s ease}.reveal-on-scroll.in-view{opacity:1;transform:none}

@media (max-width:900px){
  .message-card{grid-template-columns:1fr;max-width:560px;top:16%}
  .message-photo-frame img{aspect-ratio:5/4}
  .photo-card{grid-template-columns:1fr}
  .details-grid{grid-template-columns:1fr;padding:12px}
  .detail-card,.countdown-card,.half-card{grid-column:auto}
  .lux-card{min-height:310px}
}
@media (max-width:640px){
  .opening-copy{top:28px}.opening-copy h1{font-size:44px}.opening-sub{font-size:17px}
  .envelope-stage{padding-top:120px}
  .message-card{top:18%;width:min(94vw,440px);padding:14px;border-radius:18px}
  .message-main{font-size:22px}.message-names{font-size:38px}.message-names span{font-size:22px}
  .section-shell{border-radius:18px}
  .hero{padding:44px 16px 30px}
  .date-line{gap:10px}
  .date-line span{font-size:13px}
  .countdown{grid-template-columns:repeat(2,1fr)}
  .rsvp-choice{grid-template-columns:1fr}
  .envelope-flowers{width:110px;height:100px}.envelope-flowers.left{left:-20px}.envelope-flowers.right{right:-20px}
  .column{opacity:.44}
}
@media (max-width:420px){
  .envelope{width:95vw}.basmala{font-size:18px}.seal{width:72px;height:72px;font-size:24px}.tap-hint{font-size:11px}
  .message-card{top:22%}
  .photo-copy p:last-child{font-size:19px}
}
@media (prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important;scroll-behavior:auto !important}.reveal-on-scroll{opacity:1;transform:none}}
