@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInRight{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}.hero-banner{width:100%;height:85vh;min-height:500px;max-height:900px;position:relative;overflow:hidden}.hero-banner--skeleton{background:linear-gradient(90deg,#1a1a1a 25%,#272727 50%,#1a1a1a 75%) 0 0/200% 100%;width:100%;height:85vh;animation:1.5s infinite shimmer}.hero-banner__backdrop{opacity:0;pointer-events:none;position:absolute;inset:0}.hero-banner__backdrop--fade-in{pointer-events:auto;animation:.6s forwards heroFadeIn}.hero-banner__backdrop--fade-out{animation:.4s forwards heroFadeOut}.hero-banner__backdrop--hidden{opacity:0}.hero-banner__bg-image{object-fit:cover;object-position:center 20%}.hero-banner__bg-image--desktop{display:none}@media (min-width:768px){.hero-banner__bg-image--desktop{display:block}}.hero-banner__bg-image--mobile{object-position:center top;display:block}@media (min-width:768px){.hero-banner__bg-image--mobile{display:none}}.hero-banner__gradient-bottom{background:linear-gradient(#0000 0%,#020202 100%);height:50%;position:absolute;bottom:0;left:0;right:0}.hero-banner__gradient-left{background:#02020273;position:absolute;inset:0}@media (min-width:768px){.hero-banner__gradient-left{background:linear-gradient(90deg,#020202d9 0%,#02020266 40%,#0000 70%)}}.hero-banner__content{z-index:5;max-width:650px;padding:0 clamp(1rem,4vw,3.5rem);position:absolute;bottom:12%;left:0}.hero-banner__content--fade-in{animation:.5s .15s both heroContentIn}.hero-banner__content--fade-out{animation:.3s forwards heroContentOut}.hero-banner__badge{text-transform:uppercase;letter-spacing:2px;color:#f33;margin-bottom:10px;font-size:.75rem;font-weight:500;display:inline-block}.hero-banner__title{letter-spacing:2px;text-shadow:0 2px 20px #000000b3;margin-bottom:14px;font-family:Bebas Neue,Impact,sans-serif;font-size:clamp(2rem,6vw,4rem);line-height:1.05}.hero-banner__overview{color:#b3b3b3;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-bottom:14px;font-size:.95rem;line-height:1.5;display:-webkit-box;overflow:hidden}@media (min-width:768px){.hero-banner__overview{font-size:1.05rem}}.hero-banner__meta{align-items:center;gap:16px;margin-bottom:20px;display:flex}.hero-banner__rating{font-size:.95rem;font-weight:500}.hero-banner__year{color:#b3b3b3;font-weight:500}.hero-banner__actions{flex-wrap:wrap;gap:12px;display:flex}.hero-banner__btn-primary{background:#e50914;border-radius:8px;align-items:center;gap:8px;padding:12px 28px;font-size:.9rem;font-weight:500;transition:all .25s;display:inline-flex}.hero-banner__btn-primary:hover{background:#b8070f;transform:translateY(-2px);box-shadow:0 6px 20px #e509144d}.hero-banner__btn-secondary{-webkit-backdrop-filter:blur(20px);background:#141414bf;border:1px solid #ffffff14;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-width:150px;padding:12px 24px;font-size:.9rem;font-weight:500;transition:all .25s;display:inline-flex}.hero-banner__btn-secondary:hover{background:#ffffff26}.hero-banner__btn-secondary--active{color:#46d369;background:#46d36933;border-color:#46d36966}.hero-banner__btn-secondary--active:hover{color:#e50914;box-shadow:none;background:#e5091433;border-color:#e509144d;transform:none}.hero-banner__indicators{z-index:5;gap:8px;display:flex;position:absolute;bottom:30px;right:clamp(1rem,4vw,3.5rem)}.hero-banner__dot{background:#ffffff4d;border-radius:50%;width:10px;height:10px;transition:all .3s}.hero-banner__dot:hover{background:#ffffff80}.hero-banner__dot--active{background:#e50914;border-radius:5px;width:28px;box-shadow:0 0 10px #e509144d}@keyframes heroFadeIn{0%{opacity:0;transform:scale(1.03)}to{opacity:1;transform:scale(1)}}@keyframes heroFadeOut{0%{opacity:1}to{opacity:0}}@keyframes heroContentIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes heroContentOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}
