/* Vushiss Spotlight 1.1.1 — photographic full-cover popup.
   All selectors are namespaced. The classic split layout retains its original CSS. */
.vss-modal-cover-top,
.vss-modal-cover-frame,
.vss-modal-cover-badge{display:none}

.vss-modal--cover .vss-modal-panel{
  width:min(530px,92vw,calc(85dvh * .78));
  height:min(720px,85dvh);
  min-height:0;
  border-radius:24px;
  border:1px solid rgba(255,233,250,.52);
  background:#160f20;
  box-shadow:0 40px 120px rgba(0,0,0,.72),0 0 95px rgba(193,91,194,.27),0 0 0 7px rgba(255,255,255,.025);
  isolation:isolate;
}
.vss-modal--cover .vss-modal-panel:before{
  border-radius:24px;
  border:1px solid rgba(255,255,255,.15);
  z-index:8;
}
.vss-modal--cover .vss-modal-panel:after{
  content:"";
  pointer-events:none;
  position:absolute;
  inset:-60%;
  z-index:8;
  background:linear-gradient(115deg,transparent 42%,rgba(255,255,255,.08) 49%,transparent 56%);
  transform:translateX(-95%) rotate(-7deg);
  opacity:0;
}
.vss-modal--cover.vss-modal-open .vss-modal-panel:after{
  animation:vss-cover-glint 1.3s .35s ease-out both;
}
.vss-modal--cover .vss-modal-link{
  display:block;
  position:relative;
  height:100%;
  width:100%;
  isolation:isolate;
  color:#fff!important;
  text-decoration:none!important;
}
.vss-modal--cover .vss-modal-photo{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  background-image:var(--vss-photo,linear-gradient(148deg,#8a5d9c,#25112b 65%,#130b1b));
  background-position:var(--vss-photo-position,50% 30%);
  background-size:cover;
  background-repeat:no-repeat;
  transform:scale(1.055);
  transition:transform 1.15s cubic-bezier(.15,.72,.2,1);
  will-change:transform;
}
.vss-modal--cover.vss-modal-open .vss-modal-photo{transform:scale(1)}
.vss-modal--cover .vss-modal-photo:before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(16,8,27,.34) 0%,transparent 21%,transparent 46%,rgba(13,6,23,.30) 61%,rgba(10,5,18,.93) 98%);
}
.vss-modal--cover .vss-modal-shade{
  background:radial-gradient(ellipse at 13% 91%,rgba(130,52,150,.27),transparent 54%),
    linear-gradient(0deg,rgba(12,4,18,.58),transparent 40%);
}
.vss-modal--cover .vss-modal-initials{
  font-size:clamp(85px,18vw,165px);
  text-shadow:0 2px 50px rgba(0,0,0,.24);
}
.vss-modal--cover .vss-modal-cover-frame{
  position:absolute;
  z-index:4;
  display:block;
  pointer-events:none;
  inset:13px;
  border:1px solid rgba(255,225,250,.32);
  border-radius:15px;
  box-shadow:inset 0 0 65px rgba(251,173,233,.035);
}
.vss-modal--cover .vss-modal-cover-frame:before,
.vss-modal--cover .vss-modal-cover-frame:after{
  content:"✦";
  position:absolute;
  font-size:11px;
  line-height:1;
  color:#ffd6f0;
  text-shadow:0 0 18px rgba(255,160,224,.9);
}
.vss-modal--cover .vss-modal-cover-frame:before{top:13px;left:13px}
.vss-modal--cover .vss-modal-cover-frame:after{bottom:13px;right:13px}
.vss-modal--cover .vss-modal-cover-top{
  display:flex;
  position:absolute;
  z-index:6;
  top:30px;
  left:32px;
  right:84px; /* Reserved space for the independent close control. */
  gap:4px;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  font-weight:800;
  color:#fff8ff;
  text-shadow:0 1px 13px rgba(12,4,22,.7);
}
.vss-modal--cover .vss-modal-cover-brand{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  font-size:clamp(9px,1vw,12px);
  letter-spacing:.15em;
  line-height:1.4;
}
.vss-modal--cover .vss-modal-cover-brand>span:last-child{
  color:#f9c8e7;
  font-size:10px;
  font-weight:600;
  letter-spacing:.17em;
}
.vss-modal--cover .vss-modal-cover-star{
  color:#ffb3e5;
  font-size:18px;
  text-shadow:0 0 20px rgba(255,159,230,.7);
}
.vss-modal--cover .vss-modal-cover-edition{
  font-size:9px;
  letter-spacing:.12em;
  border-left:0;
  padding-left:22px;
  margin-top:0;
  white-space:nowrap;
  font-weight:600;
}
.vss-modal--cover .vss-modal-cover-badge{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  position:absolute;
  z-index:5;
  top:83px;
  right:29px;
  width:70px;
  height:73px;
  gap:4px;
  border-radius:50%;
  background:rgba(28,12,32,.30);
  border:1px solid rgba(255,236,255,.52);
  box-shadow:0 0 0 5px rgba(255,255,255,.055),0 9px 30px rgba(0,0,0,.2);
  backdrop-filter:blur(6px);
  text-align:center;
  color:#ffe6f5;
  font-size:16px;
}
.vss-modal--cover .vss-modal-cover-badge span{
  font-size:6.5px;
  letter-spacing:.06em;
  line-height:1.35;
  font-weight:900;
}
.vss-modal--cover .vss-modal-text{
  position:absolute;
  z-index:6;
  inset:auto 0 0;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  text-align:center;
  padding:25px clamp(28px,5vw,46px) clamp(30px,5vw,45px);
  background:linear-gradient(0deg,rgba(9,4,17,.38),transparent);
  transform:translateY(12px);
  opacity:.80;
  transition:transform .85s cubic-bezier(.16,1,.3,1),opacity .85s;
}
.vss-modal--cover.vss-modal-open .vss-modal-text{transform:translateY(0);opacity:1}
.vss-modal--cover .vss-modal-text:after{display:none}
.vss-modal--cover .vss-modal-kicker{
  font-size:clamp(8px,.98vw,10px);
  letter-spacing:.16em;
  color:#ffd7ec;
  font-weight:700;
  text-shadow:0 2px 14px #0b0311;
}
.vss-modal--cover .vss-modal-main{
  font-size:clamp(27px,3.9vw,42px);
  font-weight:900;
  letter-spacing:-.065em;
  line-height:1.08;
  margin:9px 0 8px;
  text-shadow:0 3px 22px rgba(0,0,0,.56);
}
.vss-modal--cover .vss-modal-main em{
  font-size:1.07em;
  color:#ffc8e8;
  font-style:italic;
  font-weight:400;
}
.vss-modal--cover .vss-modal-name{
  color:#fff;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(31px,5.1vw,55px);
  font-style:italic;
  font-weight:400;
  line-height:1.08;
  letter-spacing:-.045em;
  overflow-wrap:anywhere;
  text-wrap:balance;
  text-shadow:0 3px 18px rgba(0,0,0,.8);
}
.vss-modal--cover .vss-modal-month{
  color:#ffe1f1;
  font-size:clamp(9px,1.1vw,11px);
  letter-spacing:.23em;
  font-weight:800;
  margin-top:12px;
  text-transform:uppercase;
  text-shadow:0 2px 8px rgba(0,0,0,.8);
}
.vss-modal--cover .vss-modal-cta{
  width:100%;
  max-width:320px;
  justify-content:center;
  gap:18px;
  margin-top:22px;
  padding:14px 18px;
  border-radius:100px;
  background:linear-gradient(115deg,#ffe8f4,#ffc3e6 58%,#e8a7f0);
  color:#341333;
  border:1px solid rgba(255,255,255,.68);
  box-shadow:0 9px 28px rgba(10,3,18,.38),0 0 35px rgba(225,122,202,.19);
  font-size:clamp(9px,1.1vw,11px);
  font-weight:900;
  letter-spacing:.095em;
  text-align:center;
  transition:transform .24s ease,box-shadow .24s ease;
}
.vss-modal--cover .vss-modal-link:hover .vss-modal-cta{
  transform:translateY(-2px);
  box-shadow:0 13px 38px rgba(10,3,18,.41),0 0 45px rgba(225,122,202,.34);
}
/* Reliable close alignment, even if the Astra/theme button rules add padding or line-height. */
.vss-modal .vss-modal-close{
  display:grid;
  place-items:center;
  padding:0!important;
  margin:0;
  line-height:1;
  min-width:0;
  min-height:0;
  appearance:none;
  -webkit-appearance:none;
  box-sizing:border-box;
}
.vss-modal .vss-modal-close-icon{
  position:relative;
  display:block;
  width:16px;
  height:16px;
  margin:0;
  padding:0;
  flex:none;
  pointer-events:none;
}
.vss-modal .vss-modal-close-icon:before,
.vss-modal .vss-modal-close-icon:after{
  content:"";
  display:block;
  position:absolute;
  top:50%;
  left:50%;
  width:14px;
  height:1.5px;
  border-radius:2px;
  background:currentColor;
  transform-origin:center;
}
.vss-modal .vss-modal-close-icon:before{transform:translate(-50%,-50%) rotate(45deg)}
.vss-modal .vss-modal-close-icon:after{transform:translate(-50%,-50%) rotate(-45deg)}
.vss-modal--cover .vss-modal-close{
  top:24px;
  right:24px;
  width:36px;
  height:36px;
  background:rgba(16,7,21,.42);
  border:1px solid rgba(255,255,255,.66);
  backdrop-filter:blur(12px);
  box-shadow:0 3px 17px rgba(0,0,0,.22);
}
.vss-modal--cover .vss-modal-close:hover{
  background:rgba(50,18,59,.83);
  transform:rotate(90deg);
}
/* The classic split design uses exactly the previous layout. */
.vss-modal--split .vss-modal-cover-top,
.vss-modal--split .vss-modal-cover-frame,
.vss-modal--split .vss-modal-cover-badge{display:none}
.vss-modal--split .vss-modal-photo{background-position:var(--vss-photo-position,50% 30%)}

@keyframes vss-cover-glint{
  0%{opacity:0;transform:translateX(-90%) rotate(-7deg)}
  35%{opacity:.22}
  100%{opacity:0;transform:translateX(90%) rotate(-7deg)}
}
@media (max-width:480px){
  .vss-modal--cover .vss-modal-panel{border-radius:18px}
  .vss-modal--cover .vss-modal-panel:before{border-radius:18px}
  .vss-modal--cover .vss-modal-cover-frame{inset:10px;border-radius:11px}
  .vss-modal--cover .vss-modal-cover-top{top:24px;left:24px;right:70px;gap:2px}
  .vss-modal--cover .vss-modal-cover-brand{font-size:9px;letter-spacing:.07em}
  .vss-modal--cover .vss-modal-cover-brand>span:last-child{font-size:8px}
  .vss-modal--cover .vss-modal-cover-edition{font-size:7px}
  .vss-modal--cover .vss-modal-cover-badge{top:67px;right:23px;transform:scale(.82);transform-origin:top right}
  .vss-modal--cover .vss-modal-close{top:17px;right:17px;width:32px;height:32px}
  .vss-modal--cover .vss-modal-text{padding:16px 24px 28px}
  .vss-modal--cover .vss-modal-main{font-size:clamp(23px,6.8vw,34px);margin:7px 0}
  .vss-modal--cover .vss-modal-name{font-size:clamp(28px,8.2vw,44px)}
  .vss-modal--cover .vss-modal-cta{margin-top:16px;padding:12px 14px;font-size:9px}
}
@media (max-height:570px){
  .vss-modal--cover .vss-modal-panel{height:91dvh;width:min(480px,86vw,calc(91dvh * .85))}
  .vss-modal--cover .vss-modal-cover-badge{display:none}
  .vss-modal--cover .vss-modal-text{padding:12px 23px 20px}
  .vss-modal--cover .vss-modal-main{font-size:23px;margin:5px 0}
  .vss-modal--cover .vss-modal-name{font-size:28px}
  .vss-modal--cover .vss-modal-month{margin-top:7px}
  .vss-modal--cover .vss-modal-cta{margin-top:11px;padding:9px 12px}
}
@media (prefers-reduced-motion:reduce){
  .vss-modal--cover .vss-modal-photo,
  .vss-modal--cover .vss-modal-text{transform:none!important;transition:none!important;opacity:1!important}
  .vss-modal--cover .vss-modal-panel:after{animation:none!important;display:none}
}

/* Adjustable backdrop (default is softer than original 1.1's 77% / 15px). */
.vss-modal .vss-modal-backdrop{
  background:rgba(6,4,13,var(--vss-overlay-opacity,.62));
  -webkit-backdrop-filter:blur(5px);
  backdrop-filter:blur(5px);
}
