/* ==========================================================================
   Template: Kına Gecesi (henna-night)
   Bindallı velvet in al / bordo / mor / zümrüt, couture gold sırma
   embroidery, oya lace hems, tulip & carnation motifs and a faint sequin
   shimmer. Intro: a red duvak (bridal veil) curtain with embroidered edges
   that parts to reveal the invitation.
   ========================================================================== */

.tpl-henna-night {
  --m-oya: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='26' fill='none' stroke='black' stroke-width='1.1'%3E%3Cpath d='M0 2.5H36'/%3E%3Cpath d='M0 3Q18 24 36 3'/%3E%3Cpath d='M5 3Q18 17 31 3' stroke-dasharray='1.4 2.4' stroke-width='.9'/%3E%3Cg fill='black' stroke='none'%3E%3Cpath d='M18 15.5C14.2 15.2 12 17.8 12.6 21C15 20.6 17 18.6 18 15.5Z'/%3E%3Cpath d='M18 15.5C21.8 15.2 24 17.8 23.4 21C21 20.6 19 18.6 18 15.5Z'/%3E%3Cpath d='M18 15.5C16.2 18.6 16.2 22 18 25C19.8 22 19.8 18.6 18 15.5Z'/%3E%3Ccircle cx='0' cy='6.5' r='1.5'/%3E%3Ccircle cx='36' cy='6.5' r='1.5'/%3E%3Ccircle cx='8.5' cy='9' r='.85'/%3E%3Ccircle cx='27.5' cy='9' r='.85'/%3E%3C/g%3E%3C/svg%3E");
  --m-vine: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='88' fill='none' stroke='black' stroke-width='1.1' stroke-linecap='round'%3E%3Cpath d='M14 0C22 22 6 22 14 44C22 66 6 66 14 88'/%3E%3Cg fill='black' stroke='none'%3E%3Cpath d='M16 17C20 9 25 8 27 10C25 16 20 19 16 17Z'/%3E%3Cpath d='M12 61C8 53 3 52 1 54C3 60 8 63 12 61Z'/%3E%3Cpath d='M14 44C11 39 11 34 14 29C17 34 17 39 14 44Z'/%3E%3Ccircle cx='9' cy='24' r='1.2'/%3E%3Ccircle cx='19' cy='68' r='1.2'/%3E%3Ccircle cx='14' cy='0' r='1.4'/%3E%3Ccircle cx='14' cy='88' r='1.4'/%3E%3C/g%3E%3Cpath d='M14 44C10 41 7 37 7 33M14 44C18 41 21 37 21 33' stroke-width='.9'/%3E%3C/svg%3E");
  --m-lattice: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' fill='none' stroke='black' stroke-width='.9'%3E%3Cpath d='M48 0C48 24 0 24 0 48C0 72 48 72 48 96M48 0C48 24 96 24 96 48C96 72 48 72 48 96'/%3E%3Cpath d='M48 62C41 58 39 47 41 37C44 43 46 46 48 47C50 46 52 43 55 37C57 47 55 58 48 62Z'/%3E%3Cpath d='M48 66V74M48 72C44 72 41 70 40 67M48 72C52 72 55 70 56 67'/%3E%3Cg fill='black' stroke='none'%3E%3Cpath d='M48 58C44 50 44 40 48 31C52 40 52 50 48 58Z'/%3E%3Ccircle cx='0' cy='0' r='2.4'/%3E%3Ccircle cx='96' cy='0' r='2.4'/%3E%3Ccircle cx='0' cy='96' r='2.4'/%3E%3Ccircle cx='96' cy='96' r='2.4'/%3E%3Ccircle cx='48' cy='0' r='1.4'/%3E%3Ccircle cx='48' cy='96' r='1.4'/%3E%3Ccircle cx='0' cy='48' r='1.4'/%3E%3Ccircle cx='96' cy='48' r='1.4'/%3E%3C/g%3E%3C/svg%3E");
  --m-tulip: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 26' fill='black'%3E%3Cpath d='M12 21C7 19 5 12 6 4C8 9 10 11 12 12C14 11 16 9 18 4C19 12 17 19 12 21Z' opacity='.55'/%3E%3Cpath d='M12 20C9 15 9 8 12 1C15 8 15 15 12 20Z'/%3E%3Cpath d='M11.4 20H12.6V26H11.4Z'/%3E%3C/svg%3E");
  --m-seqa: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Ccircle cx='12' cy='20' r='1.3'/%3E%3Ccircle cx='64' cy='9' r='.9'/%3E%3Ccircle cx='118' cy='31' r='1.6'/%3E%3Ccircle cx='37' cy='72' r='1'/%3E%3Ccircle cx='92' cy='60' r='1.4'/%3E%3Ccircle cx='140' cy='94' r='.9'/%3E%3Ccircle cx='20' cy='121' r='1.5'/%3E%3Ccircle cx='75' cy='110' r='1.1'/%3E%3Ccircle cx='111' cy='140' r='1.3'/%3E%3Ccircle cx='52' cy='142' r='.8'/%3E%3C/svg%3E");
  --m-seqb: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='170' height='170'%3E%3Ccircle cx='30' cy='44' r='1.1'/%3E%3Ccircle cx='88' cy='28' r='1.5'/%3E%3Ccircle cx='150' cy='12' r='.9'/%3E%3Ccircle cx='6' cy='96' r='1.2'/%3E%3Ccircle cx='62' cy='88' r='1.6'/%3E%3Ccircle cx='128' cy='76' r='1.1'/%3E%3Ccircle cx='100' cy='126' r='1'/%3E%3Ccircle cx='160' cy='150' r='1.4'/%3E%3Ccircle cx='38' cy='158' r='1.2'/%3E%3C/svg%3E");
  --radius: 4px;
  --radius-sm: 3px;
  --btn-radius: 999px;
  --shadow: 0 26px 50px -30px rgba(0, 0, 0, .8);
  --names-size: clamp(3.5rem, 16vw, 6.4rem);
  --title-size: clamp(1.9rem, 6.4vw, 2.8rem);
  --eyebrow-spacing: .3em;
  --content-width: 41rem;
  --c-line: color-mix(in srgb, var(--c-primary) 28%, transparent);
  --c-error: #ffb3a7;
  --c-success: #a9e2bb;
  --gilt: color-mix(in srgb, var(--c-primary) 62%, transparent);
  --stitch: color-mix(in srgb, var(--c-primary) 46%, transparent);
  --deep: color-mix(in srgb, var(--c-bg) 72%, #000);
  --foil: linear-gradient(120deg, color-mix(in srgb, var(--c-accent) 85%, #000) 0%, var(--c-primary) 26%, color-mix(in srgb, var(--c-primary) 45%, #fff) 48%, var(--c-primary) 66%, var(--c-accent) 100%);
  --velvet:
    radial-gradient(ellipse 80% 50% at 18% 0%, color-mix(in srgb, var(--c-surface) 75%, #fff 25%) 0%, transparent 62%),
    radial-gradient(ellipse 70% 60% at 100% 55%, color-mix(in srgb, var(--c-surface) 85%, #fff 15%) 0%, transparent 60%),
    radial-gradient(ellipse 80% 60% at 0% 100%, var(--deep) 0%, transparent 70%),
    linear-gradient(170deg, var(--c-surface), var(--c-bg) 45%, var(--deep));
  --intro-bg: var(--deep);
  --door-bg: var(--c-surface);
  --door-edge: var(--c-primary);
  --intro-duration: 1.5s;
  color-scheme: dark;
  background-color: var(--c-bg);
  background-image: var(--velvet);
  background-attachment: fixed;
  font-size: clamp(1.08rem, 2.8vw, 1.18rem);
}
.tpl-henna-night ::selection { background: var(--c-primary); color: var(--c-bg); }
.tpl-henna-night :focus-visible { outline-color: var(--c-primary); }

/* ---- Backgrounds --------------------------------------------------------- */
.tpl-henna-night::before { content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none; }
.tpl-henna-night.bg-kadife::before {
  background:
    repeating-linear-gradient(104deg, rgba(255, 255, 255, .022) 0 1px, transparent 1px 3px),
    repeating-linear-gradient(14deg, rgba(0, 0, 0, .05) 0 1px, transparent 1px 4px),
    radial-gradient(ellipse 40% 30% at 70% 20%, rgba(255, 255, 255, .06), transparent 70%),
    radial-gradient(ellipse 50% 35% at 25% 70%, rgba(255, 255, 255, .045), transparent 70%);
}
.tpl-henna-night.bg-sirma::before {
  background: var(--c-primary);
  opacity: .13;
  -webkit-mask: var(--m-lattice) 50% 0 / 96px 96px repeat;
  mask: var(--m-lattice) 50% 0 / 96px 96px repeat;
}
.tpl-henna-night.bg-sade { background-image: linear-gradient(180deg, var(--c-surface), var(--c-bg) 30rem); }
.tpl-henna-night.bg-sade::before { display: none; }

/* ---- Embroidered helpers --------------------------------------------------- */
.hn { position: relative; overflow-x: clip; }
.hn-oya { height: 26px; margin: 0 auto; max-width: 64rem; background: var(--c-primary); opacity: .75; -webkit-mask: var(--m-oya) 50% 0 / 36px 26px repeat-x; mask: var(--m-oya) 50% 0 / 36px 26px repeat-x; }
.hn-oya--flip { transform: scaleY(-1); margin-top: 1rem; }
.hn-divider { display: block; width: min(300px, 74%); margin: .4rem auto; color: var(--c-primary); }
.hn-band { position: relative; margin-block: 1rem; background: linear-gradient(180deg, rgba(0, 0, 0, .2), rgba(0, 0, 0, .1) 50%, rgba(0, 0, 0, .2)); border-block: 1px solid var(--gilt); }
.hn-band::before { content: ""; position: absolute; inset: 6px 0; border-block: 1px dashed var(--stitch); pointer-events: none; }
.hn-band::after { content: ""; position: absolute; left: 0; right: 0; top: 14px; height: 26px; background: var(--c-primary); opacity: .45; -webkit-mask: var(--m-oya) 50% 0 / 36px 26px repeat-x; mask: var(--m-oya) 50% 0 / 36px 26px repeat-x; pointer-events: none; }

/* ---- Intro: the red duvak curtain ---------------------------------------- */
.tpl-henna-night .inv-intro { background: var(--deep); background-image: var(--velvet); }
.tpl-henna-night .inv-intro__door {
  color: var(--c-primary);
  background:
    repeating-linear-gradient(90deg, rgba(0, 0, 0, .14) 0, rgba(255, 255, 255, .05) 19px, rgba(0, 0, 0, .14) 38px),
    repeating-linear-gradient(90deg, transparent 0, rgba(255, 255, 255, .04) 31px, transparent 62px),
    radial-gradient(ellipse 80% 40% at 50% 0%, color-mix(in srgb, var(--c-surface) 70%, #fff 30%) 0%, transparent 70%),
    linear-gradient(180deg, color-mix(in srgb, var(--c-surface) 88%, #fff 12%), var(--c-surface) 40%, var(--c-bg));
}
.tpl-henna-night .inv-intro__door--left { box-shadow: inset -1px 0 0 var(--gilt), inset -24px 0 30px -20px rgba(0, 0, 0, .5); }
.tpl-henna-night .inv-intro__door--right { box-shadow: inset 1px 0 0 var(--gilt), inset 24px 0 30px -20px rgba(0, 0, 0, .5); }
.tpl-henna-night .inv-intro__door-face .orn { opacity: .85; }
/* embroidered sırma border running down the parting edge */
.tpl-henna-night .inv-intro__door-face::before,
.tpl-henna-night .inv-intro__door-face::after { content: ""; position: absolute; top: 0; bottom: 0; pointer-events: none; }
.tpl-henna-night .inv-intro__door-face::after { width: 40px; border-inline: 1px solid var(--gilt); }
.tpl-henna-night .inv-intro__door--left .inv-intro__door-face::after { right: 8px; }
.tpl-henna-night .inv-intro__door--right .inv-intro__door-face::after { left: 8px; }
.tpl-henna-night .inv-intro__door-face::before { width: 28px; background: var(--c-primary); -webkit-mask: var(--m-vine) 0 0 / 28px 88px repeat-y; mask: var(--m-vine) 0 0 / 28px 88px repeat-y; }
.tpl-henna-night .inv-intro__door--left .inv-intro__door-face::before { right: 14px; }
.tpl-henna-night .inv-intro__door--right .inv-intro__door-face::before { left: 14px; transform: scaleX(-1); }
/* oya lace hem and sequin shimmer */
.tpl-henna-night .inv-intro__door::before { content: ""; position: absolute; left: 0; right: 0; bottom: 8px; height: 26px; background: var(--c-primary); -webkit-mask: var(--m-oya) 0 0 / 36px 26px repeat-x; mask: var(--m-oya) 0 0 / 36px 26px repeat-x; transform: scaleY(-1); z-index: 1; }
.tpl-henna-night .inv-intro__door::after { content: ""; position: absolute; inset: 0; background: color-mix(in srgb, var(--c-primary) 70%, #fff); opacity: .35; -webkit-mask: var(--m-seqa) 0 0 / 150px 150px repeat; mask: var(--m-seqa) 0 0 / 150px 150px repeat; pointer-events: none; }
.tpl-henna-night .inv-intro__content {
  width: min(100% - 2.6rem, 23rem);
  padding: 3.6rem 1.6rem 2.2rem;
  gap: .7rem;
  background:
    radial-gradient(ellipse 90% 45% at 50% 0%, color-mix(in srgb, var(--c-surface) 80%, #fff 20%) 0%, transparent 70%),
    linear-gradient(180deg, var(--c-surface), var(--c-bg));
  border: 1px solid var(--gilt);
  border-radius: 50% 50% 6px 6px / 24% 24% 6px 6px;
  outline: 1px dashed var(--stitch);
  outline-offset: -8px;
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--c-bg) 60%, transparent), 0 0 0 6px var(--stitch), 0 40px 70px -24px rgba(0, 0, 0, .75);
}
.tpl-henna-night .inv-intro__seal {
  width: 5.6rem; height: 5.6rem; margin-bottom: .2rem;
  background: radial-gradient(circle at 35% 28%, color-mix(in srgb, var(--c-primary) 45%, #fff) 0%, var(--c-primary) 40%, var(--c-accent) 75%, color-mix(in srgb, var(--c-accent) 70%, #000) 100%);
  color: var(--c-bg);
  font-size: 1.45rem; font-weight: 500;
  outline: 1px dashed color-mix(in srgb, var(--c-bg) 55%, transparent);
  outline-offset: -8px;
  box-shadow: 0 0 0 4px var(--c-surface), 0 0 0 5px var(--gilt), 0 14px 26px -10px rgba(0, 0, 0, .7), inset 0 -6px 12px rgba(0, 0, 0, .2);
}
.tpl-henna-night .inv-intro__eyebrow { color: var(--c-primary); font-size: .72rem; letter-spacing: .3em; padding-left: .3em; }
.tpl-henna-night .inv-intro__title { font-family: var(--f-script); font-size: clamp(2.8rem, 12vw, 3.8rem); line-height: 1.15; padding: 0 .15em; background: var(--foil); -webkit-background-clip: text; background-clip: text; color: transparent; }
.tpl-henna-night .inv-intro__guest { font-style: italic; font-size: 1.15rem; color: var(--c-text); }
.tpl-henna-night .inv-intro__date { color: var(--c-secondary); text-transform: uppercase; letter-spacing: .22em; font-size: .74rem; border-block: 1px solid var(--c-line); padding: .45rem 1rem; }
.tpl-henna-night .inv-intro__open { background: var(--foil); color: var(--c-bg); font-weight: 600; font-size: .78rem; letter-spacing: .2em; padding: 1rem 2.1rem; box-shadow: 0 0 0 3px var(--c-bg), 0 0 0 4px var(--gilt), 0 16px 30px -12px rgba(0, 0, 0, .7); animation: none; }
.tpl-henna-night .inv-intro__open:hover { filter: brightness(1.08); }

/* ---- Hero: embroidered bindallı panel ------------------------------------ */
.hn-hero { min-height: min(100svh, 60rem); padding: 2.6rem 1rem 5.6rem; }
.hn-sequins { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.hn-sequins::before, .hn-sequins::after { content: ""; position: absolute; inset: 0; background: color-mix(in srgb, var(--c-primary) 60%, #fff); }
.hn-sequins::before { opacity: .5; -webkit-mask: var(--m-seqa) 0 0 / 150px 150px repeat; mask: var(--m-seqa) 0 0 / 150px 150px repeat; animation: hn-twinkle 4.5s ease-in-out infinite alternate; }
.hn-sequins::after { opacity: .2; -webkit-mask: var(--m-seqb) 40px 30px / 170px 170px repeat; mask: var(--m-seqb) 40px 30px / 170px 170px repeat; animation: hn-twinkle 5.5s ease-in-out 1.2s infinite alternate-reverse; }
@keyframes hn-twinkle { from { opacity: .15; } to { opacity: .6; } }
.hn-hero__inner { width: 100%; justify-items: center; }
.hn-panel {
  position: relative;
  width: min(100%, 31rem);
  display: grid; justify-items: center; gap: .85rem;
  padding: 2.4rem clamp(1.1rem, 5vw, 2.4rem) 2.6rem;
  border: 1px solid var(--gilt);
  border-radius: 50% 50% 6px 6px / 21% 21% 6px 6px;
  background:
    radial-gradient(ellipse 80% 35% at 50% 0%, color-mix(in srgb, var(--c-surface) 72%, #fff 28%) 0%, transparent 75%),
    linear-gradient(180deg, color-mix(in srgb, var(--c-surface) 92%, transparent), color-mix(in srgb, var(--c-bg) 92%, transparent));
  box-shadow: 0 0 0 6px color-mix(in srgb, var(--c-bg) 50%, transparent), 0 0 0 7px var(--stitch), 0 40px 80px -40px rgba(0, 0, 0, .85);
}
.hn-panel::before { content: ""; position: absolute; inset: 8px; border: 1px dashed var(--stitch); border-radius: inherit; pointer-events: none; }
.hn-panel__frame { position: absolute; inset: 0; pointer-events: none; }
.hn-corner { position: absolute; width: 54px; color: var(--c-primary); }
.hn-corner svg { width: 100%; height: auto; }
.hn-corner--bl { bottom: 14px; left: 14px; transform: scaleY(-1); }
.hn-corner--br { bottom: 14px; right: 14px; transform: scale(-1, -1); }
.hn-hero__crown { width: min(230px, 66%); color: var(--c-primary); margin-bottom: .1rem; }
.hn-hero__eyebrow { color: var(--c-primary); font-size: .74rem; letter-spacing: .34em; padding-left: .34em; display: flex; align-items: center; gap: .8rem; }
.hn-hero__eyebrow::before, .hn-hero__eyebrow::after { content: ""; width: 1.8rem; height: 1px; background: var(--gilt); }
.hn-hero__names { font-family: var(--f-script); font-weight: 400; line-height: 1.05; gap: 0; margin-block: .1rem .2rem; }
.hn-hero__names .inv-hero__name { padding: .02em .22em .08em; overflow-wrap: anywhere; background: var(--foil); -webkit-background-clip: text; background-clip: text; color: transparent; text-shadow: none; }
.hn-hero__names .inv-hero__amp { font-family: var(--f-body); font-style: italic; font-size: .36em; color: var(--c-secondary); margin-block: -.1em; letter-spacing: 0; }
.hn-hero__divider { width: min(240px, 70%); color: var(--c-primary); }
.hn-hero__date { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: clamp(.6rem, 3vw, 1.3rem); width: min(100%, 24rem); color: var(--c-secondary); }
.hn-hero__weekday, .hn-hero__time { padding: .5rem 0; border-block: 1px solid var(--gilt); text-transform: uppercase; letter-spacing: .18em; font-size: .7rem; white-space: nowrap; }
.hn-hero__day { display: grid; justify-items: center; line-height: 1; }
.hn-hero__month, .hn-hero__year { text-transform: uppercase; letter-spacing: .24em; font-size: .7rem; padding-left: .24em; }
.hn-hero__num { font-family: var(--f-display); font-size: clamp(2.9rem, 12vw, 3.7rem); color: var(--c-primary); margin: .1em 0 .04em; font-variant-numeric: lining-nums; }
.hn-hero__venue { font-style: italic; font-size: clamp(1.2rem, 4vw, 1.4rem); color: var(--c-text); }
.tpl-henna-night .hn-hero__hashtag { color: var(--c-primary); letter-spacing: .1em; font-size: .95rem; }
.tpl-henna-night .inv-hero__scroll { color: var(--c-primary); opacity: .7; }
/* cover photo: the panel becomes a translucent veil over the image */
.tpl-henna-night .inv-hero.has-cover::before { background: linear-gradient(180deg, color-mix(in srgb, var(--deep) 45%, transparent), color-mix(in srgb, var(--deep) 80%, transparent)); }
.tpl-henna-night .inv-hero.has-cover .hn-sequins { display: none; }
.tpl-henna-night .inv-hero.has-cover .hn-panel { background: color-mix(in srgb, var(--deep) 58%, transparent); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.tpl-henna-night .inv-hero.has-cover .hn-hero__date,
.tpl-henna-night .inv-hero.has-cover .hn-hero__venue,
.tpl-henna-night .inv-hero.has-cover .hn-hero__eyebrow,
.tpl-henna-night .inv-hero.has-cover .inv-hero__amp,
.tpl-henna-night .inv-hero.has-cover .inv-hero__hashtag,
.tpl-henna-night .inv-hero.has-cover .inv-hero__scroll { color: #fff; }
.tpl-henna-night .inv-hero.has-cover .inv-hero__name { background: none; color: #fff; text-shadow: 0 2px 18px rgba(0, 0, 0, .45); }

/* ---- Section heads ------------------------------------------------------- */
.tpl-henna-night .inv-eyebrow { font-family: var(--f-script); text-transform: none; letter-spacing: .01em; font-size: clamp(1.6rem, 5vw, 1.9rem); line-height: 1.1; color: var(--c-primary); }
/* "LCV" is an abbreviation: script capitals read poorly, keep it in spaced display caps. */
.tpl-henna-night .inv-rsvp .inv-eyebrow { font-family: var(--f-display); text-transform: uppercase; letter-spacing: .32em; padding-left: .32em; font-size: .8rem; }
.tpl-henna-night .inv-section__title { color: var(--c-secondary); font-weight: 400; }
.tpl-henna-night .inv-section__head::after {
  content: ""; width: 150px; height: 26px; margin-top: .2rem;
  background:
    linear-gradient(var(--c-primary), var(--c-primary)) center / 24px 26px no-repeat,
    linear-gradient(90deg, transparent, var(--gilt) 30%, transparent 42%, transparent 58%, var(--gilt) 70%, transparent) center / 100% 1px no-repeat;
  -webkit-mask: var(--m-tulip) center / 22px 24px no-repeat, linear-gradient(#000, #000) center / 100% 1px no-repeat;
  mask: var(--m-tulip) center / 22px 24px no-repeat, linear-gradient(#000, #000) center / 100% 1px no-repeat;
}
.tpl-henna-night .inv-section__lead { font-style: italic; color: var(--c-muted); }
.tpl-henna-night .inv-divider { color: var(--c-primary); width: min(240px, 66%); }
.tpl-henna-night .inv-note, .tpl-henna-night .inv-hint { color: var(--c-muted); }

/* ---- Cards: velvet with sırma stitching ---------------------------------- */
.tpl-henna-night .inv-card,
.tpl-henna-night .inv-session,
.tpl-henna-night .inv-guestbook__entry {
  background:
    radial-gradient(ellipse 90% 60% at 20% 0%, rgba(255, 255, 255, .06), transparent 70%),
    linear-gradient(170deg, var(--c-surface), color-mix(in srgb, var(--c-surface) 55%, var(--c-bg)));
  border: 1px solid var(--gilt);
  outline: 1px dashed var(--stitch);
  outline-offset: -7px;
  box-shadow: var(--shadow);
}
.tpl-henna-night .inv-card { padding: clamp(1.7rem, 5vw, 2.4rem); }

/* ---- Welcome & people ---------------------------------------------------- */
.tpl-henna-night .inv-welcome__guest { font-size: 1.3rem; color: var(--c-text); }
.tpl-henna-night .inv-welcome__guest strong { font-weight: 600; color: var(--c-primary); }
.tpl-henna-night .inv-welcome__message { font-style: italic; font-size: clamp(1.25rem, 3.8vw, 1.45rem); line-height: 1.65; }
.tpl-henna-night .inv-person__role { font-size: .72rem; letter-spacing: .3em; padding-left: .3em; color: var(--c-primary); }
.tpl-henna-night .inv-person__name { color: var(--c-secondary); font-size: clamp(1.8rem, 6vw, 2.3rem); line-height: 1.15; }
.tpl-henna-night .inv-person__family { font-style: italic; color: var(--c-muted); }
.tpl-henna-night .inv-person__photo { border: 1px solid var(--c-primary); box-shadow: 0 0 0 5px var(--c-bg), 0 0 0 6px var(--gilt); }
.tpl-henna-night .inv-people__photo { border-radius: 50% 50% 4px 4px / 34% 34% 4px 4px; padding: 7px; background: var(--c-surface); border: 1px solid var(--gilt); }
.tpl-henna-night .inv-people__photo img { border-radius: inherit; }
.tpl-henna-night .inv-people__amp { font-family: var(--f-body); font-style: italic; font-size: 3.2rem; line-height: 1; color: var(--c-primary); }
@media (min-width: 640px) { .tpl-henna-night .inv-people__list { grid-template-columns: 1fr auto 1fr; grid-auto-flow: row; align-items: start; column-gap: 1.5rem; } .tpl-henna-night .inv-people__amp { margin-top: 1.4rem; } }

/* ---- Countdown: embroidered arches --------------------------------------- */
.tpl-henna-night .inv-countdown__grid { max-width: 32rem; gap: clamp(.45rem, 2vw, 1rem); }
.tpl-henna-night .inv-countdown__unit {
  aspect-ratio: 4 / 5; align-content: center; padding: .9rem .2rem .5rem;
  border-radius: 999px 999px 4px 4px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--c-surface) 85%, #fff 15%), var(--c-surface) 45%, color-mix(in srgb, var(--c-surface) 50%, var(--c-bg)));
  border: 1px solid var(--gilt);
  box-shadow: inset 0 0 0 4px color-mix(in srgb, var(--c-bg) 40%, transparent), inset 0 0 0 5px var(--stitch), var(--shadow);
}
.tpl-henna-night .inv-countdown__value { font-size: clamp(1.6rem, 7vw, 2.5rem); color: var(--c-primary); font-variant-numeric: lining-nums tabular-nums; }
.tpl-henna-night .inv-countdown__label { font-size: clamp(.56rem, 1.8vw, .66rem); letter-spacing: .16em; padding-left: .16em; color: var(--c-muted); }

/* ---- Sessions ------------------------------------------------------------ */
.tpl-henna-night .inv-sessions__list { max-width: 50rem; }
.tpl-henna-night .inv-session { padding: clamp(1.4rem, 4vw, 1.9rem); }
.tpl-henna-night .inv-session__date { min-width: 4.6rem; padding: 1rem .5rem .6rem; border-radius: 999px 999px 3px 3px; background: color-mix(in srgb, var(--c-primary) 10%, transparent); border: 1px solid var(--gilt); color: var(--c-secondary); }
.tpl-henna-night .inv-session__day { font-family: var(--f-display); color: var(--c-primary); font-variant-numeric: lining-nums; }
.tpl-henna-night .inv-session__year { color: var(--c-muted); }
.tpl-henna-night .inv-session__title { color: var(--c-secondary); }
.tpl-henna-night .inv-session__when { color: var(--c-muted); }
.tpl-henna-night .inv-session__time { color: var(--c-primary); }
.tpl-henna-night .inv-session__venue { color: var(--c-text); font-weight: 600; }
.tpl-henna-night .inv-session__desc { font-style: italic; color: var(--c-muted); }
.tpl-henna-night .inv-calendar__menu { background: var(--c-surface); border-color: var(--gilt); }
.tpl-henna-night .inv-calendar__menu a { color: var(--c-text); }
@media (max-width: 420px) {
  .tpl-henna-night .inv-session__date { border-radius: 999px; padding: .35rem 1rem; }
  .tpl-henna-night .inv-session__day { font-size: 1.5rem; }
}
@media (min-width: 768px) {
  .tpl-henna-night .inv-sessions__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tpl-henna-night .inv-sessions__list > :last-child:nth-child(odd) { grid-column: 1 / -1; width: min(100%, 26rem); justify-self: center; }
}

/* ---- Dress code: a yazma tag --------------------------------------------- */
.tpl-henna-night .inv-dress { padding-top: 0; }
.tpl-henna-night .inv-dress-code { width: fit-content; max-width: 100%; margin-inline: auto; padding: 1.1rem 2.6rem 1.3rem; border: 1px solid var(--gilt); outline: 1px dashed var(--stitch); outline-offset: -6px; border-radius: 3px; background: color-mix(in srgb, var(--c-surface) 80%, transparent); }
.tpl-henna-night .inv-dress-code__label { font-family: var(--f-script); text-transform: none; letter-spacing: .01em; font-size: 1.6rem; line-height: 1; }
.tpl-henna-night .inv-dress-code__value { color: var(--c-secondary); }

/* ---- Buttons & forms ----------------------------------------------------- */
.tpl-henna-night .inv-btn { text-transform: uppercase; letter-spacing: .14em; font-size: .74rem; padding-inline: 1.4rem; font-family: var(--f-body); font-weight: 600; }
.tpl-henna-night .inv-btn--primary { min-height: 52px; background: var(--foil); color: var(--c-bg); box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-bg) 70%, transparent), 0 0 0 4px var(--gilt), 0 14px 26px -14px rgba(0, 0, 0, .8); }
.tpl-henna-night .inv-btn--primary:hover { background: var(--foil); filter: brightness(1.08); }
.tpl-henna-night .inv-btn--ghost { color: var(--c-secondary); border-color: var(--gilt); background: color-mix(in srgb, var(--c-bg) 35%, transparent); }
.tpl-henna-night .inv-btn--ghost:hover { background: color-mix(in srgb, var(--c-primary) 14%, transparent); border-color: var(--c-primary); }
.tpl-henna-night .inv-link-btn { color: var(--c-primary); }
.tpl-henna-night .inv-label { color: var(--c-secondary); font-style: italic; font-size: 1.02rem; letter-spacing: .01em; }
.tpl-henna-night .inv-input { background: color-mix(in srgb, var(--c-bg) 70%, #000); border-color: color-mix(in srgb, var(--c-primary) 38%, transparent); color: var(--c-text); }
.tpl-henna-night .inv-input::placeholder { color: color-mix(in srgb, var(--c-muted) 75%, transparent); }
.tpl-henna-night .inv-input:focus { border-color: var(--c-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-primary) 22%, transparent); }
.tpl-henna-night select.inv-input option { background: var(--c-bg); color: var(--c-text); }
.tpl-henna-night .inv-choice__option span { border-color: var(--gilt); background: color-mix(in srgb, var(--c-bg) 45%, transparent); color: var(--c-text); }
.tpl-henna-night .inv-choice__option input:checked + span { background: var(--foil); border-color: var(--c-primary); color: var(--c-bg); font-weight: 600; box-shadow: 0 8px 22px -12px var(--c-primary); }
.tpl-henna-night .inv-privacy a { color: var(--c-primary); }
.tpl-henna-night .inv-dropzone { border: 1px dashed var(--gilt); background: color-mix(in srgb, var(--c-bg) 45%, transparent); color: var(--c-secondary); }
.tpl-henna-night .inv-dropzone:hover, .tpl-henna-night .inv-dropzone.is-dragover { background: color-mix(in srgb, var(--c-primary) 10%, transparent); border-color: var(--c-primary); }
.tpl-henna-night .inv-dropzone .inv-icon { color: var(--c-primary); }
.tpl-henna-night .inv-upload__item { background: color-mix(in srgb, var(--c-bg) 60%, transparent); }
.tpl-henna-night .inv-rsvp__thanks { font-family: var(--f-script); font-size: 2.2rem; color: var(--c-primary); }

/* ---- Gallery, guestbook, gift, contact ----------------------------------- */
.tpl-henna-night .inv-gallery__grid { gap: .7rem; }
.tpl-henna-night .inv-gallery__item { padding: 4px; background: var(--c-surface); border: 1px solid var(--gilt); }
.tpl-henna-night .inv-guestbook__entry { padding: 1.7rem 1.8rem; text-align: center; }
.tpl-henna-night .inv-guestbook__entry blockquote { font-size: 1.22rem; line-height: 1.55; color: var(--c-text); }
.tpl-henna-night .inv-guestbook__author { font-family: var(--f-script); font-size: 1.7rem; line-height: 1.2; color: var(--c-primary); }
.tpl-henna-night .inv-gift__holder, .tpl-henna-night .inv-contact__name { color: var(--c-secondary); font-size: 1.4rem; }
.tpl-henna-night .inv-gift__bank, .tpl-henna-night .inv-contact__role { color: var(--c-muted); }
.tpl-henna-night .inv-gift__iban code { color: var(--c-primary); font-size: .88rem; }

/* ---- Footer & music ------------------------------------------------------ */
.tpl-henna-night .inv-footer { padding-top: 2.6rem; padding-bottom: 4rem; }
.tpl-henna-night .inv-footer__ornament { width: min(200px, 56vw); color: var(--c-primary); }
.tpl-henna-night .inv-footer__text { font-style: italic; color: var(--c-muted); }
.tpl-henna-night .inv-footer__names { font-family: var(--f-script); font-size: clamp(2.8rem, 11vw, 3.8rem); line-height: 1.2; padding: 0 .2em; background: var(--foil); -webkit-background-clip: text; background-clip: text; color: transparent; }
.tpl-henna-night .inv-footer__hashtag { color: var(--c-primary); letter-spacing: .08em; }
.tpl-henna-night .inv-footer__brand, .tpl-henna-night .inv-footer__report { color: var(--c-muted); }
.tpl-henna-night .inv-music { background: var(--foil); color: var(--c-bg); box-shadow: 0 0 0 3px var(--c-bg), 0 0 0 4px var(--gilt), var(--shadow); }
.tpl-henna-night .inv-toast { background: var(--c-secondary); color: var(--c-bg); }

@media (min-width: 900px) {
  .hn-hero { padding-top: 4rem; }
  .hn-panel { padding-top: 3rem; }
  .hn-corner { width: 68px; }
  .hn-band { margin-block: 2rem; }
}

@media (prefers-reduced-motion: reduce) {
  .hn-sequins::before, .hn-sequins::after { animation: none; }
}
