:root{color-scheme:dark;--bg:#080b14;--panel:#111725;--panel-2:#151d2d;--muted:#8d98ad;--text:#f5f7fb;--line:rgba(255,255,255,.09);--violet:#9c7bff;--pink:#fa78c8;--mint:#65e1c0;--gold:#f5c87a;--radius:22px}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:"DM Sans",sans-serif}button,input,select{font:inherit}button{cursor:pointer}.ambient{position:fixed;z-index:-1;pointer-events:none;filter:blur(90px);opacity:.18;border-radius:50%}.ambient-one{width:380px;height:380px;background:#5f41db;top:0;left:-150px}.ambient-two{width:420px;height:420px;background:#bc3e85;top:280px;right:-250px;opacity:.1}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 max(26px,calc((100vw - 1240px)/2));border-bottom:1px solid var(--line);background:rgba(8,11,20,.82);backdrop-filter:blur(14px);position:sticky;top:0;z-index:5}.brand{display:flex;align-items:center;gap:11px;color:var(--text);text-decoration:none;font-family:Manrope,sans-serif;font-weight:800;font-size:20px;letter-spacing:-.8px}.brand-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:linear-gradient(140deg,var(--violet),var(--pink));color:#0d0d18;font-size:18px}.brand-accent{color:#bd9fff}.header-actions{display:flex;gap:10px;align-items:center}.shell{max-width:1240px;margin:0 auto;padding:34px 26px 80px}.btn{border:1px solid var(--line);background:#192133;color:var(--text);border-radius:12px;padding:11px 16px;font-weight:700;transition:.2s}.btn:hover{transform:translateY(-1px);border-color:rgba(255,255,255,.24);background:#222d44}.btn-primary{border:0;color:#12101c;background:linear-gradient(120deg,#bba5ff,#ed9bd7)}.btn-primary:hover{background:linear-gradient(120deg,#cabaff,#f4b2e2)}.btn-quiet{background:transparent}.btn-small{padding:8px 11px;font-size:13px}.eyebrow{color:#c2aeff;text-transform:uppercase;letter-spacing:2px;font-size:11px;font-weight:800}.hero{padding:54px 0 34px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(250px,.75fr);gap:30px;align-items:center}.hero h1,.login-card h1{font:800 clamp(38px,6vw,68px)/1.02 Manrope,sans-serif;letter-spacing:-3.4px;margin:15px 0}.hero h1 span{background:linear-gradient(100deg,#c8b6ff 8%,#ee9bd5 82%);background-clip:text;color:transparent}.hero p,.login-card p{max-width:580px;color:#a8b1c3;line-height:1.7;font-size:16px}.hero-art{min-height:250px;border:1px solid rgba(255,255,255,.1);border-radius:30px;padding:23px;display:flex;align-items:flex-end;position:relative;overflow:hidden;background:radial-gradient(circle at 68% 30%,rgba(220,134,217,.55),transparent 26%),radial-gradient(circle at 32% 25%,rgba(111,93,213,.6),transparent 28%),linear-gradient(145deg,#282346,#171d31 65%,#3f2345);box-shadow:0 30px 80px rgba(51,30,98,.18)}.hero-art:before,.hero-art:after{content:"";position:absolute;border-radius:48% 52% 60% 40%;transform:rotate(-20deg)}.hero-art:before{width:150px;height:210px;right:75px;top:22px;background:linear-gradient(145deg,#f5c2da,#7757ba);opacity:.86}.hero-art:after{width:130px;height:190px;right:19px;top:45px;background:linear-gradient(145deg,#fdc58b,#bd6289);opacity:.76}.art-copy{position:relative;z-index:1;font:800 17px Manrope,sans-serif}.art-copy small{display:block;font:500 12px "DM Sans",sans-serif;color:#e6d6fa;margin-top:5px}.feature-strip{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 38px}.feature-pill{border:1px solid var(--line);border-radius:999px;padding:9px 14px;color:#c2cad8;font-size:12px;background:rgba(255,255,255,.025)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:24px 0 18px}.section-head h2{margin:0;font:800 25px Manrope,sans-serif;letter-spacing:-1px}.section-head p{margin:6px 0 0;color:var(--muted);font-size:13px}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:16px 0 22px}.search{display:flex;gap:8px;flex:1;min-width:250px}.search input,.select,.code-input{height:44px;border:1px solid var(--line);border-radius:12px;padding:0 14px;background:#111725;color:var(--text);outline:none}.search input{flex:1}.search input:focus,.select:focus,.code-input:focus{border-color:rgba(180,155,255,.7);box-shadow:0 0 0 3px rgba(156,123,255,.12)}.select{min-width:150px}.tabs{display:flex;gap:8px;flex-wrap:wrap}.tab{border:1px solid var(--line);border-radius:999px;padding:9px 14px;background:transparent;color:#aeb8c9;font-size:13px;font-weight:700}.tab:hover{color:white;background:#171d2c}.tab.active{color:#171123;background:linear-gradient(110deg,#c3aeff,#eea6d8);border-color:transparent}.catalog-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}.drama-card{border:1px solid var(--line);border-radius:17px;overflow:hidden;background:linear-gradient(155deg,#151d2d,#101521);transition:.22s;cursor:pointer;min-width:0}.drama-card:hover{transform:translateY(-5px);border-color:rgba(191,161,255,.45);box-shadow:0 18px 35px rgba(0,0,0,.22)}.poster{height:238px;background:linear-gradient(140deg,#36304f,#bd6c91 58%,#e2ae8c);position:relative;overflow:hidden}.poster img{width:100%;height:100%;object-fit:cover;display:block}.poster:after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(transparent,rgba(4,5,10,.7));pointer-events:none}.poster-label{position:absolute;z-index:1;left:12px;bottom:12px;padding:6px 9px;border-radius:999px;background:rgba(10,12,22,.68);font-size:10px;color:#f4d4ee;backdrop-filter:blur(8px)}.card-body{padding:13px}.card-title{font:700 14px/1.4 Manrope,sans-serif;margin:0 0 10px;min-height:40px}.tag-row{display:flex;gap:6px;flex-wrap:wrap}.tag{border-radius:999px;padding:5px 8px;background:rgba(156,123,255,.12);color:#c8b7ff;font-size:10px;white-space:nowrap}.empty,.loading,.error-state{grid-column:1/-1;text-align:center;border:1px dashed var(--line);border-radius:18px;padding:40px 20px;color:var(--muted)}.loading:before{content:"";display:block;width:22px;height:22px;border:2px solid #66548f;border-top-color:#d6c5ff;border-radius:50%;margin:0 auto 12px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.category-list{display:flex;gap:10px;flex-wrap:wrap}.category-chip{padding:11px 15px;border-radius:999px;border:1px solid var(--line);color:#d4d9e3;background:#141b29}.category-chip:hover{border-color:#bd9fff;color:white}.load-more{display:flex;justify-content:center;margin:26px 0}.detail-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:24px;margin-top:16px}.video-shell{background:#000;aspect-ratio:16/9;border-radius:20px;overflow:hidden;border:1px solid var(--line);display:grid;place-items:center}.video-shell video{width:100%;height:100%;background:#000}.video-empty{color:#a7afbd;text-align:center;padding:30px}.video-empty span{display:block;font-size:38px;color:#c6a9ff;margin-bottom:12px}.detail-info{padding:18px 2px}.detail-info h1{font:800 30px/1.15 Manrope,sans-serif;letter-spacing:-1.2px;margin:0 0 12px}.detail-info p{color:#aeb6c5;line-height:1.7;font-size:14px}.meta-row{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.meta-chip{font-size:11px;border:1px solid var(--line);border-radius:999px;padding:7px 10px;color:#d8c9ff}.episodes-panel{border:1px solid var(--line);background:rgba(17,23,37,.82);border-radius:20px;padding:18px}.episodes-panel h2{margin:0 0 5px;font:800 19px Manrope,sans-serif}.episodes-count{font-size:12px;color:var(--muted);margin-bottom:14px}.episode-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:520px;overflow:auto;padding-right:3px}.episode{display:flex;align-items:center;gap:9px;text-align:left;border:1px solid var(--line);border-radius:12px;background:#141b29;color:#eff1f6;padding:10px;min-width:0}.episode:hover:not(:disabled),.episode.active{border-color:rgba(183,153,255,.65);background:#211b35}.episode:disabled{opacity:.55;cursor:not-allowed}.episode-num{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;border-radius:9px;background:#29223d;color:#d7c8ff;font-weight:800;font-size:12px}.episode-copy{min-width:0}.episode-copy strong{display:block;font-size:12px}.episode-copy small{color:var(--muted);font-size:10px}.lock{margin-left:auto;color:#f2c77f}.back-row{margin:6px 0 20px}.login-wrap{min-height:calc(100vh - 160px);display:grid;place-items:center}.login-card{width:min(100%,740px);border:1px solid var(--line);border-radius:28px;background:linear-gradient(145deg,rgba(21,29,45,.96),rgba(12,17,29,.96));padding:clamp(26px,6vw,55px);box-shadow:0 30px 90px rgba(0,0,0,.25);position:relative;overflow:hidden}.login-card:after{content:"";position:absolute;width:250px;height:250px;border-radius:50%;right:-80px;top:-140px;background:rgba(153,117,255,.15);filter:blur(20px)}.login-card h1{font-size:clamp(38px,5vw,56px)}.code-form{display:flex;gap:10px;margin:26px 0 12px}.code-input{height:50px;flex:1;min-width:0;font-family:monospace;letter-spacing:1px}.code-form .btn{height:50px;min-width:135px}.hint{font-size:12px!important;color:#7f8ba1!important}.notice{display:flex;align-items:center;gap:9px;margin-top:20px;padding:13px;border-radius:13px;background:rgba(101,225,192,.08);color:#9debd6;font-size:12px}.notice i{font-size:16px}.error-banner{color:#ffb6c2;background:rgba(255,91,120,.1);border:1px solid rgba(255,91,120,.2);padding:12px 14px;border-radius:12px;margin:14px 0;font-size:13px}.source-badge{display:flex;align-items:center;gap:8px;color:#b9c2d1;font-size:12px}.source-dot{width:8px;height:8px;border-radius:50%;background:var(--mint);box-shadow:0 0 12px rgba(101,225,192,.7)}.toast{position:fixed;z-index:9;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#252d3d;color:white;padding:11px 16px;border-radius:12px;border:1px solid var(--line);transition:.2s;max-width:min(90vw,480px);font-size:13px}.toast.show{opacity:1;transform:translate(-50%,0)}.footer{border-top:1px solid var(--line);padding:20px 0 0;margin-top:50px;color:#707c92;font-size:11px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.player-note{color:#8893a7;font-size:11px;margin-top:9px}@media(max-width:1050px){.catalog-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:800px){.hero{grid-template-columns:1fr;padding-top:32px}.hero-art{min-height:185px}.catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-layout{grid-template-columns:1fr}.topbar{height:66px}.shell{padding:26px 20px 60px}}@media(max-width:560px){.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.poster{height:200px}.card-body{padding:11px}.hero h1{letter-spacing:-2px}.hero-art{display:none}.toolbar{align-items:stretch}.search{min-width:100%}.select{flex:1}.code-form{flex-direction:column}.code-form .btn{width:100%}.episode-list{grid-template-columns:1fr}.section-head h2{font-size:22px}.topbar{padding:0 18px}.shell{padding:22px 16px 50px}}

.provider-switch{display:flex;gap:8px;margin-bottom:22px;position:relative;z-index:1}.provider-option{border:1px solid var(--line);border-radius:999px;padding:9px 15px;background:#141b29;color:#aeb8c9;font-size:12px;font-weight:700}.provider-option.active{background:linear-gradient(110deg,#c3aeff,#eea6d8);border-color:transparent;color:#171123}.login-card>.provider-switch{margin-bottom:30px}
.catalog-section{margin:30px 0 38px}.catalog-section .section-head{margin:0 0 14px}.catalog-shelf{display:flex;gap:16px;overflow-x:auto;padding:2px 2px 14px;scroll-snap-type:x proximity;scrollbar-width:thin}.catalog-shelf .drama-card{flex:0 0 190px;scroll-snap-align:start}.catalog-shelf .empty{min-width:100%;grid-column:auto}.catalog-section .load-more{justify-content:flex-start;margin:14px 0}
.plan-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;margin:22px 0;border:1px solid rgba(187,165,255,.25);border-radius:16px;background:linear-gradient(120deg,rgba(156,123,255,.12),rgba(250,120,200,.08))}.plan-card strong,.plan-card small{display:block}.plan-card strong{font:700 14px Manrope,sans-serif}.plan-card small{margin-top:5px;color:#aeb8c9;font-size:12px}.plan-card>span{color:#e9bb70;font-size:22px}.plan-badge{padding:7px 10px;border-radius:999px;background:rgba(101,225,192,.13);color:#9debd6;font-size:11px;font-weight:800}.header-actions .source-badge{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.episode:disabled{opacity:.55;cursor:not-allowed}
.ad-slot{width:min(calc(100% - 32px),970px);min-height:110px;margin:16px auto 0;padding:10px 14px 0;border:1px solid var(--line);border-radius:14px;background:rgba(17,23,37,.55);text-align:center}.ad-label{display:block;margin-bottom:6px;color:var(--muted);font-size:9px;letter-spacing:.12em;text-transform:uppercase}.ad-slot .adsbygoogle{max-width:100%;margin-inline:auto}

/* Phone-first portrait playback and safe-area spacing. */
@media (max-width: 600px) {
  html { min-height: 100%; background: var(--bg); }
  body { min-height: 100vh; min-height: 100dvh; overflow-x: hidden; }
  .topbar { height: 60px; padding-inline: max(14px, env(safe-area-inset-left)) max(14px, env(safe-area-inset-right)); }
  .brand { gap: 8px; font-size: 18px; }
  .brand-mark { width: 32px; height: 32px; }
  .header-actions { gap: 6px; }
  .header-actions .btn-small { min-height: 40px; padding-inline: 10px; }
  .header-actions .source-badge { max-width: 34vw; }
  .shell { width: 100%; max-width: 100%; padding: 18px max(14px, env(safe-area-inset-left)) calc(34px + env(safe-area-inset-bottom)); }
  .hero { padding: 20px 0 14px; }
  .hero h1 { font-size: clamp(34px, 10vw, 48px); }
  .hero p { font-size: 14px; }
  .feature-strip { margin-bottom: 22px; }
  .section-head { align-items: flex-start; margin: 20px 0 14px; }
  .tabs { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 5px; scrollbar-width: none; }
  .tabs::-webkit-scrollbar { display: none; }
  .tab { flex: 0 0 auto; min-height: 40px; }
  .toolbar { gap: 8px; }
  .search { min-width: 0; width: 100%; }
  .search input { min-width: 0; }
  .select { min-height: 44px; }
  .catalog-shelf { gap: 12px; margin-inline: -14px; padding-inline: 14px; }
  .catalog-shelf .drama-card { flex-basis: min(42vw, 170px); }
  .catalog-grid { gap: 10px; }
  .poster { height: clamp(160px, 52vw, 220px); }
  .card-body { padding: 10px; }
  .card-title { font-size: 13px; }
  .detail-layout { display: flex; flex-direction: column; gap: 14px; }
  .detail-layout > div:first-child { display: contents; }
  .video-shell { width: min(100%, 440px); aspect-ratio: 9 / 16; max-height: 76svh; margin-inline: auto; border-radius: 16px; }
  .video-shell video { object-fit: contain; }
  .player-note { width: min(100%, 440px); margin: 8px auto 0; }
  .detail-info { padding: 12px 2px 4px; }
  .detail-info h1 { font-size: 26px; }
  .episodes-panel { padding: 15px; border-radius: 16px; }
  .episode-list { grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: none; overflow: visible; }
  .episode { min-height: 54px; padding: 8px; }
  .footer { padding-bottom: max(8px, env(safe-area-inset-bottom)); }
  .ad-slot { width: calc(100% - 28px); margin-top: 12px; }
}

@media (max-width: 360px) {
  .brand { font-size: 16px; }
  .header-actions .btn-small { padding-inline: 8px; font-size: 12px; }
  .catalog-grid { gap: 8px; }
  .episode-list { grid-template-columns: 1fr; }
}

.player-tools { display:flex; align-items:center; justify-content:space-between; gap:12px; width:min(100%,440px); margin:8px auto 0; }
.player-tools .player-note { margin:0; }
.quality-control { display:flex; align-items:center; gap:7px; color:var(--muted); font-size:11px; white-space:nowrap; }
.quality-control select { min-height:38px; border:1px solid var(--line); border-radius:10px; padding:0 28px 0 10px; color:var(--text); background:#141b29; }
.quality-control select:focus-visible,.install-app:focus-visible { outline:2px solid var(--violet); outline-offset:2px; }
@media (max-width: 600px) {
  .player-tools { align-items:flex-start; flex-direction:column; gap:10px; }
  .quality-control { width:100%; justify-content:space-between; }
  .quality-control select { flex:0 0 145px; }
}

/* Reel-first catalog and episode controls directly below the portrait player. */
.hero-feature { min-height: 245px; position: relative; overflow: hidden; border: 1px solid var(--line); border-radius: 24px; padding: 0; color: white; text-align: left; background: linear-gradient(145deg,#42325e,#171d31); cursor: pointer; }
.hero-feature > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-feature::after { content: ""; position: absolute; inset: 25% 0 0; background: linear-gradient(transparent,rgba(4,5,10,.88)); }
.hero-feature-empty { display: grid; place-items: center; }
.hero-play { position: absolute; z-index: 1; left: 50%; top: 42%; translate: -50% -50%; width: 58px; height: 58px; display: grid; place-items: center; padding-left: 4px; border-radius: 50%; color: #171123; background: linear-gradient(120deg,#c3aeff,#eea6d8); box-shadow: 0 8px 28px #09071180; }
.hero-feature-title { position: absolute; z-index: 1; inset: auto 20px 18px; font: 800 20px Manrope,sans-serif; }
.hero-feature-title small { display: block; margin-top: 5px; font: 500 12px "DM Sans",sans-serif; color: #e2d9ef; }
.poster-play { position: absolute; z-index: 2; top: 50%; left: 50%; translate: -50% -50%; width: 42px; height: 42px; display: grid; place-items: center; padding-left: 3px; border-radius: 50%; color: #171123; background: #f3e8ffc9; opacity: .94; box-shadow: 0 4px 18px #0008; }
.detail-layout { grid-template-rows: auto 1fr; }
.player-column { min-width: 0; }
.detail-layout > .detail-info { grid-column: 1 / -1; }
.next-episode-cta { width: 100%; display: flex; justify-content: space-between; align-items: center; margin-top: 10px; padding: 14px 16px; border: 1px solid rgba(187,165,255,.35); border-radius: 14px; color: var(--text); background: linear-gradient(110deg,#302345,#211c34); font-weight: 800; text-align: left; }
.next-episode-cta span { color: #d3bdff; font-size: 20px; }
@media (max-width: 600px) {
  .hero { gap: 16px; }
  .hero-feature { min-height: 155px; border-radius: 18px; }
  .hero-play { width: 48px; height: 48px; }
  .hero-feature-title { inset-inline: 14px; bottom: 13px; font-size: 16px; }
  .detail-layout { display: flex; flex-direction: column; gap: 10px; }
  .detail-layout > div:first-child { display: block; }
  .video-shell { max-height: 66svh; }
  .episodes-panel { order: 2; padding: 13px; }
  .player-column { order: 1; }
  .detail-info { order: 3; }
  .episode-list { display: flex; gap: 8px; overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: x proximity; padding: 2px 1px 8px; }
  .episode-list .episode { flex: 0 0 154px; scroll-snap-align: start; }
  .episode-list .empty { min-width: 100%; }
  .episodes-count { margin-bottom: 9px; }
  .player-note { margin-top: 6px; }
}
