/* EMERALD-NIKKAH-AMIRI-1 */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --jade:#123328; --jade-deep:#0A211A; --jade-mid:#1C4A3A;
  --gold:#B8863A; --gold-light:#E3C98F; --ivory:#F6EEDC; --line:#3A5C4A;
}
html{scroll-behavior:smooth;}
body{font-family:'Jost',sans-serif; background:var(--jade-deep); color:var(--ivory); overflow-x:hidden;}
h1,h3,.display{font-family:'Amiri',serif;}
h2{ font-family:'Amiri',Georgia,serif; font-weight:700; font-size:clamp(28px,6.4vw,40px); color:var(--gold-light); letter-spacing:.01em; }
.section{padding:90px 24px; max-width:720px; margin:0 auto; text-align:center;}
.divider{width:60px; height:2px; background:var(--gold); margin:26px auto; position:relative;}
.divider::before,.divider::after{content:'✦'; position:absolute; top:-9px; color:var(--gold); font-size:14px;}
.divider::before{left:-24px;} .divider::after{right:-24px;}
.section p.lead{font-size:18px; line-height:1.9; color:#CFE0D6;}

/* ================= PERSISTENT ARCH FRAME (decorative, stays through whole site) ================= */
.frame-arch{
  position:fixed; inset:14px; border:1.5px solid var(--gold);
  border-radius:50% 50% 0 0 / 130px 130px 0 0;
  pointer-events:none; z-index:250; opacity:0.55;
}
.frame-arch::before{
  content:''; position:absolute; inset:9px; border:1px solid var(--gold-light);
  border-radius:50% 50% 0 0 / 118px 118px 0 0; opacity:0.4;
}
@media(max-width:600px){ .frame-arch{ border-radius:50% 50% 0 0 / 80px 80px 0 0; } .frame-arch::before{ border-radius:50% 50% 0 0 / 70px 70px 0 0; } }

/* ================= ARCH-DOORWAY REVEAL ================= */
.arch-gate{
  position:fixed; inset:0; z-index:300; cursor:pointer; overflow:hidden;
  background:var(--jade-deep); perspective:1600px;
}
.arch-gate.open{ pointer-events:none; background:transparent; }
.arch-gate.settled{ position:absolute; top:0; left:0; right:0; bottom:auto; height:100vh; }

.gate-center{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; z-index:2; text-align:center; transition:opacity 0.5s ease; }
.arch-gate.open .gate-center{ opacity:0; }
.gc-star{ width:58px; height:58px; border-radius:50%; border:1.5px solid var(--gold); display:flex; align-items:center; justify-content:center; font-size:22px; color:var(--gold-light); margin-bottom:18px; animation:starPulse 2.2s ease-in-out infinite; }
@keyframes starPulse{0%,100%{transform:scale(1); opacity:.8;} 50%{transform:scale(1.08); opacity:1;}}
/* padding-inline gives the face room for its overhanging strokes, or the
   last letter is clipped by its own box */
.gc-names{ font-family:'Amiri',Georgia,serif; font-size:clamp(30px,7vw,44px); font-weight:400; color:var(--ivory); margin-bottom:6px; padding-inline:.3em; overflow:visible; }
.gc-tap{ letter-spacing:.35em; font-size:12px; text-transform:uppercase; color:var(--gold); font-family:'Jost',sans-serif; }

/* Door hinge wrapper: carries ONLY the 3D rotation, no clip-path here. */
.door-outer{ position:absolute; top:0; bottom:0; width:50%; transform-style:preserve-3d; transition:transform 2.1s cubic-bezier(.16,.84,.32,1); will-change:transform; }
.door-outer.left{ left:0; transform-origin:left center; }
.door-outer.right{ right:0; transform-origin:right center; }
.arch-gate.open .door-outer.left{ transform:rotateY(-100deg); }
.arch-gate.open .door-outer.right{ transform:rotateY(100deg); }

/* Door face: carries the visual shape/pattern, no transform here — kept on a
   separate element from the rotating parent so clip-path and 3D transform are
   never combined on the same node (a past Android WebView combo bug). */
.door-face{
  position:absolute; inset:0;
  background:
    repeating-linear-gradient(90deg, rgba(184,134,58,0.06) 0 2px, transparent 2px 34px),
    linear-gradient(180deg, #163C2F 0%, #0F2C22 55%, #0A211A 100%);
  box-shadow:0 0 70px rgba(0,0,0,0.6) inset;
}
.door-face::before{ /* diamond lattice motif */
  content:''; position:absolute; inset:0; opacity:0.15;
  background-image:
    linear-gradient(45deg, var(--gold) 1px, transparent 1px),
    linear-gradient(-45deg, var(--gold) 1px, transparent 1px);
  background-size:38px 38px;
}
.door-outer.left .door-face{ border-right:3px solid var(--gold); }
.door-outer.right .door-face{ border-left:3px solid var(--gold); }
.door-ring{
  position:absolute; top:82%; width:44px; height:44px; border-radius:50%;
  border:4px solid var(--gold-light); transform:translateY(-50%);
  box-shadow:0 0 18px rgba(184,134,58,0.5), inset 0 0 8px rgba(0,0,0,0.4);
}
.door-outer.left .door-ring{ right:26px; }
.door-outer.right .door-ring{ left:26px; }
@media (prefers-reduced-motion: reduce){
  .door-outer{ transition:transform 0.4s ease; }
}

/* ================= HERO ================= */
.hero{
  min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:radial-gradient(circle at 50% 25%, rgba(184,134,58,.14), transparent 60%), linear-gradient(180deg,var(--jade) 0%, var(--jade-deep) 100%);
  text-align:center; padding:48px 24px; position:relative;
}
.bismillah{ font-size:22px; color:var(--gold-light); margin-bottom:18px; direction:rtl; }
.eyebrow{ letter-spacing:.35em; font-size:12px; text-transform:uppercase; color:var(--gold); margin-bottom:16px; }
.hero h1{ font-family:'Amiri',Georgia,serif; font-size:clamp(42px,10.5vw,74px); font-weight:400; line-height:1.22; color:var(--ivory); padding-inline:.3em; overflow:visible; }
.hero .amp{ color:var(--gold); font-style:italic; font-size:0.55em; display:block; margin:6px 0; }
.hero p.tagline{ font-size:15px; line-height:1.9; color:#CFE0D6; max-width:420px; margin:18px auto 0; }

.couple-photo-frame{
  width:min(240px,68vw); aspect-ratio:3/3.6; margin:6px auto 14px; position:relative;
  border-radius:50% 50% 8px 8px / 32% 32% 6px 6px; overflow:hidden;
  border:3px solid var(--gold); background:var(--jade-mid);
  box-shadow:0 0 0 1px rgba(227,201,143,0.5) inset, 0 16px 44px rgba(0,0,0,0.55), 0 0 34px rgba(184,134,58,0.28);
}
.couple-photo-frame::after{
  content:''; position:absolute; inset:7px; pointer-events:none;
  border:1px solid rgba(227,201,143,0.45); border-radius:50% 50% 5px 5px / 28% 28% 4px 4px;
}
.couple-photo{ width:100%; height:100%; object-fit:cover; object-position:center 12%; display:block; }
.date-line{ font-size:18px; letter-spacing:.12em; margin-top:18px; color:var(--gold-light); }

/* Islamic 8-point star scratch card */
.scratch-wrap{ margin:32px auto 0; position:relative; width:230px; height:230px; }
.heart-reveal{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; }
.heart-reveal .d1{ font-size:20px; color:var(--ivory); font-weight:700; }
.heart-reveal .d2{ font-size:13px; color:var(--gold-light); letter-spacing:.1em; }
#scratchCanvas{ position:absolute; inset:0; touch-action:none; cursor:grab; }
.scratch-hint{ font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-top:12px; }

.countdown{ display:flex; gap:18px; justify-content:center; margin-top:32px; flex-wrap:wrap; }
.cd-num{ font-family:'Amiri',serif; font-size:30px; color:var(--gold-light); font-weight:700; }
.cd-label{ font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--ivory); opacity:.65; }

/* ================= MEET THE COUPLE ================= */
.couple-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:32px; text-align:left; }
@media(max-width:560px){ .couple-grid{ grid-template-columns:1fr; } }
.couple-card{ background:var(--jade); border:1px solid var(--line); border-radius:10px; padding:26px 22px; }
.couple-card h4{ font-size:20px; color:var(--gold-light); margin-bottom:10px; }
.couple-card p{ font-size:14px; line-height:1.8; color:#CFE0D6; }

/* ================= DETAILS GRID ================= */
.details-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:32px; }
@media(max-width:560px){ .details-grid{ grid-template-columns:1fr; } }
.detail-card{ background:var(--jade); border:1px solid var(--line); border-radius:10px; padding:22px 20px; text-align:left; position:relative; overflow:hidden; }
.detail-card::before{ content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,transparent,var(--gold),transparent); }
.detail-card .dc-icon{ font-size:20px; margin-bottom:8px; display:block; }
.detail-card h4{ font-family:'Jost',sans-serif; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:8px; }
.detail-card p{ font-size:14px; line-height:1.7; color:#CFE0D6; }

/* ================= TIMELINE ================= */
.timeline{ margin-top:28px; text-align:left; position:relative; padding-left:28px; }
.timeline::before{ content:''; position:absolute; left:6px; top:6px; bottom:6px; width:2px; background:var(--line); }
.tl-item{ position:relative; padding-bottom:26px; }
.tl-item:last-child{ padding-bottom:0; }
.tl-item::before{ content:''; position:absolute; left:-28px; top:4px; width:11px; height:11px; border-radius:50%; background:var(--gold); border:2px solid var(--jade-deep); }
.tl-time{ font-family:'Amiri',serif; font-size:15px; color:var(--gold-light); }
.tl-title{ font-size:17px; color:var(--ivory); margin-top:2px; }

/* ================= GALLERY ================= */
.gallery{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:28px; }
.gallery div{ aspect-ratio:1; border-radius:6px; display:flex; align-items:center; justify-content:center; color:var(--gold-light); font-size:11px; background:linear-gradient(135deg,var(--jade-mid),var(--jade)); border:1px solid var(--line); position:relative; }
.gallery img{ width:100%; height:100%; object-fit:cover; border-radius:6px; }
.photo-remove{ position:absolute; top:4px; right:4px; width:20px; height:20px; border-radius:50%; background:rgba(0,0,0,.6); color:#fff; border:none; font-size:12px; cursor:pointer; }
.gallery-editor, .map-editor{ background:var(--jade); border:1px solid var(--gold); border-radius:12px; padding:20px 18px; margin-top:18px; text-align:left; }
.ge-label, .me-label{ font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-light); margin-bottom:10px; font-family:'Amiri',serif; }
.ge-row, .me-row{ display:flex; gap:10px; flex-wrap:wrap; }
.ge-row input, .me-row input{ flex:1; min-width:170px; padding:11px 13px; border-radius:7px; border:1px solid var(--line); font-family:'Jost',sans-serif; font-size:13px; background:var(--jade-deep); color:var(--ivory); }
.ge-row button, .me-row button{ padding:11px 18px; border:none; border-radius:7px; background:var(--gold); color:var(--jade-deep); font-weight:600; cursor:pointer; }
.ge-hint, .me-hint{ font-size:12px; color:#9DB8AA; margin-top:8px; }
.me-error{ font-size:12px; color:#E88A8A; margin-top:8px; display:none; }
.me-success{ font-size:12px; color:var(--gold-light); margin-top:8px; display:none; }

/* ================= MAP ================= */
.map-frame{ width:100%; height:260px; border-radius:10px; overflow:hidden; margin-top:20px; border:1px solid var(--gold); }
.map-frame iframe{ width:100%; height:100%; border:0; }

/* ================= RSVP ================= */
.rsvp{ background:var(--jade); border-radius:14px; padding:36px 26px; border:1px solid var(--gold); text-align:left; }
.rsvp input, .rsvp select, .rsvp textarea{ width:100%; padding:12px 15px; margin-top:12px; border-radius:7px; border:1px solid var(--line); font-family:'Jost',sans-serif; font-size:14px; background:var(--jade-deep); color:var(--ivory); }
.rsvp label{ display:block; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-light); margin-top:16px; }
.rsvp button{ margin-top:22px; width:100%; padding:14px; border:none; border-radius:7px; background:var(--gold); color:var(--jade-deep); font-family:'Amiri',serif; font-weight:700; font-size:15px; cursor:pointer; }
.rsvp-msg{ margin-top:14px; font-size:13px; display:none; padding:10px; border-radius:7px; }

/* ================= MUSIC + FOOTER ================= */
.music-toggle{ position:fixed; bottom:22px; right:22px; width:50px; height:50px; border-radius:50%; background:var(--gold); color:var(--jade-deep); border:none; font-size:19px; cursor:pointer; box-shadow:0 6px 18px rgba(0,0,0,.4); z-index:60; display:flex; align-items:center; justify-content:center; }
.music-toggle.playing{ animation:spin 5s linear infinite; }
@keyframes spin{ to{ transform:rotate(360deg); } }
footer{ padding:40px 24px; text-align:center; font-size:13px; letter-spacing:.15em; color:var(--gold); border-top:1px solid var(--line); }
footer .f-thanks{ font-family:'Amiri',serif; font-size:19px; color:var(--gold-light); display:block; margin-bottom:10px; }

.reveal{ opacity:0; transform:translateY(24px); transition:opacity .7s, transform .7s; }
.reveal.visible{ opacity:1; transform:translateY(0); }

/* ================= HERO INTRO CHOREOGRAPHY ================= */
/* Each hero element starts hidden and rises gently into place. The stagger is
   timed to begin partway through the door swing so everything settles as one
   continuous reveal, rather than two separate animations happening back to back. */
.hero-item{ opacity:0; transform:translateY(22px); transition:opacity 1s ease, transform 1s ease; }
#heroSection.hero-in .hero-item{ opacity:1; transform:translateY(0); }
#heroSection.hero-in .hi-1{ transition-delay:0s; }
#heroSection.hero-in .hi-2{ transition-delay:0.18s; }
#heroSection.hero-in .hi-3{ transition-delay:0.36s; }
#heroSection.hero-in .hi-4{ transition-delay:0.54s; }
#heroSection.hero-in .hi-5{ transition-delay:0.72s; }
#heroSection.hero-in .hi-6{ transition-delay:0.9s; }
@media (prefers-reduced-motion: reduce){
  .hero-item{ transition:opacity 0.4s ease; transform:none; }
}

/* ================= DATE-REVEAL BLOOM (after scratch completes) ================= */
.heart-reveal{ opacity:0; transform:scale(0.82); transition:opacity 1.1s ease, transform 1.1s ease; }
.heart-reveal.shown{ opacity:1; transform:scale(1); }

.sparkle-burst{ position:fixed; pointer-events:none; z-index:400; font-size:15px; animation:sparkleFly .9s ease-out forwards; will-change:transform,opacity; }
@keyframes sparkleFly{ 0%{ transform:translate(0,0) scale(.2) rotate(0deg); opacity:1; } 70%{ opacity:1; } 100%{ transform:translate(var(--dx),var(--dy)) scale(1.1) rotate(200deg); opacity:0; } }

/* ================= CONTINUOUS STAR RAIN (ambient, never stops) ================= */
.star-rain{ position:fixed; inset:0; pointer-events:none; overflow:hidden; }
.falling-star{ position:absolute; top:-24px; color:var(--gold-light); animation:starFall linear forwards; }
@keyframes starFall{
  0%{ transform:translateY(0) rotate(0deg); opacity:0; }
  8%{ opacity:var(--peak-op,0.75); }
  90%{ opacity:var(--peak-op,0.75); }
  100%{ transform:translateY(115vh) rotate(180deg); opacity:0; }
}

/* ================= CORNER FLOWERS ================= */
.corner-flower{ position:absolute; width:120px; height:120px; opacity:0.92; pointer-events:none; z-index:1; }
.corner-flower.tl{ top:10px; left:8px; }
.corner-flower.tr{ top:10px; right:8px; transform:scaleX(-1); }
@media(max-width:480px){ .corner-flower{ width:88px; height:88px; } }

/* ==========================================================
   SCRATCH-TO-REVEAL  (this block only - nothing above changed)
   ========================================================== */
/* ---------- henna panel ---------- */
/* the panel used to be brought in by a .shown class from the old scratch
   code; the staged reveal drives it from s1 now */
.heart-reveal.s1{opacity:1; transform:scale(1);}
.heart-reveal .d2{
  opacity:0; transform:translateY(8px);
  transition:opacity .6s ease, transform .6s cubic-bezier(.22,1,.36,1);
}
.heart-reveal.s4 .d2{opacity:1; transform:none;}

/* ---------- scratch material flecks (shared, body-level) ---------- */
.aira-fleck{
  position:fixed; z-index:1200; pointer-events:none; opacity:1;
  animation:airaFleck .95s cubic-bezier(.3,.7,.4,1) forwards;
}
@keyframes airaFleck{
  0%{opacity:.95; transform:translate(0,0) rotate(0deg) scale(1);}
  100%{opacity:0; transform:translate(var(--fx),var(--fy)) rotate(var(--fr)) scale(.5);}
}
@media (prefers-reduced-motion:reduce){ .aira-fleck{display:none;} }

/* ---------- staged date reveal: day, month, year, label, glow, continue ---------- */
/* the reveal panel stacks: date line, then the label, then Continue */
.heart-reveal{flex-direction:column;}
.heart-reveal .dr-day,.heart-reveal .dr-month,.heart-reveal .dr-year{
  display:inline-block; opacity:0; transform:translateY(10px) scale(.94);
  transition:opacity .62s ease, transform .62s cubic-bezier(.22,1,.36,1);
}
.heart-reveal .dr-month{margin:0 .34em;}
.heart-reveal.s1 .dr-day{opacity:1; transform:none;}
.heart-reveal.s2 .dr-month{opacity:1; transform:none;}
.heart-reveal.s3 .dr-year{opacity:1; transform:none;}
.heart-reveal .dr-label{
  display:block; margin-top:7px; font-size:8px; letter-spacing:.3em;
  text-transform:uppercase; color:var(--gold);
  opacity:0; transform:translateY(8px);
  transition:opacity .6s ease, transform .6s cubic-bezier(.22,1,.36,1);
}
.heart-reveal.s4 .dr-label{opacity:1; transform:none;}
.heart-reveal .dr-cta{
  margin-top:9px; padding:6px 14px; font:inherit; font-size:9px; line-height:1;
  letter-spacing:.22em; text-transform:uppercase; cursor:pointer; border-radius:0;
  color:var(--gold-light); background:transparent; border:1px solid var(--gold);
  opacity:0; transform:translateY(8px);
  transition:opacity .6s ease, transform .6s cubic-bezier(.22,1,.36,1),
             background .35s ease, color .35s ease;
}
.heart-reveal.s5 .dr-cta{opacity:1; transform:none;}
.heart-reveal .dr-cta:hover{background:var(--gold); color:#0A211A;}
.heart-reveal.s5{animation:drGlow8410 1.6s ease-out;}
@keyframes drGlow8410{
  0%{box-shadow:0 0 0 0 rgba(184,134,58,.5);}
  40%{box-shadow:0 0 34px 6px rgba(184,134,58,.5);}
  100%{box-shadow:0 0 0 0 rgba(0,0,0,0);}
}

/* the prompt steps back once the guest starts working the surface */
.is-scratching + .scratch-hint,.is-scratching ~ .scratch-hint{opacity:.35;}

/* ==========================================================================
   AIRA MOTION SYSTEM
   Appended block. Changes how things move, never what the template looks
   like - no colour, font family, layout or decoration is altered here.
   ========================================================================== */

:root{
  /* Authored easing. The default `ease` is symmetrical, which is why stock
     web motion reads as cheap: real objects accelerate hard and land soft. */
  --e-drape :cubic-bezier(.62,.02,.14,1);   /* heavy physical panels        */
  --e-silk  :cubic-bezier(.16,.86,.22,1);   /* long decelerate, big surfaces */
  --e-lift  :cubic-bezier(.19,1,.22,1);     /* type and cards arriving       */
  --e-settle:cubic-bezier(.40,.90,.30,1);   /* micro corrections             */
  /* Duration scale tied to how far a thing travels. */
  --t-1:260ms; --t-2:520ms; --t-3:820ms; --t-4:1250ms; --t-5:1900ms;
}

/* ---------- typographic rendering (quality only, no faces changed) ---------- */
html{-webkit-text-size-adjust:100%;}
body{
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  font-kerning:normal;
  font-variant-ligatures:common-ligatures contextual;
  font-synthesis-weight:none;
}
h1,h2,h3{text-wrap:balance;}
p,.lead{text-wrap:pretty;}

/* ---------- masked word reveal for display type ---------- */
.aira-w{
  display:inline-block; overflow:hidden; vertical-align:top;
  padding-bottom:.18em; margin-bottom:-.18em;   /* room for descenders */
}
.aira-w.aira-w-block{display:block;}
.aira-w > i{
  display:inline-block; font-style:inherit; color:inherit;
  transform:translate3d(0,112%,0) rotate(1.6deg); opacity:0; filter:blur(9px);
  transition:transform var(--t-4) var(--e-lift),
             opacity 900ms var(--e-lift),
             filter 900ms var(--e-lift);
  transition-delay:calc(var(--wi,0) * 105ms + 170ms);
}
.aira-w > i.aira-w-block{display:block;}
.aira-w.on > i{transform:none; opacity:1; filter:blur(0);}

/* ---------- hero beats ---------- */
.aira-beat{
  opacity:0; transform:translate3d(0,var(--beat-rise,22px),0);
  filter:blur(var(--beat-blur,5px));
  transition:opacity var(--t-3) var(--e-lift),
             transform var(--t-3) var(--e-lift),
             filter var(--t-3) var(--e-lift);
  transition-delay:calc(var(--bi,0) * 135ms);
}
.aira-beat.aira-on{opacity:1; transform:none; filter:blur(0);}

/* ---------- scroll storytelling ---------- */
.aira-rise{
  opacity:0; transform:translate3d(0,34px,0);
  transition:opacity var(--t-3) var(--e-lift), transform var(--t-3) var(--e-lift);
}
.aira-rise.aira-in{opacity:1; transform:none;}
.aira-stagger{
  opacity:0; transform:translate3d(0,18px,0);
  transition:opacity var(--t-3) var(--e-lift), transform var(--t-3) var(--e-lift);
  transition-delay:calc(var(--i,0) * 85ms + 110ms);
}
.aira-in > .aira-stagger,
.in > .aira-stagger,
.visible > .aira-stagger{opacity:1; transform:none;}

/* ---------- the opening: weight, then release ---------- */
.aira-gate.aira-press{transform:scale(.9955); transition:transform 200ms var(--e-settle);}
.aira-seam{
  position:absolute; top:0; bottom:0; left:50%; width:2px; margin-left:-1px;
  z-index:6; pointer-events:none; opacity:0; filter:blur(1px);
  background:linear-gradient(180deg,transparent,rgba(255,255,255,.92),transparent);
}
.aira-seam.aira-seam-h{
  top:50%; bottom:auto; left:0; right:0; width:auto; height:2px; margin:-1px 0 0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.92),transparent);
}
.aira-gate.aira-opening .aira-seam{animation:airaSeamV 950ms var(--e-silk) forwards;}
.aira-gate.aira-opening .aira-seam.aira-seam-h{animation:airaSeamH 950ms var(--e-silk) forwards;}
@keyframes airaSeamV{0%{opacity:0;transform:scaleY(.15);}20%{opacity:1;}100%{opacity:0;transform:scaleY(1.2);}}
@keyframes airaSeamH{0%{opacity:0;transform:scaleX(.15);}20%{opacity:1;}100%{opacity:0;transform:scaleX(1.2);}}

@media (prefers-reduced-motion:reduce){
  .aira-w > i,.aira-beat,.aira-rise,.aira-stagger{
    transition:none !important; transform:none !important;
    opacity:1 !important; filter:none !important;
  }
  .aira-seam{display:none;}
}

/* ---------- Emerald Nikkah: the arch doors, offset ---------- */
/* The 3D hinge swing and the hi-1..hi-6 hero sequence are this template's
   signature and are untouched; the two leaves simply no longer move as one
   rigid object. */
.door-outer.right{transition-delay:120ms;}
.hero-item.hi-3{letter-spacing:-.006em; line-height:1.05;}
