/* ==========================================================================
   Fikoraa: premium front covers for the wedding designs (Templates gallery).
   Markup: js/template-covers.js. Everything here is scoped to .tpl-cover.
   Sizes use container units (cqi) so each cover scales with its card on
   phones, tablets and desktops.
   ========================================================================== */
.tpl-cover {
  --c-bg: #F8F4EC; --c-ink: #304638; --c-ac: #B89B63;
  container-type: inline-size;
  position: relative; aspect-ratio: 3 / 4; width: 100%; max-width: 100%;
  border-radius: var(--r-md, 12px); overflow: hidden; isolation: isolate;
  background: var(--c-bg); color: var(--c-ink);
  box-shadow: 0 1px 0 rgba(0,0,0,.04), 0 10px 24px -14px rgba(31,47,37,.35);
  transition: transform .5s var(--ease, ease), box-shadow .5s var(--ease, ease);
  font-family: var(--font-display); line-height: 1.15; text-align: center;
  -webkit-font-smoothing: antialiased;
}
.tpl-card:hover .tpl-cover, .tpl-card a:focus-visible .tpl-cover { transform: translateY(-4px); box-shadow: 0 2px 0 rgba(0,0,0,.04), 0 22px 40px -18px rgba(31,47,37,.5); }
.tpl-cover * { box-sizing: border-box; }
.tpl-cover .cv-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.tpl-cover > *, .tpl-cover .cv-in > *, .tpl-cover .cv-card > * { flex: none; }
.tpl-cover span, .tpl-cover em, .tpl-cover b, .tpl-cover i { display: block; }
.tpl-cover em { font-style: italic; }
.tpl-cover .cv-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease, ease); }
.tpl-card:hover .tpl-cover .cv-photo { transform: scale(1.05); }
.tpl-cover .cv-in { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 8cqi; gap: 2.4cqi; z-index: 2; }
.tpl-cover .cv-kick { font-family: var(--font-body); font-size: 2.7cqi; letter-spacing: .28em; text-transform: uppercase; font-weight: 600; }
.tpl-cover .cv-date { font-family: var(--font-body); font-size: 3.1cqi; letter-spacing: .06em; }
.tpl-cover .cv-open {
  margin-top: 1.5cqi; padding: 2.2cqi 5cqi; border-radius: 999px; font-family: var(--font-body);
  font-size: 2.9cqi; font-weight: 600; letter-spacing: .08em; white-space: nowrap;
  background: var(--c-ink); color: var(--c-bg); transition: transform .4s var(--ease, ease), box-shadow .4s;
}
.tpl-card:hover .tpl-cover .cv-open { transform: translateY(-1px); box-shadow: 0 0 0 1.2cqi color-mix(in srgb, var(--c-ac) 28%, transparent); }
/* Site motif band (same tibeb-inspired tile as the invitation's own band) */
.tpl-cover .cv-band { height: 4.2cqi; background: var(--c-ac); -webkit-mask: var(--motif-tile) repeat-x left center / auto 100%; mask: var(--motif-tile) repeat-x left center / auto 100%; }
.tpl-cover > .cv-band { position: absolute; left: 0; right: 0; z-index: 3; }
.tpl-cover > .cv-band.cv-t { top: 3cqi; }
.tpl-cover > .cv-band.cv-b { bottom: 3cqi; }
.tpl-cover:not(.cv-motif) > .cv-band { display: none; }
/* Sparkles: tiny four-point stars that glint on hover */
.tpl-cover .cv-sparkles { position: absolute; inset: 0; z-index: 3; pointer-events: none; }
.tpl-cover .cv-sparkles i { position: absolute; width: 3cqi; height: 3cqi; background: var(--c-ac); opacity: .55;
  clip-path: polygon(50% 0, 60% 40%, 100% 50%, 60% 60%, 50% 100%, 40% 60%, 0 50%, 40% 40%);
  transform: scale(.7); }
.tpl-cover .cv-sparkles i:nth-child(1) { left: 9%; top: 14%; }
.tpl-cover .cv-sparkles i:nth-child(2) { left: 86%; top: 20%; }
.tpl-cover .cv-sparkles i:nth-child(3) { left: 14%; top: 46%; }
.tpl-cover .cv-sparkles i:nth-child(4) { left: 82%; top: 52%; }
.tpl-cover .cv-sparkles i:nth-child(5) { left: 8%; top: 78%; }
.tpl-cover .cv-sparkles i:nth-child(6) { left: 88%; top: 84%; }
.tpl-cover .cv-sparkles i:nth-child(7) { left: 50%; top: 6%; }
.tpl-card:hover .tpl-cover .cv-sparkles i { animation: cv-glint 2.4s ease-in-out infinite; animation-delay: calc(var(--i) * .3s); }
@keyframes cv-glint { 0%, 100% { opacity: .25; transform: scale(.5) rotate(0); } 50% { opacity: .95; transform: scale(1.1) rotate(45deg); } }

