/* Homepage light study: warm, directional reflections with fixed text contrast. */
.vl-home [data-light-scene] { --light-x: 75%; --light-y: 32%; }
.vl-home .vl-hero__shade {
  background: linear-gradient(180deg,#100c08a8,transparent 25%,transparent 72%,#17100988),
              linear-gradient(90deg,#1c100be8 0%,#1c100bc9 34%,#301e1260 62%,#4f2d1100 100%);
}
.vl-home .vl-hero h1 em { color: #ffe1ad; }
.vl-home .vl-hero__lower > p { color: #fff1dc; font-weight: 400; }
.vl-crystal {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  background: radial-gradient(ellipse 37% 52% at var(--light-x) var(--light-y), #ffd69130, transparent 78%);
  mask-image: linear-gradient(90deg,transparent 35%,#000 71%);
}
.vl-crystal__facet {
  position: absolute;
  width: clamp(100px,18vw,280px);
  height: 56%;
  top: 7%;
  right: -4%;
  transform: rotate(24deg);
  clip-path: polygon(53% 0,100% 19%,90% 74%,42% 100%,0 65%,15% 23%);
  background:
    linear-gradient(145deg,transparent 36%,#fff5df8a 37%,transparent 38%),
    conic-gradient(from 14deg at 48% 48%,#fff6db05 0 59deg,#fff2be39 60deg 117deg,#e6caff29 118deg 167deg,#40261913 168deg 222deg,#fff6da57 223deg 270deg,#f6c77c18 271deg);
}
.vl-crystal__facet:nth-child(2) { top: -26%; right: 8%; height: 65%; transform: rotate(48deg) scale(.8); opacity: .63; }
.vl-crystal__facet:nth-child(3) { top: 46%; right: -6%; height: 44%; transform: rotate(-15deg) scale(.82); opacity: .48; }
.vl-crystal__glint {
  position: absolute;
  top: 28%;
  right: 9%;
  width: 38px;
  aspect-ratio: 1;
  background: #fff4d2;
  clip-path: polygon(50% 0,55% 45%,100% 50%,55% 55%,50% 100%,45% 55%,0 50%,45% 45%);
  opacity: .76;
}
.vl-crystal__glint:last-child { top: 61%; right: 17%; width: 18px; opacity: .59; }
.vl-home .vl-invitation__art {
  background: radial-gradient(ellipse at var(--light-x) var(--light-y),#fff4db 0%,transparent 65%), #dec1a8;
}
.vl-home .vl-invitation__paper { transition: transform .45s var(--ease); }
.vl-home .vl-invitation__paper::after {
  content: "";
  position: absolute;
  inset: 11px;
  border: 1px solid #a17b435c;
  pointer-events: none;
}
.vl-home .vl-invitation__envelope { background: #b18c75; }
.vl-home .vl-invitation__monogram { color: #846443; }
.vl-home .vl-close {
  background: radial-gradient(ellipse at var(--light-x) var(--light-y),#fff7e4 0%,transparent 68%),#efded0;
}
.vl-home .vl-close h2 em,.vl-home .vl-invitation h2 em { color: #855d43; }
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .vl-home .vl-invitation__art:hover .vl-invitation__paper { transform: translateY(-8px) rotate(2deg); }
  .vl-crystal__glint { animation: vl-crystal-catch 1.8s .3s both; }
  .vl-crystal__glint:last-child { animation-delay: .75s; }
  @keyframes vl-crystal-catch {
    0% { scale: .45; opacity: .2; }
    45% { scale: 1.14; opacity: .94; }
    100% { scale: 1; }
  }
}
@media (max-width:620px) {
  .vl-home .vl-hero__shade {
    opacity: 1;
    background: linear-gradient(90deg,#1e110de8,#281910a8 69%,#2b1b1460),
                linear-gradient(180deg,#17100966,transparent 34%,transparent 67%,#171009a8);
  }
  .vl-crystal { mask-image: linear-gradient(90deg,transparent 63%,#000 95%); }
  .vl-crystal__facet:nth-child(3),.vl-crystal__glint:last-child { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  .vl-home [data-light-scene] { --light-x: 75% !important; --light-y: 32% !important; }
  .vl-crystal__glint,.vl-home .vl-invitation__paper { animation:none; transition:none; }
}
