* { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { max-width: 750px; margin: 0 auto; background: #030303; color: #fff; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Helvetica Neue", Arial, sans-serif; -webkit-font-smoothing: antialiased; -webkit-user-select: none; user-select: none; }
body { min-height: 100vh; overflow-x: hidden; }
img { display: block; max-width: 100%; -webkit-user-drag: none; }
button { font-family: inherit; }
input, textarea { -webkit-user-select: text; user-select: text; }
::-webkit-scrollbar { display: none; }
.flex-center { display: flex; align-items: center; justify-content: center; }

#skeleton { min-height: 100vh; padding: 0.2rem 0.24rem; }
.sk-block { background: linear-gradient(90deg, #1c1c1c 25%, #2a2a2a 37%, #1c1c1c 63%); background-size: 400% 100%; animation: sk 1.4s ease infinite; border-radius: 0.12rem; }
@keyframes sk { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }
.sk-hero { width: 100%; aspect-ratio: 16/9; border-radius: 0; }
.sk-title { height: 0.5rem; width: 60%; margin: 0.3rem 0 0.2rem; }
.sk-tags { display: flex; gap: 0.16rem; margin-bottom: 0.24rem; }
.sk-tags .sk-block { height: 0.4rem; width: 0.8rem; border-radius: 999px; }
.sk-line { height: 0.28rem; width: 100%; margin-bottom: 0.12rem; }
.sk-vip { height: 2.4rem; width: 100%; margin: 0.32rem 0; border-radius: 0.24rem; }
.sk-cast { display: flex; gap: 0.2rem; margin-top: 0.3rem; }
.sk-cast .sk-block { width: 1.4rem; height: 1.4rem; border-radius: 0.12rem; flex-shrink: 0; }

.player-page { min-height: 100vh; background: #030303; padding-bottom: calc(0rem + env(safe-area-inset-bottom)); color: #fff; }

.sticky-box { position: relative; top: 0; left: 0; right: 0; z-index: 50; width: 100%; margin-bottom: 0.3rem; background: #000; aspect-ratio: 16 / 9;}

.empty-tip { padding: 1rem 0.24rem; text-align: center; color: rgba(255,255,255,.4); font-size: 0.28rem; }

/* 多行截断文本（展开/收起） */
.desc-label { font-size: 0.28rem; color: rgba(255,255,255,.9); margin: 0.24rem 0 0.1rem; font-weight: 600; }
.text-ellipsis { position: relative; font-size: 0.26rem; color: rgba(255,255,255,.7); line-height: 1.6; }
.text-ellipsis__content { word-break: break-word; }
.text-ellipsis__content.clamped { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.text-ellipsis__content.expanded { display: block; }
.text-ellipsis__action { color: #e50914; cursor: pointer; font-size: 0.26rem; }
/* 截断状态：按钮在右下角，带渐变背景遮盖文字 */
.text-ellipsis.is-clamped .text-ellipsis__action { position: absolute; right: 0; bottom: 0; padding-left: 0.32rem; background: linear-gradient(to right, rgba(3,3,3,0), #030303 40%); }
/* 展开状态：按钮在文字末尾 */
.text-ellipsis.is-expanded .text-ellipsis__action { display: inline-block; margin-left: 0.08rem; }
.name-box { width: 100%; max-width: 100%; overflow: hidden; }

/* 自定义 Toast */
.app-toast { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: rgba(0,0,0,.85); color: #fff; padding: 0.2rem 0.32rem; border-radius: 0.12rem; font-size: 0.28rem; line-height: 1.5; z-index: 100000; opacity: 0; pointer-events: none; transition: opacity .3s; max-width: 80%; text-align: center; word-break: break-word; }
.app-toast.show { opacity: 1; }

/* 自定义 Loading */
.app-loading { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; background: transparent; }
.app-loading__spinner { width: 0.6rem; height: 0.6rem; border: 0.06rem solid rgba(255,255,255,.2); border-top-color: #fff; border-radius: 50%; animation: app-spin .8s linear infinite; }
@keyframes app-spin { to { transform: rotate(360deg); } }

/* 自定义 Dialog */
.app-dialog { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; background: rgba(0,0,0,.7); }
.app-dialog__box { width: 5.4rem; background: #1c1c1c; border-radius: 0.24rem; padding: 0.4rem 0.32rem 0.24rem; text-align: center; }
.app-dialog__title { font-size: 0.34rem; font-weight: 600; color: #fff; margin-bottom: 0.16rem; }
.app-dialog__message { font-size: 0.28rem; color: rgba(255,255,255,.8); line-height: 1.6; margin-bottom: 0.32rem; word-break: break-word; }
.app-dialog__buttons { display: flex; gap: 0.16rem; }
.app-dialog__btn { flex: 1; height: 0.8rem; border-radius: 999px; font-size: 0.28rem; border: none; cursor: pointer; }
.app-dialog__btn--cancel { background: rgba(255,255,255,.1); color: rgba(255,255,255,.7); }
.app-dialog__btn--confirm { background: #e50914; color: #fff; }

/* in-app 浏览器引导（全屏引导，1:1 还原设计稿） */
.browser-guide { position: fixed; inset: 0; z-index: 100001; background: linear-gradient(180deg, #460101 0%, #170000 60%, #100000 100%); display: flex; align-items: flex-start; justify-content: center; padding: 0.6rem 0.4rem; overflow-y: auto; -webkit-overflow-scrolling: touch; }
.browser-guide__content { width: 100%; max-width: 6.6rem; padding: 0.4rem 0 0.6rem; }
.browser-guide__header { text-align: center; margin-bottom: 0.5rem; }
.browser-guide__title { font-size: 0.36rem; font-weight: 700; color: #fff; line-height: 1.4; margin-bottom: 0.2rem;  }
.browser-guide__subtitle { font-size: 0.3rem; color: rgba(255,255,255,.85); line-height: 1.4; margin-bottom: 0.36rem; }
.browser-guide__icons { display: flex; align-items: center; justify-content: center; gap: 0.4rem; }
.browser-guide__icon { width: 0.8rem; height: 0.8rem; object-fit: contain; }
.browser-guide__phone { position: relative; width: 3.4rem; margin: 0.4rem auto 0.5rem;  }
.browser-guide__phone-screen { width: 100%; display: block; }
.browser-guide__steps { padding: 0.36rem 0.48rem; background: #350101; border: 0.06rem solid #701a1a; border-radius: 0.46rem; margin: 0.2rem 0; }
.browser-guide__step { display: flex; align-items: center; gap: 0.28rem; margin-bottom: 0.32rem; }
.browser-guide__step:last-child { margin-bottom: 0; }
.browser-guide__step-num { flex-shrink: 0; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: linear-gradient(135deg, #e50914 0%, #ff3d47 100%); color: #fff; font-size: 0.26rem; font-weight: 700; display: flex; align-items: center; justify-content: center; box-shadow: 0 0.12rem 0.32rem rgba(229,9,20,.4); }
.browser-guide__step-text { flex: 1; font-size: 0.3rem; color: #fff; line-height: 1.5; }
.browser-guide__footer { display: flex; align-items: center; justify-content: center; gap: 0.12rem; font-size: 0.24rem; color: rgba(255,255,255,.6); margin-top: 0.48rem; line-height: 1.5; }
.browser-guide__footer-icon { width: 0.28rem; height: 0.28rem; flex-shrink: 0; opacity: .45; }