/* ---------------- Regional designs (Amhara, Oromo, Tigray, Gurage, Harari, Somali, Afar, Sidama, Wolayta) ---------------- */
.tpl-cover.cv-regional { background-color: var(--dark); color: var(--on-dark); }
.cv-regional .cv-pattern { position: absolute; inset: 0; background-image: var(--pattern-dark); background-size: calc(var(--pattern-size-cq, 10cqi)) auto; opacity: 1; }
.cv-regional .cv-doors { position: absolute; inset: 0; display: flex; }
.cv-regional .cv-doors i { flex: 1; background-color: var(--dark); background-image: var(--pattern-dark); background-size: 10cqi auto; transition: transform 1.1s cubic-bezier(.7,0,.2,1); }
.cv-regional .cv-doors i:first-child { box-shadow: inset -.6cqi 0 0 var(--a1), inset -2.4cqi 0 3cqi -2cqi rgba(0,0,0,.45); }
.cv-regional .cv-doors i:last-child { box-shadow: inset .6cqi 0 0 var(--a1), inset 2.4cqi 0 3cqi -2cqi rgba(0,0,0,.45); }
.cv-regional .cv-doors::before { content: ""; position: absolute; inset: 0; background: radial-gradient(40% 60% at 50% 50%, var(--a1-soft), transparent 70%); opacity: .0; transition: opacity .9s; }
.tpl-card:hover .cv-regional .cv-doors i:first-child { transform: translateX(-9%); }
.tpl-card:hover .cv-regional .cv-doors i:last-child { transform: translateX(9%); }
.tpl-card:hover .cv-regional .cv-doors::before { opacity: 1; }
.cv-regional .cv-cord { position: absolute; left: 50%; top: 0; width: .7cqi; height: 12%; margin-left: -.35cqi; background: linear-gradient(var(--a1-hi), var(--a1)); z-index: 2; }
.cv-regional .cv-halo { position: absolute; inset: 0; background: radial-gradient(55% 45% at 50% 50%, var(--a1-soft), transparent 70%); opacity: .55; transition: opacity .9s, transform 1.4s; }
.tpl-card:hover .cv-regional .cv-halo { opacity: 1; transform: scale(1.15); }
.cv-regional .cv-card {
  position: absolute; left: 9%; right: 9%; top: 11%; bottom: 7%; z-index: 3;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.1cqi;
  padding: 7cqi 5cqi; background: var(--dark); color: var(--on-dark);
  border: .5cqi solid var(--a1); border-radius: var(--card-r, 2px);
  box-shadow: 0 0 0 1.6cqi var(--dark), 0 0 0 2cqi var(--a1-soft), 0 3cqi 6cqi -2cqi rgba(0,0,0,.55);
  transition: transform .9s var(--ease, ease), box-shadow .9s;
}
.cv-gate-doors .cv-card { top: 9%; bottom: 9%; }
.cv-gate-lift .cv-card { transform-origin: 50% -10%; }
.tpl-card:hover .cv-gate-lift .cv-card { animation: cv-swing 2.6s ease-in-out infinite; }
@keyframes cv-swing { 0%, 100% { transform: rotate(0); } 30% { transform: rotate(1.4deg); } 70% { transform: rotate(-1.4deg); } }
.tpl-card:hover .cv-gate-doors .cv-card, .tpl-card:hover .cv-gate-fade .cv-card { transform: scale(1.025); }
.cv-regional .cv-card-arch { border-radius: 999px 999px var(--card-r, 4px) var(--card-r, 4px); padding-top: 16cqi; top: 7%; }
.cv-regional .cv-card-frame { box-shadow: 0 0 0 1.6cqi var(--dark), 0 0 0 2.2cqi var(--a2), 0 3cqi 6cqi -2cqi rgba(0,0,0,.55); }
.cv-regional .cv-card-split { border-width: .35cqi; }
.cv-regional .cv-card .cv-band { position: absolute; left: 0; right: 0; height: 4.4cqi; background: var(--band) repeat-x left center / auto 100%; -webkit-mask: none; mask: none; }
.cv-regional .cv-card .cv-band:first-child { top: 0; }
.cv-regional .cv-card .cv-band:last-child { bottom: 0; }
.cv-regional .cv-card-arch .cv-band:first-child { display: none; }
.cv-regional .cv-art { width: 46cqi; height: auto; aspect-ratio: var(--art-ratio, 200/130); color: var(--a1); margin-bottom: .6cqi; filter: drop-shadow(0 0 2.4cqi var(--a1-soft)); }
.cv-regional .cv-bless { font-family: var(--f-lo); font-size: 3cqi; color: var(--a1-hi); line-height: 1.4; }
.cv-regional .cv-bless.cv-ar { font-family: "Amiri", serif; font-size: 4.4cqi; line-height: 1.5; }
.cv-regional .cv-title { font-family: var(--f-lo); font-weight: 800; font-size: 7.6cqi; line-height: 1.25; }
.cv-regional .cv-title.cv-latin-title { font-family: var(--f-lo); letter-spacing: .02em; font-size: 7cqi; }
.cv-regional .cv-en { font-family: var(--f-disp); font-style: italic; color: var(--on-dark-muted); font-size: 3.6cqi; }
.cv-regional .cv-names { font-family: var(--f-lo); font-size: 5.2cqi; color: var(--a1-hi); margin-top: 1.4cqi; line-height: 1.3; }
.cv-regional .cv-latin { font-family: var(--f-en); font-size: 2.5cqi; letter-spacing: .24em; color: var(--on-dark-muted); }
.cv-regional .cv-open { background: var(--a1); color: var(--dark); border-radius: var(--btn-r, 999px); font-family: var(--f-en); font-size: 2.8cqi; margin-top: 2cqi; }
.tpl-card:hover .cv-regional .cv-open { box-shadow: 0 0 0 1cqi var(--a1-soft), 0 0 5cqi var(--a1-soft); }

/* ---------------- Tibeb Traditional Invitation ---------------- */
.tpl-cover.cv-tibeb { background: var(--cream) repeating-linear-gradient(135deg, transparent 0 2.4cqi, color-mix(in srgb, var(--gold) 9%, transparent) 2.4cqi 2.8cqi); color: var(--ink); }
.cv-tibeb .cv-ribbon { position: absolute; left: 50%; top: 0; width: 9cqi; height: 16%; margin-left: -4.5cqi; background: var(--tibeb) repeat-y center top / 100% auto; z-index: 2; box-shadow: 0 .6cqi 1.4cqi rgba(0,0,0,.18); }
.cv-tibeb .cv-ribbon { background: var(--tibeb-thin) repeat-y center / 100% auto, var(--green); }
.cv-tibeb .cv-card { position: absolute; left: 11%; right: 11%; top: 14%; bottom: 12%; z-index: 3; background: #fffdf8;
  border: .45cqi solid var(--gold); outline: .3cqi solid var(--gold-soft); outline-offset: -2.6cqi;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.3cqi; padding: 6cqi;
  box-shadow: 0 3cqi 6cqi -3cqi rgba(42,29,18,.35); transition: transform .8s var(--ease, ease), box-shadow .8s; }
