
:root{--red:#86172a;--red-soft:#b42f41;--gold:#ca9c49;--gold-deep:#8c6723;--soft:#9b654a;--ink:#5a2f25;--shadow:0 20px 60px rgba(83,38,26,.14)}

/* ══ Li Mayukh Unicode — local font ══ */
@font-face{
  font-family:"Li Mayukh Unicode";
  src:url("Li Mayukh Unicode.ttf") format("truetype");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"Li Mayukh Unicode";
  src:url("Li Mayukh Unicode Italic.ttf") format("truetype");
  font-weight:400;
  font-style:italic;
  font-display:swap;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;overflow-x:hidden;font-family:"Noto Serif Bengali","Tiro Bangla",serif;color:var(--ink);background:linear-gradient(180deg,#fdf3e2,#f1dfbb);-webkit-font-smoothing:antialiased}
body:before{content:"";position:fixed;inset:0;z-index:-3;pointer-events:none;background:radial-gradient(circle at 10% 10%, rgba(202,156,73,.14), transparent 24%),radial-gradient(circle at 78% 56%, rgba(134,23,42,.08), transparent 34%),linear-gradient(180deg,#fdf2de 0%,#f1dfbb 100%)}
body:after{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;opacity:.18;background:repeating-linear-gradient(0deg, rgba(100,60,30,.04) 0 1px, transparent 1px 4px)}
.page-frame{position:fixed;inset:8px;z-index:1000;pointer-events:none;border:1px solid rgba(134,23,42,.24);box-shadow:inset 0 0 0 3px rgba(202,156,73,.10)}
.alpana-world{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:-1}
.alpana{position:absolute;opacity:.18;filter:sepia(.2) saturate(1.15)}
.alpana-top-left{top:-20px;left:-20px;width:min(40vw,320px);animation:driftA 18s ease-in-out infinite}
.alpana-bottom-right{bottom:-15px;right:-20px;width:min(42vw,350px);animation:driftB 20s ease-in-out infinite}
.alpana-mandala{width:min(34vw,260px);opacity:.08}
.mandala-one{top:18%;right:8%;animation:rotateSlow 36s linear infinite}
.mandala-two{bottom:14%;left:7%;animation:rotateReverse 44s linear infinite}
@keyframes driftA{0%,100%{transform:translate3d(0,0,0) rotate(0deg)}50%{transform:translate3d(18px,16px,0) rotate(3deg)}}
@keyframes driftB{0%,100%{transform:translate3d(0,0,0) rotate(0deg)}50%{transform:translate3d(-18px,-12px,0) rotate(-3deg)}}
@keyframes rotateSlow{from{transform:rotate(0deg) scale(1)}50%{transform:rotate(180deg) scale(1.04)}to{transform:rotate(360deg) scale(1)}}
@keyframes rotateReverse{from{transform:rotate(360deg) scale(1)}50%{transform:rotate(180deg) scale(.96)}to{transform:rotate(0deg) scale(1)}}
.section{position:relative;min-height:100svh;padding:94px 22px;display:flex;flex-direction:column;justify-content:center;align-items:center;overflow:hidden}
h1,h2,h3,p{margin-top:0}
.eyebrow{margin:0 0 8px;color:var(--soft);letter-spacing:.12em;font-size:.84rem;text-transform:uppercase}
h2{color:var(--red);font-size:clamp(2rem,9vw,4rem);line-height:1.05}
.hero{padding-top:55px;padding-bottom:90px}
.hero-content{text-align:center;position:relative;z-index:5;max-width:760px}
.hero h1{font-family:"Li Mayukh Unicode","Tiro Bangla",serif;font-size:clamp(3.5rem,17vw,8rem);line-height:.9;color:var(--red);text-shadow:0 2px 0 rgba(202,156,73,.25)}
.ornament-line{color:var(--gold);font-size:1.3rem;margin-bottom:16px}
.hero-names{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;font-size:clamp(1.7rem,7vw,3rem);color:var(--gold-deep);font-weight:700;margin-top:26px}
.hero-names em{font-style:normal;color:var(--red);font-size:.72em}
.hero-sub{margin-top:16px;font-family:"Li Mayukh Unicode","Tiro Bangla","Noto Serif Bengali",serif;font-size:clamp(1rem,3.5vw,1.35rem);font-weight:400}
.hero-arch,.hero-ring{position:absolute;left:50%;transform:translateX(-50%);border-radius:50%}
.hero-arch{width:min(88vw,620px);height:min(88vw,620px);top:12%;border:2px solid rgba(202,156,73,.55);box-shadow:0 0 0 8px rgba(134,23,42,.04), inset 0 0 0 1px rgba(134,23,42,.14)}
.hero-ring{width:min(72vw,500px);height:min(72vw,500px);top:20%;border:1px dashed rgba(202,156,73,.42);opacity:.65}
.curtain{position:absolute;top:-4vh;width:54vw;max-width:520px;height:31vh;background:linear-gradient(115deg, transparent 0 20%, rgba(255,255,255,.08) 24%, transparent 29%),linear-gradient(180deg,#ab1930,#750d1d);border-bottom:8px solid rgba(202,156,73,.96);box-shadow:0 10px 34px rgba(70,14,20,.24);z-index:4}
.curtain:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg, rgba(255,255,255,.08) 0 1px, transparent 1px 16px);opacity:.35}
.curtain:after{content:"✿";position:absolute;color:#efc76f;bottom:-18px;font-size:2rem}
.curtain-left{left:-3vw;border-bottom-right-radius:84% 46%;transform:rotate(-3deg)}
.curtain-right{right:-3vw;border-bottom-left-radius:84% 46%;transform:rotate(3deg)}
.curtain-left:after{right:8%}.curtain-right:after{left:8%}
.petals{position:absolute;inset:0;pointer-events:none;z-index:5}
.petals span{position:absolute;color:rgba(180,47,65,.28);font-size:1.5rem;animation:petalFloat 12s linear infinite}
.petals span:nth-child(1){left:10%;top:18%;animation-delay:0s}.petals span:nth-child(2){left:82%;top:24%;animation-delay:2s}.petals span:nth-child(3){left:30%;top:9%;animation-delay:4s}.petals span:nth-child(4){left:68%;top:12%;animation-delay:1s}.petals span:nth-child(5){left:50%;top:7%;animation-delay:3s}
@keyframes petalFloat{0%{transform:translate3d(0,0,0) rotate(0deg);opacity:0}10%{opacity:.85}100%{transform:translate3d(-30px,110vh,0) rotate(180deg);opacity:0}}
.scroll-indicator{position:absolute;bottom:max(30px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);border:0;background:transparent;color:var(--red);font-family:inherit;z-index:6;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;transition:opacity .3s ease}
.arrow{font-size:1.5rem;animation:bob 1.35s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0);opacity:.55}50%{transform:translateY(9px);opacity:1}}
.couple-showcase{background:linear-gradient(180deg, rgba(255,255,255,.28), rgba(255,255,255,.55))}
.showcase-wrap{width:min(1120px,100%);display:grid;grid-template-columns:1fr;gap:24px;align-items:center}
.showcase-person{text-align:center}
.showcase-person img{max-width:min(68vw,280px);max-height:56vh;filter:drop-shadow(0 14px 32px rgba(70,10,20,.16))}
.showcase-center{text-align:center;max-width:640px;margin:0 auto}
.showcase-center h2 span,.finale h2 span,.wedding-copy h2 span{color:var(--red-soft)}
.gold-note{color:var(--gold-deep);font-weight:700}
.family-section{background:linear-gradient(180deg,#f4e4c5,#f8efdd)}
.family-alt{background:linear-gradient(180deg,#f8efdd,#f0dfbf)}
.section-mandala{position:absolute;width:520px;height:520px;border:1px solid rgba(134,23,42,.08);border-radius:50%}
.section-mandala:before{content:"✿";position:absolute;inset:0;display:grid;place-items:center;color:rgba(202,156,73,.10);font-size:18rem}
.section-mandala.reverse{transform:rotate(24deg)}
.family-layout{width:min(1180px,100%);display:grid;grid-template-columns:1fr;gap:24px;align-items:center;position:relative;z-index:2}
.portrait-card{text-align:center}
.portrait-shell{width:min(74vw,340px);aspect-ratio:3/4;margin:0 auto 14px;background:linear-gradient(180deg, rgba(255,255,255,.42), rgba(255,255,255,.08));border:2px solid rgba(202,156,73,.55);border-radius:160px 160px 30px 30px / 120px 120px 22px 22px;box-shadow:0 16px 44px rgba(83,38,26,.10);position:relative;overflow:hidden;padding:14px}
.portrait-shell:before{content:"";position:absolute;inset:12px;border:1px solid rgba(134,23,42,.12);border-radius:148px 148px 22px 22px / 112px 112px 18px 18px;z-index:2;pointer-events:none}
.portrait-media{position:absolute;inset:14px;border-radius:146px 146px 20px 20px / 110px 110px 16px 16px;overflow:hidden;background:rgba(255,255,255,.22)}
.portrait-cutout{display:block;width:100%;height:100%;object-fit:cover;object-position:center top;position:static;transform:none;max-width:none;max-height:none}
.portrait-card h3{margin:0;color:var(--gold-deep);font-size:1.5rem}
.info-card{width:min(92vw,700px);background:rgba(255,249,235,.84);border:1px solid rgba(134,23,42,.22);box-shadow:var(--shadow);padding:42px 26px;text-align:center;position:relative}
.info-card:before,.info-card:after{content:"❦";position:absolute;color:var(--gold);font-size:2rem}
.info-card:before{top:12px;left:18px}.info-card:after{bottom:12px;right:18px;transform:rotate(180deg)}
.info-grid{display:grid;gap:14px;margin-top:22px}
.info-grid div{padding:14px 10px;border-bottom:1px solid rgba(134,23,42,.12)}
.info-grid span{display:block;color:var(--soft);font-size:.85rem}
.info-grid strong{display:block;margin-top:4px;font-size:1.15rem}
.card-orn{color:var(--gold);margin:24px 0 12px;font-size:1.5rem}.card-note{font-size:.95rem;color:#75503d}
.bridge{text-align:center;min-height:76svh}
.big-line{color:var(--red);font-size:clamp(1.45rem,5.5vw,2.5rem);line-height:1.7;margin:20px 0}
.divider{display:flex;align-items:center;gap:12px;color:var(--gold);width:min(72vw,380px);margin-top:25px}
.divider span{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.wedding-together{background:linear-gradient(180deg,#f5e6c8,#faefdd)}
.wedding-glow{position:absolute;width:440px;height:440px;border-radius:50%;background:radial-gradient(circle, rgba(202,156,73,.20), transparent 66%);filter:blur(4px)}
.wedding-layout{width:min(1120px,100%);display:grid;grid-template-columns:1fr;gap:28px;align-items:center;position:relative;z-index:2}
.wedding-image-wrap{text-align:center}
.wedding-couple-image{width:min(86vw,520px);border-radius:44% 44% 18px 18px;box-shadow:var(--shadow);border:1px solid rgba(202,156,73,.45)}
.wedding-copy{text-align:center;max-width:620px;margin:0 auto}
.wedding-quote{color:var(--red);font-size:clamp(1.45rem,6vw,2.35rem);line-height:1.5}
.event{background:radial-gradient(circle at 50% 25%, rgba(202,156,73,.14), transparent 30%), linear-gradient(180deg,#f6ead1,#f9f1e0)}
.reception{background:radial-gradient(circle at 50% 22%, rgba(134,23,42,.08), transparent 32%), linear-gradient(180deg,#f9f1e0,#f4e4c5)}
.event-card{width:min(92vw,650px);padding:44px 24px;text-align:center;border-top:2px solid rgba(202,156,73,.55);border-bottom:2px solid rgba(202,156,73,.55)}
.day{margin:28px 0 0;color:var(--soft);font-weight:700}
.date{margin:5px 0 24px;color:var(--gold-deep);font-size:clamp(2rem,10vw,4.2rem);font-weight:700;line-height:1.1}
.meta{display:flex;flex-direction:column;gap:5px;margin:26px 0 18px}
.meta span{color:var(--soft);font-size:.86rem}.meta strong{font-size:1.12rem}
.pill-link{display:inline-flex;margin-top:10px;padding:12px 18px;border-radius:999px;text-decoration:none;border:1px solid rgba(134,23,42,.22);background:rgba(255,255,255,.5);color:var(--red)}
.blessing{text-align:center;min-height:84svh}.soft-copy{margin-top:26px;color:#75513d}
.contact{text-align:center;background:linear-gradient(180deg,#f7ebd5,#f2dfbb)}
.contact-grid{margin-top:28px;display:grid;gap:14px;width:min(92vw,540px)}
.contact-card{text-decoration:none;padding:20px 22px;background:rgba(255,255,255,.56);border:1px solid rgba(134,23,42,.16);display:grid;grid-template-columns:auto 1fr;gap:12px;text-align:left;box-shadow:0 8px 28px rgba(95,43,36,.07)}
.contact-card strong{font-size:1.35rem}.contact-card small{color:var(--soft)}.contact-card span{color:#279653;font-size:1.7rem;align-self:center}
.formal{padding-inline:14px}
.formal-card{width:min(94vw,700px);padding:55px 30px;text-align:center;position:relative;background:radial-gradient(circle at center, rgba(202,156,73,.10), transparent 50%), #fbf2df;border:4px double var(--gold);box-shadow:var(--shadow)}
.mantra{color:var(--red);font-weight:700}.formal-butter{font-size:2rem;color:var(--gold);margin:14px}.formal-card strong{font-size:1.5rem;color:var(--red)}.and{font-size:1.5rem;color:var(--gold-deep)}.formal-copy{line-height:1.8;margin:26px 0}
.formal-date{display:inline-block;padding:10px 16px;color:var(--red);border-top:1px solid var(--gold);border-bottom:1px solid var(--gold);font-weight:700;font-size:1.35rem}
.formal-date.small{font-size:1.15rem}.formal-divider{color:var(--gold);margin:25px}.formal-card h3{color:var(--gold-deep);font-size:1.6rem}
.finale{background:radial-gradient(circle at center, rgba(255,210,112,.10), transparent 36%), linear-gradient(180deg,#8f1427,#600913);color:#f9e9c6;text-align:center}
.finale h2{color:#f2cc75;font-size:clamp(3rem,14vw,6rem)}
.final-orn{font-size:4rem;color:#e1b55d;margin-bottom:16px}.final-date{color:#efd18d;letter-spacing:.18em;margin:18px 0 35px}.final-soft{margin-top:22px}
.signoff{display:flex;flex-direction:column;gap:4px;margin-top:40px}.signoff span{opacity:.75}.signoff strong{color:#f3d58d}
.final-bottom{position:absolute;bottom:max(28px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:2px;color:#efca77}.final-bottom small{opacity:.75}
.location-fab{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));z-index:1200;height:58px;min-width:58px;border-radius:999px;border:1px solid #e5bf6a;background:var(--red);color:#fff;box-shadow:0 10px 32px rgba(70,10,20,.28);display:flex;align-items:center;justify-content:center;gap:8px;padding:0 18px;cursor:pointer}
.fab-label{max-width:90px;overflow:hidden;white-space:nowrap;transition:max-width .4s ease,opacity .3s ease,margin .3s ease}
.location-fab.collapse .fab-label{max-width:0;opacity:0;margin:0}
.sheet-backdrop{position:fixed;inset:0;z-index:1290;background:rgba(40,17,15,.46);backdrop-filter:blur(3px)}
.location-sheet{position:fixed;left:50%;bottom:0;transform:translate(-50%,105%);z-index:1300;width:min(100%,520px);background:#fbf2df;border:1px solid rgba(202,156,73,.55);border-radius:24px 24px 0 0;padding:18px 20px max(22px,env(safe-area-inset-bottom));box-shadow:0 -18px 60px rgba(50,20,15,.24);transition:transform .34s ease}
.location-sheet.open{transform:translate(-50%,0)}
.sheet-handle{width:52px;height:5px;border-radius:99px;background:rgba(95,43,36,.2);margin:0 auto 18px}
.sheet-close{position:absolute;right:18px;top:14px;border:0;background:none;font-size:1.8rem;color:var(--ink);cursor:pointer}
.location-sheet h3{font-size:1.55rem;line-height:1.25;margin:2px 40px 20px 0}
.location-choice{text-decoration:none;display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;padding:16px 14px;margin:10px 0;border:1px solid rgba(134,23,42,.14);background:rgba(255,255,255,.55)}
.location-choice strong{display:block;color:var(--red)}.location-choice small{display:block;color:#80604c;margin-top:3px}.choice-emoji{font-size:1.5rem}.location-choice b{font-size:2rem;color:var(--gold-deep)}
.ghost-btn{width:100%;margin-top:10px;padding:13px;border:0;background:transparent;color:var(--red);font-family:inherit;cursor:pointer}
@media (min-width:860px){
  .section{padding:110px 40px}
  .showcase-wrap{grid-template-columns:minmax(200px,300px) minmax(340px,520px) minmax(200px,300px);gap:30px}
  .family-layout{grid-template-columns:minmax(250px,360px) minmax(360px,700px);gap:44px}
  .family-layout.reverse{grid-template-columns:minmax(360px,700px) minmax(250px,360px)}
  .wedding-layout{grid-template-columns:minmax(320px,540px) minmax(320px,540px);gap:54px}
  .location-sheet{left:auto;right:20px;bottom:92px;width:400px;transform:translateY(20px) scale(.97);opacity:0;border-radius:20px;pointer-events:none}
  .location-sheet.open{transform:none;opacity:1;pointer-events:auto}
}
@media (prefers-reduced-motion: reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* ===== Layout/debug fixes ===== */
.hero-content{width:min(92vw,760px)}
.hero-events{
  margin:28px auto 0;
  width:min(92vw,560px);
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}
.hero-event{
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:10px;
  text-align:left;
  padding:11px 14px;
  border:1px solid rgba(134,23,42,.12);
  background:rgba(255,249,235,.42);
  backdrop-filter:blur(2px);
}
.hero-event-icon{font-size:1.25rem}
.hero-event strong,.hero-event small{display:block}
.hero-event strong{color:var(--red)}
.hero-event small{color:var(--soft);margin-top:2px}

.showcase-wrap{justify-items:center}
.showcase-person{display:flex;align-items:flex-end;justify-content:center;min-height:260px}
.showcase-person img{width:auto;height:auto;object-fit:contain}
.showcase-center{padding:8px 0}

.family-layout,.wedding-layout{justify-items:center}
.info-card,.event-card,.formal-card{max-width:100%}
.portrait-shell{isolation:isolate}
.portrait-media{z-index:1}
.portrait-cutout{z-index:1}

.wedding-image-wrap{width:100%;display:flex;justify-content:center}
.wedding-couple-image{display:block;height:auto;max-height:72vh;object-fit:cover}

.location-sheet{max-height:min(78vh,620px);overflow:auto}
.location-choice{border-radius:14px}
.location-fab{font-family:inherit}

@media (max-width:859px){
  .section{min-height:auto;padding:84px 18px}
  .hero{min-height:100svh;padding-top:58px;padding-bottom:100px}
  .showcase-wrap{gap:10px}
  .showcase-person{min-height:0}
  .showcase-person img{max-height:44vh;max-width:72vw}
  .showcase-center{order:-1;margin-bottom:8px}
  .groom-show{order:0}
  .bride-show{order:1}
  .family-layout.reverse .info-card{order:1}
  .family-layout.reverse .portrait-card{order:0}
  .info-card,.event-card{width:min(94vw,680px);padding-left:18px;padding-right:18px}
  .wedding-layout{gap:20px}
  .wedding-couple-image{width:min(92vw,520px);max-height:none}
  .contact-grid{width:min(94vw,540px)}
}

@media (min-width:560px){
  .hero-events{grid-template-columns:1fr 1fr}
}

@media (min-width:860px){
  .showcase-wrap{grid-template-columns:minmax(220px,300px) minmax(340px,500px) minmax(220px,300px)}
  .showcase-person img{max-width:100%;max-height:62vh}
  .family-layout,.family-layout.reverse{justify-content:center}
  .wedding-layout{justify-content:center}
}

/* ══════════════════════════════════════════════════
   FULL-SCREEN CURTAIN OVERLAY
══════════════════════════════════════════════════ */
.curtain-overlay{
  position:fixed;inset:0;z-index:9999;
  display:flex;pointer-events:all;
  overflow:hidden;
}
.curtain-overlay.opened{pointer-events:none}

/* Left & right panels */
.co-left,.co-right{
  position:absolute;top:0;bottom:0;
  width:51%;                        /* slight overlap at seam */
  background:
    linear-gradient(115deg, rgba(255,255,255,.07) 0 18%, transparent 22%),
    linear-gradient(180deg,#8c0f22 0%,#6b0a18 40%,#520812 100%);
  transition:transform 1.55s cubic-bezier(.77,0,.18,1);
  will-change:transform;
}
.co-left{ left:0; border-right:3px solid rgba(202,156,73,.9); transform-origin:left center; }
.co-right{ right:0; border-left:3px solid rgba(202,156,73,.9); transform-origin:right center; }

/* Vertical fabric lines */
.co-left::before,.co-right::before{
  content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(
    90deg,
    rgba(255,255,255,.045) 0 1px,
    transparent 1px 22px
  );
  pointer-events:none;
}

/* Gold top trim */
.co-left::after,.co-right::after{
  content:"";position:absolute;top:0;left:0;right:0;height:6px;
  background:linear-gradient(90deg,var(--gold-deep),var(--gold),var(--gold-deep));
  box-shadow:0 2px 18px rgba(202,156,73,.55);
}

/* Sheen sweep */
.co-sheen{
  position:absolute;inset:0;
  background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.09) 50%,transparent 70%);
  animation:sheenMove 3.2s ease-in-out infinite;
  pointer-events:none;
}
@keyframes sheenMove{
  0%,100%{transform:translateX(-120%)}
  50%{transform:translateX(120%)}
}

/* Bottom fringe / tassels */
.co-fringe{
  position:absolute;bottom:0;left:0;right:0;height:38px;
  background:repeating-linear-gradient(
    90deg,
    var(--gold) 0 4px,
    transparent 4px 18px
  );
  opacity:.75;
  mask-image:linear-gradient(180deg,transparent 0%,#000 60%);
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 60%);
}

/* Center seal (monogram) */
.co-center-seal{
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:8px;
  pointer-events:none;
  transition:opacity .4s ease .9s, transform .4s ease .9s;
}
.co-seal-ring{
  width:220px;height:220px;border-radius:50%;
  border:2px solid rgba(202,156,73,.85);
  box-shadow:0 0 0 6px rgba(202,156,73,.15), inset 0 0 0 1px rgba(202,156,73,.3);
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  animation:sealPulse 2.4s ease-in-out infinite;
}
@keyframes sealPulse{
  0%,100%{box-shadow:0 0 0 6px rgba(202,156,73,.15), inset 0 0 0 1px rgba(202,156,73,.3)}
  50%{box-shadow:0 0 0 18px rgba(202,156,73,.07), inset 0 0 0 1px rgba(202,156,73,.5), 0 0 40px rgba(202,156,73,.3)}
}
/* Lottie envelope container */
.co-lottie-wrap{
  position:relative;z-index:1;
  width:200px;height:200px;
  display:flex;align-items:center;justify-content:center;
  filter:drop-shadow(0 8px 28px rgba(0,0,0,.45));
}
.co-seal-text{
  color:var(--gold);
  font-family:"Li Mayukh Unicode","Tiro Bangla","Noto Serif Bengali",serif;
  font-size:clamp(1.3rem,4.5vw,2rem);
  font-weight:400;
  letter-spacing:.08em;
  text-shadow:0 2px 12px rgba(0,0,0,.55);
  white-space:nowrap;
  position:relative;z-index:1;
  /* animate in after a beat */
  opacity:0;
  transform:translateY(10px);
  animation:sealTextIn .6s ease .8s forwards;
}
@keyframes sealTextIn{
  to{opacity:1;transform:translateY(0)}
}

/* Gold ray flash on open */
.co-gold-ray{
  position:absolute;inset:0;z-index:3;
  background:radial-gradient(ellipse at center, rgba(202,156,73,.38) 0%, transparent 65%);
  opacity:0;pointer-events:none;
  transition:opacity .25s ease;
}
.curtain-overlay.flash .co-gold-ray{opacity:1}

/* When opened: panels slide out */
.curtain-overlay.opened .co-left{transform:translateX(-101%)}
.curtain-overlay.opened .co-right{transform:translateX(101%)}
.curtain-overlay.opened .co-center-seal{opacity:0;transform:translate(-50%,-50%) scale(.82)}

/* ══════════════════════════════════════════════════
   SCROLL-REVEAL BASE STATE (Apple-style)
   Elements start invisible; JS adds .is-visible
══════════════════════════════════════════════════ */
.reveal{
  opacity:0;
  transform:translateY(32px);
  transition:opacity .72s cubic-bezier(.22,1,.36,1), transform .72s cubic-bezier(.22,1,.36,1);
}
.reveal.from-left{ transform:translateX(-44px) }
.reveal.from-right{ transform:translateX(44px) }
.reveal.scale-up{ transform:translateY(20px) scale(.96) }
.reveal.is-visible{
  opacity:1 !important;
  transform:none !important;
}

/* Stagger helpers */
.reveal-group > *{
  opacity:0;
  transform:translateY(26px);
  transition:opacity .6s cubic-bezier(.22,1,.36,1), transform .6s cubic-bezier(.22,1,.36,1);
}
.reveal-group.is-visible > *:nth-child(1){opacity:1;transform:none;transition-delay:.04s}
.reveal-group.is-visible > *:nth-child(2){opacity:1;transform:none;transition-delay:.14s}
.reveal-group.is-visible > *:nth-child(3){opacity:1;transform:none;transition-delay:.24s}
.reveal-group.is-visible > *:nth-child(4){opacity:1;transform:none;transition-delay:.34s}
.reveal-group.is-visible > *:nth-child(5){opacity:1;transform:none;transition-delay:.44s}

/* ══════════════════════════════════════════════════
   HERO ENTRANCE — hidden until curtain done
══════════════════════════════════════════════════ */
.hero-content{visibility:hidden}
.hero-content.hero-ready{visibility:visible}

/* Name character spacing expand */
.hero-names span{
  display:inline-block;
  letter-spacing:.01em;
  transition:letter-spacing 1.1s cubic-bezier(.22,1,.36,1);
}
.hero-names.expanded span{letter-spacing:.08em}

/* Gold divider line draw */
.divider span{
  transform:scaleX(0);
  transform-origin:center;
  transition:transform .9s cubic-bezier(.22,1,.36,1);
}
.divider.is-visible span{transform:scaleX(1)}

/* ══════════════════════════════════════════════════
   PETAL FALL — richer variation
══════════════════════════════════════════════════ */
.petals span{filter:blur(0px)}
.petals span:nth-child(odd){filter:blur(.4px);color:rgba(134,23,42,.22)}

/* ══════════════════════════════════════════════════
   PORTRAIT CARD hover lift
══════════════════════════════════════════════════ */
.portrait-shell{transition:box-shadow .45s ease, transform .45s cubic-bezier(.22,1,.36,1)}
.portrait-card:hover .portrait-shell{
  transform:translateY(-8px);
  box-shadow:0 28px 60px rgba(83,38,26,.18)
}

/* ══════════════════════════════════════════════════
   EVENT CARD subtle glow on scroll-reveal
══════════════════════════════════════════════════ */
.event-card,.formal-card{
  transition:box-shadow .55s ease, transform .55s cubic-bezier(.22,1,.36,1);
}
.event-card.is-visible,.formal-card.is-visible{
  box-shadow:0 12px 44px rgba(134,23,42,.13), 0 0 0 1px rgba(202,156,73,.18);
}

/* ══════════════════════════════════════════════════
   CONTACT CARD hover
══════════════════════════════════════════════════ */
.contact-card{
  transition:transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s ease;
}
.contact-card:hover{
  transform:translateY(-4px) scale(1.015);
  box-shadow:0 14px 38px rgba(95,43,36,.13);
}

/* ══════════════════════════════════════════════════
   SCROLL PROGRESS subtle line at top
══════════════════════════════════════════════════ */
.scroll-progress{
  position:fixed;top:0;left:0;height:2px;width:0%;
  background:linear-gradient(90deg,var(--gold-deep),var(--gold),var(--red));
  z-index:10000;
  transition:width .1s linear;
  pointer-events:none;
}

/* ══════════════════════════════════════════════════
   PREFERS REDUCED MOTION
══════════════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce){
  .curtain-overlay{display:none!important}
  .reveal,.reveal-group>*{opacity:1!important;transform:none!important;transition:none!important}
  .hero-content{visibility:visible!important}
}
