*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f5f5f5;--surface:#fff;--surface2:#eee;--text:#111;--text2:#555;--accent:#e50914;--accent2:#ff4d57;--radius:10px;--nav-h:56px;--shadow:0 2px 12px #0000001a}.dark{--bg:#141414;--surface:#1f1f1f;--surface2:#2a2a2a;--text:#f0f0f0;--text2:#aaa;--shadow:0 2px 12px #00000080}html{font-size:16px}body{background:var(--bg);color:var(--text);font-family:Segoe UI,Noto Sans Khmer,sans-serif;transition:background .2s,color .2s}a{color:inherit;text-decoration:none}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}img{object-fit:cover;width:100%;display:block}.navbar{z-index:100;height:var(--nav-h);background:var(--surface);box-shadow:var(--shadow);align-items:center;gap:12px;padding:0 16px;display:flex;position:sticky;top:0}.logo{color:var(--accent);flex:1;font-size:1.4rem;font-weight:800}.nav-actions{align-items:center;gap:8px;display:flex}.icon-btn{border-radius:8px;align-items:center;gap:4px;padding:6px 8px;transition:background .15s;display:flex}.icon-btn:hover{background:var(--surface2)}.lang-label{font-size:.75rem;font-weight:600}.overlay{z-index:200;background:#00000080;position:fixed;inset:0}.drawer{z-index:201;background:var(--surface);flex-direction:column;width:280px;animation:.2s slideIn;display:flex;position:fixed;top:0;bottom:0;left:0;box-shadow:4px 0 24px #0003}@keyframes slideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}.drawer-header{border-bottom:1px solid var(--surface2);justify-content:space-between;align-items:center;padding:16px;display:flex}.drawer-user{border-bottom:1px solid var(--surface2);align-items:center;gap:12px;padding:16px;display:flex}.avatar{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.2rem;font-weight:700;display:flex}.drawer-name{font-size:.95rem;font-weight:600}.drawer-points{color:var(--text2);margin-top:2px;font-size:.8rem}.drawer-nav{flex:1;padding:8px 0}.drawer-item{align-items:center;gap:12px;padding:14px 20px;font-size:.95rem;transition:background .15s;display:flex}.drawer-item:hover{background:var(--surface2)}.drawer-logout{color:var(--accent);width:100%}.main-content{min-height:calc(100vh - var(--nav-h))}.banner{height:420px;position:relative;overflow:hidden}@media (width<=600px){.banner{height:260px}}.banner-img{object-fit:cover;object-position:center;height:100%}.banner-overlay{background:linear-gradient(90deg,#000c 30%,#0000 70%),linear-gradient(#0000 50%,#0009 100%);position:absolute;inset:0}.banner-content{max-width:420px;position:absolute;bottom:60px;left:32px}@media (width<=600px){.banner-content{bottom:40px;left:16px}}.banner-meta{color:#ccc;margin-bottom:6px;font-size:.8rem}.banner-title{color:#fff;margin-bottom:8px;font-size:1.8rem;font-weight:800;line-height:1.2}@media (width<=600px){.banner-title{font-size:1.2rem}}.banner-rating{color:#fbbf24;align-items:center;gap:4px;margin-bottom:14px;font-size:.9rem;display:flex}.btn-watch{background:var(--accent);color:#fff;border-radius:24px;padding:10px 22px;font-size:.9rem;font-weight:600;transition:background .2s,transform .1s}.btn-watch:hover{background:var(--accent2);transform:scale(1.03)}.banner-arrow{color:#fff;background:#0006;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:background .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.banner-arrow:hover{background:#000000b3}.banner-arrow.left{left:12px}.banner-arrow.right{right:12px}.banner-dots{gap:6px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.dot{background:#fff6;border-radius:50%;width:8px;height:8px;transition:all .2s}.dot.active{background:#fff;border-radius:4px;width:20px}.section{max-width:1200px;margin:0 auto;padding:24px 16px}.section-title{margin-bottom:16px;font-size:1.1rem;font-weight:700}.movie-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px;display:grid}@media (width>=600px){.movie-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}@media (width>=1024px){.movie-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}.movie-card{background:var(--surface);border-radius:var(--radius);cursor:pointer;box-shadow:var(--shadow);transition:transform .2s;overflow:hidden}.movie-card:hover{transform:translateY(-4px)}.card-img-wrap{aspect-ratio:2/3;position:relative;overflow:hidden}.card-img-wrap img{height:100%;transition:transform .3s}.movie-card:hover .card-img-wrap img{transform:scale(1.05)}.card-genre{background:var(--accent);color:#fff;text-transform:uppercase;border-radius:12px;padding:2px 7px;font-size:.65rem;font-weight:700;position:absolute;top:8px;left:8px}.card-info{padding:10px}.card-title{white-space:nowrap;text-overflow:ellipsis;margin-bottom:4px;font-size:.82rem;font-weight:600;overflow:hidden}.card-meta{color:var(--text2);justify-content:space-between;align-items:center;font-size:.75rem;display:flex}.card-rating{color:#fbbf24;align-items:center;gap:3px;display:flex}.sentinel{justify-content:center;align-items:center;padding:24px;display:flex}.spinner{border:3px solid var(--surface2);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.no-more{color:var(--text2);font-size:.85rem}.auth-page{min-height:calc(100vh - var(--nav-h));justify-content:center;align-items:center;padding:24px;display:flex}.auth-card{background:var(--surface);width:100%;max-width:380px;box-shadow:var(--shadow);text-align:center;border-radius:16px;padding:32px 28px}.auth-title{margin-bottom:20px;font-size:1.4rem;font-weight:700}.auth-form{flex-direction:column;gap:12px;margin-bottom:16px;display:flex}.input{border:1px solid var(--surface2);background:var(--bg);width:100%;color:var(--text);border-radius:8px;outline:none;padding:12px 14px;font-size:.9rem;transition:border-color .2s}.input:focus{border-color:var(--accent)}.btn-primary{background:var(--accent);color:#fff;border-radius:8px;padding:12px;font-size:.95rem;font-weight:700;transition:background .2s}.btn-primary:hover{background:var(--accent2)}.auth-switch{color:var(--text2);font-size:.85rem}.auth-switch a{color:var(--accent);margin-left:4px;font-weight:600}.auth-error{color:#dc2626;background:#fee2e2;border-radius:6px;margin-bottom:12px;padding:8px 12px;font-size:.82rem}.auth-icon{color:var(--accent);margin:0 auto 16px}.detail-page{max-width:1000px;margin:0 auto;padding:20px 16px}.back-btn{color:var(--text2);align-items:center;gap:6px;margin-bottom:20px;padding:6px 0;font-size:.88rem;display:flex}.back-btn:hover{color:var(--text)}.detail-meta-bar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin:16px 0 20px;display:flex}.detail-meta-left{flex:1;min-width:0}.detail-genre{background:var(--accent);color:#fff;text-transform:uppercase;border-radius:12px;margin-bottom:10px;padding:3px 10px;font-size:.72rem;font-weight:700;display:inline-block}.detail-title{margin-bottom:10px;font-size:1.8rem;font-weight:800}@media (width<=600px){.detail-title{font-size:1.3rem}}.detail-meta{color:var(--text2);flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:16px;font-size:.88rem;display:flex}.detail-meta span{align-items:center;gap:4px;display:flex}.star-icon{color:#fbbf24}.detail-desc{color:var(--text2);margin-bottom:20px;font-size:.92rem;line-height:1.7}.btn-play{background:var(--accent);color:#fff;border-radius:24px;align-items:center;gap:8px;padding:12px 24px;font-size:.92rem;font-weight:700;transition:background .2s,transform .1s;display:inline-flex}.btn-play:hover{background:var(--accent2);transform:scale(1.03)}.page{max-width:600px;margin:0 auto;padding:28px 16px}.page.center{min-height:calc(100vh - var(--nav-h));justify-content:center;align-items:center;display:flex}.page-title{margin-bottom:20px;font-size:1.3rem;font-weight:700}.profile-card{background:var(--surface);text-align:center;box-shadow:var(--shadow);border-radius:16px;padding:32px 24px}.profile-avatar{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;margin:0 auto 12px;font-size:2rem;font-weight:800;display:flex}.profile-name{margin-bottom:6px;font-size:1.3rem;font-weight:700}.profile-badge{color:#000;text-transform:uppercase;background:#fbbf24;border-radius:12px;padding:3px 10px;font-size:.72rem;font-weight:700}.profile-stats{text-align:left;flex-direction:column;gap:14px;margin:20px 0;display:flex}.stat-item{color:var(--text2);align-items:center;gap:12px;font-size:.9rem;display:flex}.stat-item span{color:var(--text)}.btn-logout{border:2px solid var(--accent);color:var(--accent);background:0 0;border-radius:24px;align-items:center;gap:8px;margin-top:8px;padding:10px 24px;font-size:.9rem;font-weight:700;transition:all .2s;display:inline-flex}.btn-logout:hover{background:var(--accent);color:#fff}.lucky-card{background:var(--surface);text-align:center;box-shadow:var(--shadow);border-radius:20px;width:100%;max-width:400px;padding:36px 28px}.lucky-icon{color:#fbbf24;margin:0 auto 12px}.lucky-title{margin-bottom:6px;font-size:1.5rem;font-weight:800}.lucky-sub{color:var(--text2);margin-bottom:20px;font-size:.85rem}.prize-wheel{grid-template-columns:1fr 1fr;gap:8px;margin:16px 0;display:grid}.prize-wheel.spinning .prize-item{animation:.15s infinite alternate blink}.prize-item{background:var(--surface2);border-radius:8px;padding:10px 6px;font-size:.82rem;font-weight:600}@keyframes blink{0%{opacity:.3}to{opacity:1}}.prize-result{margin:12px 0}.won-label{color:var(--text2);font-size:.85rem}.won-prize{color:#fbbf24;font-size:1.4rem;font-weight:800}.btn-spin{background:var(--accent);color:#fff;border-radius:24px;align-items:center;gap:8px;margin-top:8px;padding:12px 32px;font-size:1rem;font-weight:700;transition:background .2s;display:inline-flex}.btn-spin:hover:not(:disabled){background:var(--accent2)}.btn-spin:disabled{opacity:.6;cursor:not-allowed}.spin-anim{animation:.7s linear infinite spin}.loading-page{height:calc(100vh - var(--nav-h));justify-content:center;align-items:center;display:flex}.ad-wrap{background:var(--surface2);border-radius:var(--radius);width:100%;min-height:90px;margin:16px 0;overflow:hidden}.fav-btn{color:#fff;background:#00000080;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;transition:background .2s,color .2s;display:flex;position:absolute;top:8px;right:8px}.fav-btn:hover{background:#000c}.fav-btn.active{background:var(--accent)}.detail-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.btn-fav{border:2px solid var(--accent);color:var(--accent);border-radius:24px;align-items:center;gap:8px;padding:12px 20px;font-size:.92rem;font-weight:700;transition:all .2s;display:inline-flex}.btn-fav:hover,.btn-fav.active{background:var(--accent);color:#fff}.empty-state{color:var(--text2);flex-direction:column;align-items:center;gap:8px;padding:60px 20px;display:flex}.empty-state svg{opacity:.3}.player-wrap{border-radius:var(--radius);background:#000;margin-bottom:24px;overflow:hidden}.player-iframe{aspect-ratio:16/9;border:none;width:100%;display:block}.player-label{color:var(--text2);background:var(--surface);padding:10px 14px;font-size:.85rem}.episode-section{margin-top:28px}.ep-count{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;margin-left:8px;font-size:.72rem;font-weight:700;display:inline-flex}.episode-list{flex-direction:column;gap:10px;margin-top:12px;display:flex}.episode-item{background:var(--surface);border-radius:var(--radius);text-align:left;cursor:pointer;border:2px solid #0000;align-items:center;gap:14px;padding:10px;transition:border-color .2s,background .2s;display:flex}.episode-item:hover{background:var(--surface2)}.episode-item.active{border-color:var(--accent)}.ep-thumb-wrap{border-radius:6px;flex-shrink:0;width:120px;height:68px;position:relative;overflow:hidden}@media (width<=480px){.ep-thumb-wrap{width:90px;height:52px}}.ep-thumb{object-fit:cover;width:100%;height:100%}.ep-play-icon{opacity:0;background:#0006;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;inset:0}.episode-item:hover .ep-play-icon,.episode-item.active .ep-play-icon{opacity:1}.ep-info{flex:1}.ep-title{margin-bottom:4px;font-size:.9rem;font-weight:600}.ep-duration{color:var(--text2);font-size:.78rem}.dialog-overlay{z-index:300;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0009;position:fixed;inset:0}.dialog{z-index:301;background:var(--surface);text-align:center;border-radius:20px;width:90%;max-width:360px;padding:32px 28px;animation:.2s dialogIn;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 60px #0006}@keyframes dialogIn{0%{opacity:0;transform:translate(-50%,-48%)scale(.95)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.dialog-close{width:32px;height:32px;color:var(--text2);border-radius:50%;justify-content:center;align-items:center;transition:background .15s;display:flex;position:absolute;top:14px;right:14px}.dialog-close:hover{background:var(--surface2)}.dialog-icon{width:64px;height:64px;color:var(--accent);background:#fee2e2;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;display:flex}.dialog-title{margin-bottom:8px;font-size:1.1rem;font-weight:700}.dialog-desc{color:var(--text2);margin-bottom:24px;font-size:.85rem;line-height:1.5}.dialog-actions{flex-direction:column;gap:10px;display:flex}.dialog-btn{border-radius:10px;justify-content:center;align-items:center;gap:8px;width:100%;padding:12px;font-size:.92rem;font-weight:600;transition:all .2s;display:flex}.btn-outline{border:2px solid var(--accent);color:var(--accent);background:0 0}.btn-outline:hover{background:var(--accent);color:#fff}.btn-ghost{color:var(--text2);background:var(--surface2)}.btn-ghost:hover{color:var(--text)}
