 /* ============================================================
       DESIGN TOKENS  — Original Dark Theme
    ============================================================ */
 :root {
   --c-bg: #09090f;
   --c-surface: #111118;
   --c-card: #16161f;
   --c-border: rgba(255, 255, 255, .07);
   --c-accent: #e8c04a;
   --c-accent-rgb: 232, 192, 74;
   --c-accent-dim: rgba(232, 192, 74, .12);
   --c-text: #e8e8f0;
   --c-muted: #7070a0;
   --c-white: #ffffff;
   --shadow-glow: 0 0 40px rgba(232, 192, 74, .18);
   --shadow-card: 0 20px 60px rgba(0, 0, 0, .6);
   --radius: 14px;
   --radius-sm: 9px;
   --font-display: 'Bebas Neue', sans-serif;
   --font-body: 'DM Sans', sans-serif;
   --nav-h: 72px;
   --ease: cubic-bezier(.4, 0, .2, 1);
   --spring: cubic-bezier(.34, 1.56, .64, 1);
   --t: .35s;


   /* movie */
   --bg: #09090f;
   --surface: #111118;
   --card: #16161f;
   --border: rgba(255, 255, 255, .07);
   --accent: #e8c04a;
   --accent-dim: rgba(232, 192, 74, .12);
   --accent-glow: 0 0 40px rgba(232, 192, 74, .22);
   --text: #e8e8f0;
   --muted: #7070a0;
   --white: #ffffff;
   --r: 14px;
   --r-sm: 9px;
   --fd: 'Bebas Neue', sans-serif;
   --fb: 'DM Sans', sans-serif;

   /* auth page */
   --error: #e85a4a;
   --success: #4ae8a0;
   --r-xs: 7px;

 }

 /* ============================================================
       BASE
    ============================================================ */
 *,
 *::before,
 *::after {
   box-sizing: border-box;
   margin: 0;
   padding: 0;
 }

 html {
   scroll-behavior: smooth;
 }

 body {
   background: var(--c-bg);
   color: var(--c-text);
   font-family: var(--font-body);
   font-size: 15px;
   line-height: 1.65;
   overflow-x: hidden;
 }

 a {
   color: inherit;
   text-decoration: none;
 }

 img {
   max-width: 100%;
   display: block;
 }

 /* Scrollbar */
 ::-webkit-scrollbar {
   width: 5px;
 }

 ::-webkit-scrollbar-track {
   background: var(--c-bg);
 }

 ::-webkit-scrollbar-thumb {
   background: var(--c-accent);
   border-radius: 3px;
 }

 /* Custom cursor dot */
 .cursor-dot {
   width: 8px;
   height: 8px;
   border-radius: 50%;
   background: var(--c-accent);
   position: fixed;
   pointer-events: none;
   z-index: 9999;
   transform: translate(-50%, -50%);
   transition: width .2s, height .2s, opacity .2s;
 }

 .cursor-ring {
   width: 36px;
   height: 36px;
   border-radius: 50%;
   border: 1.5px solid rgba(232, 192, 74, .5);
   position: fixed;
   pointer-events: none;
   z-index: 9998;
   transform: translate(-50%, -50%);
   transition: width .35s var(--ease), height .35s var(--ease), border-color .35s;
 }

 body:hover .cursor-dot {
   opacity: 1;
 }

 /* ================================================================
   DESIGN TOKENS
================================================================ */

 /* ================================================================
   NAVBAR
================================================================ */
 #mainNav {
   position: fixed;
   top: 0;
   left: 0;
   right: 0;
   z-index: 1050;
   height: var(--nav-h);
   background: rgba(9, 9, 15, .82);
   backdrop-filter: blur(22px);
   -webkit-backdrop-filter: blur(22px);
   border-bottom: 1px solid var(--c-border);
   transition: background var(--t), box-shadow var(--t)
 }

 #mainNav.scrolled {
   background: rgba(9, 9, 15, .96);
   box-shadow: 0 8px 40px rgba(0, 0, 0, .5)
 }

 .nav-inner {
   height: var(--nav-h);
   display: flex;
   align-items: center;
   gap: 1.25rem
 }

 .nav-brand {
   font-family: var(--font-display);
   font-size: 2rem;
   letter-spacing: .05em;
   color: var(--c-white);
   flex-shrink: 0;
   line-height: 1
 }

 .nav-brand span {
   color: var(--c-accent)
 }

 .desktop-nav {
   display: flex;
   align-items: center;
   gap: .15rem;
   list-style: none;
   margin: 0;
   padding: 0
 }

 .desktop-nav>li {
   position: relative
 }

 .desktop-nav>li>a,
 .desktop-nav>li>button {
   display: inline-flex;
   align-items: center;
   gap: .32rem;
   padding: .42rem .82rem;
   border-radius: var(--radius-sm);
   font-size: .86rem;
   font-weight: 500;
   color: var(--c-muted);
   background: none;
   border: none;
   cursor: pointer;
   white-space: nowrap;
   transition: color var(--t), background var(--t)
 }

 .desktop-nav>li>a:hover,
 .desktop-nav>li>button:hover,
 .desktop-nav>li>a.active {
   color: var(--c-white);
   background: rgba(255, 255, 255, .06)
 }

 .mega-panel {
   position: absolute;
   top: calc(100% + 14px);
   left: 50%;
   transform: translateX(-50%) translateY(-10px);
   background: var(--c-surface);
   border: 1px solid var(--c-border);
   border-radius: var(--radius);
   padding: 1.5rem;
   min-width: 570px;
   opacity: 0;
   pointer-events: none;
   transition: opacity .25s var(--ease), transform .25s var(--ease);
   box-shadow: 0 32px 80px rgba(0, 0, 0, .75)
 }

 .mega-panel.is-open {
   opacity: 1;
   pointer-events: auto;
   transform: translateX(-50%) translateY(0)
 }

 .mega-heading {
   font-size: .63rem;
   font-weight: 700;
   letter-spacing: .14em;
   text-transform: uppercase;
   color: var(--c-accent);
   margin-bottom: .75rem
 }

 .mega-genre-grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: .4rem
 }

 .mega-genre-item {
   display: flex;
   align-items: center;
   gap: .42rem;
   padding: .5rem .65rem;
   border-radius: var(--radius-sm);
   font-size: .8rem;
   color: var(--c-muted);
   cursor: pointer;
   transition: background var(--t), color var(--t)
 }

 .mega-genre-item:hover {
   background: var(--c-accent-dim);
   color: var(--c-accent)
 }

 .mega-divider {
   width: 1px;
   background: var(--c-border);
   align-self: stretch;
   flex-shrink: 0
 }

 .mega-featured {
   flex: 1;
   border-radius: var(--radius-sm);
   overflow: hidden;
   position: relative;
   min-height: 145px;
   display: flex;
   align-items: flex-end;
   padding: 1rem;
   background: #1a1a2e
 }

 .mega-featured img {
   position: absolute;
   inset: 0;
   width: 100%;
   height: 100%;
   object-fit: cover;
   opacity: .45;
   transition: opacity var(--t)
 }

 .mega-featured:hover img {
   opacity: .55
 }

 .mega-featured-text {
   position: relative;
   z-index: 1
 }

 .mega-featured-text .badge-label {
   font-size: .62rem;
   font-weight: 700;
   letter-spacing: .1em;
   text-transform: uppercase;
   color: var(--c-bg);
   background: var(--c-accent);
   padding: .18rem .48rem;
   border-radius: 4px;
   margin-bottom: .3rem;
   display: inline-block
 }

 .mega-featured-text h5 {
   font-size: .95rem;
   font-weight: 700;
   margin: 0;
   color: #fff
 }

 .nav-search-wrap {
   position: relative
 }

 .nav-search-input {
   background: rgba(255, 255, 255, .06);
   border: 1px solid var(--c-border);
   border-radius: var(--radius-sm);
   padding: .4rem .9rem .4rem 2.15rem;
   color: var(--c-text);
   font-size: .84rem;
   font-family: var(--font-body);
   width: 195px;
   transition: width var(--t), border-color var(--t), box-shadow var(--t)
 }

 .nav-search-input:focus {
   outline: none;
   width: 250px;
   background: rgba(255, 255, 255, .09);
   border-color: rgba(232, 192, 74, .45);
   box-shadow: 0 0 0 3px rgba(232, 192, 74, .1)
 }

 .nav-search-input::placeholder {
   color: var(--c-muted)
 }

 .nav-search-icon {
   position: absolute;
   left: .65rem;
   top: 50%;
   transform: translateY(-50%);
   color: var(--c-muted);
   font-size: .82rem;
   pointer-events: none
 }

 .hamburger-btn {
   background: rgba(255, 255, 255, .06);
   border: 1px solid var(--c-border);
   border-radius: var(--radius-sm);
   cursor: pointer;
   padding: .35rem .55rem;
   color: var(--c-text);
   font-size: 1.25rem;
   line-height: 1;
   transition: background var(--t), color var(--t)
 }

 .hamburger-btn:hover {
   background: var(--c-accent-dim);
   color: var(--c-accent)
 }

 /* BUTTONS */
 .btn-primary-custom {
   display: inline-flex;
   align-items: center;
   gap: .5rem;
   background: var(--c-accent);
   color: var(--c-bg);
   font-family: var(--font-body);
   font-weight: 700;
   font-size: .9rem;
   padding: .75rem 1.75rem;
   border-radius: var(--radius-sm);
   border: none;
   cursor: pointer;
   transition: transform var(--t), box-shadow var(--t);
   box-shadow: 0 4px 20px rgba(232, 192, 74, .3)
 }

 .btn-primary-custom:hover {
   transform: translateY(-2px);
   box-shadow: 0 12px 36px rgba(232, 192, 74, .42)
 }

 .btn-ghost-custom {
   display: inline-flex;
   align-items: center;
   gap: .5rem;
   background: rgba(255, 255, 255, .08);
   color: var(--c-text);
   font-family: var(--font-body);
   font-weight: 500;
   font-size: .9rem;
   padding: .75rem 1.5rem;
   border-radius: var(--radius-sm);
   border: 1px solid rgba(255, 255, 255, .1);
   cursor: pointer;
   transition: background var(--t), border-color var(--t)
 }

 .btn-ghost-custom:hover {
   background: rgba(255, 255, 255, .14);
   border-color: rgba(255, 255, 255, .18)
 }

 /* OFFCANVAS */
 .offcanvas {
   --bs-offcanvas-bg: var(--c-surface);
   --bs-offcanvas-width: 300px;
   border-right: 1px solid var(--c-border) !important
 }

 .offcanvas-header {
   border-bottom: 1px solid var(--c-border);
   padding: 1.1rem 1.25rem
 }

 .offcanvas-title {
   font-family: var(--font-display);
   font-size: 1.75rem;
   color: var(--c-white)
 }

 .offcanvas-title span {
   color: var(--c-accent)
 }

 .btn-close-custom {
   background: none;
   border: none;
   cursor: pointer;
   color: var(--c-muted);
   font-size: 1.15rem;
   transition: color var(--t)
 }

 .btn-close-custom:hover {
   color: var(--c-accent)
 }

 .mobile-nav-list {
   list-style: none;
   padding: .5rem .75rem 0;
   margin: 0
 }

 .mobile-nav-list .nav-section-label {
   font-size: .62rem;
   font-weight: 700;
   letter-spacing: .13em;
   text-transform: uppercase;
   color: var(--c-accent);
   padding: 1.2rem .5rem .4rem;
   display: block
 }

 .mobile-nav-list a {
   display: flex;
   align-items: center;
   gap: .7rem;
   width: 100%;
   padding: .62rem .75rem;
   border-radius: var(--radius-sm);
   font-size: .88rem;
   color: var(--c-muted);
   background: none;
   border: none;
   cursor: pointer;
   text-align: left;
   transition: color var(--t), background var(--t)
 }

 .mobile-nav-list a:hover,
 .mobile-nav-list a.active {
   color: var(--c-white);
   background: rgba(255, 255, 255, .06)
 }

 .mobile-nav-list i {
   font-size: .95rem;
   width: 20px;
   text-align: center
 }

 .mobile-genre-grid {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: .4rem;
   padding: .25rem .75rem 1rem
 }

 .mobile-genre-chip {
   padding: .44rem .6rem;
   border-radius: var(--radius-sm);
   font-size: .78rem;
   color: var(--c-muted);
   background: rgba(255, 255, 255, .04);
   border: 1px solid var(--c-border);
   cursor: pointer;
   text-align: center;
   transition: background var(--t), color var(--t)
 }

 .mobile-genre-chip:hover {
   background: var(--c-accent-dim);
   color: var(--c-accent)
 }

 /* ================================================================
   HERO SLIDER
   ─ HOW TO EDIT IMAGES:
     1. Background images: find each .hs-slide block,
        change the <img src="..."> inside it.
     2. Thumbnail strip: find each .hs-thumb block,
        change the <img src="..."> inside it.
     3. Text/info: find each .hs-content block,
        edit the text directly in HTML.
   ─ All images are plain <img> tags — no JS touches src.
================================================================ */
 #hero {
   margin-top: var(--nav-h);
   height: calc(100vh - var(--nav-h));
   min-height: 560px;
   position: relative;
   overflow: hidden;
   background: #050510
 }

 /* Background slide stack */
 .hs-track {
   position: absolute;
   inset: 0
 }

 .hs-slide {
   position: absolute;
   inset: 0;
   opacity: 0;
   transition: opacity 1s ease
 }

 .hs-slide.active {
   opacity: 1
 }

 .hs-slide-img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   transform: scale(1.04);
   transition: transform 8s ease-out
 }

 .hs-slide.active .hs-slide-img {
   transform: scale(1)
 }

 .hs-grad {
   position: absolute;
   inset: 0;
   background: linear-gradient(to right, rgba(5, 5, 16, .97) 0%, rgba(5, 5, 16, .65) 45%, rgba(5, 5, 16, .05) 100%), linear-gradient(to top, rgba(5, 5, 16, .95) 0%, transparent 60%)
 }

 /* Grain & blobs */
 .hero-grain {
   position: absolute;
   inset: 0;
   z-index: 1;
   pointer-events: none;
   opacity: .028;
   background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
   background-size: 200px
 }

 .hero-blob {
   position: absolute;
   border-radius: 50%;
   pointer-events: none;
   z-index: 0;
   filter: blur(80px);
   opacity: .18
 }

 .hero-blob-1 {
   width: 500px;
   height: 500px;
   background: radial-gradient(circle, rgba(232, 192, 74, .6), transparent 70%);
   top: -100px;
   left: -150px
 }

 .hero-blob-2 {
   width: 400px;
   height: 400px;
   background: radial-gradient(circle, rgba(100, 60, 200, .5), transparent 70%);
   bottom: -100px;
   right: 5%
 }

 /* Content area */
 .hero-content {
   position: relative;
   z-index: 5;
   height: 100%;
   display: flex;
   flex-direction: column;
   justify-content: center;
   padding: 2rem 0
 }

 /* Each content panel — CSS hides inactive, shows active */
 .hs-content {
   display: none
 }

 .hs-content.active {
   display: block
 }

 .hero-badge {
   display: inline-flex;
   align-items: center;
   gap: .4rem;
   background: rgba(232, 192, 74, .12);
   border: 1px solid rgba(232, 192, 74, .3);
   color: var(--c-accent);
   font-size: .68rem;
   font-weight: 700;
   letter-spacing: .13em;
   text-transform: uppercase;
   padding: .32rem .78rem;
   border-radius: 100px;
   margin-bottom: 1.2rem;
   width: fit-content
 }

 .hero-title {
   font-family: var(--font-display);
   font-size: clamp(3.2rem, 8vw, 6.5rem);
   line-height: .9;
   letter-spacing: .025em;
   color: var(--c-white);
   margin-bottom: .9rem
 }

 .hero-title .accent {
   color: var(--c-accent)
 }

 .hero-meta {
   display: flex;
   align-items: center;
   gap: .9rem;
   flex-wrap: wrap;
   margin-bottom: 1.1rem;
   font-size: .82rem;
   color: rgba(255, 255, 255, .5)
 }

 .hero-meta .rating {
   display: flex;
   align-items: center;
   gap: .3rem;
   color: var(--c-accent);
   font-weight: 700
 }

 .hero-meta .dot {
   width: 3px;
   height: 3px;
   border-radius: 50%;
   background: rgba(255, 255, 255, .2)
 }

 .hero-desc {
   font-size: .97rem;
   color: rgba(255, 255, 255, .52);
   max-width: 500px;
   line-height: 1.8;
   margin-bottom: 2rem
 }

 .hero-actions {
   display: flex;
   gap: .8rem;
   flex-wrap: wrap;
   align-items: center;
   margin-bottom: 2.5rem
 }

 /* Thumbnail strip */
 .hero-thumb-strip {
   display: flex;
   gap: .6rem;
   margin-bottom: .8rem
 }

 .hs-thumb {
   width: 62px;
   height: 90px;
   border-radius: var(--radius-sm);
   overflow: hidden;
   cursor: pointer;
   border: 2.5px solid transparent;
   opacity: .5;
   flex-shrink: 0;
   transition: border-color var(--t), transform var(--t), opacity var(--t)
 }

 .hs-thumb img {
   width: 100%;
   height: 100%;
   object-fit: cover
 }

 .hs-thumb:hover {
   opacity: .85;
   transform: scale(1.04)
 }

 .hs-thumb.active {
   border-color: var(--c-accent);
   opacity: 1;
   transform: scale(1.08)
 }

 /* Progress dots */
 .hs-dots {
   display: flex;
   gap: .4rem;
   align-items: center
 }

 .hs-dot {
   width: 20px;
   height: 3px;
   border-radius: 2px;
   background: rgba(255, 255, 255, .22);
   border: none;
   padding: 0;
   cursor: pointer;
   transition: background .3s, width .3s
 }

 .hs-dot.active {
   background: var(--c-accent);
   width: 36px
 }

 .hs-dot:hover:not(.active) {
   background: rgba(255, 255, 255, .45)
 }

 /* Prev / Next arrows */
 .hs-arrow {
   position: absolute;
   top: 50%;
   transform: translateY(-50%);
   z-index: 10;
   width: 48px;
   height: 48px;
   border-radius: 50%;
   background: rgba(255, 255, 255, .1);
   backdrop-filter: blur(12px);
   -webkit-backdrop-filter: blur(12px);
   border: 1.5px solid rgba(255, 255, 255, .18);
   color: rgba(255, 255, 255, .85);
   font-size: 1.05rem;
   display: flex;
   align-items: center;
   justify-content: center;
   cursor: pointer;
   transition: background .28s, border-color .28s, transform .28s, box-shadow .28s
 }

 .hs-arrow:hover {
   background: var(--c-accent);
   border-color: var(--c-accent);
   color: var(--c-bg);
   box-shadow: 0 8px 24px rgba(232, 192, 74, .4);
   transform: translateY(-50%) scale(1.08)
 }

 .hs-prev {
   left: 1.25rem
 }

 .hs-next {
   right: 1.25rem
 }

 /* ================================================================
   STATS STRIP
================================================================ */
 .stats-strip {
   background: var(--c-card);
   border-top: 1px solid var(--c-border);
   border-bottom: 1px solid var(--c-border)
 }

 .stat-item {
   padding: 2.2rem 1rem;
   text-align: center;
   border-right: 1px solid var(--c-border)
 }

 .stat-item:last-child {
   border-right: none
 }

 .stat-number {
   font-family: var(--font-display);
   font-size: 2.6rem;
   letter-spacing: .04em;
   color: var(--c-accent);
   line-height: 1;
   margin-bottom: .28rem
 }

 .stat-label {
   font-size: .77rem;
   color: var(--c-muted);
   font-weight: 500;
   letter-spacing: .04em
 }

 /* ================================================================
   SECTIONS
================================================================ */
 .section {
   padding: 5rem 0
 }

 .section-header {
   display: flex;
   align-items: flex-end;
   justify-content: space-between;
   margin-bottom: 2rem
 }

 .section-eyebrow {
   font-size: .64rem;
   font-weight: 700;
   letter-spacing: .15em;
   text-transform: uppercase;
   color: var(--c-accent);
   margin-bottom: .28rem
 }

 .section-title {
   font-family: var(--font-display);
   font-size: 2.2rem;
   letter-spacing: .04em;
   color: var(--c-white);
   line-height: 1
 }

 .section-title .accent {
   color: var(--c-accent)
 }

 .see-all-link {
   display: inline-flex;
   align-items: center;
   gap: .3rem;
   font-size: .77rem;
   font-weight: 700;
   letter-spacing: .07em;
   text-transform: uppercase;
   color: var(--c-accent);
   border-bottom: 1.5px solid rgba(232, 192, 74, .3);
   padding-bottom: 1px;
   transition: gap var(--t), border-color var(--t);
   white-space: nowrap
 }

 .see-all-link:hover {
   gap: .52rem;
   border-color: var(--c-accent)
 }

 /* MOVIE CARDS */
 .movie-grid {
   display: grid;
   grid-template-columns: repeat(auto-fill, minmax(168px, 1fr));
   gap: 1.25rem
 }

 .movie-card {
   background: var(--c-card);
   border-radius: var(--radius);
   overflow: hidden;
   cursor: pointer;
   border: 1px solid var(--c-border);
   transition: transform var(--t), box-shadow var(--t), border-color var(--t);
   position: relative
 }

 .movie-card:hover {
   transform: translateY(-8px) scale(1.02);
   box-shadow: var(--shadow-card);
   border-color: rgba(232, 192, 74, .25)
 }

 .movie-card:hover .card-overlay {
   opacity: 1
 }

 .movie-card:hover .card-play-wrap {
   opacity: 1;
   transform: translate(-50%, -50%) scale(1)
 }

 .movie-card:hover .card-body-custom {
   background: rgba(232, 192, 74, .04)
 }

 .card-poster {
   position: relative;
   padding-top: 150%;
   background: var(--c-surface)
 }

 .card-poster img {
   position: absolute;
   inset: 0;
   width: 100%;
   height: 100%;
   object-fit: cover
 }

 .card-overlay {
   position: absolute;
   inset: 0;
   background: linear-gradient(to top, rgba(9, 9, 15, .92) 0%, rgba(9, 9, 15, .1) 55%, transparent 100%);
   opacity: 0;
   transition: opacity var(--t)
 }

 .card-play-wrap {
   position: absolute;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%) scale(.72);
   opacity: 0;
   z-index: 2;
   transition: transform .38s var(--spring), opacity .28s var(--ease)
 }

 .card-play-btn {
   width: 56px;
   height: 56px;
   border-radius: 50%;
   background: rgba(255, 255, 255, .14);
   backdrop-filter: blur(12px);
   border: 1.5px solid rgba(255, 255, 255, .3);
   display: flex;
   align-items: center;
   justify-content: center;
   transition: background var(--t), border-color var(--t), box-shadow var(--t);
   position: relative
 }

 .card-play-btn::before {
   content: '';
   position: absolute;
   width: 72px;
   height: 72px;
   border-radius: 50%;
   border: 1px solid rgba(232, 192, 74, .3);
   animation: pulse-ring 2s ease-out infinite;
   opacity: 0
 }

 .movie-card:hover .card-play-btn::before {
   opacity: 1
 }

 @keyframes pulse-ring {
   0% {
     transform: scale(.85);
     opacity: .6
   }

   100% {
     transform: scale(1.2);
     opacity: 0
   }
 }

 .play-icon {
   width: 18px;
   height: 18px;
   fill: rgba(255, 255, 255, .9);
   margin-left: 3px;
   transition: fill var(--t)
 }

 .card-play-btn:hover {
   background: var(--c-accent);
   border-color: var(--c-accent);
   box-shadow: 0 8px 28px rgba(232, 192, 74, .5)
 }

 .card-play-btn:hover .play-icon {
   fill: var(--c-bg)
 }

 .card-badge {
   position: absolute;
   top: .55rem;
   left: .55rem;
   background: var(--c-accent);
   color: var(--c-bg);
   font-size: .6rem;
   font-weight: 800;
   letter-spacing: .07em;
   text-transform: uppercase;
   padding: .17rem .48rem;
   border-radius: 5px
 }

 .card-quality {
   position: absolute;
   top: .55rem;
   right: .55rem;
   background: rgba(0, 0, 0, .7);
   color: var(--c-text);
   font-size: .6rem;
   font-weight: 700;
   letter-spacing: .08em;
   padding: .17rem .44rem;
   border-radius: 5px;
   border: 1px solid var(--c-border)
 }

 .card-body-custom {
   padding: .78rem .85rem;
   transition: background var(--t)
 }

 .card-title-text {
   font-size: .875rem;
   font-weight: 600;
   color: var(--c-text);
   white-space: nowrap;
   overflow: hidden;
   text-overflow: ellipsis;
   margin-bottom: .28rem
 }

 .card-meta-row {
   display: flex;
   align-items: center;
   justify-content: space-between;
   font-size: .74rem;
   color: var(--c-muted)
 }

 .card-rating-star {
   color: var(--c-accent);
   font-size: .7rem;
   margin-right: .16rem
 }

 /* FEATURED COLLECTIONS */
 .featured-scroll-wrap {
   overflow-x: auto;
   padding-bottom: .5rem;
   -ms-overflow-style: none;
   scrollbar-width: none;
   cursor: grab
 }

 .featured-scroll-wrap::-webkit-scrollbar {
   display: none
 }

 .featured-scroll-wrap.is-dragging {
   cursor: grabbing
 }

 .featured-row {
   display: flex;
   gap: 1.15rem;
   width: max-content
 }

 .featured-card {
   width: 295px;
   height: 168px;
   border-radius: var(--radius);
   overflow: hidden;
   position: relative;
   cursor: pointer;
   flex-shrink: 0;
   border: 1px solid var(--c-border);
   transition: transform var(--t), box-shadow var(--t), border-color var(--t)
 }

 .featured-card:hover {
   transform: scale(1.03);
   box-shadow: var(--shadow-card);
   border-color: rgba(232, 192, 74, .2)
 }

 .featured-card img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   transition: transform .5s var(--ease)
 }

 .featured-card:hover img {
   transform: scale(1.05)
 }

 .featured-card-overlay {
   position: absolute;
   inset: 0;
   background: linear-gradient(to right, rgba(5, 5, 16, .9) 0%, rgba(5, 5, 16, .1) 100%);
   padding: 1rem;
   display: flex;
   flex-direction: column;
   justify-content: flex-end
 }

 .featured-card-title {
   font-size: .95rem;
   font-weight: 700;
   color: var(--c-white);
   margin-bottom: .22rem
 }

 .featured-card-meta {
   font-size: .73rem;
   color: rgba(255, 255, 255, .5);
   display: flex;
   gap: .5rem
 }

 /* GENRE TILES */
 .genre-grid {
   display: grid;
   grid-template-columns: repeat(auto-fill, minmax(138px, 1fr));
   gap: .9rem
 }

 .genre-tile {
   aspect-ratio: 1.45;
   border-radius: var(--radius);
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: center;
   gap: .5rem;
   cursor: pointer;
   border: 1px solid var(--c-border);
   font-size: .84rem;
   font-weight: 600;
   position: relative;
   overflow: hidden;
   transition: transform var(--t), box-shadow var(--t)
 }

 .genre-tile::before {
   content: '';
   position: absolute;
   inset: 0;
   opacity: .1;
   transition: opacity var(--t)
 }

 .genre-tile::after {
   content: '';
   position: absolute;
   bottom: 0;
   left: 0;
   right: 0;
   height: 2px;
   transform: scaleX(0);
   transform-origin: left;
   transition: transform .3s var(--ease)
 }

 .genre-tile:hover {
   transform: translateY(-5px) scale(1.03)
 }

 .genre-tile:hover::before {
   opacity: .2
 }

 .genre-tile:hover::after {
   transform: scaleX(1)
 }

 .genre-tile i {
   font-size: 1.65rem;
   position: relative;
   z-index: 1
 }

 .genre-tile span {
   position: relative;
   z-index: 1
 }

 .genre-tile.action {
   color: #f5736b;
   background: rgba(245, 115, 107, .06)
 }

 .genre-tile.action::before,
 .genre-tile.action::after {
   background: #f5736b
 }

 .genre-tile.comedy {
   color: #7bcdf5;
   background: rgba(123, 205, 245, .06)
 }

 .genre-tile.comedy::before,
 .genre-tile.comedy::after {
   background: #7bcdf5
 }

 .genre-tile.horror {
   color: #c77bdf;
   background: rgba(199, 123, 223, .06)
 }

 .genre-tile.horror::before,
 .genre-tile.horror::after {
   background: #c77bdf
 }

 .genre-tile.romance {
   color: #f58aab;
   background: rgba(245, 138, 171, .06)
 }

 .genre-tile.romance::before,
 .genre-tile.romance::after {
   background: #f58aab
 }

 .genre-tile.scifi {
   color: #7be3d5;
   background: rgba(123, 227, 213, .06)
 }

 .genre-tile.scifi::before,
 .genre-tile.scifi::after {
   background: #7be3d5
 }

 .genre-tile.thriller {
   color: #f5c57b;
   background: rgba(245, 197, 123, .06)
 }

 .genre-tile.thriller::before,
 .genre-tile.thriller::after {
   background: #f5c57b
 }

 .genre-tile.animation {
   color: #a7f57b;
   background: rgba(167, 245, 123, .06)
 }

 .genre-tile.animation::before,
 .genre-tile.animation::after {
   background: #a7f57b
 }

 .genre-tile.documentary {
   color: var(--c-accent);
   background: var(--c-accent-dim)
 }

 .genre-tile.documentary::before,
 .genre-tile.documentary::after {
   background: var(--c-accent)
 }

 /* TOP 10 */
 .top10-list {
   display: flex;
   flex-direction: column;
   gap: .7rem
 }

 .top10-item {
   display: flex;
   align-items: center;
   gap: 1rem;
   background: var(--c-card);
   border: 1px solid var(--c-border);
   border-radius: var(--radius-sm);
   padding: .65rem .9rem;
   cursor: pointer;
   transition: border-color var(--t), background var(--t), transform var(--t)
 }

 .top10-item:hover {
   border-color: rgba(232, 192, 74, .25);
   background: rgba(232, 192, 74, .04);
   transform: translateX(4px)
 }

 .top10-rank {
   font-family: var(--font-display);
   font-size: 1.75rem;
   color: rgba(255, 255, 255, .1);
   width: 34px;
   text-align: center;
   flex-shrink: 0;
   line-height: 1
 }

 .top10-rank.highlight {
   color: var(--c-accent)
 }

 .top10-thumb {
   width: 52px;
   height: 76px;
   border-radius: 7px;
   overflow: hidden;
   flex-shrink: 0
 }

 .top10-thumb img {
   width: 100%;
   height: 100%;
   object-fit: cover
 }

 .top10-info {
   flex: 1;
   min-width: 0
 }

 .top10-title {
   font-size: .875rem;
   font-weight: 600;
   color: var(--c-text);
   white-space: nowrap;
   overflow: hidden;
   text-overflow: ellipsis
 }

 .top10-sub {
   font-size: .73rem;
   color: var(--c-muted);
   margin-top: .14rem
 }

 .top10-play-btn {
   width: 36px;
   height: 36px;
   border-radius: 50%;
   background: rgba(255, 255, 255, .06);
   border: 1px solid var(--c-border);
   color: var(--c-muted);
   display: flex;
   align-items: center;
   justify-content: center;
   flex-shrink: 0;
   cursor: pointer;
   transition: background var(--t), border-color var(--t), color var(--t)
 }

 .top10-play-btn:hover {
   background: var(--c-accent);
   border-color: var(--c-accent);
   color: var(--c-bg)
 }

 .top10-play-btn svg {
   width: 12px;
   height: 12px;
   fill: currentColor;
   margin-left: 2px
 }

 /* FILTER TABS */
 .filter-tabs {
   display: flex;
   gap: .42rem;
   flex-wrap: wrap;
   margin-bottom: 1.75rem
 }

 .filter-tab {
   padding: .38rem 1rem;
   border-radius: 100px;
   font-size: .79rem;
   font-weight: 600;
   background: rgba(255, 255, 255, .05);
   border: 1px solid var(--c-border);
   color: var(--c-muted);
   cursor: pointer;
   transition: background var(--t), color var(--t), border-color var(--t), box-shadow var(--t)
 }

 .filter-tab:hover {
   border-color: rgba(232, 192, 74, .35);
   color: var(--c-accent);
   background: var(--c-accent-dim)
 }

 .filter-tab.active {
   background: var(--c-accent);
   border-color: var(--c-accent);
   color: var(--c-bg);
   box-shadow: 0 4px 14px rgba(232, 192, 74, .3)
 }

 /* PLAYER MODAL */
 .player-modal .modal-dialog {
   max-width: min(880px, 95vw)
 }

 .player-modal .modal-content {
   background: var(--c-surface);
   border: 1px solid var(--c-border);
   border-radius: var(--radius);
   overflow: hidden;
   box-shadow: 0 40px 100px rgba(0, 0, 0, .9)
 }

 .player-modal .modal-header {
   background: var(--c-card);
   border-bottom: 1px solid var(--c-border);
   padding: 1rem 1.25rem
 }

 .player-modal .modal-title {
   font-family: var(--font-display);
   font-size: 1.6rem;
   letter-spacing: .04em;
   color: var(--c-white)
 }

 .player-close-btn {
   background: rgba(255, 255, 255, .08);
   border: 1px solid var(--c-border);
   color: var(--c-text);
   border-radius: 8px;
   padding: .3rem .6rem;
   cursor: pointer;
   font-size: .85rem;
   transition: background var(--t), color var(--t)
 }

 .player-close-btn:hover {
   background: var(--c-accent-dim);
   color: var(--c-accent);
   border-color: rgba(232, 192, 74, .3)
 }

 .player-modal .modal-body {
   padding: 0
 }

 .video-js {
   width: 100% !important;
   height: auto !important;
   aspect-ratio: 16/9
 }

 .vjs-default-skin .vjs-big-play-button {
   width: 70px !important;
   height: 70px !important;
   background: rgba(255, 255, 255, .12) !important;
   backdrop-filter: blur(12px) !important;
   border: 1.5px solid rgba(255, 255, 255, .25) !important;
   border-radius: 50% !important;
   top: 50% !important;
   left: 50% !important;
   margin: 0 !important;
   transform: translate(-50%, -50%) !important;
   line-height: 70px !important;
   transition: background .2s, border-color .2s, box-shadow .2s !important
 }

 .vjs-default-skin:hover .vjs-big-play-button {
   background: var(--c-accent) !important;
   border-color: var(--c-accent) !important;
   box-shadow: 0 0 0 8px rgba(232, 192, 74, .18) !important
 }

 .vjs-default-skin .vjs-big-play-button .vjs-icon-placeholder::before {
   font-size: 1.9rem !important;
   color: rgba(255, 255, 255, .9) !important;
   line-height: 70px !important
 }

 .vjs-default-skin:hover .vjs-big-play-button .vjs-icon-placeholder::before {
   color: var(--c-bg) !important
 }

 .video-js .vjs-control-bar {
   background: rgba(9, 9, 15, .92) !important
 }

 .video-js .vjs-play-progress,
 .video-js .vjs-volume-level {
   background: var(--c-accent) !important
 }

 .video-js .vjs-slider {
   background: rgba(255, 255, 255, .15) !important
 }

 .player-meta-row {
   padding: 1.1rem 1.4rem;
   display: flex;
   gap: 1.4rem;
   flex-wrap: wrap;
   border-top: 1px solid var(--c-border);
   background: var(--c-card)
 }

 .player-meta-item {
   display: flex;
   flex-direction: column;
   gap: .08rem
 }

 .player-meta-label {
   font-size: .6rem;
   font-weight: 700;
   letter-spacing: .13em;
   text-transform: uppercase;
   color: var(--c-accent)
 }

 .player-meta-value {
   font-size: .84rem;
   color: var(--c-text);
   font-weight: 500
 }

 /* FOOTER */
 footer {
   background: var(--c-surface);
   border-top: 1px solid var(--c-border);
   padding: 4rem 0 2rem
 }

 .footer-brand {
   font-family: var(--font-display);
   font-size: 1.9rem;
   color: var(--c-white);
   margin-bottom: .4rem
 }

 .footer-brand span {
   color: var(--c-accent)
 }

 .footer-tagline {
   font-size: .83rem;
   color: var(--c-muted);
   max-width: 255px;
   line-height: 1.75;
   margin-bottom: 1.35rem
 }

 .footer-social {
   display: flex;
   gap: .52rem
 }

 .social-btn {
   width: 37px;
   height: 37px;
   border-radius: var(--radius-sm);
   background: rgba(255, 255, 255, .05);
   border: 1px solid var(--c-border);
   color: var(--c-muted);
   display: flex;
   align-items: center;
   justify-content: center;
   font-size: .9rem;
   transition: background var(--t), color var(--t), border-color var(--t)
 }

 .social-btn:hover {
   background: var(--c-accent-dim);
   color: var(--c-accent);
   border-color: rgba(232, 192, 74, .3)
 }

 .footer-heading {
   font-size: .62rem;
   font-weight: 700;
   letter-spacing: .14em;
   text-transform: uppercase;
   color: var(--c-accent);
   margin-bottom: .95rem
 }

 .footer-links {
   list-style: none;
   padding: 0;
   margin: 0;
   display: flex;
   flex-direction: column;
   gap: .48rem
 }

 .footer-links a {
   font-size: .83rem;
   color: var(--c-muted);
   transition: color var(--t)
 }

 .footer-links a:hover {
   color: var(--c-text)
 }

 .footer-bottom {
   border-top: 1px solid var(--c-border);
   padding-top: 1.5rem;
   margin-top: 3rem;
   display: flex;
   align-items: center;
   justify-content: space-between;
   flex-wrap: wrap;
   gap: 1rem;
   font-size: .77rem;
   color: var(--c-muted)
 }

 /* SCROLL TOP */
 #scrollTopBtn {
   position: fixed;
   bottom: 1.75rem;
   right: 1.75rem;
   width: 44px;
   height: 44px;
   border-radius: 12px;
   background: var(--c-accent);
   color: var(--c-bg);
   border: none;
   cursor: pointer;
   display: flex;
   align-items: center;
   justify-content: center;
   font-size: .95rem;
   opacity: 0;
   transform: translateY(14px);
   transition: opacity var(--t), transform var(--t), box-shadow var(--t);
   z-index: 999;
   box-shadow: 0 6px 20px rgba(232, 192, 74, .32)
 }

 #scrollTopBtn.visible {
   opacity: 1;
   transform: translateY(0)
 }

 #scrollTopBtn:hover {
   box-shadow: 0 10px 28px rgba(232, 192, 74, .5)
 }

 /* RESPONSIVE */
 @media(max-width:991.98px) {

   .desktop-nav,
   .nav-search-wrap {
     display: none !important
   }
 }

 @media(min-width:992px) {
   .hamburger-btn {
     display: none !important
   }
 }

 @media(max-width:767.98px) {
   .hero-title {
     font-size: 2.8rem
   }

   .hero-thumb-strip {
     display: none
   }

   .hs-prev {
     left: .4rem
   }

   .hs-next {
     right: .4rem
   }

   .hs-arrow {
     width: 38px;
     height: 38px;
     font-size: .88rem
   }

   .stat-item {
     border-right: none;
     border-bottom: 1px solid var(--c-border)
   }

   .stat-item:last-child {
     border-bottom: none
   }
 }

 @media(max-width:575.98px) {
   .hs-dots {
     display: none
   }
 }



 /* movie */

 /* ══════════════════════════════════════════════
   HERO BACKDROP
══════════════════════════════════════════════ */
 .movie-hero {
   margin-top: var(--nav-h);
   position: relative;
   height: 88vh;
   min-height: 560px;
   overflow: hidden;
   display: flex;
   align-items: flex-end;
 }

 .hero-backdrop {
   position: absolute;
   inset: 0;
   width: 100%;
   height: 100%;
   object-fit: cover;
   transform: scale(1.04);
   transition: transform 8s ease-out;
 }

 .hero-backdrop.loaded {
   transform: scale(1.0);
 }

 /* Multi-layer gradient for cinematic depth */
 .hero-grad {
   position: absolute;
   inset: 0;
   background:
     linear-gradient(to top, rgba(9, 9, 15, 1) 0%, rgba(9, 9, 15, .7) 25%, transparent 55%),
     linear-gradient(to right, rgba(9, 9, 15, .85) 0%, transparent 55%),
     linear-gradient(to bottom, rgba(9, 9, 15, .5) 0%, transparent 25%);
 }

 /* Film grain */
 .hero-grain {
   position: absolute;
   inset: 0;
   pointer-events: none;
   opacity: .022;
   z-index: 1;
   background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
   background-size: 200px;
 }

 /* Ambient colour blob */
 .hero-blob {
   position: absolute;
   border-radius: 50%;
   pointer-events: none;
   filter: blur(100px);
   opacity: .14;
   z-index: 0;
   width: 600px;
   height: 600px;
   background: radial-gradient(circle, rgba(232, 192, 74, .65), transparent 68%);
   top: -200px;
   left: -200px;
 }

 .hero-content {
   position: relative;
   z-index: 5;
   padding-bottom: 4rem;
   width: 100%;
 }

 /* Breadcrumb */
 .breadcrumb-row {
   display: flex;
   align-items: center;
   gap: .5rem;
   font-size: .73rem;
   color: var(--muted);
   margin-bottom: 1.4rem;
 }

 .breadcrumb-row a:hover {
   color: var(--accent);
 }

 .breadcrumb-row i {
   font-size: .6rem;
 }

 /* Classification badges */
 .classify-row {
   display: flex;
   align-items: center;
   gap: .55rem;
   flex-wrap: wrap;
   margin-bottom: 1rem;
 }

 .badge-genre {
   display: inline-flex;
   align-items: center;
   gap: .3rem;
   background: rgba(232, 192, 74, .12);
   border: 1px solid rgba(232, 192, 74, .28);
   color: var(--accent);
   font-size: .65rem;
   font-weight: 700;
   letter-spacing: .1em;
   text-transform: uppercase;
   padding: .26rem .68rem;
   border-radius: 100px;
 }

 .badge-rating-board {
   background: rgba(255, 255, 255, .08);
   border: 1px solid rgba(255, 255, 255, .12);
   color: var(--text);
   font-size: .65rem;
   font-weight: 700;
   letter-spacing: .08em;
   padding: .26rem .62rem;
   border-radius: 6px;
 }

 /* Movie title */
 .movie-title-hero {
   font-family: var(--fd);
   font-size: clamp(3rem, 8vw, 7.5rem);
   line-height: .88;
   letter-spacing: .03em;
   color: var(--white);
   margin-bottom: .6rem;
 }

 .movie-title-hero .accent {
   color: var(--accent);
 }

 /* Tagline */
 .movie-tagline {
   font-size: .95rem;
   font-style: italic;
   color: rgba(255, 255, 255, .38);
   margin-bottom: 1.1rem;
   letter-spacing: .02em;
 }

 /* Meta pill row */
 .meta-pill-row {
   display: flex;
   align-items: center;
   gap: .6rem;
   flex-wrap: wrap;
   margin-bottom: 1.5rem;
 }

 .meta-pill {
   display: inline-flex;
   align-items: center;
   gap: .32rem;
   background: rgba(255, 255, 255, .07);
   border: 1px solid var(--border);
   border-radius: 100px;
   padding: .3rem .78rem;
   font-size: .78rem;
   color: rgba(255, 255, 255, .6);
 }

 .meta-pill i {
   font-size: .78rem;
   color: var(--accent);
 }

 .meta-pill.rating {
   background: rgba(232, 192, 74, .1);
   border-color: rgba(232, 192, 74, .25);
   color: var(--accent);
   font-weight: 700;
 }

 /* Star rating visual */
 .star-visual {
   display: flex;
   align-items: center;
   gap: .18rem;
 }

 .star-visual i {
   font-size: .82rem;
 }

 .star-full {
   color: var(--accent);
 }

 .star-half {
   color: var(--accent);
   opacity: .6;
 }

 .star-empty {
   color: rgba(255, 255, 255, .18);
 }

 /* Hero CTA row */
 .hero-cta-row {
   display: flex;
   align-items: center;
   gap: .75rem;
   flex-wrap: wrap;
 }

 .btn-play-hero {
   display: inline-flex;
   align-items: center;
   gap: .6rem;
   background: var(--accent);
   color: var(--bg);
   font-family: var(--fb);
   font-weight: 700;
   font-size: 1rem;
   padding: .85rem 2rem;
   border-radius: var(--r-sm);
   border: none;
   cursor: pointer;
   transition: transform var(--t), box-shadow var(--t);
   box-shadow: 0 6px 24px rgba(232, 192, 74, .38);
 }

 .btn-play-hero:hover {
   transform: translateY(-2px);
   box-shadow: 0 14px 40px rgba(232, 192, 74, .5);
 }

 .btn-play-hero .play-ico {
   width: 20px;
   height: 20px;
   background: rgba(0, 0, 0, .2);
   border-radius: 50%;
   display: flex;
   align-items: center;
   justify-content: center;
   flex-shrink: 0;
 }

 .btn-play-hero svg {
   width: 9px;
   height: 9px;
   fill: var(--bg);
   margin-left: 1px;
 }

 .btn-trailer {
   display: inline-flex;
   align-items: center;
   gap: .55rem;
   background: rgba(255, 255, 255, .08);
   color: var(--white);
   font-family: var(--fb);
   font-weight: 600;
   font-size: .9rem;
   padding: .82rem 1.6rem;
   border-radius: var(--r-sm);
   border: 1px solid rgba(255, 255, 255, .14);
   cursor: pointer;
   transition: background var(--t), border-color var(--t);
 }

 .btn-trailer:hover {
   background: rgba(255, 255, 255, .14);
   border-color: rgba(255, 255, 255, .22);
 }

 .btn-icon-action {
   width: 46px;
   height: 46px;
   border-radius: var(--r-sm);
   background: rgba(255, 255, 255, .07);
   border: 1px solid var(--border);
   color: var(--muted);
   display: flex;
   align-items: center;
   justify-content: center;
   font-size: 1rem;
   cursor: pointer;
   transition: background var(--t), color var(--t), border-color var(--t);
   flex-shrink: 0;
 }

 .btn-icon-action:hover {
   background: var(--accent-dim);
   color: var(--accent);
   border-color: rgba(232, 192, 74, .3);
 }

 .btn-icon-action.liked {
   color: var(--accent);
   background: var(--accent-dim);
   border-color: rgba(232, 192, 74, .35);
 }

 /* Floating poster — desktop right side */
 .hero-poster-float {
   position: absolute;
   right: 4%;
   bottom: -80px;
   width: 220px;
   z-index: 10;
   border-radius: var(--r);
   overflow: hidden;
   box-shadow: 0 32px 80px rgba(0, 0, 0, .85), 0 0 0 1px rgba(255, 255, 255, .06);
   border: 1px solid rgba(255, 255, 255, .08);
   transition: transform var(--t), box-shadow var(--t);
 }

 .hero-poster-float:hover {
   transform: scale(1.03) translateY(-6px);
   box-shadow: 0 40px 90px rgba(0, 0, 0, .9), 0 0 40px rgba(232, 192, 74, .12);
 }

 .hero-poster-float img {
   width: 100%;
   height: auto;
   display: block;
 }

 .poster-watch-badge {
   position: absolute;
   bottom: 0;
   left: 0;
   right: 0;
   padding: .75rem;
   background: linear-gradient(to top, rgba(9, 9, 15, .95) 0%, transparent 100%);
   display: flex;
   align-items: center;
   justify-content: center;
 }

 .poster-watch-btn {
   display: flex;
   align-items: center;
   gap: .4rem;
   background: var(--accent);
   color: var(--bg);
   font-size: .72rem;
   font-weight: 700;
   letter-spacing: .05em;
   padding: .38rem 1rem;
   border-radius: 100px;
   border: none;
   cursor: pointer;
   transition: transform var(--t), box-shadow var(--t);
 }

 .poster-watch-btn:hover {
   transform: scale(1.05);
   box-shadow: 0 4px 16px rgba(232, 192, 74, .5);
 }

 .poster-watch-btn svg {
   width: 9px;
   height: 9px;
   fill: currentColor;
   margin-left: 1px;
 }

 @media (max-width:991.98px) {
   .hero-poster-float {
     display: none;
   }
 }

 /* ══════════════════════════════════════════════
   MAIN CONTENT LAYOUT
══════════════════════════════════════════════ */
 .movie-body {
   padding-top: 5.5rem;
   /* space for poster overflow */
 }

 @media (max-width:991.98px) {
   .movie-body {
     padding-top: 2.5rem;
   }
 }

 /* ── Video Player Section ── */
 .player-section {
   background: var(--surface);
   border-top: 1px solid var(--border);
   border-bottom: 1px solid var(--border);
   padding: 2.5rem 0;
 }

 .player-wrap {
   border-radius: var(--r);
   overflow: hidden;
   box-shadow: 0 20px 60px rgba(0, 0, 0, .7);
   border: 1px solid var(--border);
 }

 .video-js {
   width: 100% !important;
   height: auto !important;
   aspect-ratio: 16/9;
 }

 .vjs-default-skin .vjs-big-play-button {
   width: 72px !important;
   height: 72px !important;
   background: rgba(232, 192, 74, .15) !important;
   backdrop-filter: blur(12px) !important;
   border: 2px solid rgba(232, 192, 74, .5) !important;
   border-radius: 50% !important;
   top: 50% !important;
   left: 50% !important;
   margin: 0 !important;
   transform: translate(-50%, -50%) !important;
   line-height: 72px !important;
   transition: background .2s, box-shadow .2s !important;
 }

 .vjs-default-skin:hover .vjs-big-play-button {
   background: var(--accent) !important;
   border-color: var(--accent) !important;
   box-shadow: 0 0 0 10px rgba(232, 192, 74, .15) !important;
 }

 .vjs-default-skin .vjs-big-play-button .vjs-icon-placeholder::before {
   font-size: 2rem !important;
   color: var(--accent) !important;
   line-height: 72px !important;
 }

 .vjs-default-skin:hover .vjs-big-play-button .vjs-icon-placeholder::before {
   color: var(--bg) !important;
 }

 .video-js .vjs-control-bar {
   background: rgba(9, 9, 15, .95) !important;
 }

 .video-js .vjs-play-progress,
 .video-js .vjs-volume-level {
   background: var(--accent) !important;
 }

 .video-js .vjs-slider {
   background: rgba(255, 255, 255, .12) !important;
 }

 /* ── Synopsis + Details ── */
 .section-label {
   font-size: .62rem;
   font-weight: 700;
   letter-spacing: .16em;
   text-transform: uppercase;
   color: var(--accent);
   margin-bottom: .6rem;
   display: block;
 }

 .synopsis-text {
   font-size: 1rem;
   line-height: 1.9;
   color: rgba(232, 232, 240, .72);
 }

 .read-more-btn {
   display: inline-flex;
   align-items: center;
   gap: .35rem;
   font-size: .8rem;
   font-weight: 600;
   color: var(--accent);
   cursor: pointer;
   margin-top: .6rem;
   border: none;
   background: none;
   padding: 0;
   transition: gap var(--t);
 }

 .read-more-btn:hover {
   gap: .55rem;
 }

 /* Detail table */
 .detail-table {
   display: flex;
   flex-direction: column;
   gap: .55rem;
 }

 .detail-row {
   display: flex;
   gap: .75rem;
   align-items: flex-start;
 }

 .detail-key {
   font-size: .78rem;
   font-weight: 600;
   color: var(--muted);
   min-width: 90px;
   flex-shrink: 0;
   padding-top: .05rem;
 }

 .detail-val {
   font-size: .85rem;
   color: var(--text);
   line-height: 1.55;
 }

 .detail-val a {
   color: var(--accent);
   transition: opacity var(--t);
 }

 .detail-val a:hover {
   opacity: .75;
 }

 .tag-chip {
   display: inline-flex;
   align-items: center;
   gap: .28rem;
   background: rgba(255, 255, 255, .05);
   border: 1px solid var(--border);
   border-radius: 6px;
   padding: .22rem .6rem;
   font-size: .75rem;
   color: var(--muted);
   margin: .15rem .15rem 0 0;
   transition: background var(--t), color var(--t);
   cursor: pointer;
 }

 .tag-chip:hover {
   background: var(--accent-dim);
   color: var(--accent);
   border-color: rgba(232, 192, 74, .3);
 }

 /* ── Stats bar ── */
 .stats-bar {
   background: var(--card);
   border: 1px solid var(--border);
   border-radius: var(--r);
   padding: 0;
   overflow: hidden;
 }

 .stats-bar-inner {
   display: flex;
 }

 .stat-cell {
   flex: 1;
   padding: 1.4rem 1rem;
   text-align: center;
   border-right: 1px solid var(--border);
 }

 .stat-cell:last-child {
   border-right: none;
 }

 .stat-val {
   font-family: var(--fd);
   font-size: 1.85rem;
   letter-spacing: .05em;
   color: var(--accent);
   line-height: 1;
   margin-bottom: .2rem;
 }

 .stat-lbl {
   font-size: .71rem;
   color: var(--muted);
   font-weight: 500;
   letter-spacing: .04em;
 }

 /* ── Cast ── */
 .cast-grid {
   display: grid;
   grid-template-columns: repeat(auto-fill, minmax(115px, 1fr));
   gap: 1rem;
 }

 .cast-card {
   background: var(--card);
   border: 1px solid var(--border);
   border-radius: var(--r-sm);
   overflow: hidden;
   cursor: pointer;
   transition: transform var(--t), border-color var(--t), box-shadow var(--t);
 }

 .cast-card:hover {
   transform: translateY(-5px);
   border-color: rgba(232, 192, 74, .25);
   box-shadow: 0 12px 32px rgba(0, 0, 0, .5);
 }

 .cast-photo {
   aspect-ratio: 2/3;
   background: var(--surface);
   overflow: hidden;
 }

 .cast-photo img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   transition: transform .4s var(--ease);
 }

 .cast-card:hover .cast-photo img {
   transform: scale(1.05);
 }

 .cast-info {
   padding: .55rem .6rem;
 }

 .cast-name {
   font-size: .78rem;
   font-weight: 600;
   color: var(--text);
   white-space: nowrap;
   overflow: hidden;
   text-overflow: ellipsis;
 }

 .cast-role {
   font-size: .69rem;
   color: var(--muted);
   margin-top: .1rem;
   white-space: nowrap;
   overflow: hidden;
   text-overflow: ellipsis;
 }

 /* ── Photos / Screenshots ── */
 .photo-grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: .7rem;
 }

 .photo-grid-item {
   border-radius: var(--r-sm);
   overflow: hidden;
   cursor: pointer;
   position: relative;
   aspect-ratio: 16/9;
   background: var(--surface);
 }

 .photo-grid-item img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   transition: transform .4s var(--ease);
 }

 .photo-grid-item:hover img {
   transform: scale(1.06);
 }

 .photo-zoom-icon {
   position: absolute;
   inset: 0;
   display: flex;
   align-items: center;
   justify-content: center;
   opacity: 0;
   background: rgba(0, 0, 0, .45);
   transition: opacity var(--t);
   font-size: 1.4rem;
   color: rgba(255, 255, 255, .9);
 }

 .photo-grid-item:hover .photo-zoom-icon {
   opacity: 1;
 }

 @media (max-width:575.98px) {
   .photo-grid {
     grid-template-columns: repeat(2, 1fr);
   }
 }

 /* ── User Rating ── */
 .rating-section {
   background: var(--card);
   border: 1px solid var(--border);
   border-radius: var(--r);
   padding: 1.6rem;
 }

 .rating-big {
   font-family: var(--fd);
   font-size: 5rem;
   line-height: 1;
   color: var(--accent);
   letter-spacing: .04em;
 }

 .rating-out {
   font-size: 1.2rem;
   color: var(--muted);
 }

 .rating-bar-wrap {
   display: flex;
   flex-direction: column;
   gap: .48rem;
   flex: 1;
 }

 .rating-row {
   display: flex;
   align-items: center;
   gap: .7rem;
 }

 .rating-row-label {
   font-size: .72rem;
   color: var(--muted);
   width: 16px;
   text-align: right;
   flex-shrink: 0;
 }

 .rating-bar-track {
   flex: 1;
   height: 5px;
   background: rgba(255, 255, 255, .08);
   border-radius: 3px;
   overflow: hidden;
 }

 .rating-bar-fill {
   height: 100%;
   background: var(--accent);
   border-radius: 3px;
 }

 .rating-row-count {
   font-size: .7rem;
   color: var(--muted);
   width: 36px;
   flex-shrink: 0;
 }

 /* ── Reviews ── */
 .review-card {
   background: var(--card);
   border: 1px solid var(--border);
   border-radius: var(--r);
   padding: 1.4rem;
   transition: border-color var(--t);
 }

 .review-card:hover {
   border-color: rgba(232, 192, 74, .18);
 }

 .reviewer-avatar {
   width: 40px;
   height: 40px;
   border-radius: 50%;
   object-fit: cover;
   flex-shrink: 0;
   border: 2px solid var(--border);
 }

 .reviewer-name {
   font-size: .88rem;
   font-weight: 600;
   color: var(--text);
 }

 .reviewer-date {
   font-size: .72rem;
   color: var(--muted);
 }

 .review-text {
   font-size: .86rem;
   line-height: 1.75;
   color: rgba(232, 232, 240, .68);
   margin-top: .75rem;
 }

 .review-helpful {
   font-size: .74rem;
   color: var(--muted);
   margin-top: .85rem;
   display: flex;
   align-items: center;
   gap: .55rem;
 }

 .helpful-btn {
   background: rgba(255, 255, 255, .05);
   border: 1px solid var(--border);
   border-radius: 6px;
   padding: .22rem .62rem;
   font-size: .72rem;
   color: var(--muted);
   cursor: pointer;
   display: inline-flex;
   align-items: center;
   gap: .3rem;
   transition: background var(--t), color var(--t);
 }

 .helpful-btn:hover {
   background: var(--accent-dim);
   color: var(--accent);
   border-color: rgba(232, 192, 74, .3);
 }

 /* ── Related Movies (horizontal scroll) ── */
 .related-scroll {
   overflow-x: auto;
   -ms-overflow-style: none;
   scrollbar-width: none;
   padding-bottom: .5rem;
   cursor: grab;
 }

 .related-scroll::-webkit-scrollbar {
   display: none;
 }

 .related-scroll.dragging {
   cursor: grabbing;
 }

 .related-row {
   display: flex;
   gap: 1.1rem;
   width: max-content;
 }

 .movie-card-sm {
   width: 160px;
   flex-shrink: 0;
   border-radius: var(--r-sm);
   overflow: hidden;
   cursor: pointer;
   background: var(--card);
   border: 1px solid var(--border);
   transition: transform var(--t), box-shadow var(--t), border-color var(--t);
 }

 .movie-card-sm:hover {
   transform: translateY(-6px);
   box-shadow: 0 16px 40px rgba(0, 0, 0, .6);
   border-color: rgba(232, 192, 74, .2);
 }

 .movie-card-sm:hover .mc-play {
   opacity: 1;
   transform: translate(-50%, -50%) scale(1);
 }

 .mc-poster {
   position: relative;
   padding-top: 150%;
   background: var(--surface);
 }

 .mc-poster img {
   position: absolute;
   inset: 0;
   width: 100%;
   height: 100%;
   object-fit: cover;
 }

 .mc-play {
   position: absolute;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%) scale(.7);
   opacity: 0;
   z-index: 2;
   width: 46px;
   height: 46px;
   border-radius: 50%;
   background: rgba(255, 255, 255, .14);
   backdrop-filter: blur(10px);
   border: 1.5px solid rgba(255, 255, 255, .3);
   display: flex;
   align-items: center;
   justify-content: center;
   transition: opacity .28s var(--ease), transform .35s var(--spring);
 }

 .mc-play svg {
   width: 14px;
   height: 14px;
   fill: rgba(255, 255, 255, .9);
   margin-left: 2px;
 }

 .mc-badge {
   position: absolute;
   top: .45rem;
   left: .45rem;
   background: var(--accent);
   color: var(--bg);
   font-size: .57rem;
   font-weight: 800;
   letter-spacing: .06em;
   text-transform: uppercase;
   padding: .15rem .42rem;
   border-radius: 4px;
 }

 .mc-info {
   padding: .6rem .7rem;
 }

 .mc-title {
   font-size: .8rem;
   font-weight: 600;
   color: var(--text);
   white-space: nowrap;
   overflow: hidden;
   text-overflow: ellipsis;
   margin-bottom: .22rem;
 }

 .mc-meta {
   display: flex;
   justify-content: space-between;
   font-size: .69rem;
   color: var(--muted);
 }

 .mc-star {
   color: var(--accent);
   font-size: .65rem;
   margin-right: .12rem;
 }

 /* ── Awards & Accolades ── */
 .award-list {
   display: flex;
   flex-direction: column;
   gap: .65rem;
 }

 .award-item {
   display: flex;
   align-items: center;
   gap: 1rem;
   background: var(--card);
   border: 1px solid var(--border);
   border-radius: var(--r-sm);
   padding: .75rem 1rem;
   transition: border-color var(--t);
 }

 .award-item:hover {
   border-color: rgba(232, 192, 74, .2);
 }

 .award-icon {
   width: 38px;
   height: 38px;
   border-radius: 10px;
   background: var(--accent-dim);
   border: 1px solid rgba(232, 192, 74, .22);
   display: flex;
   align-items: center;
   justify-content: center;
   color: var(--accent);
   font-size: 1.1rem;
   flex-shrink: 0;
 }

 .award-title {
   font-size: .85rem;
   font-weight: 600;
   color: var(--text);
 }

 .award-sub {
   font-size: .74rem;
   color: var(--muted);
   margin-top: .06rem;
 }

 .award-status {
   margin-left: auto;
   flex-shrink: 0;
   font-size: .67rem;
   font-weight: 700;
   letter-spacing: .06em;
   text-transform: uppercase;
   padding: .22rem .6rem;
   border-radius: 100px;
 }

 .award-won {
   background: rgba(232, 192, 74, .14);
   color: var(--accent);
   border: 1px solid rgba(232, 192, 74, .28);
 }

 .award-nom {
   background: rgba(255, 255, 255, .05);
   color: var(--muted);
   border: 1px solid var(--border);
 }

 /* ── Where to watch ── */
 .watch-options {
   display: flex;
   gap: .65rem;
   flex-wrap: wrap;
 }

 .watch-btn {
   display: inline-flex;
   align-items: center;
   gap: .55rem;
   padding: .62rem 1.2rem;
   border-radius: var(--r-sm);
   font-size: .82rem;
   font-weight: 600;
   border: 1px solid var(--border);
   cursor: pointer;
   transition: transform var(--t), box-shadow var(--t), border-color var(--t);
   background: var(--card);
   color: var(--text);
 }

 .watch-btn:hover {
   transform: translateY(-2px);
   border-color: rgba(232, 192, 74, .3);
   box-shadow: 0 8px 20px rgba(0, 0, 0, .4);
 }

 .watch-btn i {
   font-size: 1.1rem;
 }

 .watch-btn.primary {
   background: var(--accent);
   color: var(--bg);
   border-color: var(--accent);
   box-shadow: 0 4px 18px rgba(232, 192, 74, .3);
 }

 .watch-btn.primary:hover {
   box-shadow: 0 10px 28px rgba(232, 192, 74, .5);
 }

 /* ── Section heading ── */
 .s-head {
   display: flex;
   align-items: flex-end;
   justify-content: space-between;
   margin-bottom: 1.4rem;
 }

 .s-title {
   font-family: var(--fd);
   font-size: 1.75rem;
   letter-spacing: .04em;
   color: var(--white);
   line-height: 1;
 }

 .s-title .accent {
   color: var(--accent);
 }

 .s-link {
   font-size: .74rem;
   font-weight: 700;
   letter-spacing: .07em;
   text-transform: uppercase;
   color: var(--accent);
   display: inline-flex;
   align-items: center;
   gap: .28rem;
   border-bottom: 1.5px solid rgba(232, 192, 74, .3);
   padding-bottom: 1px;
   transition: gap var(--t), border-color var(--t);
 }

 .s-link:hover {
   gap: .48rem;
   border-color: var(--accent);
 }

 /* section dividers */
 .movie-section {
   padding: 3rem 0;
   border-top: 1px solid var(--border);
 }

 .movie-section:first-child {
   border-top: none;
 }

 /* tab system */
 .tab-nav {
   display: flex;
   gap: .35rem;
   flex-wrap: wrap;
   margin-bottom: 1.6rem;
 }

 .tab-btn {
   padding: .4rem 1.05rem;
   border-radius: 100px;
   font-size: .8rem;
   font-weight: 600;
   background: rgba(255, 255, 255, .05);
   border: 1px solid var(--border);
   color: var(--muted);
   cursor: pointer;
   transition: background var(--t), color var(--t), border-color var(--t);
 }

 .tab-btn:hover {
   color: var(--white);
   background: rgba(255, 255, 255, .09);
 }

 .tab-btn.active {
   background: var(--accent);
   border-color: var(--accent);
   color: var(--bg);
   box-shadow: 0 4px 14px rgba(232, 192, 74, .28);
 }

 .tab-pane {
   display: none;
 }

 .tab-pane.active {
   display: block;
 }

 /* sidebar card */
 .side-card {
   background: var(--card);
   border: 1px solid var(--border);
   border-radius: var(--r);
   padding: 1.4rem;
   margin-bottom: 1.25rem;
 }

 .side-card-title {
   font-family: var(--fd);
   font-size: 1.2rem;
   letter-spacing: .04em;
   color: var(--white);
   margin-bottom: 1rem;
 }

 /* trailer thumbnail */
 .trailer-thumb {
   position: relative;
   border-radius: var(--r-sm);
   overflow: hidden;
   cursor: pointer;
 }

 .trailer-thumb img {
   width: 100%;
   height: auto;
   display: block;
   aspect-ratio: 16/9;
   object-fit: cover;
   transition: transform .4s var(--ease);
 }

 .trailer-thumb:hover img {
   transform: scale(1.04);
 }

 .trailer-play-overlay {
   position: absolute;
   inset: 0;
   display: flex;
   align-items: center;
   justify-content: center;
   background: rgba(0, 0, 0, .4);
 }

 .trailer-play-btn {
   width: 56px;
   height: 56px;
   border-radius: 50%;
   background: rgba(232, 192, 74, .18);
   backdrop-filter: blur(10px);
   border: 2px solid rgba(232, 192, 74, .5);
   display: flex;
   align-items: center;
   justify-content: center;
   transition: background var(--t), transform var(--t);
 }

 .trailer-thumb:hover .trailer-play-btn {
   background: var(--accent);
   transform: scale(1.08);
 }

 .trailer-play-btn svg {
   width: 18px;
   height: 18px;
   fill: var(--white);
   margin-left: 3px;
 }

 /* progress bar for video loading */
 .quality-badge {
   display: inline-block;
   background: rgba(232, 192, 74, .12);
   border: 1px solid rgba(232, 192, 74, .28);
   color: var(--accent);
   font-size: .62rem;
   font-weight: 700;
   letter-spacing: .08em;
   padding: .16rem .5rem;
   border-radius: 4px;
 }

 /* lightbox overlay */
 .lb-overlay {
   position: fixed;
   inset: 0;
   background: rgba(0, 0, 0, .96);
   z-index: 9999;
   display: flex;
   align-items: center;
   justify-content: center;
   opacity: 0;
   pointer-events: none;
   transition: opacity .3s;
 }

 .lb-overlay.open {
   opacity: 1;
   pointer-events: auto;
 }

 .lb-img {
   max-width: 92vw;
   max-height: 88vh;
   border-radius: var(--r-sm);
   box-shadow: 0 0 80px rgba(0, 0, 0, .9);
 }

 .lb-close {
   position: absolute;
   top: 1.5rem;
   right: 1.5rem;
   width: 44px;
   height: 44px;
   border-radius: 50%;
   background: rgba(255, 255, 255, .1);
   border: 1px solid rgba(255, 255, 255, .15);
   color: var(--white);
   font-size: 1.1rem;
   display: flex;
   align-items: center;
   justify-content: center;
   cursor: pointer;
   transition: background var(--t);
 }

 .lb-close:hover {
   background: rgba(255, 255, 255, .2);
 }

 /* scroll top */
 #scrollTopBtn {
   position: fixed;
   bottom: 1.75rem;
   right: 1.75rem;
   width: 44px;
   height: 44px;
   border-radius: 12px;
   background: var(--accent);
   color: var(--bg);
   border: none;
   cursor: pointer;
   display: flex;
   align-items: center;
   justify-content: center;
   font-size: .95rem;
   opacity: 0;
   transform: translateY(14px);
   transition: opacity var(--t), transform var(--t), box-shadow var(--t);
   z-index: 990;
   box-shadow: 0 6px 20px rgba(232, 192, 74, .32);
 }

 #scrollTopBtn.visible {
   opacity: 1;
   transform: translateY(0);
 }

 #scrollTopBtn:hover {
   box-shadow: 0 10px 28px rgba(232, 192, 74, .5);
 }

 /* Progress ring */
 .progress-ring {
   transform: rotate(-90deg);
 }

 .progress-ring-fill {
   transition: stroke-dashoffset 1.5s ease;
 }

 /* ── FOOTER ── */
 .page-footer {
   background: var(--surface);
   border-top: 1px solid var(--border);
   padding: 2rem 0;
   margin-top: 4rem;
 }

 .page-footer-inner {
   display: flex;
   align-items: center;
   justify-content: space-between;
   flex-wrap: wrap;
   gap: 1rem;
   font-size: .8rem;
   color: var(--muted);
 }

 .page-footer .brand {
   font-family: var(--fd);
   font-size: 1.5rem;
   color: var(--white);
 }

 .page-footer .brand span {
   color: var(--accent);
 }

 /* responsive */
 @media (max-width:767.98px) {
   .movie-title-hero {
     font-size: 2.8rem;
   }

   .stats-bar-inner {
     flex-wrap: wrap;
   }

   .stat-cell {
     border-right: none;
     border-bottom: 1px solid var(--border);
     min-width: 50%;
   }

   .stat-cell:last-child {
     border-bottom: none;
   }

   .photo-grid {
     grid-template-columns: repeat(2, 1fr);
   }

   .hero-cta-row {
     flex-wrap: wrap;
   }
 }

 /* auth  page*/


 /* ══════════════════════════════════════════════
   FULL-PAGE LAYOUT  — left panel + right form
══════════════════════════════════════════════ */
 .auth-root {
   display: flex;
   min-height: 100vh;
 }

 /* ── LEFT  — cinematic backdrop panel ── */
 .auth-left {
   position: relative;
   flex: 0 0 52%;
   overflow: hidden;
   display: flex;
   flex-direction: column;
 }

 @media (max-width: 900px) {
   .auth-left {
     display: none;
   }
 }

 /* Cycling backdrop images */
 .backdrop-track {
   position: absolute;
   inset: 0;
   width: 100%;
   height: 100%;
 }

 .backdrop-slide {
   position: absolute;
   inset: 0;
   opacity: 0;
   transition: opacity 1.2s ease;
 }

 .backdrop-slide.active {
   opacity: 1;
 }

 .backdrop-slide img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   transform: scale(1.06);
   transition: transform 8s ease-out;
 }

 .backdrop-slide.active img {
   transform: scale(1.0);
 }

 /* Gradient overlay */
 .left-overlay {
   position: absolute;
   inset: 0;
   background:
     linear-gradient(to right, transparent 50%, var(--bg) 100%),
     linear-gradient(to top, rgba(9, 9, 15, .95) 0%, rgba(9, 9, 15, .3) 40%, rgba(9, 9, 15, .15) 100%);
   z-index: 1;
 }

 /* Film grain */
 .left-grain {
   position: absolute;
   inset: 0;
   z-index: 2;
   pointer-events: none;
   opacity: .025;
   background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
   background-size: 200px;
 }

 /* Ambient blob */
 .left-blob {
   position: absolute;
   width: 500px;
   height: 500px;
   border-radius: 50%;
   background: radial-gradient(circle, rgba(232, 192, 74, .5), transparent 68%);
   filter: blur(90px);
   opacity: .14;
   top: -150px;
   left: -150px;
   z-index: 0;
   pointer-events: none;
 }

 /* Left panel content */
 .left-content {
   position: relative;
   z-index: 5;
   display: flex;
   flex-direction: column;
   justify-content: space-between;
   height: 100%;
   padding: 2.5rem 3rem 3rem;
 }

 /* Brand */
 .brand-logo {
   font-family: var(--fd);
   font-size: 2.1rem;
   letter-spacing: .05em;
   color: var(--white);
   line-height: 1;
 }

 .brand-logo span {
   color: var(--accent);
 }

 /* Left bottom — featured movie promo */
 .left-promo {
   max-width: 380px;
 }

 .promo-badge {
   display: inline-flex;
   align-items: center;
   gap: .38rem;
   background: rgba(232, 192, 74, .12);
   border: 1px solid rgba(232, 192, 74, .3);
   color: var(--accent);
   font-size: .62rem;
   font-weight: 700;
   letter-spacing: .13em;
   text-transform: uppercase;
   padding: .26rem .68rem;
   border-radius: 100px;
   margin-bottom: 1rem;
 }

 .promo-title {
   font-family: var(--fd);
   font-size: clamp(2.2rem, 3.5vw, 3.2rem);
   line-height: .9;
   color: var(--white);
   letter-spacing: .03em;
   margin-bottom: .65rem;
 }

 .promo-title .accent {
   color: var(--accent);
 }

 .promo-desc {
   font-size: .875rem;
   color: rgba(255, 255, 255, .45);
   line-height: 1.75;
   margin-bottom: 1.4rem;
   max-width: 320px;
 }

 .promo-meta {
   display: flex;
   align-items: center;
   gap: .75rem;
   font-size: .78rem;
   color: rgba(255, 255, 255, .45);
 }

 .promo-meta .star {
   color: var(--accent);
   font-size: .72rem;
 }

 .promo-meta .dot {
   width: 3px;
   height: 3px;
   border-radius: 50%;
   background: rgba(255, 255, 255, .2);
 }

 /* Backdrop dots nav */
 .backdrop-dots {
   display: flex;
   gap: .42rem;
   margin-top: 1.6rem;
 }

 .bd-dot {
   height: 3px;
   border-radius: 2px;
   background: rgba(255, 255, 255, .2);
   cursor: pointer;
   transition: background var(--t), width var(--t);
   width: 20px;
 }

 .bd-dot.active {
   background: var(--accent);
   width: 36px;
 }

 /* Scroll hint */
 .left-scroll-hint {
   display: flex;
   align-items: center;
   gap: .5rem;
   font-size: .72rem;
   color: rgba(255, 255, 255, .22);
   margin-top: 2rem;
 }

 .scroll-mouse {
   width: 18px;
   height: 28px;
   border: 1.5px solid rgba(255, 255, 255, .18);
   border-radius: 9px;
   position: relative;
   flex-shrink: 0;
 }

 .scroll-mouse::after {
   content: '';
   width: 3px;
   height: 5px;
   background: rgba(255, 255, 255, .35);
   border-radius: 2px;
   position: absolute;
   top: 5px;
   left: 50%;
   transform: translateX(-50%);
   animation: scroll-tick 1.5s ease-in-out infinite;
 }

 @keyframes scroll-tick {

   0%,
   100% {
     top: 5px;
     opacity: 1
   }

   60% {
     top: 12px;
     opacity: 0
   }
 }

 /* ── RIGHT  — auth form panel ── */
 .auth-right {
   flex: 1;
   display: flex;
   flex-direction: column;
   justify-content: center;
   align-items: center;
   padding: 3rem 2rem;
   background: var(--bg);
   position: relative;
   overflow: hidden;
 }

 /* Right subtle blob */
 .right-blob {
   position: absolute;
   width: 420px;
   height: 420px;
   border-radius: 50%;
   background: radial-gradient(circle, rgba(100, 60, 200, .35), transparent 68%);
   filter: blur(80px);
   opacity: .12;
   bottom: -160px;
   right: -120px;
   pointer-events: none;
 }

 .right-blob-2 {
   position: absolute;
   width: 280px;
   height: 280px;
   border-radius: 50%;
   background: radial-gradient(circle, rgba(232, 192, 74, .3), transparent 68%);
   filter: blur(70px);
   opacity: .1;
   top: -80px;
   left: -80px;
   pointer-events: none;
 }

 /* Mobile brand (shown only on small screens) */
 .mobile-brand {
   display: none;
   font-family: var(--fd);
   font-size: 1.9rem;
   letter-spacing: .05em;
   color: var(--white);
   text-align: center;
   margin-bottom: 2rem;
 }

 .mobile-brand span {
   color: var(--accent);
 }

 @media (max-width: 900px) {
   .mobile-brand {
     display: block;
   }
 }

 /* Form card */
 .auth-card {
   width: 100%;
   max-width: 420px;
   position: relative;
   z-index: 2;
 }

 /* Tab switcher */
 .auth-tabs {
   display: flex;
   background: var(--surface);
   border: 1px solid var(--border);
   border-radius: var(--r);
   padding: .28rem;
   margin-bottom: 2rem;
   gap: .28rem;
 }

 .auth-tab {
   flex: 1;
   padding: .6rem 1rem;
   border-radius: var(--r-sm);
   font-size: .88rem;
   font-weight: 600;
   color: var(--muted);
   background: none;
   border: none;
   cursor: pointer;
   transition: background var(--t), color var(--t), box-shadow var(--t);
   text-align: center;
 }

 .auth-tab.active {
   background: var(--accent);
   color: var(--bg);
   box-shadow: 0 4px 16px rgba(232, 192, 74, .32);
 }

 /* Form wrapper */
 .form-wrap {
   display: none;
   flex-direction: column;
   gap: 0;
 }

 .form-wrap.active {
   display: flex;
 }

 /* Heading */
 .form-heading {
   margin-bottom: 1.6rem;
 }

 .form-title {
   font-family: var(--fd);
   font-size: 2rem;
   letter-spacing: .04em;
   color: var(--white);
   line-height: 1;
   margin-bottom: .3rem;
 }

 .form-title span {
   color: var(--accent);
 }

 .form-subtitle {
   font-size: .83rem;
   color: var(--muted);
 }

 .form-subtitle a {
   color: var(--accent);
   text-decoration: underline;
   text-decoration-color: rgba(232, 192, 74, .3);
 }

 .form-subtitle a:hover {
   text-decoration-color: var(--accent);
 }

 /* Social signin */
 .social-row {
   display: flex;
   gap: .6rem;
   margin-bottom: 1.4rem;
 }

 .social-btn {
   flex: 1;
   display: flex;
   align-items: center;
   justify-content: center;
   gap: .5rem;
   padding: .65rem 1rem;
   border-radius: var(--r-sm);
   border: 1px solid var(--border);
   background: var(--surface);
   color: var(--text);
   font-size: .82rem;
   font-weight: 600;
   cursor: pointer;
   transition: background var(--t), border-color var(--t), transform var(--t), box-shadow var(--t);
   font-family: var(--fb);
   white-space: nowrap;
 }

 .social-btn:hover {
   background: rgba(255, 255, 255, .07);
   border-color: rgba(255, 255, 255, .14);
   transform: translateY(-1px);
   box-shadow: 0 6px 18px rgba(0, 0, 0, .35);
 }

 .social-btn i {
   font-size: 1.05rem;
 }

 .social-btn.google i {
   color: #ea4335;
 }

 .social-btn.apple i {
   color: var(--white);
 }

 .social-btn.discord i {
   color: #5865f2;
 }

 /* Divider */
 .divider {
   display: flex;
   align-items: center;
   gap: .75rem;
   margin-bottom: 1.4rem;
   font-size: .73rem;
   color: var(--muted);
 }

 .divider::before,
 .divider::after {
   content: '';
   flex: 1;
   height: 1px;
   background: var(--border);
 }

 /* Field group */
 .field-group {
   display: flex;
   flex-direction: column;
   gap: 1rem;
   margin-bottom: 1.2rem;
 }

 .field {
   display: flex;
   flex-direction: column;
   gap: .4rem;
 }

 .field-label {
   font-size: .77rem;
   font-weight: 600;
   color: var(--muted);
   letter-spacing: .03em;
   display: flex;
   align-items: center;
   justify-content: space-between;
 }

 .field-label a {
   font-weight: 500;
   color: var(--accent);
   font-size: .74rem;
 }

 .field-label a:hover {
   opacity: .75;
 }

 .input-wrap {
   position: relative;
 }

 .input-icon {
   position: absolute;
   left: .9rem;
   top: 50%;
   transform: translateY(-50%);
   color: var(--muted);
   font-size: .88rem;
   pointer-events: none;
   transition: color var(--t);
 }

 .field-input {
   width: 100%;
   background: var(--surface);
   border: 1.5px solid var(--border);
   border-radius: var(--r-sm);
   padding: .72rem .9rem .72rem 2.55rem;
   color: var(--text);
   font-size: .88rem;
   font-family: var(--fb);
   outline: none;
   transition: border-color var(--t), box-shadow var(--t), background var(--t);
   -webkit-appearance: none;
 }

 .field-input::placeholder {
   color: var(--muted);
 }

 .field-input:focus {
   border-color: var(--border-focus);
   box-shadow: 0 0 0 3.5px rgba(232, 192, 74, .1);
   background: rgba(255, 255, 255, .03);
 }

 .field-input:focus~.input-icon,
 .input-wrap:focus-within .input-icon {
   color: var(--accent);
 }

 /* Password toggle */
 .pwd-toggle {
   position: absolute;
   right: .85rem;
   top: 50%;
   transform: translateY(-50%);
   color: var(--muted);
   cursor: pointer;
   font-size: .9rem;
   transition: color var(--t);
   background: none;
   border: none;
   padding: 0;
   display: flex;
   align-items: center;
 }

 .pwd-toggle:hover {
   color: var(--text);
 }

 /* Strength bar */
 .strength-bar-wrap {
   display: none;
   flex-direction: column;
   gap: .3rem;
   margin-top: .1rem;
 }

 .strength-bar-wrap.visible {
   display: flex;
 }

 .strength-track {
   display: flex;
   gap: .28rem;
 }

 .strength-seg {
   flex: 1;
   height: 3px;
   border-radius: 2px;
   background: rgba(255, 255, 255, .08);
   transition: background .3s;
 }

 .strength-label {
   font-size: .7rem;
   color: var(--muted);
 }

 /* Validation message */
 .field-msg {
   font-size: .72rem;
   min-height: 1rem;
   transition: opacity var(--t);
   display: flex;
   align-items: center;
   gap: .3rem;
 }

 .field-msg.error {
   color: var(--error);
 }

 .field-msg.success {
   color: var(--success);
 }

 .field-msg i {
   font-size: .72rem;
 }

 /* Checkbox row */
 .check-row {
   display: flex;
   align-items: flex-start;
   gap: .65rem;
   margin-bottom: 1.3rem;
   cursor: pointer;
   user-select: none;
 }

 .check-row input[type="checkbox"] {
   display: none;
 }

 .custom-check {
   width: 18px;
   height: 18px;
   flex-shrink: 0;
   border-radius: 5px;
   border: 1.5px solid var(--border);
   background: var(--surface);
   display: flex;
   align-items: center;
   justify-content: center;
   margin-top: .1rem;
   transition: background var(--t), border-color var(--t);
 }

 .check-row input:checked+.custom-check {
   background: var(--accent);
   border-color: var(--accent);
 }

 .custom-check i {
   font-size: .65rem;
   color: var(--bg);
   opacity: 0;
   transition: opacity .15s;
 }

 .check-row input:checked+.custom-check i {
   opacity: 1;
 }

 .check-label {
   font-size: .8rem;
   color: var(--muted);
   line-height: 1.5;
 }

 .check-label a {
   color: var(--accent);
 }

 .check-label a:hover {
   opacity: .75;
 }

 /* Plan selector (sign-up only) */
 .plan-grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: .6rem;
   margin-bottom: 1.2rem;
 }

 .plan-card {
   border: 1.5px solid var(--border);
   border-radius: var(--r-sm);
   padding: .85rem .7rem;
   cursor: pointer;
   text-align: center;
   background: var(--surface);
   transition: border-color var(--t), background var(--t), transform var(--t), box-shadow var(--t);
   position: relative;
   overflow: hidden;
 }

 .plan-card::before {
   content: '';
   position: absolute;
   inset: 0;
   background: radial-gradient(circle at top, rgba(232, 192, 74, .08), transparent 70%);
   opacity: 0;
   transition: opacity var(--t);
 }

 .plan-card:hover {
   transform: translateY(-2px);
   border-color: rgba(255, 255, 255, .14);
 }

 .plan-card.selected {
   border-color: var(--accent);
   background: var(--accent-dim);
   box-shadow: 0 0 0 1px var(--accent);
 }

 .plan-card.selected::before {
   opacity: 1;
 }

 .plan-check {
   position: absolute;
   top: .4rem;
   right: .4rem;
   width: 16px;
   height: 16px;
   border-radius: 50%;
   background: var(--accent);
   display: flex;
   align-items: center;
   justify-content: center;
   opacity: 0;
   transition: opacity .2s;
 }

 .plan-card.selected .plan-check {
   opacity: 1;
 }

 .plan-check i {
   font-size: .55rem;
   color: var(--bg);
 }

 .plan-name {
   font-size: .75rem;
   font-weight: 700;
   color: var(--text);
   margin-bottom: .2rem;
 }

 .plan-price {
   font-family: var(--fd);
   font-size: 1.1rem;
   letter-spacing: .04em;
   color: var(--accent);
   line-height: 1;
 }

 .plan-sub {
   font-size: .64rem;
   color: var(--muted);
   margin-top: .14rem;
 }

 .plan-popular {
   position: absolute;
   top: -.5px;
   left: 50%;
   transform: translateX(-50%);
   background: var(--accent);
   color: var(--bg);
   font-size: .55rem;
   font-weight: 800;
   letter-spacing: .07em;
   text-transform: uppercase;
   padding: .12rem .5rem;
   border-radius: 0 0 5px 5px;
 }

 /* Submit button */
 .btn-submit {
   width: 100%;
   display: flex;
   align-items: center;
   justify-content: center;
   gap: .55rem;
   padding: .88rem 1.5rem;
   border-radius: var(--r-sm);
   background: var(--accent);
   color: var(--bg);
   font-family: var(--fb);
   font-weight: 700;
   font-size: .97rem;
   border: none;
   cursor: pointer;
   transition: transform var(--t), box-shadow var(--t), background var(--t);
   box-shadow: 0 6px 24px rgba(232, 192, 74, .32);
   position: relative;
   overflow: hidden;
   margin-bottom: 1.2rem;
 }

 .btn-submit:hover {
   transform: translateY(-2px);
   box-shadow: 0 12px 36px rgba(232, 192, 74, .48);
 }

 .btn-submit:active {
   transform: translateY(0);
 }

 /* Shimmer on hover */
 .btn-submit::after {
   content: '';
   position: absolute;
   top: 0;
   left: -100%;
   width: 60%;
   height: 100%;
   background: linear-gradient(to right, transparent, rgba(255, 255, 255, .18), transparent);
   transform: skewX(-20deg);
   transition: left .55s ease;
 }

 .btn-submit:hover::after {
   left: 160%;
 }

 /* Spinner inside button */
 .btn-spinner {
   width: 18px;
   height: 18px;
   border: 2.5px solid rgba(9, 9, 15, .3);
   border-top-color: var(--bg);
   border-radius: 50%;
   animation: spin .7s linear infinite;
   display: none;
 }

 @keyframes spin {
   to {
     transform: rotate(360deg);
   }
 }

 .btn-submit.loading .btn-text {
   display: none;
 }

 .btn-submit.loading .btn-spinner {
   display: block;
 }

 /* Footer note */
 .form-footer-note {
   text-align: center;
   font-size: .76rem;
   color: var(--muted);
   line-height: 1.7;
 }

 .form-footer-note a {
   color: var(--accent);
 }

 /* Separator */
 .form-sep {
   height: 1px;
   background: var(--border);
   margin: 1.25rem 0;
 }

 /* Success state overlay */
 .success-overlay {
   display: none;
   flex-direction: column;
   align-items: center;
   justify-content: center;
   text-align: center;
   padding: 2rem 0;
   gap: .8rem;
 }

 .success-overlay.visible {
   display: flex;
 }

 .success-icon {
   width: 72px;
   height: 72px;
   border-radius: 50%;
   background: rgba(74, 232, 160, .12);
   border: 2px solid rgba(74, 232, 160, .3);
   display: flex;
   align-items: center;
   justify-content: center;
   font-size: 2rem;
   color: var(--success);
   margin-bottom: .5rem;
 }

 .success-title {
   font-family: var(--fd);
   font-size: 1.7rem;
   color: var(--white);
   letter-spacing: .04em;
 }

 .success-sub {
   font-size: .85rem;
   color: var(--muted);
   max-width: 280px;
   line-height: 1.7;
 }

 .success-cta {
   display: inline-flex;
   align-items: center;
   gap: .45rem;
   margin-top: .5rem;
   background: var(--accent);
   color: var(--bg);
   font-weight: 700;
   font-size: .88rem;
   padding: .68rem 1.6rem;
   border-radius: var(--r-sm);
   border: none;
   cursor: pointer;
   transition: transform var(--t), box-shadow var(--t);
   box-shadow: 0 4px 18px rgba(232, 192, 74, .3);
 }

 .success-cta:hover {
   transform: translateY(-2px);
   box-shadow: 0 8px 28px rgba(232, 192, 74, .45);
 }

 /* OTP / 2FA view */
 .otp-row {
   display: flex;
   gap: .55rem;
   justify-content: center;
   margin-bottom: 1.3rem;
 }

 .otp-input {
   width: 52px;
   height: 60px;
   border-radius: var(--r-sm);
   border: 1.5px solid var(--border);
   background: var(--surface);
   color: var(--white);
   font-family: var(--fd);
   font-size: 1.5rem;
   letter-spacing: .05em;
   text-align: center;
   outline: none;
   caret-color: var(--accent);
   transition: border-color var(--t), box-shadow var(--t);
 }

 .otp-input:focus {
   border-color: var(--border-focus);
   box-shadow: 0 0 0 3px rgba(232, 192, 74, .12);
 }

 /* Resend timer */
 .resend-row {
   text-align: center;
   font-size: .78rem;
   color: var(--muted);
   margin-bottom: 1.2rem;
 }

 .resend-btn {
   background: none;
   border: none;
   cursor: pointer;
   color: var(--accent);
   font-family: var(--fb);
   font-size: .78rem;
   font-weight: 600;
   padding: 0;
   display: none;
 }

 .resend-btn.visible {
   display: inline;
 }

 /* Back link */
 .back-link {
   display: inline-flex;
   align-items: center;
   gap: .4rem;
   font-size: .8rem;
   color: var(--muted);
   cursor: pointer;
   background: none;
   border: none;
   font-family: var(--fb);
   padding: 0;
   margin-bottom: 1.5rem;
   transition: color var(--t);
 }

 .back-link:hover {
   color: var(--accent);
 }

 /* Forgot password view */
 .forgot-view,
 .otp-view {
   display: none;
 }

 .forgot-view.visible,
 .otp-view.visible {
   display: flex;
   flex-direction: column;
 }

 /* ══════════════════════════════════════════════
   BOTTOM NAV STRIP  (mobile)
══════════════════════════════════════════════ */
 .bottom-strip {
   display: none;
   background: var(--surface);
   border-top: 1px solid var(--border);
   padding: 1rem 1.5rem;
   text-align: center;
   font-size: .78rem;
   color: var(--muted);
 }

 .bottom-strip a {
   color: var(--accent);
   font-weight: 600;
 }

 @media (max-width: 900px) {
   .bottom-strip {
     display: block;
   }
 }

 /* ══════════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════════ */
 @media (max-width: 520px) {
   .auth-right {
     padding: 2rem 1.25rem;
   }

   .social-row {
     flex-direction: column;
   }

   .plan-grid {
     grid-template-columns: 1fr;
   }

   .otp-input {
     width: 44px;
     height: 52px;
     font-size: 1.3rem;
   }
 }