/* RL Solution Web — Galeria Card Stack 3D
   Adaptacao em HTML/CSS/JS puro do efeito de cards em leque enviado pelo cliente. */

.chapter--gallery{padding:0!important;background:#050505!important;overflow:hidden!important}
.fan-gallery{
  --fg-red:#e0251b;
  --fg-red2:#ff3b30;
  --fg-paper:#f4ead7;
  position:absolute;inset:0;overflow:hidden;isolation:isolate;
  background:#050505;color:var(--fg-paper);
  display:grid;grid-template-rows:auto 1fr auto;
  padding:112px clamp(18px,4vw,72px) clamp(20px,3.5vh,42px);
}
.fan-gallery__backdrop{position:absolute;inset:-8%;z-index:-5;overflow:hidden;background:#050505}
.fan-gallery__backdrop-image{width:100%;height:100%;object-fit:cover;object-position:center top;filter:blur(34px) saturate(.78) brightness(.20) contrast(1.12);transform:scale(1.12);opacity:.72;transition:opacity .5s ease,filter .5s ease}
.fan-gallery__backdrop:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 43%,rgba(224,37,27,.20),transparent 30%),linear-gradient(180deg,rgba(5,5,5,.38),#050505 82%)}
.fan-gallery__grid{position:absolute;inset:0;z-index:-3;pointer-events:none;opacity:.13;background-image:linear-gradient(rgba(244,234,215,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(244,234,215,.11) 1px,transparent 1px);background-size:72px 72px;mask-image:radial-gradient(circle at 50% 48%,#000 0 30%,transparent 78%)}
.fan-gallery__glow{position:absolute;left:50%;top:46%;z-index:-2;width:min(72vw,1180px);height:36vh;transform:translate(-50%,-50%);border-radius:50%;background:rgba(224,37,27,.12);filter:blur(90px);pointer-events:none}

.fan-gallery__head{position:relative;z-index:20;display:flex;align-items:flex-end;justify-content:space-between;gap:28px;width:min(1500px,100%);margin:0 auto}
.fan-gallery__eyebrow{display:flex;align-items:center;gap:12px;margin:0 0 10px;color:rgba(244,234,215,.72);font-size:10px;font-weight:900;letter-spacing:.24em;text-transform:uppercase}
.fan-gallery__eyebrow:before{content:"";width:38px;height:1px;background:var(--fg-red2)}
.fan-gallery__title{margin:0;font-size:clamp(34px,4.4vw,76px);line-height:.86;letter-spacing:-.065em;text-transform:uppercase;font-weight:950}
.fan-gallery__hint{max-width:360px;margin:0 0 7px;color:rgba(244,234,215,.58);font-size:10px;font-weight:850;letter-spacing:.18em;line-height:1.5;text-align:right;text-transform:uppercase}

.fan-gallery__stage{position:relative;z-index:10;width:100%;min-height:430px;height:min(58vh,610px);perspective:1100px;outline:none;touch-action:pan-y}
.fan-gallery__stage:before,.fan-gallery__stage:after{content:"";position:absolute;left:50%;transform:translateX(-50%);pointer-events:none;border-radius:999px}
.fan-gallery__stage:before{bottom:8%;width:min(72vw,1120px);height:94px;background:rgba(0,0,0,.68);filter:blur(38px);opacity:.88}
.fan-gallery__stage:after{bottom:5%;width:min(58vw,880px);height:2px;background:linear-gradient(90deg,transparent,rgba(244,234,215,.25),transparent);opacity:.55}
.fan-gallery__cards{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;transform-style:preserve-3d}

.fan-card{
  position:absolute;left:50%;bottom:7%;width:clamp(360px,38vw,620px);aspect-ratio:1.89/1;
  overflow:hidden;border-radius:22px;border:1px solid rgba(244,234,215,.18);background:#0b0b0b;
  box-shadow:0 32px 84px rgba(0,0,0,.66);transform-origin:50% 100%;transform-style:preserve-3d;
  opacity:0;pointer-events:none;user-select:none;-webkit-user-drag:none;
  transition:transform .72s cubic-bezier(.16,1,.3,1),opacity .32s ease,filter .42s ease,border-color .32s ease,box-shadow .42s ease;
  will-change:transform,opacity;cursor:pointer;
}
.fan-card.is-visible{opacity:1;pointer-events:auto}
.fan-card.is-active{border-color:rgba(244,234,215,.42);box-shadow:0 42px 110px rgba(0,0,0,.78),0 0 0 1px rgba(224,37,27,.18);cursor:grab}
.fan-card.is-active:active{cursor:grabbing}
.fan-card__fill{position:absolute;inset:-7%;background-image:var(--card-image);background-size:cover;background-position:center top;filter:blur(18px) saturate(.85) brightness(.45);transform:scale(1.08);opacity:.72}
.fan-card__image{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:contain;object-position:center top;pointer-events:none;-webkit-user-drag:none;background:rgba(0,0,0,.22);transform:translateZ(1px)}
.fan-card__shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 48%,rgba(0,0,0,.16) 62%,rgba(0,0,0,.92) 100%);pointer-events:none}
.fan-card__meta{position:absolute;z-index:3;left:18px;right:18px;bottom:16px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;color:#fff;pointer-events:none}
.fan-card__tag{display:block;margin-bottom:5px;color:rgba(255,255,255,.62);font-size:8px;font-weight:900;letter-spacing:.18em;text-transform:uppercase}
.fan-card__name{display:block;font-size:clamp(15px,1.25vw,21px);font-weight:900;line-height:1;letter-spacing:-.035em}
.fan-card__number{flex:0 0 auto;font-size:11px;font-weight:900;letter-spacing:.15em;color:rgba(255,255,255,.7)}
.fan-card:not(.is-active){filter:saturate(.72) brightness(.72)}
.fan-card:not(.is-active):hover{filter:saturate(.92) brightness(.90);border-color:rgba(244,234,215,.30)}

.fan-gallery__foot{position:relative;z-index:30;width:min(1500px,100%);margin:0 auto;display:grid;grid-template-columns:minmax(240px,1fr) auto minmax(240px,1fr);align-items:center;gap:22px}
.fan-gallery__active{min-width:0;display:flex;align-items:center;gap:16px}
.fan-gallery__counter{font-size:11px;font-weight:950;letter-spacing:.18em;color:var(--fg-red2);white-space:nowrap}
.fan-gallery__active-copy{min-width:0}
.fan-gallery__active-tag{display:block;color:rgba(244,234,215,.52);font-size:8px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;margin-bottom:3px}
.fan-gallery__active-title{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:900;letter-spacing:-.02em}
.fan-gallery__dots{display:flex;align-items:center;justify-content:center;gap:8px}
.fan-gallery__dot{width:7px;height:7px;border:0;border-radius:50%;padding:0;background:rgba(244,234,215,.28);transition:transform .28s ease,background .28s ease,box-shadow .28s ease}
.fan-gallery__dot:hover{background:rgba(244,234,215,.58)}
.fan-gallery__dot.is-active{background:var(--fg-red2);transform:scale(1.35);box-shadow:0 0 0 5px rgba(224,37,27,.13)}
.fan-gallery__actions{display:flex;align-items:center;justify-content:flex-end;gap:9px}
.fan-gallery__nav{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(244,234,215,.20);background:rgba(5,5,5,.38);color:var(--fg-paper);backdrop-filter:blur(12px);font-size:17px;transition:.25s}
.fan-gallery__nav:hover{background:var(--fg-paper);color:#050505;transform:translateY(-2px)}
.fan-gallery__open{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:42px;padding:0 17px;border-radius:999px;background:var(--fg-paper);color:#050505;font-size:9px;font-weight:950;letter-spacing:.13em;text-transform:uppercase;transition:transform .28s ease,background .28s ease,color .28s ease}
.fan-gallery__open:hover{background:var(--fg-red2);color:#fff;transform:translateY(-2px)}
.fan-gallery__open svg{width:14px;height:14px}

@media(max-width:1120px){
  .chapter--gallery{min-height:100dvh!important;height:100dvh!important;padding:0!important}
  .fan-gallery{position:absolute;min-height:100dvh;padding:94px 18px 22px;grid-template-rows:auto 1fr auto}
  .fan-gallery__head{align-items:flex-start}
  .fan-gallery__title{font-size:clamp(30px,7.2vw,58px)}
  .fan-gallery__hint{display:none}
  .fan-gallery__stage{height:min(58vh,520px);min-height:380px}
  .fan-card{width:clamp(330px,58vw,560px);bottom:8%}
  .fan-gallery__foot{grid-template-columns:1fr auto;gap:14px}
  .fan-gallery__dots{grid-column:1/-1;grid-row:1;order:-1}
  .fan-gallery__active{grid-column:1;grid-row:2}
  .fan-gallery__actions{grid-column:2;grid-row:2}
}

@media(max-width:650px){
  .fan-gallery{padding:88px 12px 15px}
  .fan-gallery__eyebrow{font-size:8px;letter-spacing:.18em;margin-bottom:7px}.fan-gallery__eyebrow:before{width:24px}
  .fan-gallery__title{font-size:clamp(28px,10vw,44px);letter-spacing:-.055em}
  .fan-gallery__stage{height:54vh;min-height:350px;perspective:850px}
  .fan-card{width:min(84vw,420px);border-radius:17px;bottom:9%}
  .fan-card__meta{left:12px;right:12px;bottom:11px}.fan-card__name{font-size:14px}.fan-card__tag{font-size:7px}.fan-card__number{font-size:9px}
  .fan-gallery__foot{gap:9px;grid-template-columns:minmax(0,1fr) auto}
  .fan-gallery__counter{font-size:9px}.fan-gallery__active-title{font-size:13px}.fan-gallery__active-tag{font-size:7px}
  .fan-gallery__nav{width:38px;height:38px}.fan-gallery__open{min-height:38px;width:38px;padding:0;border-radius:50%;font-size:0;gap:0}.fan-gallery__open svg{width:15px;height:15px}
  .fan-gallery__dots{gap:7px}.fan-gallery__dot{width:6px;height:6px}
}

@media(prefers-reduced-motion:reduce){
  .fan-card,.fan-gallery__backdrop-image,.fan-gallery__dot,.fan-gallery__open,.fan-gallery__nav{transition-duration:.01ms!important}
}

/* Embedded cinematic-home chapter: the chapter controller owns viewport movement. */
.fan-gallery--embedded{inset:0;height:100%;min-height:100%;}
.fan-gallery--embedded .fan-gallery__stage{touch-action:none;}
