/* ===== CINEMATIC FULLSCREEN LIGHTBOX ===== */
.lux-lightbox {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.92);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity .45s ease;
  z-index: 99999;
}
.lux-lightbox.show {
  opacity: 1;
  visibility: visible;
}
.lux-lightbox img {
  max-width: 90vw;
  max-height: 92vh;
  border-radius: 26px;
  box-shadow:
    0 0 60px rgba(212,175,55,0.35),
    0 60px 140px rgba(0,0,0,0.8);
  transform: scale(.92);
  transition: transform .5s cubic-bezier(.22,1,.36,1);
}
.lux-lightbox.show img {
  transform: scale(1);
}
.lux-close {
  position: absolute;
  top: 40px;
  right: 60px;
  font-size: 42px;
  color: #f4e6c0;
  cursor: pointer;
  text-shadow: 0 0 20px rgba(212,175,55,0.6);
}
/* ===================== FRONTISPIECE — REFERENCE STYLE ===================== */
#frontispiece{
  position:relative;
  min-height:100vh;
  padding:112px 4vw 44px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:radial-gradient(circle at 50% 8%, rgba(255,255,255,0.08), rgba(255,255,255,0) 28%), linear-gradient(180deg,#272727 0%, #191919 100%);
}
#frontispiece::before,
#frontispiece::after{display:none!important;}
.fp-ref-shell{
  position:relative;
  width:min(1500px, 100%);
  min-height:clamp(560px, 74vh, 860px);
  border-radius:24px;
  padding:14px;
  background:linear-gradient(180deg, rgba(6,6,6,0.98) 0%, rgba(20,20,20,0.96) 100%);
  box-shadow:0 30px 90px rgba(0,0,0,0.38), inset 0 0 0 1px rgba(255,255,255,0.05);
  overflow:hidden;
}
.fp-ref-topline{
  position:absolute;
  top:16px;
  left:48px;
  z-index:6;
  font-family:var(--ff-sans);
  font-size:12px;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(255,255,255,0.92);
}
.fp-ref-stage{
  position:relative;
  min-height:clamp(520px, 68vh, 790px);
  display:flex;
  align-items:flex-end;
  justify-content:center;
  gap:0;
  padding:62px clamp(16px, 3vw, 42px) 46px;
  border-radius:18px;
  overflow:hidden;
  background:radial-gradient(circle at 50% 30%, rgba(255,255,255,0.08), rgba(255,255,255,0.00) 30%), linear-gradient(180deg, rgba(46,46,46,0.8) 0%, rgba(29,29,29,0.88) 100%);
  touch-action:pan-x;
  cursor:grab;
}
.fp-ref-stage.is-dragging{cursor:grabbing;}
.fp-ref-stage::after{
  content:'';
  position:absolute;
  inset:auto 0 0;
  height:28%;
  background:linear-gradient(180deg, rgba(12,12,12,0) 0%, rgba(18,18,18,0.46) 44%, rgba(18,18,18,0.92) 100%);
  pointer-events:none;
  z-index:4;
}
.fp-ref-panel{
  position:relative;
  overflow:hidden;
  flex:0 0 auto;
  border-radius:0;
  transition:transform .6s cubic-bezier(.22,1,.36,1), filter .45s ease, opacity .45s ease;
  will-change:transform, filter, opacity;
}
.fp-ref-panel img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  user-select:none;
  pointer-events:none;
}
.fp-ref-main{
  width:min(34vw, 510px);
  aspect-ratio:0.8;
  z-index:3;
  box-shadow:0 30px 80px rgba(0,0,0,0.34);
}
.fp-ref-main::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,0.16) 0%, rgba(0,0,0,0.02) 28%, rgba(0,0,0,0.12) 100%);
  pointer-events:none;
}
.fp-ref-side{
  width:min(28vw, 420px);
  aspect-ratio:0.78;
  opacity:.82;
  filter:blur(8px) brightness(.54) saturate(.95);
  z-index:1;
}
.fp-ref-left{margin-right:calc(min(28vw, 420px) * -0.34); transform:translateX(0) scale(.96);}
.fp-ref-right{margin-left:calc(min(28vw, 420px) * -0.34); transform:translateX(0) scale(.96);}
.fp-ref-stage:hover .fp-ref-side{filter:blur(7px) brightness(.58) saturate(1);}