.tpl-card:hover .cv-tibeb .cv-card { transform: translateY(-1.6%); box-shadow: 0 5cqi 9cqi -4cqi rgba(42,29,18,.45); }
.cv-tibeb .cv-corner { position: absolute; width: 8cqi; height: 8cqi; color: var(--gold); }
.cv-tibeb .cv-corner.tl { top: 3.6cqi; left: 3.6cqi; }
.cv-tibeb .cv-corner.tr { top: 3.6cqi; right: 3.6cqi; transform: scaleX(-1); }
.cv-tibeb .cv-corner.bl { bottom: 3.6cqi; left: 3.6cqi; transform: scaleY(-1); }
.cv-tibeb .cv-corner.br { bottom: 3.6cqi; right: 3.6cqi; transform: scale(-1); }
.cv-tibeb .cv-cross { width: 17cqi; height: 17cqi; color: var(--gold); transition: transform 1.4s var(--ease, ease), filter 1s; }
.tpl-card:hover .cv-tibeb .cv-cross { transform: rotate(45deg); filter: drop-shadow(0 0 2cqi color-mix(in srgb, var(--gold) 55%, transparent)); }
.cv-tibeb .cv-bless { font-family: var(--eth); font-size: 2.9cqi; color: var(--green); margin-top: 1cqi; }
.cv-tibeb .cv-title { font-family: var(--eth); font-weight: 800; font-size: 8.4cqi; line-height: 1.3; }
.cv-tibeb .cv-en { font-family: var(--lat); font-style: italic; font-size: 3.8cqi; color: var(--muted); }
.cv-tibeb .cv-names { font-family: var(--eth); font-size: 5cqi; color: var(--red); margin-top: 1.2cqi; font-weight: 600; }
.cv-tibeb .cv-open { background: var(--green); color: #fff; font-family: var(--eth); font-weight: 600; }
.cv-tibeb .cv-tibeb-b { position: absolute; left: 0; right: 0; bottom: 0; height: 6.5cqi; background: var(--tibeb) repeat-x left center / auto 100%; }

/* ---------------- Brana Manuscript (leather book that opens) ---------------- */
.tpl-cover.cv-brana { background: radial-gradient(120% 90% at 50% 40%, #4a2c1c, var(--table) 70%); perspective: 160cqi; color: var(--parch); }
.cv-brana .cv-book { position: absolute; left: 13%; right: 11%; top: 7%; bottom: 7%; transform-style: preserve-3d; }
.cv-brana .cv-page { position: absolute; inset: 1.4cqi 0 1.4cqi 1cqi; background: linear-gradient(90deg, var(--parch-dark), var(--parch) 12%); border-radius: 0 1.4cqi 1.4cqi 0;
  box-shadow: .8cqi 0 0 -.2cqi #d9c393, 1.6cqi 0 0 -.4cqi #cdb47e, 0 3cqi 6cqi -2cqi rgba(0,0,0,.6); padding: 14cqi 9cqi; display: grid; align-content: start; gap: 2.4cqi; }
.cv-brana .cv-page b { font-family: var(--fid); color: var(--rub); font-size: 16cqi; line-height: 1; justify-self: start; }
.cv-brana .cv-page i { height: .5cqi; background: color-mix(in srgb, var(--ink) 30%, transparent); border-radius: 1cqi; }
.cv-brana .cv-page i:nth-of-type(2n) { width: 80%; }
.cv-brana .cv-leather {
  position: absolute; inset: 0; transform-origin: left center; transition: transform 1.3s cubic-bezier(.6,0,.2,1);
  background: radial-gradient(90% 70% at 40% 35%, color-mix(in srgb, var(--leather) 82%, #a0603a), var(--leather) 55%, #3b1d10);
  border-radius: .8cqi 1.6cqi 1.6cqi .8cqi; border-left: 2.6cqi solid #3b1d10;
  box-shadow: inset 0 0 0 2.4cqi transparent, inset 0 0 0 2.7cqi var(--ochre), inset 0 0 0 3.6cqi transparent, inset 0 0 0 3.85cqi color-mix(in srgb, var(--ochre) 70%, transparent), 0 3cqi 7cqi -2cqi rgba(0,0,0,.7);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.6cqi; padding: 8cqi 7cqi;
  backface-visibility: hidden;
}
.cv-brana .cv-leather::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; opacity: .35;
  background: repeating-radial-gradient(circle at 30% 20%, rgba(255,255,255,.05) 0 .3cqi, transparent .3cqi .9cqi); }
.tpl-card:hover .cv-brana .cv-leather { transform: rotateY(-24deg); }
.cv-brana .cv-harag { position: absolute; left: 5.5cqi; right: 5.5cqi; height: 4.6cqi; background: var(--harag) repeat-x left center / auto 100%; }
.cv-brana .cv-harag:first-child { top: 5.5cqi; } .cv-brana .cv-harag:last-child { bottom: 5.5cqi; }
.cv-brana .cv-cross { width: 24cqi; height: 24cqi; color: var(--ochre); filter: drop-shadow(0 .4cqi 0 rgba(0,0,0,.35)); }
.cv-brana .cv-title { font-family: var(--fid); font-size: 8.6cqi; color: #e8c779; text-shadow: 0 .4cqi 0 rgba(0,0,0,.4); line-height: 1.3; }
.cv-brana .cv-names { font-family: var(--fidb); font-size: 4.6cqi; color: var(--parch); }
.cv-brana .cv-en { font-family: var(--lat); font-style: italic; font-size: 3.6cqi; color: color-mix(in srgb, var(--parch) 75%, transparent); }
.cv-brana .cv-open { background: var(--rub); color: var(--parch); font-family: var(--fidb); border-radius: .6cqi; box-shadow: inset 0 0 0 .3cqi #e8c779; }

/* ---------------- Noor — Nikah & Walima (lattice, hanging basket medallion) ---------------- */
.tpl-cover.cv-noor { background: var(--star) var(--deep); background-size: 13cqi 13cqi; color: var(--ivory); }
.cv-noor .cv-cord { position: absolute; left: 50%; top: 0; height: 18%; width: .6cqi; margin-left: -.3cqi; background: linear-gradient(var(--gold-hi), var(--gold)); z-index: 3; }
.cv-noor .cv-medal { position: absolute; left: 50%; top: 13%; width: 17cqi; height: 17cqi; margin-left: -8.5cqi; z-index: 5; transform-origin: 50% -60%; filter: drop-shadow(0 1cqi 1.6cqi rgba(0,0,0,.45)); }
.cv-noor .cv-basket { width: 100%; height: 100%; transition: transform 1.6s var(--ease, ease); }
.tpl-card:hover .cv-noor .cv-medal { animation: cv-swing 2.8s ease-in-out infinite; }
.tpl-card:hover .cv-noor .cv-basket { transform: rotate(120deg); }
.cv-noor .cv-card { position: absolute; left: 10%; right: 10%; top: 22%; bottom: 8%; z-index: 4; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.8cqi; padding: 12cqi 5cqi 6cqi;
  background: radial-gradient(90% 70% at 50% 30%, #13604b, var(--emerald) 70%); border: .45cqi solid var(--gold); box-shadow: inset 0 0 0 1.6cqi var(--emerald), inset 0 0 0 1.9cqi color-mix(in srgb, var(--gold) 60%, transparent), 0 3cqi 6cqi -2cqi rgba(0,0,0,.55); }
.cv-noor .cv-bis { font-family: var(--ar); font-size: 6cqi; color: var(--gold-hi); line-height: 1.6; }
.cv-noor .cv-kick { font-family: var(--body); color: var(--gold); font-size: 2.3cqi; letter-spacing: .2em; }
.cv-noor .cv-names { font-family: var(--disp); font-size: 8cqi; line-height: 1.1; margin-top: 1cqi; }
.cv-noor .cv-am { font-family: var(--eth); font-size: 3.4cqi; color: color-mix(in srgb, var(--ivory) 75%, transparent); }
.cv-noor .cv-langs { display: flex; gap: 1.4cqi; margin-top: 2.4cqi; }
.cv-noor .cv-langs i { font-style: normal; font-family: var(--body); font-size: 2.5cqi; padding: 1.5cqi 2.6cqi; border-radius: 999px; border: .3cqi solid var(--gold); color: var(--gold-hi); }
.cv-noor .cv-langs i:first-child { background: var(--gold); color: var(--deep); }

/* ---------------- Noor Emerald ---------------- */
.tpl-cover.cv-emerald { background: radial-gradient(90% 70% at 50% 35%, var(--green2), var(--green) 70%); color: var(--cream); font-family: Georgia, "Times New Roman", serif; }
.cv-emerald .cv-rays { position: absolute; inset: 0; background: linear-gradient(33deg, transparent 49.8%, color-mix(in srgb, var(--gold) 22%, transparent) 50%, transparent 50.2%), linear-gradient(-33deg, transparent 49.8%, color-mix(in srgb, var(--gold) 22%, transparent) 50%, transparent 50.2%); }
.cv-emerald .cv-frame { position: absolute; inset: 4cqi; border: .35cqi solid color-mix(in srgb, var(--gold) 80%, transparent); box-shadow: inset 0 0 0 1.4cqi transparent, inset 0 0 0 1.7cqi color-mix(in srgb, var(--gold) 40%, transparent); }
.cv-emerald .cv-frame::before { content: ""; position: absolute; left: 36%; right: 36%; top: 6%; height: 17%; border: .3cqi solid color-mix(in srgb, var(--gold) 45%, transparent); border-bottom: 0; border-radius: 999px 999px 0 0; }
.cv-emerald .cv-glow { position: absolute; inset: 0; background: radial-gradient(40% 30% at 50% 42%, rgba(230,201,127,.28), transparent 70%); transition: opacity 1s, transform 1.4s; opacity: .6; }
.tpl-card:hover .cv-emerald .cv-glow { opacity: 1; transform: scale(1.2); }
.cv-emerald .cv-in { gap: 1.8cqi; }
.cv-emerald .cv-brand { position: absolute; top: 7cqi; left: 8cqi; font-family: var(--font-body); font-size: 2.3cqi; letter-spacing: .24em; color: var(--gold); font-weight: 600; }
.cv-emerald .cv-crescent { width: 9cqi; height: 9cqi; color: var(--gold); }
.cv-emerald .cv-bis { font-family: "Amiri", serif; font-size: 5.8cqi; color: var(--gold); line-height: 1.6; }
.cv-emerald .cv-kick { color: color-mix(in srgb, var(--gold) 85%, transparent); font-size: 2.3cqi; }
.cv-emerald .cv-names { font-size: 11cqi; line-height: 1.02; }
.cv-emerald .cv-names em { font-size: .5em; color: var(--gold); margin: .6cqi 0; }
.cv-emerald .cv-seal { width: 8cqi; height: 8cqi; border-radius: 50%; border: .35cqi solid var(--gold); color: var(--gold); font-family: "Amiri", serif; font-size: 4.6cqi; line-height: 7cqi; }
.cv-emerald .cv-open { background: var(--gold); color: var(--green); }

/* ---------------- Habesha Fusion ---------------- */
.tpl-cover.cv-fusion { background: radial-gradient(100% 70% at 30% 20%, var(--coal), var(--black) 70%); color: var(--ivory); text-align: left; }
.cv-fusion .cv-emblem { position: absolute; right: -16cqi; top: -10cqi; width: 78cqi; height: 78cqi; color: var(--gold); opacity: .16; transition: transform 2s var(--ease, ease), opacity 1s; }
.tpl-card:hover .cv-fusion .cv-emblem { transform: rotate(45deg); opacity: .28; }
.cv-fusion .cv-strip { position: absolute; top: 0; bottom: 0; left: 8cqi; width: 5.5cqi; background: var(--tibeb) repeat-y center top / 100% auto; }
.cv-fusion .cv-in { align-items: flex-start; justify-content: flex-start; padding: 26cqi 8cqi 0 20cqi; gap: 2.6cqi; }
.cv-fusion .cv-kick { font-family: var(--body); color: var(--gold); font-size: 2.3cqi; letter-spacing: .26em; font-weight: 500; }
.cv-fusion .cv-names { font-family: var(--disp); font-size: 12cqi; line-height: 1.02; font-weight: 400; }
.cv-fusion .cv-names em { display: inline; color: var(--gold); font-family: var(--disp); }
.cv-fusion .cv-am { font-family: var(--eth); font-size: 4.2cqi; color: var(--gold-hi); }
.cv-fusion .cv-band { position: absolute; left: 13.5cqi; right: 0; top: 66%; height: 5cqi; background: var(--tibeb-h) repeat-x left center / auto 100%; -webkit-mask: none; mask: none; display: block !important; }
.cv-fusion .cv-foot { position: absolute; left: 20cqi; right: 7cqi; bottom: 8cqi; display: grid; gap: 2.4cqi; z-index: 2; }
.cv-fusion .cv-to { font-family: var(--body); font-size: 2.6cqi; color: var(--muted); letter-spacing: .1em; }
.cv-fusion .cv-to b { display: inline; color: var(--ivory); font-family: var(--disp); font-style: italic; font-weight: 400; font-size: 3.6cqi; letter-spacing: 0; }
.cv-fusion .cv-langs { display: flex; flex-wrap: wrap; gap: 1.6cqi; }
.cv-fusion .cv-langs i { font-style: normal; font-family: var(--body); font-size: 2.6cqi; padding: 1.8cqi 3cqi; border: .3cqi solid var(--gold); color: var(--gold-hi); white-space: nowrap; }
.cv-fusion .cv-langs i:last-child { font-family: var(--eth); }
.cv-fusion .cv-langs i:first-child { background: var(--gold); color: var(--black); }
.cv-fusion .cv-sheen { position: absolute; inset: -20% -60%; background: linear-gradient(105deg, transparent 42%, rgba(226,196,134,.16) 50%, transparent 58%); transform: translateX(-60%); pointer-events: none; z-index: 4; }
.tpl-card:hover .cv-fusion .cv-sheen { transition: transform 1.6s ease; transform: translateX(60%); }

/* ---------------- Garden Romance (envelope that opens) ---------------- */
.tpl-cover.cv-garden { background: radial-gradient(90% 70% at 50% 30%, #fffdf9, var(--linen)); color: var(--char); }
.cv-garden .cv-garland { position: absolute; width: 44cqi; height: 44cqi; color: var(--sage); opacity: .9; }
.cv-garden .cv-garland.tl { top: -8cqi; left: -8cqi; transform: rotate(180deg) scaleX(-1); }
.cv-garden .cv-garland.br { bottom: -6cqi; right: -8cqi; }
.cv-garden .cv-script { position: absolute; top: 15%; left: 0; right: 0; font-family: var(--script); font-size: 12cqi; color: var(--sage-dark); line-height: 1.2; }
.cv-garden .cv-kick { position: absolute; top: 33%; left: 0; right: 0; font-family: var(--sans); font-size: 2.4cqi; letter-spacing: .26em; color: var(--rose-deep); }
.cv-garden .cv-env { position: absolute; left: 12%; right: 12%; bottom: 13%; height: 40%; perspective: 120cqi; }
.cv-garden .cv-back { position: absolute; inset: 0; background: #e8dfd0; border-radius: 1cqi; box-shadow: 0 3cqi 6cqi -3cqi rgba(53,53,53,.35); }
.cv-garden .cv-letter { position: absolute; left: 7%; right: 7%; top: 8%; bottom: 6%; background: #fff; border-radius: .6cqi; box-shadow: 0 .6cqi 2cqi rgba(0,0,0,.08);
  display: flex; flex-direction: column; align-items: center; justify-content: flex-start; padding-top: 5cqi; gap: 1cqi; transition: transform 1s .25s var(--ease, ease); z-index: 1; }
.cv-garden .cv-letter em { font-family: var(--script); font-style: normal; font-size: 7cqi; color: var(--sage-dark); }
.cv-garden .cv-letter small { font-family: var(--serif); font-style: italic; font-size: 2.8cqi; color: var(--muted); }
.cv-garden .cv-pocket { position: absolute; inset: 0; z-index: 2; border-radius: 1cqi; background: linear-gradient(160deg, #f6f0e6, #efe6d6);
  clip-path: polygon(0 0, 50% 52%, 100% 0, 100% 100%, 0 100%); box-shadow: inset 0 -1cqi 2cqi rgba(0,0,0,.04); }
.cv-garden .cv-pocket::before { content: ""; position: absolute; inset: 0; background: linear-gradient(to top right, transparent 49.6%, rgba(0,0,0,.06) 50%, transparent 50.6%), linear-gradient(to top left, transparent 49.6%, rgba(0,0,0,.06) 50%, transparent 50.6%); }
.cv-garden .cv-flap { position: absolute; left: 0; right: 0; top: 0; height: 60%; z-index: 3; background: linear-gradient(#f3ece0, #e9dfcd); clip-path: polygon(0 0, 100% 0, 50% 100%);
  transform-origin: top center; transition: transform .9s cubic-bezier(.6,0,.2,1), z-index 0s .45s; filter: drop-shadow(0 .6cqi .6cqi rgba(0,0,0,.1)); }
.cv-garden .cv-wax { position: absolute; left: 50%; top: 60%; width: 12cqi; height: 12cqi; margin: -6cqi 0 0 -6cqi; z-index: 4; border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #c98a86, var(--rose-deep) 55%, #7c4c49); color: #f6e4df; font-family: var(--script); font-size: 4.6cqi; line-height: 12cqi;
  box-shadow: 0 .6cqi 1.4cqi rgba(0,0,0,.25), inset 0 0 0 1cqi rgba(255,255,255,.08); display: flex !important; align-items: center; justify-content: center; transition: transform .6s, opacity .5s; }
.cv-garden .cv-wax i { font-style: normal; font-size: .7em; margin: 0 .3cqi; }
.tpl-card:hover .cv-garden .cv-flap { transform: rotateX(180deg); z-index: 0; transition: transform .9s cubic-bezier(.6,0,.2,1), z-index 0s .45s; }
.tpl-card:hover .cv-garden .cv-wax { transform: translateY(-4cqi) scale(.85); opacity: 0; }
.tpl-card:hover .cv-garden .cv-letter { transform: translateY(-34%); }

/* ---------------- Contemporary Ethiopian Elegance ---------------- */
.tpl-cover.cv-contemporary { background: radial-gradient(100% 70% at 50% 40%, #fffdf8, var(--c-bg)); }
.cv-contemporary .cv-kick { color: var(--c-ac); }
.cv-contemporary .cv-oval { position: relative; width: 44cqi; height: 56cqi; border-radius: 50%; overflow: hidden; margin: 1cqi 0 2cqi; box-shadow: 0 0 0 1.2cqi var(--c-bg), 0 0 0 1.5cqi var(--c-ac), 0 0 0 3cqi var(--c-bg), 0 0 0 3.25cqi color-mix(in srgb, var(--c-ac) 55%, transparent); transition: box-shadow .8s; }
.tpl-card:hover .cv-contemporary .cv-oval { box-shadow: 0 0 0 1.2cqi var(--c-bg), 0 0 0 1.5cqi var(--c-ac), 0 0 0 3cqi var(--c-bg), 0 0 0 3.25cqi var(--c-ac), 0 0 8cqi color-mix(in srgb, var(--c-ac) 45%, transparent); }
.cv-contemporary .cv-names { font-size: 9.6cqi; font-weight: 500; }
.cv-contemporary .cv-names em, .cv-luxury .cv-names em, .cv-redgold .cv-names em, .cv-burgundy .cv-names em, .cv-ivorygarden .cv-names em, .cv-addis .cv-names em, .cv-asmara .cv-names em { display: inline; color: var(--c-ac); }
.cv-contemporary .cv-date { color: color-mix(in srgb, var(--c-ink) 75%, var(--c-bg)); }

/* ---------------- Habesha-Inspired Luxury ---------------- */
.tpl-cover.cv-luxury { background: radial-gradient(90% 60% at 50% 35%, color-mix(in srgb, var(--c-bg) 80%, #3c6a52), var(--c-bg) 75%); color: var(--c-ink); }
.cv-luxury .cv-lattice { position: absolute; inset: 0; opacity: .14; background-image: linear-gradient(45deg, transparent 48%, var(--c-ac) 48% 52%, transparent 52%), linear-gradient(-45deg, transparent 48%, var(--c-ac) 48% 52%, transparent 52%); background-size: 9cqi 9cqi; }
.cv-luxury .cv-in { gap: 2cqi; padding-top: 12cqi; }
.cv-luxury .cv-arch { position: relative; width: 50cqi; height: 62cqi; border-radius: 999px 999px 1.4cqi 1.4cqi; overflow: hidden; margin-bottom: 2cqi;
  box-shadow: 0 0 0 .5cqi var(--c-ac), 0 0 0 2cqi color-mix(in srgb, var(--c-bg) 85%, black), 0 0 0 2.3cqi color-mix(in srgb, var(--c-ac) 60%, transparent), 0 0 10cqi color-mix(in srgb, var(--c-ac) 25%, transparent); transition: box-shadow .9s; }
.tpl-card:hover .cv-luxury .cv-arch { box-shadow: 0 0 0 .5cqi var(--c-ac), 0 0 0 2cqi color-mix(in srgb, var(--c-bg) 85%, black), 0 0 0 2.3cqi var(--c-ac), 0 0 16cqi color-mix(in srgb, var(--c-ac) 50%, transparent); }
.cv-luxury .cv-kick { color: var(--c-ac); }
.cv-luxury .cv-names { font-size: 9.4cqi; font-weight: 500; }
.cv-luxury .cv-date { opacity: .85; }
.cv-luxury .cv-open { background: var(--c-ac); color: var(--c-bg); }

/* ---------------- Green & Gold Celebration (split) ---------------- */
.tpl-cover.cv-greengold { background: var(--c-bg); }
.cv-greengold .cv-side { position: absolute; left: 0; top: 0; bottom: 0; width: 46%; overflow: hidden; }
.cv-greengold .cv-side::after { content: ""; position: absolute; inset: 2.6cqi; border: .3cqi solid rgba(255,255,255,.75); }
.cv-greengold .cv-vband { position: absolute; top: 0; bottom: 0; left: 46%; width: 3.4cqi; background: var(--c-ink);
  background-image: radial-gradient(circle, var(--c-ac) 0 .7cqi, transparent .8cqi), linear-gradient(90deg, var(--c-ac) 0 .35cqi, transparent .35cqi calc(100% - .35cqi), var(--c-ac) 0); background-size: 3.4cqi 3.4cqi, 100% 100%; }
.cv-greengold .cv-in { left: 49.4%; padding: 6cqi 5cqi; gap: 2.2cqi; }
.cv-greengold .cv-eth { font-family: var(--font-ethiopic); font-size: 3.4cqi; color: var(--c-ac); font-weight: 600; line-height: 1.4; }
.cv-greengold .cv-kick { color: var(--c-ac); font-size: 2.4cqi; }
.cv-greengold .cv-names { font-size: 9.4cqi; line-height: 1; font-weight: 500; }
.cv-greengold .cv-names em { font-size: .6em; color: var(--c-ac); margin: .8cqi 0; }
.cv-greengold .cv-rule { width: 10cqi; height: .3cqi; background: var(--c-ac); }
.cv-greengold .cv-date { letter-spacing: .2em; font-size: 2.8cqi; }
.cv-greengold .cv-open { padding-inline: 4.4cqi; }

/* ---------------- Contemporary Addis Romance (magazine cover) ---------------- */
.tpl-cover.cv-addis { color: #fff8ef; text-align: left; }
.cv-addis .cv-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(30,18,12,.72) 0%, rgba(30,18,12,.12) 34%, rgba(30,18,12,0) 52%, rgba(30,18,12,.78) 100%); }
.cv-addis .cv-mast { position: absolute; top: 6cqi; left: 7cqi; right: 7cqi; display: flex; justify-content: space-between; align-items: baseline; border-bottom: .25cqi solid rgba(255,248,239,.55); padding-bottom: 1.6cqi; z-index: 2; }
.cv-addis .cv-kick { font-size: 2.4cqi; }
.cv-addis .cv-issue { font-family: var(--font-body); font-size: 2.3cqi; letter-spacing: .1em; opacity: .85; }
.cv-addis .cv-names { position: absolute; left: 7cqi; right: 7cqi; top: 15cqi; font-size: 15cqi; font-style: italic; line-height: .95; z-index: 2; text-shadow: 0 .6cqi 3cqi rgba(0,0,0,.35); }
.cv-addis .cv-names em { color: #e9c99a; }
.cv-addis .cv-foot { position: absolute; left: 7cqi; right: 7cqi; bottom: 7cqi; display: flex; align-items: flex-end; justify-content: space-between; z-index: 2; }
.cv-addis .cv-date { font-size: 2.9cqi; line-height: 1.5; letter-spacing: .12em; text-transform: uppercase; }
.cv-addis .cv-open { background: #fff8ef; color: var(--c-ink); margin: 0; }

/* ---------------- Eritrean Heritage Elegance ---------------- */
.tpl-cover.cv-heritage { background: radial-gradient(100% 70% at 50% 40%, #fbf5ea, var(--c-bg)); }
.cv-heritage .cv-frame { position: absolute; inset: 9cqi 5cqi; border: .45cqi solid var(--c-ink); box-shadow: inset 0 0 0 1.3cqi transparent, inset 0 0 0 1.55cqi var(--c-ac); }
.cv-heritage .cv-frame::before, .cv-heritage .cv-frame::after { content: ""; position: absolute; left: 50%; width: 3.6cqi; height: 3.6cqi; margin-left: -1.8cqi; background: var(--c-ac); transform: rotate(45deg); box-shadow: 0 0 0 1cqi var(--c-bg); }
.cv-heritage .cv-frame::before { top: -2cqi; } .cv-heritage .cv-frame::after { bottom: -2cqi; }
.cv-heritage .cv-in { gap: 2cqi; }
.cv-heritage .cv-eth { font-family: var(--font-ethiopic); font-size: 3.6cqi; font-weight: 600; color: var(--c-ac); line-height: 1.4; }
.cv-heritage .cv-kick { font-size: 2.3cqi; color: var(--c-ink); opacity: .8; }
.cv-heritage .cv-wreathbox { position: relative; width: 56cqi; height: 56cqi; display: grid !important; place-items: center; margin: 1cqi 0; }
.cv-heritage .cv-wreath { position: absolute; inset: 0; width: 100%; height: 100%; color: var(--c-ac); transition: filter 1s, transform 1.4s var(--ease, ease); }
.tpl-card:hover .cv-heritage .cv-wreath { filter: drop-shadow(0 0 1.6cqi color-mix(in srgb, var(--c-ac) 60%, transparent)); transform: scale(1.04); }
.cv-heritage .cv-names { font-size: 9cqi; line-height: 1; font-weight: 500; }
.cv-heritage .cv-names em { font-size: .55em; color: var(--c-ac); margin: 1cqi 0; }
.cv-heritage .cv-date { font-size: 2.8cqi; }

/* ---------------- Red, Gold & Ivory Celebration ---------------- */
.tpl-cover.cv-redgold { color: var(--c-ink); }
.cv-redgold .cv-velvet { position: absolute; inset: 0; background: radial-gradient(80% 55% at 50% 35%, color-mix(in srgb, var(--c-bg) 75%, #e0505a), var(--c-bg) 60%, color-mix(in srgb, var(--c-bg) 70%, black)); }
.cv-redgold .cv-in { gap: 2cqi; padding-top: 12cqi; }
.cv-redgold .cv-arch { position: relative; width: 54cqi; height: 60cqi; border-radius: 999px 999px 0 0; overflow: hidden; box-shadow: 0 0 0 .6cqi var(--c-ac), 0 0 0 1.8cqi color-mix(in srgb, var(--c-bg) 80%, black), 0 0 0 2.1cqi var(--c-ac); }
.cv-redgold .cv-arch::after { content: ""; position: absolute; inset: 1.6cqi; border: .25cqi solid rgba(248,240,221,.8); border-radius: 999px 999px 0 0; }
.cv-redgold .cv-medal { width: 11cqi; height: 11cqi; margin-top: -7.5cqi; border-radius: 50%; position: relative; z-index: 2; display: flex !important; align-items: center; justify-content: center;
  background: radial-gradient(circle at 35% 30%, #f3dc9e, var(--c-ac) 55%, #9c7a35); color: var(--c-bg); font-size: 4.2cqi; font-weight: 600; box-shadow: 0 .8cqi 2cqi rgba(0,0,0,.35); transition: transform 1s var(--ease, ease); }
.cv-redgold .cv-medal i { font-style: italic; font-size: .7em; margin: 0 .2cqi; }
.tpl-card:hover .cv-redgold .cv-medal { transform: rotate(360deg); }
.cv-redgold .cv-kick { color: var(--c-ac); }
.cv-redgold .cv-names { font-size: 9.6cqi; font-weight: 500; }

/* ---------------- Modern Asmara Editorial (Art Deco) ---------------- */
.tpl-cover.cv-asmara { background: var(--c-bg); }
.cv-asmara .cv-deco { position: absolute; top: 0; left: 18%; width: 64%; height: auto; color: var(--c-ac); opacity: .7; }
.cv-asmara .cv-in { justify-content: flex-start; padding: 27cqi 8cqi 8cqi; gap: 2.4cqi; }
.cv-asmara .cv-kick { color: var(--c-ac); }
.cv-asmara .cv-names { font-size: 11.4cqi; font-style: italic; line-height: 1; }
.cv-asmara .cv-strip { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 2cqi; width: 100%; margin-top: 3cqi; }
.cv-asmara .cv-strip > span { position: relative; aspect-ratio: 3 / 5.4; overflow: hidden; box-shadow: 0 0 0 .3cqi var(--c-ac); outline: .25cqi solid color-mix(in srgb, var(--c-ac) 50%, transparent); outline-offset: 1cqi; transition: transform .7s var(--ease, ease); }
.cv-asmara .cv-strip > span:nth-child(2) { border-radius: 999px 999px 0 0; }
.tpl-card:hover .cv-asmara .cv-strip > span:nth-child(1) { transform: translateY(-1.6cqi); }
.tpl-card:hover .cv-asmara .cv-strip > span:nth-child(2) { transform: translateY(-3cqi); transition-delay: .08s; }
.tpl-card:hover .cv-asmara .cv-strip > span:nth-child(3) { transform: translateY(-1.6cqi); transition-delay: .16s; }
.cv-asmara .cv-foot { display: flex !important; justify-content: space-between; align-items: center; width: 100%; margin-top: auto; }
.cv-asmara .cv-date { font-size: 2.6cqi; letter-spacing: .14em; text-transform: uppercase; }
.cv-asmara .cv-open { margin: 0; }
.cv-asmara .cv-steps { position: absolute; left: 0; right: 0; bottom: 0; height: 2.6cqi; background: linear-gradient(90deg, var(--c-ink) 0 33%, var(--c-ac) 33% 67%, var(--c-ink) 67%); }

/* ---------------- Minimalist Luxury (letterpress card in a vellum band) ---------------- */
.tpl-cover.cv-minimal { background: var(--c-bg) radial-gradient(rgba(0,0,0,.035) .3cqi, transparent .4cqi) 0 0 / 2.2cqi 2.2cqi; }
.cv-minimal .cv-card { position: absolute; left: 12%; right: 12%; top: 9%; bottom: 9%; background: #fbf8f2; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2.6cqi;
  box-shadow: 0 .4cqi 0 rgba(0,0,0,.03), 0 3cqi 6cqi -3cqi rgba(42,36,33,.35); padding-bottom: 18cqi; }
.cv-minimal .cv-mono { display: flex !important; align-items: center; gap: 3cqi; font-size: 14cqi; font-weight: 500; color: var(--c-ink); text-shadow: 0 .25cqi 0 rgba(255,255,255,.9), 0 -.15cqi 0 rgba(0,0,0,.12); }
.cv-minimal .cv-mono i { width: .3cqi; height: 14cqi; background: var(--c-ac); transform: rotate(18deg); }
.cv-minimal .cv-names { font-family: var(--font-body); text-transform: uppercase; letter-spacing: .32em; font-size: 3cqi; font-weight: 500; }
.cv-minimal .cv-rule { width: 9cqi; height: .3cqi; background: var(--c-ac); }
.cv-minimal .cv-date { font-style: italic; font-family: var(--font-display); font-size: 4cqi; letter-spacing: 0; }
.cv-minimal .cv-vellum { position: absolute; left: 0; right: 0; top: 63%; height: 15%; z-index: 3; background: rgba(255,255,255,.55); -webkit-backdrop-filter: blur(1.2cqi); backdrop-filter: blur(1.2cqi);
  box-shadow: 0 0 0 .2cqi rgba(255,255,255,.6), 0 1.4cqi 3cqi -2cqi rgba(0,0,0,.2); display: flex !important; align-items: center; justify-content: center; transition: transform 1s var(--ease, ease), opacity .8s; }
.cv-minimal .cv-vellum span { font-family: var(--font-body); font-size: 2.5cqi; letter-spacing: .3em; text-transform: uppercase; color: var(--c-ink); opacity: .75; }
.cv-minimal .cv-wax { position: absolute; left: 50%; top: 70.5%; width: 12cqi; height: 12cqi; margin: -6cqi 0 0 -6cqi; z-index: 4; border-radius: 50%; display: flex !important; align-items: center; justify-content: center;
  background: radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--c-ac) 60%, white), var(--c-ac) 55%, color-mix(in srgb, var(--c-ac) 70%, black)); color: #f7e9e6; font-size: 4.4cqi; font-style: italic;
  box-shadow: 0 .8cqi 1.6cqi rgba(0,0,0,.28), inset 0 0 0 1cqi rgba(255,255,255,.08); transition: transform .9s var(--ease, ease), opacity .6s; }
.cv-minimal .cv-wax i { font-style: italic; font-size: .7em; margin: 0 .2cqi; }
.cv-minimal .cv-vellum { gap: 18cqi; }
.tpl-card:hover .cv-minimal .cv-vellum { transform: translateY(70%); opacity: .0; }
.tpl-card:hover .cv-minimal .cv-wax { transform: translateY(14cqi) scale(.8); opacity: 0; }

/* ---------------- Ivory Garden ---------------- */
.tpl-cover.cv-ivorygarden { background: radial-gradient(100% 70% at 50% 40%, #fff, var(--c-bg)); }
.cv-ivorygarden .cv-frame { position: absolute; inset: 4.5cqi; border: .25cqi solid color-mix(in srgb, var(--c-ac) 70%, transparent); box-shadow: inset 0 0 0 1.2cqi transparent, inset 0 0 0 1.4cqi color-mix(in srgb, var(--c-ac) 40%, transparent); }
.cv-ivorygarden .cv-kick { color: var(--c-ac); font-size: 2.4cqi; }
.cv-ivorygarden .cv-ring { position: relative; width: 62cqi; height: 62cqi; display: grid !important; place-items: center; margin: 1cqi 0; }
.cv-ivorygarden .cv-leaves { position: absolute; inset: 0; width: 100%; height: 100%; color: var(--c-ac); transition: transform 2.4s var(--ease, ease); }
.tpl-card:hover .cv-ivorygarden .cv-leaves { transform: rotate(14deg); }
.cv-ivorygarden .cv-round { position: relative; width: 44cqi; height: 44cqi; border-radius: 50%; overflow: hidden; box-shadow: 0 0 0 1cqi #fff, 0 0 0 1.25cqi color-mix(in srgb, var(--c-ac) 60%, transparent); }
.cv-ivorygarden .cv-names { font-size: 9.2cqi; font-weight: 500; }

/* ---------------- Midnight & Gold ---------------- */
.tpl-cover.cv-midnight { background: radial-gradient(100% 70% at 70% 20%, color-mix(in srgb, var(--c-bg) 75%, #4a5f8a), var(--c-bg) 70%); color: var(--c-ink); }
.cv-midnight .cv-stars { position: absolute; inset: 0; opacity: .7; background-image: radial-gradient(circle, var(--c-ac) 0 .25cqi, transparent .35cqi), radial-gradient(circle, rgba(255,255,255,.8) 0 .18cqi, transparent .28cqi);
  background-size: 11cqi 13cqi, 7cqi 9cqi; background-position: 0 0, 3cqi 4cqi; }
.cv-midnight .cv-split { position: absolute; inset: 10cqi 6cqi; display: flex !important; gap: 4cqi; z-index: 2; }
.cv-midnight .cv-pic { position: relative; flex: 1 1 0; overflow: hidden; border-radius: 999px 999px 1cqi 1cqi; box-shadow: 0 0 0 .45cqi var(--c-ac), 0 0 0 1.6cqi var(--c-bg), 0 0 0 1.85cqi color-mix(in srgb, var(--c-ac) 60%, transparent); }
.cv-midnight .cv-txt { flex: 1 1 0; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; text-align: left; gap: 2.4cqi; }
.cv-midnight .cv-kick { color: var(--c-ac); font-size: 2.3cqi; }
.cv-midnight .cv-names { font-size: 10cqi; line-height: 1; font-weight: 500; }
.cv-midnight .cv-names em { color: var(--c-ac); font-size: .6em; margin: .6cqi 0; }
.cv-midnight .cv-rule { width: 10cqi; height: .3cqi; background: var(--c-ac); }
.cv-midnight .cv-date { font-family: var(--font-display); font-size: 5cqi; line-height: 1.05; letter-spacing: 0; }
.cv-midnight .cv-open { background: var(--c-ac); color: var(--c-bg); padding-inline: 4.4cqi; }

/* ---------------- Burgundy & Champagne ---------------- */
.tpl-cover.cv-burgundy { background: var(--c-bg); }
.cv-burgundy .cv-top { position: absolute; left: 0; right: 0; top: 0; height: 60%; overflow: hidden; }
.cv-burgundy .cv-top::after { content: ""; position: absolute; inset: auto 0 0; height: 40%; background: linear-gradient(transparent, var(--c-bg)); }
.cv-burgundy .cv-in { top: 48%; justify-content: flex-start; padding: 4cqi 8cqi 7cqi; gap: 2cqi; }
.cv-burgundy .cv-kick { color: var(--c-ac); font-size: 2.4cqi; }
.cv-burgundy .cv-names { font-size: 12cqi; font-style: italic; line-height: 1; font-weight: 500;
  background: linear-gradient(100deg, var(--c-ink) 0 40%, color-mix(in srgb, var(--c-ac) 80%, white) 50%, var(--c-ink) 60%); background-size: 300% 100%; background-position: 100% 0; -webkit-background-clip: text; background-clip: text; color: transparent; transition: background-position 1.6s ease; }
.cv-burgundy .cv-names em { display: inline; }
.tpl-card:hover .cv-burgundy .cv-names { background-position: 0 0; }
.cv-burgundy .cv-rule { width: 30cqi; height: .3cqi; background: linear-gradient(90deg, transparent, var(--c-ac), transparent); }
.cv-burgundy .cv-foot { display: flex !important; align-items: center; justify-content: space-between; width: 100%; margin-top: auto; }
.cv-burgundy .cv-date { font-size: 2.6cqi; text-align: left; }
.cv-burgundy .cv-open { margin: 0; }

/* ---------------- Ceremony-Flexible Classic (monogram crest) ---------------- */
.tpl-cover.cv-flex { background: radial-gradient(100% 70% at 50% 40%, #fffdf9, var(--c-bg)); }
.cv-flex .cv-frame { position: absolute; inset: 5cqi; border: .3cqi solid var(--c-ac); box-shadow: inset 0 0 0 1.4cqi transparent, inset 0 0 0 1.65cqi color-mix(in srgb, var(--c-ac) 55%, transparent); }
.cv-flex .cv-in { gap: 2.6cqi; }
.cv-flex .cv-crest { position: relative; width: 40cqi; height: 40cqi; border-radius: 50%; display: grid !important; place-items: center; margin-bottom: 3cqi;
  box-shadow: inset 0 0 0 .4cqi var(--c-ac), inset 0 0 0 1.6cqi transparent, inset 0 0 0 1.85cqi color-mix(in srgb, var(--c-ac) 60%, transparent); overflow: hidden; }
.cv-flex .cv-crest::after { content: ""; position: absolute; inset: -20%; background: linear-gradient(110deg, transparent 40%, rgba(255,255,255,.75) 50%, transparent 60%); transform: translateX(-80%); }
.tpl-card:hover .cv-flex .cv-crest::after { transition: transform 1.4s ease; transform: translateX(80%); }
.cv-flex .cv-mono { display: flex !important; align-items: baseline; font-size: 15cqi; font-weight: 500; color: var(--c-ac); font-style: italic; }
.cv-flex .cv-mono i { font-size: .45em; margin: 0 .8cqi; color: var(--c-ink); }
.cv-flex .cv-names { font-family: var(--font-body); font-size: 3.6cqi; letter-spacing: .3em; text-transform: uppercase; font-weight: 500; }
.cv-flex .cv-kick { font-size: 2.1cqi; color: var(--c-ac); letter-spacing: .2em; }
.cv-flex .cv-date { font-style: italic; font-family: var(--font-display); font-size: 4.4cqi; letter-spacing: 0; }
.cv-flex .cv-open { background: transparent; color: var(--c-ink); box-shadow: inset 0 0 0 .3cqi var(--c-ac); }

/* Calm motion for anyone who prefers it */
@media (prefers-reduced-motion: reduce) {
  .tpl-cover, .tpl-cover *, .tpl-cover *::before, .tpl-cover *::after { animation: none !important; transition: none !important; }
}

/* Heritage collection (Oct 2026): covers are pictures of each design's own opening screen. */
.tpl-cover.cv-shot { background: var(--c-bg); }
.tpl-cover .cv-shot { object-position: 50% 50%; }
