.video-center{background:#f4f7f5;color:#17362a}
html.video-player-open,html.video-player-open body{overflow:hidden}
.video-shell{width:min(1320px,calc(100% - 96px));margin:0 auto}
.video-intro{padding:58px 0 0;background:linear-gradient(180deg,#eef4f1 0,#f4f7f5 100%)}
.video-breadcrumb{display:flex;gap:10px;align-items:center;color:#87968f;font-size:13px}
.video-breadcrumb a{color:#587168;text-decoration:none}
.video-breadcrumb a:hover{color:#107553}
.video-breadcrumb strong{color:#17362a;font-weight:600}
.video-intro-row{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.65fr);gap:80px;align-items:end;padding:64px 0 50px}
.video-eyebrow{margin:0 0 18px;color:#16845d;font-size:12px;font-weight:700;letter-spacing:.19em}
.video-intro h2{margin:0;font-size:clamp(40px,4.7vw,68px);font-weight:500;letter-spacing:-.055em;line-height:1.08}
.video-intro-copy{margin:0 0 7px;color:#667b72;font-size:16px;line-height:1.9}
.video-filters{display:flex;gap:10px;overflow:auto;padding:0 0 28px;scrollbar-width:none}
.video-filters::-webkit-scrollbar{display:none}
.video-filters button{flex:none;padding:10px 18px;border:1px solid #cddbd4;border-radius:999px;background:rgba(255,255,255,.72);color:#526c61;font:600 13px/1.2 Inter,"PingFang SC",sans-serif;cursor:pointer;transition:background .22s,border-color .22s,color .22s}
.video-filters button:hover,.video-filters button:focus-visible{border-color:#16845d;color:#0f7552;outline:0}
.video-filters button.is-active{border-color:#116f50;background:#116f50;color:#fff}
.video-library{padding:68px 0 120px;background:#fff}
.video-library-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:30px}
.video-library-head h2{margin:0;font-size:30px;font-weight:500;letter-spacing:-.03em}
.video-library-head p{margin:0;color:#7b8d85;font-size:13px}
.video-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 22px}
.video-card{display:block;width:100%;overflow:hidden;padding:0;border:1px solid #dde7e2;border-radius:18px;background:#fff;box-shadow:0 14px 36px rgba(23,74,54,.055);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.video-card-featured{grid-column:span 2}
.video-card:hover{transform:translateY(-5px);border-color:#b9d9cb;box-shadow:0 23px 48px rgba(23,74,54,.105)}
.video-poster{position:relative;aspect-ratio:16/9;overflow:hidden;background:#dce7e1}
.video-poster::after{position:absolute;inset:0;content:"";background:linear-gradient(180deg,transparent 54%,rgba(5,31,22,.58) 100%);pointer-events:none}
.video-poster img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.video-poster-placeholder{display:block;width:100%;height:100%;background:linear-gradient(135deg,#143e29,#2d8c50)}
.video-card:hover .video-poster img{transform:scale(1.035)}
.video-play{position:absolute;z-index:2;left:24px;bottom:20px;width:46px;height:46px;border:1px solid rgba(255,255,255,.65);border-radius:50%;background:rgba(255,255,255,.94);box-shadow:0 8px 22px rgba(0,0,0,.14)}
.video-play::after{position:absolute;top:50%;left:52%;width:0;height:0;content:"";border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:9px solid #176f52;transform:translate(-38%,-50%)}
.video-duration{position:absolute;z-index:2;right:17px;bottom:17px;padding:7px 11px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(8,43,31,.72);color:#fff;font-size:11px;font-weight:600;letter-spacing:.04em;backdrop-filter:blur(8px)}
.video-card-body{padding:22px 23px 25px}
.video-card-body>p{display:flex;align-items:center;justify-content:space-between;margin:0 0 15px;color:#799087;font-size:11px}
.video-card-body>p span{color:#14815a;font-weight:700;letter-spacing:.06em}
.video-card-body h3{margin:0 0 11px;color:#18382c;font-size:20px;font-weight:600;line-height:1.45;letter-spacing:-.025em;white-space:normal;word-break:break-word;overflow-wrap:anywhere}
.video-card-featured .video-card-body h3{font-size:25px}
.video-card-body small{display:block;color:#74867e;font-size:13px;line-height:1.72}
.video-card[hidden]{display:none}
.video-card:focus-visible{outline:3px solid rgba(20,129,90,.28);outline-offset:4px}
.video-card:disabled{cursor:not-allowed;opacity:.66}

/* 电脑端课程卡片：封面统一高度，文字区按标题长度自然伸展。 */
@media(min-width:901px){
  .video-card:not(.video-card-featured){display:flex!important;flex-direction:column;align-self:start;align-content:start;justify-content:flex-start}
  .video-card:not(.video-card-featured) .video-poster{height:clamp(190px,14vw,224px);aspect-ratio:auto}
  .video-card:not(.video-card-featured) .video-card-body{flex:1 1 auto}
}

.video-player-dialog{position:fixed;inset:50% auto auto 50%;width:min(var(--player-max-width,1380px),calc(100vw - 56px));max-width:none;max-height:calc(100dvh - 20px);margin:0;padding:0;border:0;border-radius:22px;background:transparent;color:#fff;box-shadow:0 42px 130px rgba(0,31,23,.62);box-sizing:border-box;overflow:hidden;opacity:1;transform:translate(-50%,-50%) scale(.8);transform-origin:center}
.video-player-dialog::backdrop{background:radial-gradient(circle at 50% 45%,rgba(12,68,49,.38),rgba(2,17,13,.88) 70%);backdrop-filter:blur(14px)}
.video-player-shell{position:relative;isolation:isolate;overflow:hidden;padding:14px;border-radius:21px;background:radial-gradient(circle at 9% 0,rgba(27,203,128,.24),transparent 32%),linear-gradient(135deg,#008154 0,#006842 48%,#005837 100%)}
.video-player-shell::after{display:none}
.video-player-orbit{position:absolute;z-index:-1;top:-112px;right:-90px;width:360px;height:360px;border:2px solid rgba(48,230,153,.34);border-radius:50%;box-shadow:0 0 0 28px rgba(48,230,153,.055),0 0 0 60px rgba(48,230,153,.035);pointer-events:none}
.video-player-head{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:34px;padding:12px 24px 24px}
.video-player-head>div{min-width:0;flex:1}
.video-player-head small{display:flex;align-items:center;gap:10px;margin-bottom:13px;color:#6ff2bc;font-size:12px;font-weight:800;letter-spacing:.08em}
.video-player-head small i{display:block;width:14px;height:14px;border-radius:50%;background:#1bf0a1;box-shadow:0 0 20px rgba(27,240,161,.65)}
.video-player-head h2{max-width:1100px;margin:0;color:#fff;font-size:clamp(24px,2.35vw,34px);font-weight:700;line-height:1.38;letter-spacing:-.025em;white-space:normal;word-break:break-word;overflow-wrap:anywhere;text-wrap:balance;text-shadow:0 2px 16px rgba(0,31,20,.2)}
.video-player-close{flex:0 0 56px;width:56px;height:56px;margin-top:4px;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:rgba(255,255,255,.075);color:#fff;font-size:34px;line-height:1;cursor:pointer;backdrop-filter:blur(8px);transition:background .2s ease,border-color .2s ease,transform .2s ease}
.video-player-close:hover{border-color:rgba(255,255,255,.48);background:rgba(255,255,255,.15);transform:scale(1.04)}
.video-player-close:focus-visible,.video-player-controls button:focus-visible,.video-player-controls input:focus-visible{outline:3px solid rgba(111,242,188,.7);outline-offset:3px}
.video-player-stage{position:relative;overflow:hidden;aspect-ratio:var(--video-aspect,16/9);border:1px solid rgba(91,234,174,.28);border-radius:17px;background-color:#020b08;background-image:var(--player-poster,none);background-position:center;background-size:cover;background-repeat:no-repeat;box-shadow:0 18px 48px rgba(0,32,23,.28),inset 0 0 0 1px rgba(255,255,255,.02)}
.video-player-stage video{display:block;width:100%;height:100%;object-fit:contain;opacity:0;cursor:pointer}
.video-player-stage.has-video-frame video{opacity:1}
.video-player-center-play{display:none;position:absolute;z-index:4;top:50%;left:50%;width:82px;height:82px;padding:0;border:1px solid rgba(255,255,255,.75);border-radius:50%;background:rgba(255,255,255,.94);box-shadow:0 14px 38px rgba(0,35,25,.3);transform:translate(-50%,-50%);cursor:pointer}
.video-player-center-play span{position:absolute;top:50%;left:53%;width:0;height:0;border-top:13px solid transparent;border-bottom:13px solid transparent;border-left:20px solid #087651;transform:translate(-40%,-50%)}
.video-player-stage[data-player-stage=ready]:not(.is-playing) .video-player-center-play{display:block}
.video-player-center-play:focus-visible{outline:4px solid rgba(111,242,188,.85);outline-offset:4px}
.video-player-loading{display:none;position:absolute;z-index:5;inset:0;align-items:center;justify-content:center;padding:24px;background:rgba(0,15,11,.58);color:#fff;text-align:center}
.video-player-loading b{font-size:18px;font-weight:600;letter-spacing:.04em;text-shadow:0 2px 12px rgba(0,0,0,.45)}
.video-player-stage[data-player-stage=loading] .video-player-loading,.video-player-stage[data-player-stage=error] .video-player-loading{display:flex}
.video-player-controls{position:absolute;z-index:3;right:0;bottom:0;left:0;height:74px;display:flex;align-items:center;gap:18px;padding:0 28px;border-top:1px solid rgba(93,204,158,.3);background:linear-gradient(180deg,rgba(3,22,16,.04),rgba(2,16,12,.94) 42%,rgba(2,16,12,.98));box-sizing:border-box;opacity:0;transform:translateY(100%);pointer-events:none;transition:opacity .22s ease,transform .26s cubic-bezier(.2,.8,.2,1)}
.video-player-stage:hover .video-player-controls,.video-player-stage:focus-within .video-player-controls{opacity:1;transform:translateY(0);pointer-events:auto}
.video-player-controls button{position:relative;flex:none;width:34px;height:40px;padding:0;border:0;background:transparent;color:#fff;cursor:pointer}
.video-control-play{font-size:26px!important;font-weight:800}
.video-control-play span{display:block;line-height:1}
.video-control-time{flex:none;min-width:100px;color:#fff;font:600 14px/1 Inter,"PingFang SC",sans-serif;white-space:nowrap}
.video-player-controls input[type=range]{height:4px;margin:0;border:0;border-radius:999px;outline:0;background:linear-gradient(90deg,#2be29c 0 var(--progress,0%),rgba(255,255,255,.24) var(--progress,0%) 100%);cursor:pointer;appearance:none}
.video-player-controls input[type=range]::-webkit-slider-thumb{width:18px;height:18px;border:0;border-radius:50%;background:#2be29c;box-shadow:0 2px 10px rgba(43,226,156,.32);appearance:none}
.video-control-progress{min-width:80px;flex:1}
.video-control-mute{display:flex;align-items:center;justify-content:center;gap:1px;font-size:10px;font-weight:700}
.video-control-mute span{width:11px;height:11px;border-radius:2px;background:#fff;color:transparent;clip-path:polygon(0 32%,38% 32%,100% 0,100% 100%,38% 68%,0 68%)}
.video-control-mute i{font-style:normal;font-size:10px;letter-spacing:-3px}
.video-control-mute.is-muted{opacity:.55}
.video-control-volume{flex:0 1 108px;width:108px;background:linear-gradient(90deg,#2be29c 0 var(--volume,100%),rgba(255,255,255,.24) var(--volume,100%) 100%)!important}
.video-control-pip span{position:absolute;inset:9px 5px;border:2px solid currentColor;border-radius:3px}.video-control-pip span::after{position:absolute;right:3px;bottom:3px;width:11px;height:7px;content:"";background:#fff;border-radius:1px}
.video-control-fullscreen span::before,.video-control-fullscreen span::after{position:absolute;inset:8px 4px;content:"";border-color:#fff;border-style:solid}.video-control-fullscreen span::before{border-width:3px 0 0 3px}.video-control-fullscreen span::after{border-width:0 3px 3px 0}
@keyframes video-player-spin{to{transform:rotate(360deg)}}
.video-empty{padding:82px 20px;border:1px dashed #cddbd4;border-radius:18px;color:#82938b;text-align:center}
.video-empty[hidden]{display:none}
@media(max-width:900px){.video-shell{width:calc(100% - 40px)}.video-intro-row{grid-template-columns:1fr;gap:28px;padding:48px 0 40px}.video-intro-copy{max-width:650px}.video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.video-card-featured{grid-column:span 2}}
@media(max-width:760px){.video-player-dialog{width:min(var(--player-max-width,1380px),calc(100vw - 12px));max-height:calc(100dvh - 12px);border-radius:16px}.video-player-shell{padding:7px;border-radius:15px}.video-player-orbit{top:-82px;right:-74px;width:220px;height:220px}.video-player-head{gap:12px;padding:10px 9px 14px}.video-player-head small{gap:6px;margin-bottom:7px;font-size:9px}.video-player-head small i{width:8px;height:8px}.video-player-head h2{font-size:clamp(16px,4.8vw,21px);line-height:1.42;letter-spacing:-.015em;text-wrap:pretty}.video-player-close{width:40px;height:40px;flex-basis:40px;margin-top:0;font-size:25px}.video-player-stage{border-radius:11px}.video-player-center-play{width:62px;height:62px}.video-player-center-play span{border-top-width:10px;border-bottom-width:10px;border-left-width:16px}.video-player-loading span{width:34px;height:34px;border-width:3px}.video-player-loading b{font-size:12px}.video-player-controls{height:52px;gap:10px;padding:0 12px}.video-player-controls button{width:28px;height:34px}.video-control-play{font-size:20px!important}.video-control-time{min-width:78px;font-size:11px}.video-control-volume,.video-control-pip{display:none}}
@media(hover:none),(pointer:coarse){.video-player-controls{opacity:1;transform:translateY(0);pointer-events:auto}}
@media(max-width:620px){.video-intro{padding-top:38px}.video-intro h2{font-size:38px}.video-library{padding:50px 0 82px}.video-grid{grid-template-columns:1fr;gap:20px}.video-card-featured{grid-column:auto}.video-card-featured .video-card-body h3{font-size:20px}.video-library-head h2{font-size:26px}.video-play{left:18px;bottom:16px;width:42px;height:42px}.video-duration{right:14px;bottom:14px}.video-card-body{padding:20px}}
@media(prefers-reduced-motion:reduce){.video-filters button,.video-card,.video-poster img,.video-player-stage video{transition:none}.video-card:hover{transform:none}.video-card:hover .video-poster img{transform:none}.video-player-loading span{animation:none}}

/* 单节主课程：左封面右文案；标题按语义换行，封面不再压暗。 */
.video-card-featured{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,.9fr);align-items:stretch}
.video-card-featured .video-poster{min-height:420px;aspect-ratio:auto}
.video-card-featured .video-poster::after{background:linear-gradient(180deg,transparent 72%,rgba(5,31,22,.22) 100%)}
.video-card-featured .video-card-body{display:flex;flex-direction:column;justify-content:center;padding:clamp(28px,3.6vw,52px) clamp(28px,3.4vw,48px)}
.video-card-featured .video-card-body>p{margin-bottom:16px;font-size:12px}
.video-card-featured .video-card-body h3{margin-bottom:16px;font-size:clamp(22px,1.85vw,28px);line-height:1.4;letter-spacing:-.02em;white-space:normal;word-break:break-word;overflow-wrap:anywhere;text-wrap:pretty}
.video-card-featured .video-card-body small{max-width:36ch;font-size:14px;line-height:1.8}
@media(max-width:900px){.video-card-featured{grid-column:1 / -1;grid-template-columns:1fr}.video-card-featured .video-poster{min-height:0;aspect-ratio:16/9}}
@media(max-width:620px){.video-card-featured{grid-column:auto}.video-card-featured .video-card-body{padding:26px 22px}.video-card-featured .video-card-body h3{font-size:22px}.video-card-featured .video-card-body small{font-size:14px}}

/* 确保窄屏主课程封面占满卡片宽度，图片裁切填充封面区域。 */
.video-poster{width:100%}
.video-poster img{position:absolute;inset:0;display:block;width:100%;max-width:none;height:100%;object-fit:cover}
@media(max-width:900px){.video-card-featured{grid-template-columns:minmax(0,1fr)!important}.video-card-featured .video-poster{grid-column:1/-1;width:100%}}

/* Guest five-minute preview prompt, also visible inside the fullscreen stage. */
.video-preview-gate{position:absolute;inset:0;z-index:8;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;background:rgba(7,24,18,.94);color:#fff;text-align:center}
.video-preview-gate[hidden]{display:none}
.video-preview-gate strong{font-size:clamp(20px,3vw,30px);line-height:1.3}
.video-preview-gate p{margin:0;max-width:420px;font-size:15px;line-height:1.7;color:#d6e8e0}
.video-preview-signin{display:inline-flex;padding:12px 24px;border-radius:8px;background:#2be29c;color:#103e2b;font-weight:700;text-decoration:none}
.video-preview-gate button{border:0;background:transparent;color:#d6e8e0;text-decoration:underline;cursor:pointer;font:inherit}
.video-player-stage.is-preview-ended .video-player-center-play,.video-player-stage.is-preview-ended .video-player-loading{display:none}

.video-preview-notice{display:flex;flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:4px 12px;max-width:900px;margin-top:10px;padding:0;border:0;border-radius:0;background:transparent;color:#d7eee1;font-size:13px;line-height:1.6;text-align:left}
.video-preview-notice[hidden],.video-preview-countdown[hidden]{display:none}
.video-preview-notice.is-limited{color:#ffe5a9}
.video-preview-notice a{color:#8aefbb;font-weight:700;white-space:nowrap;text-decoration:underline}
.video-preview-notice a[hidden]{display:none}
.video-preview-countdown{position:absolute;z-index:6;top:14px;left:14px;padding:6px 10px;border-radius:7px;background:rgba(5,28,20,.8);color:#fff;font-size:13px;line-height:1.5;pointer-events:none}
@media(max-width:760px){.video-preview-notice{font-size:12px;margin-top:8px;padding:0}.video-preview-countdown{top:8px;left:8px;font-size:11px}}
