* { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
:root{ --bg:#0a0a10; --card:#12121c; --gold:#e9b96a; --pink:#e5486f; --green:#3ec98f; --txt:#f2f2f6; --sub:#9a9aad; }
html,body{ background:var(--bg); color:var(--txt); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; }
body{ max-width:1100px; margin:0 auto; padding:14px 16px calc(90px + env(safe-area-inset-bottom, 0px)); }
img{ display:block; }
a{ text-decoration:none; color:inherit; }
button{ font-family:inherit; }

/* ===== Header ===== */
.header{ display:flex; align-items:center; justify-content:space-between; padding:6px 2px 14px; }
.brand{ display:flex; align-items:center; gap:9px; font-size:21px; font-weight:700; letter-spacing:.3px; }
.logo{ width:30px; height:30px; border-radius:9px; background:linear-gradient(135deg,#37d99a,#1f9d6e);
       display:flex; align-items:center; justify-content:center; box-shadow:0 2px 10px rgba(55,217,154,.35); }
.logo svg{ width:15px; height:15px; fill:#06130d; margin-left:2px; }
.series-btn{ display:flex; align-items:center; gap:7px; padding:8px 16px; border-radius:999px;
             background:#1b1b28; color:var(--pink); font-size:14px; font-weight:600; border:1px solid #2a2a3a; }
.series-btn svg{ width:14px; height:14px; stroke:var(--pink); }

/* ===== Claim banner ===== */
.claim{ display:flex; align-items:center; gap:14px; padding:14px 16px; border-radius:16px;
        background:linear-gradient(135deg,#2a1418,#1c0f16); border:1px solid #3a2229; margin-bottom:16px; }
.claim .num{ flex:none; width:52px; height:52px; border-radius:12px; background:linear-gradient(160deg,#f3cf8d,#d9a552);
             color:#3a2a10; font-weight:800; font-size:17px; display:flex; align-items:center; justify-content:center; }
.claim .txt{ flex:1; min-width:0; }
.claim .txt b{ display:block; font-size:15.5px; margin-bottom:3px; }
.claim .txt span{ font-size:12.5px; color:var(--sub); }
.claim .go{ flex:none; color:var(--gold); font-weight:700; font-size:14.5px; white-space:nowrap; }

/* ===== Hero 轮播 ===== */
.hero{ position:relative; border-radius:20px; background:linear-gradient(160deg,#141428,#0d0d18);
       border:1px solid #22223a; overflow:hidden; margin-bottom:26px; }
.hero-track{ display:flex; transition:transform .45s ease; }
.slide{ position:relative; flex:none; width:100%; padding:26px 22px 20px; min-height:230px; }
.slide .tag{ color:var(--gold); font-size:11.5px; font-weight:700; letter-spacing:3px; margin-bottom:10px; }
.slide h1{ font-size:26px; line-height:1.25; font-weight:800; margin-bottom:10px; max-width:58%;
           display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.slide p{ color:var(--sub); font-size:13px; max-width:56%; margin-bottom:18px; }
.slide .cta{ display:flex; gap:10px; }
.btn-gold{ display:inline-block; background:linear-gradient(160deg,#f3cf8d,#dfb166); color:#3a2a10; font-weight:700;
           font-size:14px; padding:10px 20px; border-radius:999px; border:none; cursor:pointer; }
.btn-ghost{ display:inline-block; background:transparent; color:var(--txt); font-weight:600; font-size:14px;
            padding:10px 18px; border-radius:999px; border:1px solid #3a3a52; cursor:pointer; }
.slide .thumbs{ position:absolute; right:22px; top:50%; transform:translateY(-54%); display:flex; align-items:center; }
.mini{ position:relative; width:118px; height:172px; border-radius:14px; overflow:hidden; border:1px solid #33334a;
       box-shadow:0 10px 30px rgba(0,0,0,.55); background:#181826; }
.mini img{ width:100%; height:100%; object-fit:cover; }
.mini .play{ position:absolute; top:8px; right:8px; width:28px; height:28px; border-radius:50%;
             background:rgba(20,20,30,.72); display:flex; align-items:center; justify-content:center; }
.mini .play svg{ width:11px; height:11px; fill:#fff; margin-left:1px; }
.mini .cap{ position:absolute; left:0; right:0; bottom:0; padding:20px 8px 7px; font-size:10px; color:#eee;
            background:linear-gradient(transparent,rgba(0,0,0,.85)); text-align:center;
            white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mini.m2{ width:104px; height:150px; margin-right:-34px; transform:translateY(6px); opacity:.9; }
.hero .dots{ display:flex; gap:5px; padding:0 22px 16px; }
.hero .dots i{ width:5px; height:5px; border-radius:50%; background:#3a3a4e; cursor:pointer; transition:all .3s; }
.hero .dots i.on{ width:16px; border-radius:3px; background:var(--gold); }

/* ===== Section ===== */
.sec-head{ display:flex; align-items:baseline; justify-content:space-between; margin:0 2px 14px; }
.sec-head h2{ font-size:20px; font-weight:800; }
.sec-head .sub{ color:var(--sub); font-size:12.5px; margin-top:4px; }
.sec-head .all{ color:var(--gold); font-size:13.5px; font-weight:600; white-space:nowrap; }

/* ===== Grid / Card ===== */
.grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.card{ position:relative; display:block; border-radius:16px; overflow:hidden; background:var(--card);
       border:1px solid #1f1f2e; }
.card .thumb{ position:relative; height:min(400px,62vw); overflow:hidden; background:#181826; }
.card .thumb img{ width:100%; height:100%; object-fit:cover; }
.card .thumb::after{ content:""; position:absolute; inset:0; background:linear-gradient(transparent 55%,rgba(8,8,14,.92)); }
.card .play{ position:absolute; top:10px; right:10px; width:34px; height:34px; border-radius:50%;
             background:rgba(20,20,30,.72); display:flex; align-items:center; justify-content:center; z-index:2; }
.card .play svg{ width:13px; height:13px; fill:#fff; margin-left:2px; }
.card .wn{ position:absolute; left:10px; bottom:10px; z-index:2; font-size:11.5px; font-weight:700;
           color:var(--green); background:rgba(16,26,22,.8); padding:4px 10px; border-radius:999px; }
.card .meta{ padding:11px 13px 13px; }
.card .meta h3{ font-size:14px; font-weight:700; line-height:1.35; margin-bottom:6px;
                display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.card .meta .views{ font-size:11.5px; color:var(--sub); margin-bottom:8px; }
.card .meta .btn{ display:inline-block; font-size:11.5px; font-weight:700; color:var(--green);
                  background:#152a21; padding:5px 12px; border-radius:999px; }
.card:nth-child(even) .meta .btn, .card:nth-child(even) .wn{ color:var(--pink); background:#2c1620; }

/* ===== 吸底下载栏 ===== */
.dlbar{ position:fixed; left:0; right:0; bottom:0; z-index:50; display:flex; justify-content:center;
        background:linear-gradient(transparent,rgba(6,6,10,.94) 40%); padding:18px 14px calc(14px + env(safe-area-inset-bottom, 0px)); }
.dl-tip{ position:fixed; left:50%; bottom:calc(88px + env(safe-area-inset-bottom, 0px)); transform:translateX(-50%) translateY(12px);
         z-index:80; max-width:calc(100% - 32px); padding:10px 16px; border-radius:12px;
         background:#1b1b28; border:1px solid #2a2a3a; color:var(--txt); font-size:13px; line-height:1.4;
         text-align:center; opacity:0; pointer-events:none; transition:opacity .25s, transform .25s; }
.dl-tip.show{ opacity:1; transform:translateX(-50%) translateY(0); }
.dlbar .in{ width:100%; max-width:560px; display:flex; align-items:center; gap:12px; padding:11px 14px;
            border-radius:16px; background:#171724; border:1px solid #2b2b40; box-shadow:0 8px 30px rgba(0,0,0,.6); }
.dlbar .logo{ width:38px; height:38px; border-radius:11px; flex:none; }
.dlbar .t{ flex:1; min-width:0; }
.dlbar .t b{ display:block; font-size:14.5px; }
.dlbar .t span{ font-size:11.5px; color:var(--sub); }
.dlbar .btn-gold{ flex:none; padding:10px 18px; }
.foot{ text-align:center; color:#55556a; font-size:11px; margin-top:30px; line-height:1.7; }

/* ===== 子页头部（Series / Watch / Claim） ===== */
.sub-head{ position:sticky; top:0; z-index:10; display:flex; align-items:center; gap:12px;
           padding:10px 2px 14px; background:rgba(10,10,16,.94); backdrop-filter:blur(8px); }
.back-btn{ width:36px; height:36px; border-radius:50%; background:#1b1b28; border:1px solid #2a2a3a;
           display:flex; align-items:center; justify-content:center; flex:none; }
.back-btn svg{ width:16px; height:16px; stroke:#fff; }
.sub-head h2{ font-size:17px; font-weight:800; }
.sub-head .cnt{ color:var(--sub); font-size:12px; }

/* ===== 播放页 ===== */
.player{ position:relative; border-radius:18px; overflow:hidden; background:#000; border:1px solid #22223a;
         aspect-ratio:16/9; margin-bottom:16px; }
.player img{ width:100%; height:100%; object-fit:cover; opacity:.85; }
.player .shade{ position:absolute; inset:0; background:linear-gradient(transparent 55%,rgba(0,0,0,.85)); }
.player .bigplay{ position:absolute; left:50%; top:46%; transform:translate(-50%,-50%); z-index:3;
                  width:68px; height:68px; border-radius:50%; background:rgba(233,185,106,.95); border:none; cursor:pointer;
                  display:flex; align-items:center; justify-content:center; box-shadow:0 6px 26px rgba(0,0,0,.55); }
.player .bigplay svg{ width:26px; height:26px; fill:#3a2a10; margin-left:3px; }
.player .spin{ display:none; position:absolute; left:50%; top:46%; transform:translate(-50%,-50%); z-index:3;
               width:46px; height:46px; border-radius:50%; border:4px solid rgba(255,255,255,.18);
               border-top-color:var(--gold); animation:rot 1s linear infinite; }
@keyframes rot{ to{ transform:translate(-50%,-50%) rotate(360deg); } }
.player.loading .spin{ display:block; }
.player.loading .bigplay{ display:none; }
.player .pbar{ position:absolute; left:14px; right:14px; bottom:12px; z-index:3; height:4px; border-radius:2px;
               background:rgba(255,255,255,.18); }
.player .pbar i{ display:block; width:12%; height:100%; border-radius:2px; background:var(--gold); }
.player .ptime{ position:absolute; right:16px; bottom:24px; z-index:3; font-size:11px; color:#ddd; }

.gate{ display:none; position:absolute; inset:0; z-index:5; background:rgba(8,8,14,.9); backdrop-filter:blur(3px);
       align-items:center; justify-content:center; text-align:center; padding:20px; }
.gate.open{ display:flex; }
.gate h3{ font-size:18px; font-weight:800; margin-bottom:8px; }
.gate p{ font-size:12.5px; color:var(--sub); margin-bottom:16px; line-height:1.6; }

.wt-title{ font-size:18px; font-weight:800; line-height:1.4; margin:4px 2px 8px; }
.wt-sub{ font-size:12.5px; color:var(--sub); margin:0 2px 14px; }
.eps{ display:flex; gap:8px; overflow-x:auto; padding:2px 2px 16px; -webkit-overflow-scrolling:touch; }
.eps::-webkit-scrollbar{ display:none; }
.eps .ep{ flex:none; padding:8px 16px; border-radius:10px; background:#1b1b28; border:1px solid #2a2a3a;
          font-size:13px; font-weight:600; color:var(--sub); }
.eps .ep.on{ background:#152a21; color:var(--green); border-color:#1f4d3a; }

/* ===== 领取页 ===== */
.cl-wrap{ min-height:70vh; display:flex; align-items:center; justify-content:center; }
.cl-card{ width:100%; max-width:420px; border-radius:20px; background:#15151f; border:1px solid #2a2a3d;
          padding:36px 24px 26px; text-align:center; }
.cl-num{ display:inline-flex; align-items:center; justify-content:center; min-width:96px; height:96px; padding:0 18px;
         border-radius:22px; background:linear-gradient(160deg,#f3cf8d,#d9a552); color:#3a2a10;
         font-size:34px; font-weight:900; box-shadow:0 8px 30px rgba(233,185,106,.35); margin-bottom:16px; }
.cl-card h3{ font-size:19px; font-weight:800; margin-bottom:8px; }
.cl-card p{ font-size:13px; color:var(--sub); line-height:1.6; margin-bottom:20px; }
.cl-card .btn-gold{ width:100%; padding:13px; font-size:15px; }
.cl-card .later{ display:block; margin:14px auto 0; color:#66667d; font-size:12.5px; }
.cl-check{ display:none; margin:0 auto 14px; width:58px; height:58px; border-radius:50%; background:#152a21;
           align-items:center; justify-content:center; }
.cl-check svg{ width:26px; height:26px; stroke:var(--green); }
.cl-done .cl-num{ display:none; }
.cl-done .cl-check{ display:flex; }

/* ===== 下载前问卷 ===== */
.survey-ov{ display:none; position:fixed; inset:0; z-index:90; background:rgba(6,6,12,.86); backdrop-filter:blur(8px);
            padding:18px 14px calc(18px + env(safe-area-inset-bottom, 0px)); overflow:auto; }
.survey-ov.open{ display:flex; align-items:flex-start; justify-content:center; }
.survey-card{ position:relative; width:100%; max-width:460px; margin:auto; background:#15151f; border:1px solid #2a2a3d;
              border-radius:20px; padding:28px 20px 22px; }
.survey-x{ position:absolute; right:12px; top:10px; width:32px; height:32px; border:none; background:transparent;
           color:#888; font-size:26px; cursor:pointer; line-height:1; }
.survey-card h3{ font-size:20px; font-weight:800; margin:0 24px 8px 0; }
.survey-desc{ color:var(--sub); font-size:13px; line-height:1.55; margin-bottom:16px; }
.sv-q{ margin-bottom:16px; }
.sv-q-t{ font-size:14.5px; font-weight:650; margin-bottom:8px; line-height:1.4; }
.sv-q-t i{ color:var(--pink); font-style:normal; }
.sv-input{ width:100%; background:#101018; border:1px solid #2a2a3d; color:var(--txt); border-radius:12px;
           padding:11px 12px; font-size:15px; font-family:inherit; }
.sv-opt{ display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:12px; background:#101018;
         border:1px solid #2a2a3d; margin-bottom:8px; font-size:14px; cursor:pointer; }
.sv-opt:has(input:checked){ border-color:var(--gold); background:#1a1810; }
.sv-opt input{ accent-color:var(--gold); }
.survey-err{ color:var(--pink); font-size:13px; min-height:18px; margin:4px 0 10px; }
.survey-submit{ width:100%; padding:13px; font-size:15px; }
.survey-submit:disabled{ opacity:.6; }
.safari-badge{ display:inline-block; background:#1b1b28; border:1px solid #2a2a3a; color:var(--gold); font-size:11px;
               font-weight:700; letter-spacing:1.5px; text-transform:uppercase; padding:5px 10px; border-radius:999px; margin-bottom:12px; }
.safari-steps{ margin:16px 0 12px; padding-left:18px; color:var(--sub); font-size:13px; line-height:1.7; }
.safari-steps b{ color:var(--txt); }
.safari-copy{ display:block; width:100%; background:transparent; border:none; color:var(--gold); font-size:13px;
              font-weight:600; cursor:pointer; padding:8px; }

@media (max-width:640px){
  body{ padding:10px 12px calc(86px + env(safe-area-inset-bottom, 0px)); }
  .slide h1{ font-size:20px; max-width:56%; }
  .slide p{ font-size:12px; max-width:54%; }
  .slide{ min-height:210px; }
  .mini{ width:92px; height:134px; }
  .mini.m2{ width:78px; height:112px; margin-right:-26px; }
  .grid{ gap:10px; }
  .card .meta h3{ font-size:12.5px; }
}
