/* Cinema Container (Dark Cinema Theme matching Mockup) */ .has-cinema-container { position: relative; width: 100%; min-height: 100%; background: #090a0f; color: #f8fafc; border-radius: 16px; overflow: hidden; box-shadow: 0 4px 25px rgba(0, 0, 0, 0.4); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; box-sizing: border-box; } /* ======================================================== 1. TOP NAVIGATION HEADER (Mockup Replica) ======================================================== */ .has-cinema-header { position: absolute; top: 0; left: 0; right: 0; height: 68px; display: flex; align-items: center; justify-content: space-between; padding: 0 36px; z-index: 20; background: linear-gradient(180deg, rgba(9, 10, 15, 0.85) 0%, rgba(9, 10, 15, 0) 100%); } .has-cinema-nav-links { display: flex; align-items: center; gap: 28px; } .has-cinema-nav-item { background: transparent; border: none; color: #94a3b8; font-size: 14.5px; font-weight: 600; cursor: pointer; padding: 6px 0; transition: color 0.15s ease; } .has-cinema-nav-item:hover { color: #ffffff; } .has-cinema-nav-item.active { color: #ffffff; font-weight: 700; } .has-cinema-header-right { display: flex; align-items: center; gap: 16px; } .has-cinema-search-box { position: relative; display: flex; align-items: center; } .has-cinema-search-box svg { position: absolute; left: 12px; color: #94a3b8; pointer-events: none; } .has-cinema-search-input { background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 9999px; padding: 7px 16px 7px 34px; color: #ffffff; font-size: 13px; width: 220px; outline: none; transition: all 0.2s ease; } .has-cinema-search-input:focus { background: rgba(255, 255, 255, 0.14); border-color: #6366f1; width: 280px; } .has-cinema-user-avatar { width: 34px; height: 34px; border-radius: 50%; border: 1.5px solid rgba(255, 255, 255, 0.3); overflow: hidden; background: #1e1b4b; display: flex; align-items: center; justify-content: center; flex-shrink: 0; box-shadow: 0 0 0 2px rgba(16, 185, 129, 0.4); } .has-cinema-user-avatar-img { width: 100%; height: 100%; object-fit: cover; } .has-cinema-user-avatar-text { font-size: 12px; font-weight: 700; color: #a5b4fc; } /* ======================================================== 2. HERO BANNER WITH ART & SYNOPSIS ======================================================== */ .has-cinema-hero { position: relative; width: 100%; min-height: 480px; display: flex; align-items: flex-end; padding: 100px 48px 48px 48px; box-sizing: border-box; } .has-cinema-hero-bg-wrapper { position: absolute; top: 0; left: 0; right: 0; bottom: 0; overflow: hidden; z-index: 1; } .has-cinema-hero-bg-img { width: 100%; height: 100%; object-fit: cover; object-position: top right; filter: brightness(0.9); } /* Dark Gradients to match the screenshot */ .has-cinema-hero-gradient-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient( 90deg, rgba(9, 10, 15, 0.95) 0%, rgba(9, 10, 15, 0.8) 45%, rgba(9, 10, 15, 0.2) 80%, rgba(9, 10, 15, 0.05) 100% ); } .has-cinema-hero-bottom-fade { position: absolute; left: 0; right: 0; bottom: 0; height: 160px; background: linear-gradient(180deg, rgba(9, 10, 15, 0) 0%, #090a0f 100%); } .has-cinema-hero-content { position: relative; z-index: 5; max-width: 580px; display: flex; flex-direction: column; gap: 16px; } /* Badge: slothui original */ .has-cinema-original-badge { display: inline-flex; align-items: center; gap: 8px; background: rgba(30, 27, 75, 0.8); border: 1px solid rgba(129, 140, 248, 0.3); backdrop-filter: blur(8px); padding: 3px 12px 3px 6px; border-radius: 9999px; width: fit-content; } .has-cinema-original-badge-icon { width: 20px; height: 20px; border-radius: 50%; background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%); color: #ffffff; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 800; } .has-cinema-original-badge-text { font-size: 12.5px; color: #e2e8f0; } /* Stylized Title (Gothic/Fraktur look) */ .has-cinema-hero-title { font-size: 48px; font-weight: 900; color: #ffffff; letter-spacing: -0.01em; margin: 0; line-height: 1.1; text-shadow: 0 4px 16px rgba(0, 0, 0, 0.8); font-family: "Cinzel", "Palatino Linotype", "Book Antiqua", Palatino, serif; } /* Metadata Row */ .has-cinema-meta-row { display: flex; align-items: center; gap: 14px; font-size: 13.5px; color: #cbd5e1; font-weight: 600; } .has-cinema-meta-genre-pill { border: 1px solid rgba(255, 255, 255, 0.3); padding: 2px 10px; border-radius: 9999px; font-size: 12px; color: #f1f5f9; } .has-cinema-meta-stars { display: flex; align-items: center; gap: 6px; } .has-cinema-stars-gold { color: #f59e0b; font-size: 14px; letter-spacing: 2px; } .has-cinema-rating-num { font-size: 13px; font-weight: 700; color: #ffffff; } /* Synopsis */ .has-cinema-hero-synopsis { font-size: 14px; line-height: 1.6; color: #cbd5e1; margin: 0; max-width: 520px; text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6); } /* Action Buttons */ .has-cinema-hero-actions { display: flex; align-items: center; gap: 12px; margin-top: 8px; } .has-cinema-btn-play { display: flex; align-items: center; gap: 8px; background: #ffffff; color: #090a0f; border: none; border-radius: 9999px; padding: 10px 24px; font-size: 14px; font-weight: 700; cursor: pointer; transition: all 0.15s ease; box-shadow: 0 4px 14px rgba(255, 255, 255, 0.2); } .has-cinema-btn-play:hover { background: #f1f5f9; transform: translateY(-1px); box-shadow: 0 6px 20px rgba(255, 255, 255, 0.3); } .has-cinema-btn-circle { width: 40px; height: 40px; border-radius: 50%; background: rgba(255, 255, 255, 0.12); border: 1px solid rgba(255, 255, 255, 0.25); color: #ffffff; display: flex; align-items: center; justify-content: center; font-size: 18px; font-weight: 600; cursor: pointer; transition: all 0.15s ease; } .has-cinema-btn-circle:hover { background: rgba(255, 255, 255, 0.24); transform: scale(1.05); } .has-cinema-btn-circle.bookmarked { background: #4f46e5; border-color: #6366f1; color: #ffffff; } /* ======================================================== 3. SEASONS SECTION & CAROUSEL ======================================================== */ .has-cinema-seasons-section { padding: 0 48px 48px 48px; display: flex; flex-direction: column; gap: 20px; } .has-cinema-season-tabs { display: flex; align-items: center; gap: 24px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); padding-bottom: 2px; } .has-cinema-season-tab { background: transparent; border: none; color: #94a3b8; font-size: 15px; font-weight: 600; cursor: pointer; padding: 8px 4px; position: relative; transition: color 0.15s ease; } .has-cinema-season-tab:hover { color: #ffffff; } .has-cinema-season-tab.active { color: #ffffff; font-weight: 700; } .has-cinema-season-tab.active::after { content: ""; position: absolute; bottom: -2px; left: 0; right: 0; height: 2.5px; background: #ffffff; border-radius: 2px; } /* Horizontal Episodes Carousel */ .has-cinema-episodes-carousel { display: flex; align-items: stretch; gap: 20px; overflow-x: auto; padding-bottom: 14px; scroll-behavior: smooth; } .has-cinema-episodes-carousel::-webkit-scrollbar { height: 6px; } .has-cinema-episodes-carousel::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.2); border-radius: 9999px; } /* Episode Card */ .has-cinema-episode-card { flex: 0 0 240px; background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 14px; overflow: hidden; cursor: pointer; display: flex; flex-direction: column; transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1); } .has-cinema-episode-card:hover { transform: translateY(-4px); background: rgba(255, 255, 255, 0.08); border-color: rgba(99, 102, 241, 0.5); box-shadow: 0 10px 24px rgba(0, 0, 0, 0.5); } .has-cinema-ep-thumb-box { position: relative; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; background: #111420; } .has-cinema-ep-thumb { width: 100%; height: 100%; object-fit: cover; transition: transform 0.25s ease; } .has-cinema-episode-card:hover .has-cinema-ep-thumb { transform: scale(1.04); } .has-cinema-ep-card-badge { position: absolute; top: 8px; left: 8px; width: 20px; height: 20px; border-radius: 5px; background: linear-gradient(135deg, #6366f1 0%, #a855f7 100%); color: #ffffff; font-size: 11px; font-weight: 800; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4); } .has-cinema-ep-hover-play { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.35); display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.2s ease; } .has-cinema-episode-card:hover .has-cinema-ep-hover-play { opacity: 1; } .has-cinema-ep-info { padding: 12px 14px; display: flex; align-items: center; justify-content: space-between; flex: 1; } .has-cinema-ep-title { font-size: 13.5px; font-weight: 700; color: #f8fafc; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .has-cinema-ep-duration { font-size: 11.5px; color: #94a3b8; font-weight: 600; } /* Watched Progress Bar */ .has-cinema-ep-progress-bar { width: 100%; height: 3.5px; background: rgba(255, 255, 255, 0.12); position: relative; } .has-cinema-ep-progress-fill { height: 100%; background: linear-gradient(90deg, #6366f1 0%, #ec4899 100%); transition: width 0.3s ease; } /* ======================================================== 4. VIDEO PLAYER MODAL ======================================================== */ .has-cinema-player-modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: #000000; z-index: 9999; display: flex; flex-direction: column; padding: 0; margin: 0; overflow: hidden; user-select: none; animation: fadeIn 0.2s ease-out; } /* Top Edge Hover Sensor: Catches mouse movement in the top 90px above iframe */ .has-cinema-player-top-sensor { position: absolute; top: 0; left: 0; right: 0; height: 90px; z-index: 90; pointer-events: auto; background: transparent; } /* Floating Top HUD Bar */ .has-cinema-player-top-hud { position: absolute; top: 0; left: 0; right: 0; z-index: 1000; display: flex; align-items: center; justify-content: space-between; padding: calc(env(safe-area-inset-top, 0px) + 12px) 24px 28px 24px; background: linear-gradient(180deg, rgba(6, 9, 18, 0.94) 0%, rgba(6, 9, 18, 0.65) 60%, transparent 100%); pointer-events: none; transition: opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1), transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), background 0.35s ease; transform: translateY(0); opacity: 1; } .has-cinema-player-hud-left, .has-cinema-player-hud-right, .has-cinema-player-btn-back, .has-cinema-player-hud-btn, .has-cinema-player-pill-nav { pointer-events: auto !important; } /* When HUD is idle: Title and extra buttons softly fade, but "← Назад" stays accessible */ .has-cinema-player-top-hud.hud-hidden { background: transparent; pointer-events: none; } .has-cinema-player-top-hud.hud-hidden .has-cinema-player-title-box, .has-cinema-player-top-hud.hud-hidden .has-cinema-player-quick-ep-nav, .has-cinema-player-top-hud.hud-hidden .has-cinema-player-hud-right { opacity: 0; visibility: hidden; transform: translateY(-12px); pointer-events: none; transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); } .has-cinema-player-top-hud.hud-hidden .has-cinema-player-btn-back { opacity: 0.85; background: rgba(10, 15, 28, 0.92); border-color: rgba(255, 255, 255, 0.35); pointer-events: auto !important; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.8); } .has-cinema-player-top-hud.hud-hidden .has-cinema-player-btn-back:hover { opacity: 1; background: rgba(10, 15, 28, 0.98); border-color: #6366f1; transform: scale(1.05); box-shadow: 0 0 20px rgba(99, 102, 241, 0.6); } /* Hovering either top sensor or HUD fully restores the entire top bar */ .has-cinema-player-top-sensor:hover ~ .has-cinema-player-top-hud, .has-cinema-player-top-hud:hover { background: linear-gradient(180deg, rgba(6, 9, 18, 0.94) 0%, rgba(6, 9, 18, 0.65) 60%, transparent 100%) !important; pointer-events: auto !important; opacity: 1 !important; transform: translateY(0) !important; } .has-cinema-player-top-sensor:hover ~ .has-cinema-player-top-hud .has-cinema-player-title-box, .has-cinema-player-top-sensor:hover ~ .has-cinema-player-top-hud .has-cinema-player-quick-ep-nav, .has-cinema-player-top-sensor:hover ~ .has-cinema-player-top-hud .has-cinema-player-hud-right, .has-cinema-player-top-hud:hover .has-cinema-player-title-box, .has-cinema-player-top-hud:hover .has-cinema-player-quick-ep-nav, .has-cinema-player-top-hud:hover .has-cinema-player-hud-right { opacity: 1 !important; visibility: visible !important; transform: translateY(0) !important; pointer-events: auto !important; } .has-cinema-player-top-sensor:hover ~ .has-cinema-player-top-hud .has-cinema-player-btn-back, .has-cinema-player-top-hud:hover .has-cinema-player-btn-back { opacity: 1 !important; background: rgba(255, 255, 255, 0.1) !important; border-color: rgba(255, 255, 255, 0.18) !important; } .has-cinema-player-hud-left { display: flex; align-items: center; gap: 16px; min-width: 0; } .has-cinema-player-btn-back { background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.18); color: #ffffff; padding: 8px 16px; border-radius: 9999px; font-size: 13.5px; font-weight: 700; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; backdrop-filter: blur(8px); transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1); flex-shrink: 0; } .has-cinema-player-btn-back:hover { background: rgba(255, 255, 255, 0.22); border-color: rgba(255, 255, 255, 0.35); transform: scale(1.04); } .has-cinema-player-title-box { display: flex; flex-direction: column; gap: 2px; min-width: 0; } .has-cinema-player-hud-title { font-size: 16.5px; font-weight: 800; color: #ffffff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-shadow: 0 2px 8px rgba(0, 0, 0, 0.8); } .has-cinema-player-hud-subtitle { font-size: 12.5px; font-weight: 600; color: #94a3b8; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-shadow: 0 1px 4px rgba(0, 0, 0, 0.8); } .has-cinema-player-quick-ep-nav { display: flex; align-items: center; gap: 6px; margin-left: 8px; flex-shrink: 0; } .has-cinema-player-pill-nav { background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.15); color: #cbd5e1; padding: 6px 12px; border-radius: 9999px; font-size: 12px; font-weight: 600; cursor: pointer; transition: all 0.15s ease; backdrop-filter: blur(6px); } .has-cinema-player-pill-nav:hover:not(:disabled) { background: rgba(99, 102, 241, 0.3); border-color: #6366f1; color: #ffffff; } .has-cinema-player-pill-nav:disabled { opacity: 0.3; cursor: not-allowed; } .has-cinema-player-hud-right { display: flex; align-items: center; gap: 10px; flex-shrink: 0; } .has-cinema-player-hud-btn { background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.18); color: #ffffff; padding: 8px 16px; border-radius: 9999px; font-size: 13px; font-weight: 700; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; backdrop-filter: blur(8px); transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1); } .has-cinema-player-hud-btn:hover { background: rgba(255, 255, 255, 0.22); border-color: rgba(255, 255, 255, 0.35); transform: translateY(-1px); } .has-cinema-player-hud-btn.active { background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%); border-color: #818cf8; color: #ffffff; box-shadow: 0 0 16px rgba(99, 102, 241, 0.6); } .has-cinema-player-hud-btn.icon-only { width: 38px; height: 38px; padding: 0; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 15px; } .has-cinema-player-hud-btn.icon-only.close:hover { background: rgba(239, 68, 68, 0.3); border-color: #ef4444; color: #ffffff; } /* 100% Immersive Video Frame */ .has-cinema-video-frame { width: 100vw; height: 100vh; flex: 1; background: #000000; overflow: hidden; position: relative; display: flex; align-items: center; justify-content: center; } .has-cinema-video-elem { width: 100%; height: 100%; object-fit: contain; outline: none; } .has-cinema-iframe-elem { width: 100%; height: 100%; border: none; background: #000000; display: block; } /* ======================================================== PLAYER DRAWERS / SLIDE-IN SHEETS ======================================================== */ .has-cinema-player-drawer-backdrop { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.72); backdrop-filter: blur(10px); z-index: 10000; display: flex; justify-content: flex-end; animation: fadeIn 0.2s ease-out; } @keyframes slideDrawerIn { from { transform: translateX(100%); } to { transform: translateX(0); } } .has-cinema-player-settings-sheet, .has-cinema-player-episodes-sheet { width: min(540px, 94vw); height: 100%; background: #0c101c; border-left: 1px solid rgba(255, 255, 255, 0.12); display: flex; flex-direction: column; padding: 28px 30px; box-shadow: -12px 0 40px rgba(0, 0, 0, 0.85); animation: slideDrawerIn 0.25s cubic-bezier(0.16, 1, 0.3, 1); overflow-y: auto; box-sizing: border-box; } .has-cinema-drawer-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding-bottom: 20px; border-bottom: 1px solid rgba(255, 255, 255, 0.08); flex-shrink: 0; } .has-cinema-drawer-title { display: flex; flex-direction: column; gap: 4px; font-size: 18px; font-weight: 800; color: #ffffff; } .has-cinema-drawer-subtitle { font-size: 13px; font-weight: 500; color: #94a3b8; } .has-cinema-drawer-close-btn { background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.16); color: #cbd5e1; width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 15px; cursor: pointer; flex-shrink: 0; transition: all 0.15s ease; } .has-cinema-drawer-close-btn:hover { background: rgba(255, 255, 255, 0.2); color: #ffffff; transform: scale(1.08); } .has-cinema-drawer-body { display: flex; flex-direction: column; gap: 26px; padding-top: 22px; flex: 1; } .has-cinema-drawer-section { display: flex; flex-direction: column; gap: 12px; } .has-cinema-drawer-section-title { margin: 0; font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em; color: #818cf8; } .has-cinema-drawer-notice-box { background: rgba(16, 185, 129, 0.12); border: 1px solid rgba(16, 185, 129, 0.3); color: #a7f3d0; padding: 8px 12px; border-radius: 8px; font-size: 12.5px; font-weight: 600; line-height: 1.4; } .has-cinema-drawer-searching { background: rgba(99, 102, 241, 0.12); border: 1px solid rgba(99, 102, 241, 0.3); color: #c7d2fe; padding: 8px 12px; border-radius: 8px; font-size: 12.5px; font-weight: 600; } .has-cinema-drawer-options-grid { display: flex; flex-direction: column; gap: 10px; } .has-cinema-drawer-option-btn { background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 12px; padding: 14px 18px; display: flex; flex-direction: column; gap: 4px; text-align: left; cursor: pointer; transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1); } .has-cinema-drawer-option-btn:hover { background: rgba(255, 255, 255, 0.08); border-color: rgba(99, 102, 241, 0.5); transform: translateY(-1px); } .has-cinema-drawer-option-btn.active { background: rgba(99, 102, 241, 0.18); border-color: #6366f1; box-shadow: 0 0 16px rgba(99, 102, 241, 0.35); } .has-cinema-drawer-option-btn .option-name { font-size: 14px; font-weight: 700; color: #ffffff; } .has-cinema-drawer-option-btn .option-desc { font-size: 12px; font-weight: 500; color: #94a3b8; line-height: 1.4; } .has-cinema-drawer-subgroup { display: flex; flex-direction: column; gap: 10px; margin-top: 8px; padding-top: 14px; border-top: 1px dashed rgba(255, 255, 255, 0.1); } .has-cinema-drawer-sublabel { font-size: 12.5px; font-weight: 700; color: #cbd5e1; } .has-cinema-drawer-chips-wrap { display: flex; flex-wrap: wrap; gap: 8px; } .has-cinema-drawer-chip { background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.12); color: #cbd5e1; padding: 7px 14px; border-radius: 8px; font-size: 12.5px; font-weight: 600; cursor: pointer; transition: all 0.15s ease; } .has-cinema-drawer-chip:hover { background: rgba(99, 102, 241, 0.25); border-color: #6366f1; color: #ffffff; transform: translateY(-1px); } .has-cinema-drawer-chip.active { background: #4f46e5; border-color: #818cf8; color: #ffffff; font-weight: 700; box-shadow: 0 2px 10px rgba(79, 70, 229, 0.45); } .has-cinema-drawer-section.actions { margin-top: auto; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, 0.08); display: flex; gap: 12px; } .has-cinema-drawer-btn-secondary { flex: 1; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.15); color: #cbd5e1; padding: 12px 18px; border-radius: 10px; font-size: 13.5px; font-weight: 700; cursor: pointer; transition: all 0.15s ease; } .has-cinema-drawer-btn-secondary:hover { background: rgba(255, 255, 255, 0.12); color: #ffffff; border-color: rgba(255, 255, 255, 0.3); } .has-cinema-drawer-btn-primary { flex: 1; background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%); border: 1px solid #818cf8; color: #ffffff; padding: 12px 18px; border-radius: 10px; font-size: 13.5px; font-weight: 800; cursor: pointer; transition: all 0.15s ease; box-shadow: 0 4px 16px rgba(79, 70, 229, 0.4); } .has-cinema-drawer-btn-primary:hover { transform: translateY(-1px); box-shadow: 0 6px 20px rgba(79, 70, 229, 0.6); } /* Episodes Grid Drawer (Series only) */ .has-cinema-drawer-episodes-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 10px; padding-top: 20px; overflow-y: auto; } .has-cinema-drawer-ep-btn { background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 10px; padding: 12px 12px; display: flex; flex-direction: column; gap: 4px; text-align: left; cursor: pointer; transition: all 0.15s ease; } .has-cinema-drawer-ep-btn:hover { background: rgba(99, 102, 241, 0.2); border-color: #6366f1; transform: translateY(-2px); } .has-cinema-drawer-ep-btn.active { background: #4f46e5; border-color: #818cf8; box-shadow: 0 4px 14px rgba(79, 70, 229, 0.5); } .has-cinema-drawer-ep-btn .ep-num { font-size: 13px; font-weight: 800; color: #ffffff; } .has-cinema-drawer-ep-btn .ep-title { font-size: 11.5px; font-weight: 500; color: #cbd5e1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .has-cinema-drawer-ep-btn .ep-time { font-size: 10.5px; color: #94a3b8; } .has-cinema-search-wrapper { position: relative; } .has-cinema-search-spinner { position: absolute; right: 12px; width: 14px; height: 14px; border: 2px solid rgba(255, 255, 255, 0.2); border-top-color: #6366f1; border-radius: 50%; animation: spin 0.6s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } .has-cinema-search-dropdown { position: absolute; top: calc(100% + 8px); right: 0; width: 320px; background: #111420; border: 1px solid rgba(255, 255, 255, 0.15); border-radius: 12px; box-shadow: 0 14px 35px rgba(0, 0, 0, 0.7); overflow: hidden; z-index: 100; animation: fadeIn 0.15s ease; } .has-cinema-search-result-item { display: flex; align-items: center; gap: 12px; padding: 10px 14px; cursor: pointer; border-bottom: 1px solid rgba(255, 255, 255, 0.06); transition: background 0.15s ease; } .has-cinema-search-result-item:hover { background: rgba(99, 102, 241, 0.15); } .has-cinema-search-result-img { width: 38px; height: 54px; object-fit: cover; border-radius: 6px; flex-shrink: 0; } .has-cinema-search-result-noimg { width: 38px; height: 54px; background: #1e2235; border-radius: 6px; display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; } .has-cinema-search-result-meta { display: flex; flex-direction: column; overflow: hidden; gap: 3px; } .has-cinema-search-result-title { font-size: 13.5px; font-weight: 700; color: #ffffff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .has-cinema-search-result-sub { font-size: 11.5px; color: #94a3b8; } .has-cinema-player-mode-toggle { display: flex; align-items: center; gap: 6px; background: rgba(255, 255, 255, 0.08); padding: 3px; border-radius: 9999px; border: 1px solid rgba(255, 255, 255, 0.12); } .has-cinema-mode-btn { background: transparent; border: none; color: #94a3b8; padding: 4px 12px; font-size: 12px; font-weight: 600; border-radius: 9999px; cursor: pointer; transition: all 0.15s ease; } .has-cinema-mode-btn.active { background: #4f46e5; color: #ffffff; } .has-cinema-russian-dub-btn { background: linear-gradient(135deg, rgba(220, 38, 38, 0.25), rgba(79, 70, 229, 0.25)); border: 1px solid rgba(239, 68, 68, 0.5); color: #fca5a5; padding: 4px 12px; font-size: 12px; font-weight: 700; border-radius: 9999px; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; transition: all 0.2s ease; margin-left: 6px; } .has-cinema-russian-dub-btn:hover { background: linear-gradient(135deg, rgba(220, 38, 38, 0.5), rgba(79, 70, 229, 0.5)); border-color: #ef4444; color: #ffffff; transform: translateY(-1px); box-shadow: 0 4px 14px rgba(220, 38, 38, 0.4); } .has-cinema-russian-dub-btn.active { background: linear-gradient(135deg, rgba(16, 185, 129, 0.35), rgba(5, 150, 105, 0.55)); border-color: #10b981; color: #a7f3d0; box-shadow: 0 0 16px rgba(16, 185, 129, 0.4); } .has-cinema-russian-dub-btn.active:hover { background: linear-gradient(135deg, #10b981, #059669); color: #ffffff; border-color: #34d399; } .has-cinema-iframe-elem { width: 100%; height: 100%; flex: 1; min-height: 0; border: none; background: #000000; display: block; } .has-cinema-player-mirrors-bar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 8px 0 14px 0; } .has-cinema-mirrors-label { font-size: 12px; font-weight: 700; color: #94a3b8; margin-right: 4px; } .has-cinema-mirror-btn { background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.15); color: #cbd5e1; padding: 5px 12px; font-size: 12px; font-weight: 600; border-radius: 8px; cursor: pointer; transition: all 0.15s ease; } .has-cinema-mirror-btn:hover { background: rgba(255, 255, 255, 0.18); color: #ffffff; transform: translateY(-1px); } .has-cinema-mirror-btn.active { background: #4f46e5; border-color: #6366f1; color: #ffffff; font-weight: 700; box-shadow: 0 2px 10px rgba(79, 70, 229, 0.4); } .has-cinema-translations-bar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 6px 0 10px 0; border-bottom: 1px solid rgba(255, 255, 255, 0.08); margin-bottom: 8px; } .has-cinema-trans-label { font-size: 12px; font-weight: 700; color: #38bdf8; display: flex; align-items: center; gap: 4px; } .has-cinema-trans-list { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; } .has-cinema-trans-btn { background: rgba(56, 189, 248, 0.12); border: 1px solid rgba(56, 189, 248, 0.3); color: #bae6fd; padding: 4px 10px; font-size: 11px; font-weight: 600; border-radius: 6px; cursor: pointer; transition: all 0.15s ease; } .has-cinema-trans-btn:hover { background: rgba(56, 189, 248, 0.25); color: #ffffff; border-color: #38bdf8; transform: translateY(-1px); } .has-cinema-trans-btn.active { background: #0284c7; border-color: #38bdf8; color: #ffffff; font-weight: 700; box-shadow: 0 2px 8px rgba(2, 132, 199, 0.4); } .has-cinema-dub-notice { font-size: 12px; font-weight: 600; color: #6ee7b7; background: rgba(16, 185, 129, 0.15); border: 1px solid rgba(16, 185, 129, 0.35); padding: 5px 12px; border-radius: 8px; margin-bottom: 8px; display: inline-block; } /* Category Pill */ .has-cinema-category-pill { display: inline-flex; align-items: center; background: rgba(255, 255, 255, 0.15); border: 1px solid rgba(255, 255, 255, 0.25); color: #ffffff; padding: 3px 12px; border-radius: 9999px; font-size: 12px; font-weight: 700; width: fit-content; } .has-cinema-meta-duration { color: #cbd5e1; font-size: 13.5px; font-weight: 600; } /* ======================================================== ROWS CONTAINER & MEDIA CARDS (Netflix / Zona style) ======================================================== */ .has-cinema-rows-container { padding: 0 48px 60px 48px; display: flex; flex-direction: column; gap: 36px; } .has-cinema-row-block { display: flex; flex-direction: column; gap: 16px; } .has-cinema-row-title { font-size: 20px; font-weight: 800; color: #ffffff; letter-spacing: -0.01em; margin: 0; } .has-cinema-cards-scroll { display: flex; align-items: stretch; gap: 18px; overflow-x: auto; padding-bottom: 12px; scroll-behavior: smooth; } .has-cinema-cards-scroll::-webkit-scrollbar { height: 6px; } .has-cinema-cards-scroll::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.2); border-radius: 9999px; } /* Vertical Poster Card */ .has-cinema-media-card { flex: 0 0 160px; background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 12px; overflow: hidden; cursor: pointer; display: flex; flex-direction: column; transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1); } .has-cinema-media-card:hover { transform: translateY(-5px) scale(1.02); border-color: rgba(99, 102, 241, 0.5); box-shadow: 0 12px 28px rgba(0, 0, 0, 0.6); background: rgba(255, 255, 255, 0.08); } .has-cinema-media-thumb-box { position: relative; width: 100%; aspect-ratio: 2 / 3; overflow: hidden; background: #111420; } .has-cinema-media-thumb { width: 100%; height: 100%; object-fit: cover; transition: transform 0.25s ease; } .has-cinema-media-card:hover .has-cinema-media-thumb { transform: scale(1.05); } .has-cinema-media-play-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.45); display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.2s ease; z-index: 2; } .has-cinema-media-card:hover .has-cinema-media-play-overlay, .has-cinema-grid-card:hover .has-cinema-media-play-overlay { opacity: 1; } .has-cinema-media-play-circle { width: 44px; height: 44px; border-radius: 50%; background: linear-gradient(135deg, #6366f1 0%, #a855f7 100%); color: #ffffff; display: flex; align-items: center; justify-content: center; font-size: 15px; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.7); transform: scale(0.85); transition: transform 0.2s ease, box-shadow 0.2s ease; } .has-cinema-media-card:hover .has-cinema-media-play-circle, .has-cinema-grid-card:hover .has-cinema-media-play-circle { transform: scale(1); } .has-cinema-media-badge-rating { position: absolute; top: 8px; right: 8px; background: rgba(15, 23, 42, 0.85); backdrop-filter: blur(4px); color: #f59e0b; font-size: 11px; font-weight: 800; padding: 2px 6px; border-radius: 6px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.4); z-index: 3; } .has-cinema-media-meta { padding: 10px 12px; display: flex; flex-direction: column; gap: 3px; flex: 1; } .has-cinema-media-title { font-size: 13.5px; font-weight: 700; color: #ffffff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .has-cinema-media-sub { font-size: 11px; color: #94a3b8; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* Empty bookmarks notice */ .has-cinema-empty-bookmarks { background: rgba(255, 255, 255, 0.03); border: 1px dashed rgba(255, 255, 255, 0.15); border-radius: 14px; padding: 40px 24px; text-align: center; display: flex; flex-direction: column; gap: 8px; color: #cbd5e1; font-size: 14px; } .has-cinema-empty-sub { color: #64748b; font-size: 12.5px; } /* ======================================================== SEARCH FULL GRID VIEW & SEARCH HEADER ======================================================== */ .has-cinema-search-clear-btn { position: absolute; right: 10px; background: rgba(255, 255, 255, 0.15); border: none; color: #cbd5e1; width: 18px; height: 18px; border-radius: 50%; font-size: 10px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.15s ease; } .has-cinema-search-clear-btn:hover { background: rgba(255, 255, 255, 0.3); color: #ffffff; } .has-cinema-search-page-section { padding: 100px 48px 60px 48px; display: flex; flex-direction: column; gap: 24px; min-height: 80vh; } .has-cinema-search-header-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid rgba(255, 255, 255, 0.08); padding-bottom: 16px; } .has-cinema-search-page-title { font-size: 22px; font-weight: 800; color: #ffffff; letter-spacing: -0.01em; margin: 0; } .has-cinema-search-count-badge { background: rgba(99, 102, 241, 0.18); border: 1px solid rgba(99, 102, 241, 0.4); color: #a5b4fc; font-size: 13px; font-weight: 700; padding: 4px 12px; border-radius: 9999px; white-space: nowrap; } /* Responsive Grid for All Movies / All Series / Search */ .has-cinema-grid-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 22px; width: 100%; } .has-cinema-grid-card { background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 12px; overflow: hidden; cursor: pointer; display: flex; flex-direction: column; transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1); } .has-cinema-grid-card:hover { transform: translateY(-5px) scale(1.02); border-color: rgba(99, 102, 241, 0.5); box-shadow: 0 12px 28px rgba(0, 0, 0, 0.6); background: rgba(255, 255, 255, 0.08); } .has-cinema-grid-card:hover .has-cinema-media-thumb { transform: scale(1.05); } /* In-player episode navigation */ .has-cinema-player-ep-nav { display: flex; align-items: center; gap: 8px; margin-left: 12px; } .has-cinema-player-nav-btn { background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.16); color: #e2e8f0; padding: 5px 12px; border-radius: 8px; font-size: 13px; font-weight: 600; cursor: pointer; transition: all 0.15s ease; display: inline-flex; align-items: center; gap: 4px; } .has-cinema-player-nav-btn:hover:not(:disabled) { background: rgba(99, 102, 241, 0.25); border-color: #6366f1; color: #ffffff; transform: translateY(-1px); } .has-cinema-player-nav-btn:disabled { opacity: 0.35; cursor: not-allowed; } /* In-player HLS loading indicator */ .has-cinema-player-loading { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; color: #94a3b8; font-size: 15px; font-weight: 500; min-height: 420px; width: 100%; } .has-cinema-loading-spinner { width: 44px; height: 44px; border: 4px solid rgba(99, 102, 241, 0.2); border-top-color: #6366f1; border-radius: 50%; animation: spin 0.8s linear infinite; } /* In-player Episode Selector Strip */ .has-cinema-player-episodes-strip { display: flex; align-items: center; gap: 12px; max-width: 1100px; width: 100%; margin: 10px auto 0; padding: 8px 14px; background: rgba(15, 23, 42, 0.75); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 10px; overflow-x: auto; box-sizing: border-box; } .has-cinema-player-episodes-label { font-size: 13px; font-weight: 700; color: #94a3b8; white-space: nowrap; } .has-cinema-player-episodes-list { display: flex; align-items: center; gap: 6px; overflow-x: auto; padding-bottom: 2px; } .has-cinema-player-ep-chip { background: rgba(255, 255, 255, 0.07); border: 1px solid rgba(255, 255, 255, 0.12); color: #cbd5e1; padding: 4px 10px; border-radius: 6px; font-size: 12px; font-weight: 600; cursor: pointer; white-space: nowrap; transition: all 0.15s ease; } .has-cinema-player-ep-chip:hover { background: rgba(99, 102, 241, 0.25); border-color: #6366f1; color: #ffffff; } .has-cinema-player-ep-chip.active { background: #6366f1; border-color: #818cf8; color: #ffffff; font-weight: 700; } /* Desktop Fullscreen Mode */ .has-cinema-player-modal.fullscreen-mode { padding: 0; border-radius: 0; } .has-cinema-player-modal.fullscreen-mode .has-cinema-video-frame { width: 100vw; height: 100vh; border-radius: 0; box-shadow: none; } /* ======================================================== 6. ANDROID TV & REMOTE CONTROL (10-FOOT UI) STYLES ======================================================== */ /* Header TV Mode Pill Button & Navigation Drawer */ .has-cinema-tv-menu-pill { display: inline-flex; align-items: center; gap: 6px; padding: 7px 16px; background: linear-gradient(135deg, rgba(99, 102, 241, 0.25), rgba(139, 92, 246, 0.25)); border: 1px solid rgba(129, 140, 248, 0.5); border-radius: 9999px; color: #e0e7ff; font-size: 13.5px; font-weight: 600; cursor: pointer; transition: all 0.2s ease; } .has-cinema-tv-menu-pill:hover, .has-cinema-tv-menu-pill:focus { background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%); border-color: #818cf8; color: #ffffff; outline: 3px solid #818cf8 !important; box-shadow: 0 0 20px rgba(129, 140, 248, 0.8) !important; transform: scale(1.05); } /* Android TV Leanback Navigation Rail & Drawer */ .has-cinema-tv-nav-drawer { position: fixed; top: 0; left: 0; bottom: 0; display: flex; flex-direction: column; z-index: 1000; transition: width 0.28s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.28s ease, background 0.28s ease; } .has-cinema-tv-nav-drawer.collapsed { width: 66px; background: rgba(10, 15, 28, 0.9); backdrop-filter: blur(20px); border-right: 1px solid rgba(255, 255, 255, 0.08); } .has-cinema-tv-nav-drawer.open { width: 270px; background: rgba(8, 12, 24, 0.97); backdrop-filter: blur(24px); border-right: 1px solid rgba(129, 140, 248, 0.4); box-shadow: 15px 0 50px rgba(0, 0, 0, 0.9); } .has-cinema-tv-nav-header { display: flex; align-items: center; justify-content: space-between; padding: 18px 12px 14px; border-bottom: 1px solid rgba(255, 255, 255, 0.06); } .has-cinema-tv-nav-logo { display: flex; align-items: center; gap: 10px; overflow: hidden; } .has-cinema-tv-nav-logo-badge { background: linear-gradient(135deg, #6366f1, #a855f7); color: #fff; font-weight: 800; font-size: 13px; padding: 4px 8px; border-radius: 8px; letter-spacing: 1px; } .has-cinema-tv-nav-logo-text { font-size: 16px; font-weight: 700; color: #f8fafc; white-space: nowrap; } .has-cinema-tv-nav-toggle-btn { background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.15); border-radius: 8px; color: #cbd5e1; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s ease; font-size: 12px; } .has-cinema-tv-nav-toggle-btn:focus, .has-cinema-tv-nav-toggle-btn:hover { background: #6366f1; color: #ffffff; outline: 3px solid #818cf8 !important; box-shadow: 0 0 16px rgba(129, 140, 248, 0.7) !important; } .has-cinema-tv-nav-list { display: flex; flex-direction: column; gap: 8px; padding: 12px 8px; flex: 1; overflow-y: auto; } .has-cinema-tv-nav-item { width: 100%; display: flex; align-items: center; gap: 14px; padding: 12px 14px; background: transparent; border: 1px solid transparent; border-radius: 12px; color: #94a3b8; font-size: 15px; font-weight: 600; cursor: pointer; transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1); text-align: left; } .has-cinema-tv-nav-item:hover, .has-cinema-tv-nav-item:focus { background: rgba(99, 102, 241, 0.25) !important; border-color: #818cf8 !important; color: #ffffff !important; outline: 3px solid #818cf8 !important; box-shadow: 0 0 24px rgba(129, 140, 248, 0.8) !important; transform: scale(1.04) !important; } .has-cinema-tv-nav-item.active { background: linear-gradient(135deg, rgba(99, 102, 241, 0.35), rgba(139, 92, 246, 0.35)); border-color: rgba(129, 140, 248, 0.6); color: #ffffff; } .has-cinema-tv-nav-item.logout { margin-top: auto; color: #f87171; } .has-cinema-tv-nav-item.logout:hover, .has-cinema-tv-nav-item.logout:focus { background: rgba(239, 68, 68, 0.25) !important; border-color: #f87171 !important; outline-color: #f87171 !important; box-shadow: 0 0 24px rgba(239, 68, 68, 0.8) !important; } .has-cinema-tv-nav-icon { font-size: 20px; display: flex; align-items: center; justify-content: center; width: 26px; flex-shrink: 0; } .has-cinema-tv-nav-label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .has-cinema-tv-nav-footer { padding: 12px; font-size: 11.5px; color: #64748b; text-align: center; border-top: 1px solid rgba(255, 255, 255, 0.08); } .has-tv-mode { padding-left: 74px !important; } /* Universal Glowing Focus Indicators for D-Pad / Keyboard Navigation */ [data-tv-focusable="true"]:focus-visible, .has-cinema-media-card:focus-visible, .has-cinema-grid-card:focus-visible, .has-cinema-episode-card:focus-visible, .has-cinema-nav-item:focus-visible, .has-cinema-btn-play:focus-visible, .has-cinema-btn-circle:focus-visible, .has-cinema-season-tab:focus-visible, .has-cinema-mirror-btn:focus-visible, .has-cinema-trans-btn:focus-visible, .has-cinema-player-nav-btn:focus-visible, .has-cinema-mode-btn:focus-visible, .has-cinema-russian-dub-btn:focus-visible, .has-cinema-player-fs-btn:focus-visible, .has-cinema-player-close-btn:focus-visible, .has-cinema-player-ep-chip:focus-visible, .has-cinema-tv-mode-btn:focus-visible, .has-cinema-search-input:focus-visible, .has-cinema-search-clear-btn:focus-visible { outline: 3.5px solid #6366f1 !important; outline-offset: 3px !important; box-shadow: 0 0 25px rgba(99, 102, 241, 0.9), inset 0 0 8px rgba(99, 102, 241, 0.4) !important; transform: scale(1.05) !important; z-index: 35 !important; transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.2s ease, outline-color 0.2s ease !important; } /* TV Mode Root Overrides (10-Foot UI for 3m Couch Distance) */ .has-tv-mode { font-size: 16px; } .has-tv-mode .has-cinema-nav-item { font-size: 16.5px; padding: 8px 12px; } .has-tv-mode .has-cinema-hero-title { font-size: 42px; } .has-tv-mode .has-cinema-hero-synopsis { font-size: 16px; max-width: 720px; line-height: 1.6; } .has-tv-mode .has-cinema-btn-play { padding: 12px 28px; font-size: 16px; } .has-tv-mode .has-cinema-row-title { font-size: 22px; margin-bottom: 16px; } .has-tv-mode .has-cinema-media-card { width: 195px; transition: transform 0.22s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.22s ease; } .has-tv-mode .has-cinema-media-card:focus, .has-tv-mode .has-cinema-grid-card:focus, .has-tv-mode .has-cinema-episode-card:focus { outline: 4px solid #818cf8 !important; outline-offset: 4px !important; box-shadow: 0 0 35px rgba(129, 140, 248, 0.95), 0 12px 28px rgba(0, 0, 0, 0.8) !important; transform: scale(1.09) translateY(-6px) !important; z-index: 40 !important; } .has-tv-mode .has-cinema-media-title { font-size: 15px; } .has-tv-mode .has-cinema-media-sub { font-size: 13px; } /* In-Player TV Remote Guide */ .has-cinema-player-tv-guide { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 8px 20px; background: rgba(15, 23, 42, 0.85); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 8px; margin: 6px auto 10px; color: #cbd5e1; font-size: 13px; font-weight: 500; max-width: 600px; } .has-cinema-player-tv-guide span { white-space: nowrap; } /* Floating Bottom TV Remote Navigation Guide */ .has-cinema-tv-remote-guide { position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 24px; padding: 9px 26px; background: rgba(10, 15, 28, 0.92); backdrop-filter: blur(16px); border: 1px solid rgba(255, 255, 255, 0.15); border-radius: 9999px; z-index: 9999; box-shadow: 0 10px 35px rgba(0, 0, 0, 0.7); animation: fadeInGuide 0.3s ease; pointer-events: none; } .has-cinema-tv-guide-item { display: flex; align-items: center; gap: 8px; font-size: 13px; color: #94a3b8; font-weight: 500; } .has-cinema-tv-key { background: rgba(255, 255, 255, 0.12); border: 1px solid rgba(255, 255, 255, 0.22); border-radius: 6px; padding: 3px 8px; color: #f8fafc; font-family: monospace; font-size: 11.5px; font-weight: 700; } @keyframes fadeInGuide { from { opacity: 0; transform: translate(-50%, 15px); } to { opacity: 1; transform: translate(-50%, 0); } } /* High-Visibility Floating On-Screen TV Toast */ .has-cinema-tv-toast { position: fixed; top: 36px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 12px; padding: 12px 28px; background: rgba(15, 23, 42, 0.96); backdrop-filter: blur(18px); border: 1.5px solid #6366f1; border-radius: 9999px; color: #ffffff; font-size: 15.5px; font-weight: 600; z-index: 99999; box-shadow: 0 10px 40px rgba(99, 102, 241, 0.45), 0 0 25px rgba(0, 0, 0, 0.8); animation: popTvToast 0.25s cubic-bezier(0.16, 1, 0.3, 1); pointer-events: none; } .has-cinema-tv-toast-icon { font-size: 22px; } .has-cinema-tv-toast-text { letter-spacing: 0.2px; } @keyframes popTvToast { from { opacity: 0; transform: translate(-50%, -20px) scale(0.92); } to { opacity: 1; transform: translate(-50%, 0) scale(1); } } /* ======================================================== MOVIE & SERIES RICH DETAILS MODAL ======================================================== */ .has-cinema-btn-info-wide { display: inline-flex; align-items: center; gap: 8px; background: rgba(255, 255, 255, 0.12); backdrop-filter: blur(12px); color: #ffffff; border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 9999px; padding: 10px 22px; font-size: 14.5px; font-weight: 600; cursor: pointer; transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1); } .has-cinema-btn-info-wide:hover, .has-cinema-btn-info-wide:focus-visible { background: rgba(255, 255, 255, 0.22); border-color: rgba(255, 255, 255, 0.4); transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4); } .has-cinema-details-overlay { position: fixed; inset: 0; z-index: 9998; background: rgba(5, 8, 16, 0.88); backdrop-filter: blur(16px); display: flex; align-items: center; justify-content: center; padding: 24px; animation: fadeInDetailsOverlay 0.25s cubic-bezier(0.16, 1, 0.3, 1); overflow-y: auto; } @keyframes fadeInDetailsOverlay { from { opacity: 0; } to { opacity: 1; } } .has-cinema-details-modal { position: relative; width: 100%; max-width: 1080px; max-height: 90vh; background: #0b1120; border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 24px; box-shadow: 0 32px 80px rgba(0, 0, 0, 0.85), 0 0 0 1px rgba(255, 255, 255, 0.05); overflow-y: auto; overflow-x: hidden; animation: scaleUpDetailsModal 0.28s cubic-bezier(0.16, 1, 0.3, 1); scrollbar-width: thin; scrollbar-color: rgba(255, 255, 255, 0.2) transparent; } @keyframes scaleUpDetailsModal { from { opacity: 0; transform: scale(0.94) translateY(12px); } to { opacity: 1; transform: scale(1) translateY(0); } } .has-cinema-details-backdrop-wrap { position: relative; height: 320px; width: 100%; overflow: hidden; } .has-cinema-details-backdrop-img { width: 100%; height: 100%; object-fit: cover; opacity: 0.45; filter: saturate(1.2); } .has-cinema-details-backdrop-gradient { position: absolute; inset: 0; background: linear-gradient( to bottom, rgba(11, 17, 32, 0.2) 0%, rgba(11, 17, 32, 0.6) 50%, #0b1120 100% ); } .has-cinema-details-close-btn { position: absolute; top: 18px; right: 18px; width: 44px; height: 44px; border-radius: 50%; background: rgba(15, 23, 42, 0.75); backdrop-filter: blur(12px); border: 1px solid rgba(255, 255, 255, 0.2); color: #ffffff; font-size: 18px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s ease; z-index: 10; } .has-cinema-details-close-btn:hover, .has-cinema-details-close-btn:focus-visible { background: rgba(239, 68, 68, 0.9); border-color: #ef4444; transform: rotate(90deg) scale(1.08); } .has-cinema-details-body { position: relative; margin-top: -140px; padding: 0 36px 36px; z-index: 2; } .has-cinema-details-hero { display: flex; gap: 32px; } .has-cinema-details-poster-box { flex-shrink: 0; width: 230px; } .has-cinema-details-poster-img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 16px; box-shadow: 0 16px 40px rgba(0, 0, 0, 0.7); border: 1px solid rgba(255, 255, 255, 0.18); } .has-cinema-details-poster-badges { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; align-items: center; } .has-cinema-badge-rating { background: #f59e0b; color: #000000; font-weight: 800; font-size: 13px; padding: 4px 10px; border-radius: 8px; display: inline-flex; align-items: center; } .has-cinema-badge-kp { background: #ff5500; color: #ffffff; font-weight: 800; font-size: 13px; padding: 4px 10px; border-radius: 8px; display: inline-flex; align-items: center; } .has-cinema-badge-type { background: rgba(255, 255, 255, 0.12); color: #e2e8f0; font-size: 12px; font-weight: 600; padding: 4px 10px; border-radius: 8px; letter-spacing: 0.5px; } .has-cinema-details-info-col { flex: 1; min-width: 0; display: flex; flex-direction: column; } .has-cinema-details-type-pill { display: inline-flex; align-self: flex-start; background: rgba(99, 102, 241, 0.2); border: 1px solid rgba(99, 102, 241, 0.4); color: #a5b4fc; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.8px; padding: 4px 12px; border-radius: 9999px; margin-bottom: 8px; } .has-cinema-details-title { font-size: 34px; font-weight: 800; color: #ffffff; line-height: 1.15; margin: 0 0 6px; } .has-cinema-details-orig-title { font-size: 17px; font-weight: 400; color: #94a3b8; margin: 0 0 8px; } .has-cinema-details-tagline { font-size: 14.5px; font-style: italic; color: #38bdf8; margin: 0 0 16px; line-height: 1.4; } .has-cinema-details-meta-row { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; } .has-cinema-details-chip { background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.1); padding: 5px 12px; border-radius: 8px; font-size: 13px; color: #cbd5e1; display: inline-flex; align-items: center; gap: 5px; } .has-cinema-details-specs-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px; background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 14px; padding: 14px 18px; margin-bottom: 22px; } .has-cinema-spec-item { display: flex; flex-direction: column; gap: 3px; } .has-cinema-spec-label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.6px; color: #64748b; } .has-cinema-spec-value { font-size: 14.5px; font-weight: 600; color: #f1f5f9; } .has-cinema-spec-value.rating-highlight { color: #fbbf24; font-weight: 700; } .has-cinema-spec-value.revenue-highlight { color: #34d399; font-weight: 700; } .has-cinema-details-actions-row { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-bottom: 24px; } .has-cinema-details-btn-play { display: inline-flex; align-items: center; gap: 10px; background: linear-gradient(135deg, #e50914 0%, #b81d24 100%); color: #ffffff; border: none; border-radius: 12px; padding: 13px 32px; font-size: 16px; font-weight: 700; cursor: pointer; box-shadow: 0 8px 24px rgba(229, 9, 20, 0.4); transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1); } .has-cinema-details-btn-play:hover, .has-cinema-details-btn-play:focus-visible { transform: translateY(-2px) scale(1.02); box-shadow: 0 12px 32px rgba(229, 9, 20, 0.6); outline: none; } .has-cinema-details-btn-bookmark { display: inline-flex; align-items: center; gap: 8px; background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.2); color: #ffffff; border-radius: 12px; padding: 13px 22px; font-size: 15px; font-weight: 600; cursor: pointer; transition: all 0.2s ease; } .has-cinema-details-btn-bookmark:hover, .has-cinema-details-btn-bookmark:focus-visible { background: rgba(255, 255, 255, 0.16); border-color: rgba(255, 255, 255, 0.4); transform: translateY(-2px); } .has-cinema-details-btn-bookmark.active { background: rgba(16, 185, 129, 0.2); border-color: #10b981; color: #34d399; } .has-cinema-details-btn-trailer { display: inline-flex; align-items: center; gap: 8px; background: rgba(239, 68, 68, 0.15); border: 1px solid rgba(239, 68, 68, 0.4); color: #fca5a5; border-radius: 12px; padding: 13px 22px; font-size: 15px; font-weight: 600; cursor: pointer; transition: all 0.2s ease; } .has-cinema-details-btn-trailer:hover, .has-cinema-details-btn-trailer:focus-visible { background: rgba(239, 68, 68, 0.3); border-color: #ef4444; color: #ffffff; transform: translateY(-2px); } .has-cinema-details-loading-badge { font-size: 13px; color: #94a3b8; margin-left: 8px; font-style: italic; } .has-cinema-details-section-title { font-size: 19px; font-weight: 700; color: #ffffff; margin: 26px 0 14px; letter-spacing: 0.3px; } .has-cinema-details-synopsis-text { font-size: 15px; line-height: 1.7; color: #cbd5e1; margin: 0; } /* Cast Carousel */ .has-cinema-details-cast-carousel { display: flex; gap: 14px; overflow-x: auto; padding-bottom: 12px; scrollbar-width: thin; scrollbar-color: rgba(255, 255, 255, 0.2) transparent; } .has-cinema-actor-card { flex-shrink: 0; width: 104px; text-align: center; cursor: pointer; transition: transform 0.2s ease; } .has-cinema-actor-card:hover, .has-cinema-actor-card:focus-visible { transform: translateY(-4px); outline: none; } .has-cinema-actor-photo-box { width: 76px; height: 76px; border-radius: 50%; overflow: hidden; margin: 0 auto 8px; border: 2px solid rgba(255, 255, 255, 0.15); background: #1e293b; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4); } .has-cinema-actor-photo { width: 100%; height: 100%; object-fit: cover; } .has-cinema-actor-photo-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 26px; font-weight: 700; color: #94a3b8; background: #334155; } .has-cinema-actor-name { font-size: 12.5px; font-weight: 600; color: #ffffff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-bottom: 2px; } .has-cinema-actor-character { font-size: 11px; color: #94a3b8; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* Trailer Modal */ .has-cinema-trailer-modal-overlay { position: fixed; inset: 0; z-index: 10001; background: rgba(0, 0, 0, 0.94); backdrop-filter: blur(12px); display: flex; align-items: center; justify-content: center; padding: 24px; } .has-cinema-trailer-modal { width: 100%; max-width: 960px; background: #0f172a; border: 1px solid rgba(255, 255, 255, 0.15); border-radius: 16px; overflow: hidden; box-shadow: 0 24px 70px rgba(0, 0, 0, 0.9); } .has-cinema-trailer-header { display: flex; align-items: center; justify-content: space-between; padding: 14px 20px; background: #1e293b; border-bottom: 1px solid rgba(255, 255, 255, 0.1); } .has-cinema-trailer-title { font-size: 15.5px; font-weight: 700; color: #ffffff; } .has-cinema-trailer-close-btn { background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.2); color: #ffffff; padding: 6px 14px; border-radius: 8px; font-size: 13px; font-weight: 600; cursor: pointer; transition: all 0.2s ease; } .has-cinema-trailer-close-btn:hover, .has-cinema-trailer-close-btn:focus-visible { background: #ef4444; border-color: #ef4444; } .has-cinema-trailer-video-box { width: 100%; aspect-ratio: 16 / 9; background: #000000; } .has-cinema-trailer-iframe { width: 100%; height: 100%; border: none; } /* TV Focus Highlights for Details Elements */ .has-tv-mode .has-cinema-details-btn-play:focus, .has-tv-mode .has-cinema-details-btn-bookmark:focus, .has-tv-mode .has-cinema-details-btn-trailer:focus, .has-tv-mode .has-cinema-details-close-btn:focus, .has-tv-mode .has-cinema-actor-card:focus, .has-tv-mode .has-cinema-btn-info-wide:focus { outline: 3px solid #38bdf8 !important; outline-offset: 4px !important; box-shadow: 0 0 25px rgba(56, 189, 248, 0.7) !important; transform: scale(1.05) !important; } /* Mobile & Tablet responsive tweaks */ @media (max-width: 768px) { .has-cinema-player-top-sensor { display: none !important; } .has-cinema-player-top-hud { padding: calc(env(safe-area-inset-top, 0px) + 8px) 12px 14px 12px !important; gap: 8px !important; } .has-cinema-player-hud-left { gap: 8px !important; flex: 1; min-width: 0; } .has-cinema-player-btn-back { padding: 7px 12px !important; font-size: 13px !important; background: rgba(15, 23, 42, 0.92) !important; border: 1px solid rgba(255, 255, 255, 0.35) !important; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.6) !important; z-index: 99999 !important; pointer-events: auto !important; } .has-cinema-player-title-box { max-width: 120px !important; overflow: hidden; } .has-cinema-player-hud-title { font-size: 13px !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .has-cinema-player-hud-subtitle { font-size: 11px !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .has-cinema-player-hud-right { gap: 6px !important; flex-shrink: 0; } .has-cinema-player-hud-btn { padding: 6px 10px !important; font-size: 12px !important; } .has-cinema-details-hero { flex-direction: column; align-items: center; text-align: center; } .has-cinema-details-poster-box { width: 180px; } .has-cinema-details-info-col { align-items: center; } .has-cinema-details-meta-row { justify-content: center; } .has-cinema-details-actions-row { justify-content: center; } .has-cinema-details-specs-grid { grid-template-columns: 1fr; text-align: left; width: 100%; } }