:root {
    --bg:#f3f6f8;
    --ink:#142735;
    --muted:#617481;
    --line:#dfe7ec;
    --mint:#b9f46b;
    --navy:#0b2636;
    --white:#fff;
}
* {
    box-sizing:border-box;
}
html {
    scroll-behavior:smooth;
}
body {
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:Arial,"Microsoft YaHei",sans-serif;
    font-size:16px;
    line-height:1.75;
}
a {
    color:inherit;
    text-decoration:none;
}
a:hover {
    color:#26705f;
}
button,input {
    font:inherit;
}
button,a {
    -webkit-tap-highlight-color:transparent;
}
button {
    cursor:pointer;
}
button:focus-visible,a:focus-visible,input:focus-visible {
    outline:3px solid #287fcb;
    outline-offset:4px;
}
img {
    display:block;
    max-width:100%;
    object-fit:cover;
}
h1,h2,h3,p,figure {
    margin:0;
}
h1,h2,h3 {
    line-height:1.45;
}
h2 {
    font-size:25px;
    letter-spacing:-.6px;
}
h3 {
    font-size:17px;
}
p {
    color:var(--muted);
}
small,.fine {
    font-size:12px;
    color:var(--muted);
}
.header {
    background:white;
    border-bottom:1px solid var(--line);
}
.header-inner,main,.footer-inner {
    width:calc(100% - 48px);
    max-width:1200px;
    margin:auto;
}
.header-inner {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    padding-top:20px;
    gap:16px;
}
.brand {
    flex-shrink:0;
}
.brand img {
    object-fit:contain;
}
.header-note {
    margin-left:auto;
    font-size:14px;
    color:var(--muted);
}
#main-nav {
    display:flex;
    justify-content:space-between;
    gap:6px;
    width:100%;
    padding:10px 0 14px;
}
#main-nav a {
    display:flex;
    align-items:center;
    gap:7px;
    padding:8px 10px;
    border-radius:7px;
    font-size:14px;
    white-space:nowrap;
}
#main-nav a[aria-current] {
    background:var(--navy);
    color:white;
}
#main-nav a span {
    font-size:19px;
}
.menu-button {
    display:none;
    background:none;
    border:1px solid var(--line);
    border-radius:6px;
    padding:8px;
}
.hero {
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    background:var(--navy);
    color:white;
    margin-top:28px;
    border-radius:18px;
    overflow:hidden;
}
.hero-copy {
    padding:38px 32px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
}
.eyebrow {
    font-size:12px;
    letter-spacing:1px;
    color:#327969;
    font-weight:700;
}
.hero .eyebrow {
    color:var(--mint);
}
.hero h1 {
    font-size:30px;
    margin:20px 0 14px;
    letter-spacing:1px;
    max-width:440px;
}
.hero p {
    color:#b9cad3;
    font-size:14px;
}
.hero-foot {
    margin-top:25px;
    font-size:12px;
    color:#c1d2d9;
}
.hero-foot b {
    font-size:22px;
    color:white;
    margin-right:4px;
}
.hero-foot span {
    margin:0 15px;
}
.hero-feature {
    min-width:0;
    position:relative;
    background:#174157;
}
.hero-feature .cover {
    height:100%;
    border-radius:0;
}
.hero-feature img {
    height:100%;
    aspect-ratio:16/10;
}
.hero-feature .cover:after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(0deg,rgba(4,20,30,.98),transparent 80%);
}
.hero-feature .duration {
    top:20px;
    bottom:auto;
}
.feature-caption {
    position:absolute;
    bottom:25px;
    left:26px;
    right:26px;
    pointer-events:none;
}
.feature-caption a {
    pointer-events:auto;
}
.feature-caption h2 {
    font-size:30px;
    margin:4px 0 8px;
}
.feature-caption p {
    font-size:13px;
}
.hero-feature .play-icon {
    top:34%;
}
.action-row {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:12px;
    margin-top:23px;
}
.button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    padding:9px 18px;
    border:1px solid #8499a5;
    border-radius:7px;
    background:transparent;
    color:inherit;
    font-size:14px;
}
.primary {
    background:var(--mint);
    border-color:var(--mint);
    color:#173427;
    font-weight:700;
}
.section {
    margin-top:48px;
}
.section-heading {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    margin-bottom:22px;
}
.section-heading h2 span {
    color:#24705f;
    margin-right:5px;
}
.section-heading p {
    margin-top:5px;
    font-size:14px;
}
.more {
    font-size:14px;
    white-space:nowrap;
}
.grid {
    display:grid;
    gap:20px;
}
.four {
    grid-template-columns:repeat(4,minmax(0,1fr));
}
.three {
    grid-template-columns:repeat(3,minmax(0,1fr));
}
.two {
    grid-template-columns:repeat(2,minmax(0,1fr));
}
.card {
    min-width:0;
}
.cover {
    display:block;
    position:relative;
    overflow:hidden;
    border-radius:10px;
    background:#294854;
    isolation:isolate;
}
.cover img {
    width:100%;
    aspect-ratio:16/9;
    height:auto;
    transition:transform .3s ease;
}
.cover:hover img {
    transform:scale(1.035);
}
.play-icon {
    display:grid;
    place-items:center;
    position:absolute;
    width:40px;
    height:40px;
    border-radius:50%;
    background:#ffffffde;
    color:#143d45;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);
    font-size:13px;
    z-index:1;
    box-shadow:0 3px 20px #001a3040;
}
.duration {
    position:absolute;
    right:8px;
    bottom:8px;
    color:white;
    background:#082231d9;
    border-radius:4px;
    padding:2px 7px;
    font-size:12px;
    z-index:1;
}
.card-text {
    padding:12px 1px 0;
}
.card h3 {
    margin:4px 0 6px;
    min-height:25px;
}
.card p {
    font-size:13px;
    line-height:1.65;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
    min-height:43px;
}
.categories {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
}
.category {
    background:white;
    border:1px solid var(--line);
    padding:20px;
    border-radius:9px;
    display:grid;
    grid-template-columns:38px 1fr;
    gap:5px 10px;
}
.category-icon {
    font-size:26px;
    color:#226b67;
    grid-row:span 2;
}
.category p {
    font-size:12px;
    line-height:1.7;
}
.category:nth-child(2n) .category-icon {
    color:#956523;
}
.update-list {
    border-top:2px solid var(--ink);
}
.update-list article {
    display:grid;
    grid-template-columns:85px 1fr 100px 70px;
    gap:20px;
    align-items:center;
    padding:17px 0;
    border-bottom:1px solid var(--line);
}
.update-list time {
    font-size:20px;
    font-weight:bold;
}
.update-list time span {
    display:block;
    font-size:12px;
    color:#38866e;
    font-weight:normal;
}
.update-list p {
    font-size:13px;
}
.update-list a:last-child {
    font-size:14px;
}
.pill {
    font-size:12px;
    background:#e3ecee;
    text-align:center;
    padding:4px;
    border-radius:5px;
}
.wide-cards .card {
    background:white;
    border-radius:10px;
    display:grid;
    grid-template-columns:1fr 1fr;
    overflow:hidden;
}
.wide-cards .cover {
    border-radius:0;
}
.wide-cards .cover img {
    height:100%;
}
.wide-cards .card-text {
    padding:18px;
}
.wide-cards .card p {
    -webkit-line-clamp:3;
}
.short-section {
    background:#142f3e;
    border-radius:14px;
    padding:28px;
    color:white;
}
.short-section p,.short-section .more {
    color:#b8ccd6;
}
.short-section h2 span {
    color:var(--mint);
}
.short-strip {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:20px;
}
.short-strip article {
    position:relative;
    min-width:0;
}
.short-num {
    font-size:34px;
    color:#7998a6;
    font-weight:bold;
}
.short-strip h3 {
    margin-top:12px;
}
.short-strip p {
    font-size:13px;
    margin-top:7px;
}
.animation-section {
    border-top:3px solid #72a8ab;
    padding-top:25px;
}
.ranking {
    margin:0;
    padding:0;
    display:grid;
    grid-template-columns:1fr 1fr;
    column-gap:38px;
    list-style:none;
}
.ranking li {
    display:grid;
    grid-template-columns:40px 1fr 70px;
    gap:15px;
    align-items:center;
    padding:18px 0;
    border-bottom:1px solid var(--line);
}
.ranking li>b {
    font-size:28px;
    font-style:italic;
    color:#407d70;
}
.ranking li>span {
    text-align:right;
    font-size:12px;
    color:var(--muted);
}
.ranking strong {
    color:#1e514a;
    font-size:17px;
}
.topic-grid article {
    position:relative;
    background:#e3ecf0;
    border-radius:12px;
    overflow:hidden;
}
.topic-grid .cover {
    border-radius:0;
}
.topic-grid article>div {
    padding:23px;
}
.topic-grid h3 {
    font-size:23px;
    margin:6px 0;
}
.topic-grid p {
    font-size:14px;
    margin-bottom:12px;
}
.topic-grid article>div>a {
    font-size:14px;
    text-decoration:underline;
}
.classic-section {
    border:1px solid #ccd5da;
    padding:26px;
    background:#eaf0f2;
}
.editor-note {
    display:grid;
    grid-template-columns:160px 1fr;
    gap:30px;
    background:white;
    border-radius:12px;
    padding:30px;
    border-left:5px solid #8aba5a;
}
.editor-symbol {
    background:#153647;
    color:var(--mint);
    border-radius:50%;
    width:125px;
    height:125px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    text-align:center;
    font-weight:bold;
}
.editor-note p {
    margin:12px 0;
    font-size:14px;
}
.tags {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
}
.tags a {
    border:1px solid #c6d8dd;
    padding:9px 18px;
    border-radius:30px;
    background:white;
    font-size:14px;
}
.about-copy {
    columns:2;
    column-gap:38px;
    border-top:1px solid var(--line);
    padding-top:20px;
}
.about-copy p {
    font-size:14px;
    margin-bottom:12px;
}
.subscription {
    display:grid;
    grid-template-columns:160px 1fr;
    align-items:center;
    gap:32px;
    background:#dfeecf;
    border-radius:14px;
    padding:30px;
    margin-bottom:44px;
}
.subscription-brand {
    height:135px;
    width:135px;
    background:#183928;
    color:#ccf5a4;
    border-radius:24px;
    font-size:56px;
    font-weight:bold;
    display:flex;
    align-items:center;
    justify-content:center;
    letter-spacing:-5px;
}
.subscription-brand span {
    font-size:23px;
    margin-left:8px;
}
.subscription p {
    font-size:14px;
    margin:8px 0 15px;
}
.subscription .fine {
    margin:9px 0 0;
    font-size:12px;
}
.footer {
    background:white;
    border-top:1px solid var(--line);
    padding:36px 0;
    margin-top:45px;
}
.footer-inner {
    display:grid;
    grid-template-columns:1.1fr 1fr 1fr;
    gap:35px;
}
.footer p {
    font-size:13px;
    margin-top:14px;
}
.footer nav {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px 20px;
    align-content:start;
    font-size:14px;
}
.back-top {
    position:fixed;
    bottom:20px;
    right:18px;
    width:42px;
    height:42px;
    border:0;
    border-radius:50%;
    background:#183949;
    color:white;
    z-index:4;
}
.skip-link {
    position:absolute;
    left:16px;
    top:-80px;
    z-index:10;
    background:white;
    padding:10px;
}
.skip-link:focus {
    top:8px;
}
.breadcrumb {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin:25px 0;
    font-size:13px;
    color:var(--muted);
}
.category-hero {
    padding:35px;
    background:#dce9ed;
    border-radius:12px;
    border-left:6px solid #276452;
}
.category-hero h1 {
    margin:8px 0;
    font-size:32px;
}
.category-feature {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:30px;
    align-items:center;
}
.category-feature p {
    margin:12px 0;
}
.detail-heading {
    margin:25px 0;
}
.detail-heading h1 {
    margin:8px 0;
    font-size:34px;
}
.detail-heading p {
    font-size:14px;
}
.player {
    background:#102431;
    color:white;
    border-radius:12px;
    overflow:hidden;
    max-width:1000px;
    margin:auto;
}
.stage {
    position:relative;
    aspect-ratio:16/9;
    max-height:510px;
}
.stage img {
    width:100%;
    height:100%;
    object-fit:cover;
}
.stage-label {
    position:absolute;
    top:16px;
    left:16px;
    background:#102431d9;
    padding:4px 12px;
    border-radius:5px;
    font-size:13px;
}
.stage-play {
    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);
    width:64px;
    height:64px;
    border:1px solid white;
    border-radius:50%;
    background:#102431aa;
    color:white;
}
.player-controls {
    display:flex;
    align-items:center;
    gap:15px;
    padding:14px 20px;
}
.player-controls button {
    color:white;
    background:none;
    border:0;
    min-width:32px;
}
.player-controls .elapsed {
    white-space:nowrap;
    font-size:12px;
}
.seek {
    flex:1;
    min-width:30px;
    accent-color:var(--mint);
}
.volume {
    display:flex;
    gap:5px;
    align-items:center;
    font-size:12px;
}
.volume input {
    width:50px;
}
.player-status {
    font-size:13px;
    padding:0 20px 15px;
    color:#c0d1d9;
}
.prose {
    font-size:17px;
    max-width:950px;
    line-height:2;
}
.scene-gallery img {
    aspect-ratio:16/9;
    width:100%;
    height:auto;
    border-radius:8px;
}
.scene-gallery figcaption {
    font-size:13px;
    padding-top:8px;
    color:var(--muted);
}
.panel {
    background:white;
    padding:25px;
    border-radius:9px;
}
.panel p {
    margin-top:10px;
    font-size:14px;
}
.adjacent {
    display:flex;
    justify-content:space-between;
    gap:24px;
    margin:36px 0;
    padding:24px 0;
    border-top:1px solid var(--line);
    font-size:14px;
}
.legal {
    max-width:850px;
}
.legal h2 {
    margin:25px 0 10px;
}
@media (max-width:1000px) {
    #main-nav {
        flex-wrap:wrap;
        justify-content:flex-start;
    }
    #main-nav a {
        flex:1 0 17%;
        justify-content:center;
    }
    .hero h1 {
        font-size:25px;
    }
    .hero-copy {
        padding:26px;
    }
    .four,.short-strip,.categories {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .wide-cards .card {
        display:block;
    }
    .wide-cards .cover img {
        height:auto;
    }
    .three {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media (max-width:640px) {
    .header-inner,main,.footer-inner {
        width:calc(100% - 28px);
    }
    .header-inner {
        padding:14px 0;
        gap:10px;
    }
    .header-note {
        display:none;
    }
    .menu-button {
        display:block;
        margin-left:auto;
        font-size:13px;
    }
    .js #main-nav:not(.is-open) {
        display:none;
    }
    #main-nav {
        padding:10px 0 0;
    }
    #main-nav a {
        flex-basis:28%;
        padding:9px 3px;
        font-size:13px;
    }
    .hero {
        grid-template-columns:1fr;
        margin-top:18px;
    }
    .hero-copy {
        padding:24px;
    }
    .hero h1 {
        font-size:25px;
        max-width:none;
    }
    .hero-foot {
        margin-top:18px;
    }
    .hero-feature .cover {
        height:290px;
    }
    .feature-caption h2 {
        font-size:25px;
    }
    .section {
        margin-top:34px;
    }
    .section-heading {
        gap:10px;
    }
    .section-heading h2 {
        font-size:21px;
    }
    .section-heading p {
        font-size:13px;
    }
    .more {
        font-size:12px;
    }
    .grid,.short-strip {
        gap:18px 12px;
    }
    .two {
        grid-template-columns:1fr;
    }
    .card h3 {
        font-size:15px;
        min-height:44px;
    }
    .card p {
        font-size:12px;
    }
    .duration {
        font-size:10px;
        padding:1px 4px;
        right:4px;
        bottom:4px;
    }
    .play-icon {
        width:30px;
        height:30px;
        font-size:11px;
    }
    .categories {
        gap:10px;
    }
    .category {
        display:block;
        padding:14px;
    }
    .category h3 {
        font-size:16px;
    }
    .category p {
        margin-top:6px;
    }
    .update-list article {
        grid-template-columns:55px 1fr;
        gap:12px;
    }
    .update-list .pill,.update-list article>a {
        display:none;
    }
    .update-list time {
        font-size:17px;
    }
    .update-list p {
        display:-webkit-box;
        -webkit-line-clamp:2;
        -webkit-box-orient:vertical;
        overflow:hidden;
    }
    .short-section,.classic-section {
        padding:19px 14px;
    }
    .short-strip p {
        font-size:12px;
    }
    .ranking {
        grid-template-columns:1fr;
    }
    .editor-note {
        grid-template-columns:1fr;
        padding:22px;
        gap:18px;
    }
    .editor-symbol {
        width:85px;
        height:85px;
        font-size:12px;
    }
    .about-copy {
        columns:1;
    }
    .subscription {
        grid-template-columns:1fr;
        padding:24px;
        gap:20px;
    }
    .subscription-brand {
        width:85px;
        height:85px;
        font-size:40px;
        border-radius:16px;
    }
    .footer-inner {
        grid-template-columns:1fr;
        gap:24px;
    }
    .category-feature {
        grid-template-columns:1fr;
        gap:20px;
    }
    .category-hero {
        padding:22px;
    }
    .category-hero h1,.detail-heading h1 {
        font-size:27px;
    }
    .player-controls {
        gap:8px;
        padding:12px 8px;
        flex-wrap:wrap;
    }
    .volume {
        display:none;
    }
    .player-status {
        font-size:12px;
        padding:0 12px 12px;
    }
    .stage-play {
        width:48px;
        height:48px;
    }
    .adjacent {
        flex-direction:column;
    }
    .panel {
        margin-top:20px;
    }
}
@media (prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto;
    }
    * {
        transition:none !important;
    }
}
