/* roulang page: index */
:root {
    --bg: #F5F4F0;
    --bg-deep: #111113;
    --surface: #FFFFFF;
    --surface-soft: #EFEDE8;
    --ink: #161616;
    --body-text: #3F3F3C;
    --muted: #71716C;
    --line: #DDD9D1;
    --accent: #F05223;
    --accent-soft: rgba(240, 82, 35, 0.12);
    --mono-accent: #D9ED92;
    --radius-card: 20px;
    --radius-media: 12px;
    --shadow-card: 0 1px 2px rgba(17, 17, 18, .04), 0 12px 40px rgba(17, 17, 18, .06);
  }

  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  html {
    scroll-behavior: smooth;
  }

  body {
    margin: 0;
    background: var(--bg);
    color: var(--body-text);
    font-family: Inter, "PingFang SC", "HarmonicOS Sans", "Microsoft YaHei", system-ui, sans-serif;
    line-height: 1.75;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
  }

  img {
    max-width: 100%;
    display: block;
  }

  a {
    color: inherit;
    text-decoration: none;
    transition: color .2s ease, background .2s ease, border-color .2s ease;
  }

  button,
  input,
  select,
  textarea {
    font-family: inherit;
  }

  ul,
  ol {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  h1,
  h2,
  h3,
  h4 {
    color: var(--ink);
    font-weight: 800;
    line-height: 1.2;
    margin: 0 0 .75em;
    letter-spacing: -0.02em;
  }

  .container {
    width: min(100% - 3rem, 1240px);
    margin-inline: auto;
  }

  @media (max-width: 640px) {
    .container {
      width: min(100% - 2rem, 1240px);
    }
  }

  .section {
    padding-block: clamp(4.5rem, 9vw, 7rem);
  }

  .section-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.25rem 3rem;
    margin-bottom: clamp(2.5rem, 5vw, 3.5rem);
  }

  .section-head.text-left {
    align-items: flex-start;
    flex-direction: column;
  }

  .section-title {
    font-size: clamp(1.9rem, 4vw, 3.1rem);
    line-height: 1.15;
    margin-bottom: .4rem;
  }

  .section-title.light,
  .dark-title {
    color: #fff;
  }

  .lead {
    font-size: 1.06rem;
    max-width: 56ch;
    color: var(--muted);
  }

  .lead.light {
    color: rgba(255, 255, 255, .74);
  }

  .overline {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .1em;
    color: var(--accent);
    text-transform: uppercase;
    margin-bottom: .75rem;
  }

  .overline::before {
    content: "";
    width: 1.4rem;
    height: 2px;
    background: var(--accent);
    border-radius: 2px;
  }

  .overline.light {
    color: var(--mono-accent);
  }

  .overline.light::before {
    background: var(--mono-accent);
  }

  /* ------- Buttons ------- */
  .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    font-weight: 700;
    font-size: .98rem;
    line-height: 1;
    border: 1px solid transparent;
    border-radius: 999px;
    padding: .95rem 2rem;
    cursor: pointer;
    transition: background .22s ease, color .22s ease, border-color .22s ease, transform .22s ease, box-shadow .22s ease;
    text-decoration: none;
    white-space: nowrap;
  }

  .btn-accent {
    background: var(--accent);
    color: #fff;
  }

  .btn-accent:hover {
    background: #d84315;
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(240, 82, 35, .24);
  }

  .btn-dark {
    background: var(--ink);
    color: #fff;
  }

  .btn-dark:hover {
    background: #000;
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(17, 17, 18, .12);
  }

  .btn-outline-light {
    border-color: rgba(255, 255, 255, .48);
    color: #fff;
    background: transparent;
  }

  .btn-outline-light:hover {
    background: #fff;
    border-color: #fff;
    color: var(--ink);
    transform: translateY(-2px);
  }

  .btn-outline-dark {
    border-color: var(--line);
    color: var(--ink);
    background: var(--surface);
  }

  .btn-outline-dark:hover {
    background: var(--ink);
    color: #fff;
    border-color: var(--ink);
    transform: translateY(-2px);
  }

  .btn-sm {
    padding: .62rem 1.25rem;
    font-size: .88rem;
  }

  .btn-lg {
    padding: 1.05rem 2.4rem;
    font-size: 1.02rem;
  }

  a:focus-visible,
  button:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 3px;
    border-radius: 8px;
  }

  /* ------- Header / Search Navigation ------- */
  .site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: rgba(245, 244, 240, .84);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid transparent;
    transition: border-color .3s ease, box-shadow .3s ease;
  }

  .site-header.scrolled {
    border-color: var(--line);
    box-shadow: 0 10px 30px rgba(17, 17, 18, .04);
  }

  .header-top {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .8rem;
    padding-block: .85rem;
  }

  .brand {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    margin-right: .25rem;
    flex-shrink: 0;
  }

  .brand-mark {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    border-radius: 12px;
    background: var(--bg-deep);
    display: grid;
    place-items: center;
    color: var(--mono-accent);
  }

  .brand-text {
    font-size: 1.45rem;
    font-weight: 800;
    letter-spacing: -.04em;
    color: var(--ink);
    line-height: 1;
  }

  .brand-text span {
    color: var(--accent);
  }

  .header-search {
    flex: 1 1 100%;
    order: 3;
    margin-top: .35rem;
  }

  .header-actions {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin-left: auto;
  }

  .menu-toggle {
    display: none;
    border: 0;
    background: var(--ink);
    width: 44px;
    height: 44px;
    border-radius: 12px;
    color: #fff;
    cursor: pointer;
    align-items: center;
    justify-content: center;
  }

  .search-form {
    display: flex;
    align-items: center;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 16px;
    height: 54px;
    padding: 0 6px 0 1rem;
    transition: border-color .2s, box-shadow .2s;
  }

  .search-form:focus-within {
    border-color: var(--accent);
    box-shadow: 0 0 0 4px var(--accent-soft);
  }

  .search-form .search-icon {
    width: 22px;
    height: 22px;
    color: var(--muted);
    flex-shrink: 0;
  }

  .search-form input {
    flex: 1;
    border: 0;
    outline: none;
    background: transparent;
    height: 100%;
    padding: 0 .8rem;
    font-size: .96rem;
    color: var(--ink);
    min-width: 0;
  }

  .search-form input::placeholder {
    color: var(--muted);
  }

  .search-form button {
    height: 42px;
    border: 0;
    border-radius: 12px;
    padding: 0 1.6rem;
    background: var(--ink);
    color: #fff;
    font-size: .9rem;
    font-weight: 700;
    cursor: pointer;
    transition: background .2s;
  }

  .search-form button:hover {
    background: var(--accent);
  }

  .header-nav {
    border-top: 1px solid rgba(221, 217, 209, .64);
  }

  .nav-inner {
    display: flex;
    align-items: center;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .nav-inner::-webkit-scrollbar {
    display: none;
  }

  .nav-links {
    display: flex;
    gap: .2rem;
    padding-block: .25rem;
  }

  .nav-link {
    display: inline-block;
    padding: .52rem 1rem;
    border-radius: 999px;
    font-size: .92rem;
    font-weight: 600;
    color: var(--body-text);
    white-space: nowrap;
  }

  .nav-link:hover {
    color: var(--ink);
    background: rgba(17, 17, 18, .06);
  }

  .nav-link.active {
    background: var(--ink);
    color: #fff;
  }

  @media (min-width: 1024px) {
    .header-top {
      flex-wrap: nowrap;
    }

    .header-search {
      order: 0;
      flex: 1 1 auto;
      max-width: 640px;
      margin: 0 1.5rem;
      min-width: 260px;
    }

    .header-actions {
      margin-left: 0;
    }
  }

  @media (max-width: 767px) {
    .menu-toggle {
      display: inline-flex;
    }

    .header-nav {
      display: none;
    }

    .site-header.nav-open .header-nav {
      display: block;
      border-top-color: var(--line);
      background: rgba(245, 244, 240, .98);
    }
  }

  /* ------- Hero ------- */
  .hero {
    position: relative;
    background: var(--bg-deep);
    color: #fff;
    overflow: hidden;
  }

  .hero-bg {
    position: absolute;
    inset: 0;
  }

  .hero-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: .4;
  }

  .hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(82deg, rgba(17, 17, 19, .98) 0%, rgba(17, 17, 19, .86) 48%, rgba(17, 17, 19, .48) 100%);
  }

  .hero-inner {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.16fr) minmax(0, .84fr);
    gap: 3rem 2rem;
    padding-block: clamp(4.2rem, 9vw, 7rem) clamp(2rem, 5vw, 4rem);
    align-items: center;
  }

  .hero-kicker {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
    font-size: .9rem;
    font-weight: 600;
    letter-spacing: .02em;
    color: rgba(255, 255, 255, .86);
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .12);
    padding: .45rem 1rem;
    border-radius: 999px;
    margin-bottom: 1.6rem;
  }

  .rec-dot {
    width: 9px;
    height: 9px;
    border-radius: 99px;
    background: var(--accent);
    box-shadow: 0 0 0 0 rgba(240, 82, 35, .5);
    animation: pulse-dot 1.8s ease-out infinite;
    flex-shrink: 0;
  }

  @keyframes pulse-dot {
    0% {
      box-shadow: 0 0 0 0 rgba(240, 82, 35, .55);
    }
    70% {
      box-shadow: 0 0 0 9px rgba(240, 82, 35, 0);
    }
    100% {
      box-shadow: 0 0 0 0 rgba(240, 82, 35, 0);
    }
  }

  .hero h1 {
    color: #fff;
    font-size: clamp(2.35rem, 5.4vw, 4.6rem);
    line-height: 1.06;
    margin-bottom: 1.5rem;
    letter-spacing: -.035em;
    max-width: 18ch;
  }

  .hero-desc {
    font-size: 1.08rem;
    line-height: 1.8;
    color: rgba(255, 255, 255, .78);
    max-width: 54ch;
    margin-bottom: 2rem;
  }

  .countdown-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    border: 1px solid rgba(255, 255, 255, .12);
    background: rgba(255, 255, 255, .06);
    border-radius: 18px;
    padding: 1rem 1.25rem;
    margin-bottom: 2rem;
    max-width: 520px;
  }

  .countdown-label {
    color: rgba(255, 255, 255, .55);
    font-size: .82rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: .45rem;
    letter-spacing: .02em;
  }

  .countdown-label .cl-dot {
    width: 7px;
    height: 7px;
    border-radius: 99px;
    background: var(--mono-accent);
  }

  .countdown-time {
    display: flex;
    gap: 1rem;
    margin-left: auto;
  }

  .cd-item {
    text-align: center;
    min-width: 44px;
  }

  .cd-item b {
    display: block;
    font-size: 1.6rem;
    font-weight: 800;
    color: #fff;
    font-feature-settings: "tnum";
    line-height: 1.1;
  }

  .cd-item span {
    font-size: .72rem;
    color: rgba(255, 255, 255, .58);
  }

  .hero-cta {
    display: flex;
    flex-wrap: wrap;
    gap: .9rem;
    margin-bottom: 2.2rem;
  }

  .hero-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 2.6rem;
    padding-top: 1.8rem;
    border-top: 1px solid rgba(255, 255, 255, .14);
  }

  .hero-stats strong {
    display: block;
    font-size: 2.2rem;
    line-height: 1.1;
    color: #fff;
    font-feature-settings: "tnum";
    letter-spacing: -.03em;
  }

  .hero-stats span {
    font-size: .86rem;
    color: rgba(255, 255, 255, .58);
  }

  .hero-media {
    position: relative;
    min-height: 380px;
  }

  .media-card {
    position: absolute;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 30px 80px rgba(0, 0, 0, .45);
    border: 1px solid rgba(255, 255, 255, .12);
    background: #1d1d20;
  }

  .media-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .media-card-back {
    width: 62%;
    aspect-ratio: 4 / 5;
    top: 4%;
    right: 0;
    transform: rotate(2deg);
  }

  .media-card-front {
    width: 56%;
    aspect-ratio: 4 / 5;
    bottom: 0;
    left: 0;
    z-index: 2;
  }

  .media-card-front .mc-shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(0deg, rgba(17, 17, 19, .55) 0%, transparent 55%);
  }

  .tag-record {
    position: absolute;
    top: .9rem;
    left: .9rem;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    background: rgba(17, 17, 19, .7);
    color: #fff;
    font-size: .74rem;
    font-weight: 700;
    padding: .32rem .7rem;
    border-radius: 999px;
    letter-spacing: .08em;
    backdrop-filter: blur(4px);
  }

  .tag-record .rd {
    width: 7px;
    height: 7px;
    background: var(--accent);
    border-radius: 99px;
    display: inline-block;
  }

  .timecode {
    position: absolute;
    bottom: .9rem;
    right: .9rem;
    font-size: .8rem;
    font-weight: 600;
    background: rgba(17, 17, 19, .74);
    padding: .3rem .7rem;
    border-radius: 8px;
    color: rgba(255, 255, 255, .82);
    font-feature-settings: "tnum";
    letter-spacing: .08em;
    backdrop-filter: blur(4px);
  }

  .hero-badge {
    position: absolute;
    right: 1%;
    bottom: 6%;
    z-index: 3;
    background: var(--accent);
    color: #fff;
    font-size: .82rem;
    font-weight: 700;
    padding: .45rem 1rem;
    border-radius: 999px;
    box-shadow: 0 10px 20px rgba(240, 82, 35, .28);
    animation: float-badge 4s ease-in-out infinite;
  }

  @keyframes float-badge {
    0%,
    100% {
      transform: translateY(0);
    }
    50% {
      transform: translateY(-7px);
    }
  }

  .hero-ticker {
    position: relative;
    border-top: 1px solid rgba(255, 255, 255, .1);
    padding: .85rem 0;
    color: rgba(255, 255, 255, .62);
    font-size: .85rem;
    letter-spacing: .02em;
  }

  .hero-ticker strong {
    color: var(--mono-accent);
    font-weight: 700;
    margin-right: .6rem;
  }

  @media (max-width: 1023px) {
    .hero-inner {
      grid-template-columns: 1fr;
      gap: 2.8rem;
    }

    .hero-media {
      min-height: 320px;
      max-width: 520px;
      margin-inline: auto;
      width: 100%;
    }

    .hero h1 {
      max-width: 22ch;
    }
  }

  @media (max-width: 520px) {
    .hero-media {
      min-height: 250px;
    }

    .media-card-back {
      width: 60%;
    }

    .media-card-front {
      width: 54%;
    }

    .hero-stats {
      gap: 1.4rem;
    }

    .hero-stats strong {
      font-size: 1.7rem;
    }

    .countdown-time {
      margin-left: 0;
    }
  }

  /* ------- Capability / Feature group ------- */
  .capability-grid {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: 2.5rem;
    align-items: stretch;
  }

  .cap-visual {
    position: relative;
    overflow: hidden;
    border-radius: var(--radius-card);
    min-height: 360px;
    border: 1px solid var(--line);
    background: var(--surface-soft);
    display: flex;
  }

  .cap-visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    inset: 0;
  }

  .cap-visual .cap-shade {
    position: relative;
    width: 100%;
    min-height: 360px;
    z-index: 2;
    background: linear-gradient(0deg, rgba(17, 17, 19, .72) 0%, transparent 55%);
    display: flex;
    align-items: flex-end;
    padding: 1.4rem;
    color: #fff;
  }

  .cap-visual .cap-shade h3 {
    color: #fff;
    margin: 0;
    font-size: 1.3rem;
  }

  .play-demo {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 72px;
    height: 72px;
    border-radius: 99px;
    background: rgba(255, 255, 255, .16);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, .36);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    z-index: 3;
    cursor: pointer;
    transition: background .2s, transform .2s;
  }

  .play-demo:hover {
    background: var(--accent);
    border-color: var(--accent);
    transform: translate(-50%, -50%) scale(1.06);
  }

  .rail-list {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  .rail-item {
    display: grid;
    grid-template-columns: 70px 1fr auto;
    gap: 1rem;
    align-items: start;
    padding: 1.6rem 0;
    border-bottom: 1px solid var(--line);
    transition: background .2s, padding .2s;
  }

  .rail-item:first-child {
    padding-top: .25rem;
  }

  .rail-item:last-child {
    border-bottom: 0;
  }

  .rail-index {
    font-size: .95rem;
    font-weight: 800;
    color: var(--accent);
    font-feature-settings: "tnum";
    letter-spacing: .02em;
  }

  .rail-item h3 {
    font-size: 1.26rem;
    margin-bottom: .35rem;
    margin-top: .2rem;
  }

  .rail-item p {
    margin: 0;
    color: var(--muted);
    font-size: .98rem;
    max-width: 48ch;
  }

  .rail-arrow {
    color: var(--muted);
    font-size: 1.3rem;
    margin-top: .2rem;
    transition: transform .2s;
  }

  .rail-item:hover .rail-arrow {
    transform: translateX(6px);
    color: var(--accent);
  }

  @media (max-width: 860px) {
    .capability-grid {
      grid-template-columns: 1fr;
    }

    .cap-visual {
      min-height: 320px;
    }
  }

  /* ------- Scenario / Qualification ------- */
  .scenario-lead-media {
    position: relative;
    overflow: hidden;
    border-radius: 24px;
    margin-bottom: 2.5rem;
    border: 1px solid var(--line);
  }

  .scenario-lead-media img {
    width: 100%;
    height: 100%;
    min-height: 300px;
    max-height: 560px;
    object-fit: cover;
  }

  .scenario-mask {
    position: relative;
  }

  .scenario-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(100deg, rgba(17, 17, 19, .86) 0%, rgba(17, 17, 19, .2) 100%);
    display: flex;
    align-items: flex-end;
    padding: 2rem;
  }

  .scenario-overlay .mini-panel {
    max-width: 420px;
    color: #fff;
  }

  .scenario-overlay .mini-panel h3 {
    color: #fff;
    font-size: 1.6rem;
    margin-bottom: .35rem;
  }

  .scenario-overlay .mini-panel p {
    color: rgba(255, 255, 255, .76);
    margin: 0;
    font-size: .95rem;
  }

  .scenario-list {
    border-top: 1px solid var(--line);
  }

  .scenario-row {
    display: grid;
    grid-template-columns: 100px 1fr 1.2fr;
    gap: 1.6rem;
    padding: 1.8rem 0;
    border-bottom: 1px solid var(--line);
    align-items: baseline;
    transition: background .2s ease, padding-left .2s ease;
  }

  .scenario-row:last-child {
    border-bottom: 0;
  }

  .scenario-num {
    font-size: 1rem;
    font-weight: 800;
    color: var(--accent);
    font-feature-settings: "tnum";
  }

  .scenario-row h3 {
    font-size: 1.2rem;
    margin: 0;
  }

  .scenario-row p {
    margin: 0;
    color: var(--muted);
    font-size: .98rem;
  }

  .qualify-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin: 2rem 0 3rem;
  }

  .qualify-item {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 1.2rem;
  }

  .qualify-item b {
    display: block;
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--accent);
    line-height: 1.1;
    margin-bottom: .45rem;
  }

  .qualify-item span {
    font-size: .83rem;
    color: var(--body-text);
  }

  @media (max-width: 900px) {
    .qualify-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .scenario-row {
      grid-template-columns: 80px 1fr;
      gap: .2rem 1rem;
    }

    .scenario-row p {
      grid-column: 2;
    }
  }

  @media (max-width: 520px) {
    .qualify-grid {
      grid-template-columns: 1fr;
    }

    .scenario-row {
      grid-template-columns: 1fr;
      gap: .35rem;
    }

    .scenario-row p {
      grid-column: 1;
    }
  }

  /* ------- News Section ------- */
  .news-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr);
    gap: 2.5rem;
  }

  .news-list {
    border-top: 1px solid var(--line);
  }

  .news-item {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 2rem;
    padding: 1rem 0 .6rem;
    border-bottom: 1px solid var(--line);
  }

  .news-item a {
    font-size: 1.02rem;
    font-weight: 600;
    color: var(--ink);
    display: inline;
    background-image: linear-gradient(var(--accent), var(--accent));
    background-size: 0% 2px;
    background-repeat: no-repeat;
    background-position: left bottom;
    transition: background-size .25s ease, color .2s;
  }

  .news-item a:hover {
    color: var(--accent);
    background-size: 100% 2px;
  }

  .news-date {
    font-size: .82rem;
    color: var(--muted);
    white-space: nowrap;
    font-feature-settings: "tnum";
  }

  .side-card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-card);
    padding: 1.6rem;
    margin-bottom: 1.5rem;
    box-shadow: var(--shadow-card);
  }

  .side-card h3 {
    font-size: 1.05rem;
    margin-bottom: 1rem;
    padding-bottom: .65rem;
    border-bottom: 1px solid var(--line);
  }

  .tag-cloud {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
  }

  .tag-chip {
    background: var(--surface-soft);
    border: 1px solid transparent;
    padding: .4rem .8rem;
    border-radius: 999px;
    font-size: .82rem;
    color: var(--body-text);
    font-weight: 600;
    transition: background .2s, color .2s, border-color .2s;
  }

  .tag-chip:hover {
    background: var(--ink);
    color: #fff;
    border-color: var(--ink);
  }

  .tag-chip small {
    color: var(--muted);
    font-weight: 500;
    margin-left: .15rem;
  }

  .rank-list {
    counter-reset: rank;
  }

  .rank-item {
    counter-increment: rank;
    display: flex;
    gap: .9rem;
    align-items: flex-start;
    padding: .55rem 0;
  }

  .rank-item::before {
    content: counter(rank, decimal-leading-zero);
    font-weight: 800;
    font-size: .88rem;
    color: var(--accent);
    font-feature-settings: "tnum";
    line-height: 1.8;
  }

  .rank-item a {
    font-size: .95rem;
    font-weight: 600;
    color: var(--ink);
    line-height: 1.6;
  }

  .rank-item a:hover {
    color: var(--accent);
  }

  .newsletter-panel {
    background: var(--bg-deep);
    color: #fff;
    border-radius: var(--radius-card);
    padding: 1.6rem;
  }

  .newsletter-panel h3 {
    color: #fff;
    font-size: 1.1rem;
  }

  .newsletter-panel p {
    color: rgba(255, 255, 255, .68);
    font-size: .9rem;
  }

  .inline-sub {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
  }

  .inline-sub input {
    flex: 1;
    min-width: 0;
    border: 0;
    background: rgba(255, 255, 255, .12);
    height: 44px;
    border-radius: 10px;
    padding: 0 .9rem;
    color: #fff;
    outline: none;
    transition: background .2s;
  }

  .inline-sub input:focus {
    background: rgba(255, 255, 255, .18);
  }

  .inline-sub button {
    height: 44px;
    padding: 0 1.2rem;
    border: 0;
    border-radius: 10px;
    background: var(--accent);
    color: #fff;
    font-weight: 700;
    cursor: pointer;
  }

  @media (max-width: 900px) {
    .news-grid {
      grid-template-columns: 1fr;
    }
  }

  /* ------- Pricing Dark Section ------- */
  .pricing-section {
    background: var(--bg-deep);
    color: rgba(255, 255, 255, .78);
  }

  .price-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
    margin-bottom: 2rem;
  }

  .plan-card {
    background: #1b1b1f;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 24px;
    padding: 2rem;
    position: relative;
  }

  .plan-card.featured {
    background: #fff;
    color: var(--body-text);
    border-color: var(--accent);
  }

  .plan-card.featured h3 {
    color: var(--ink);
  }

  .plan-label {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-size: .8rem;
    font-weight: 700;
    color: rgba(255, 255, 255, .6);
    margin-bottom: 1rem;
    letter-spacing: .06em;
  }

  .plan-card.featured .plan-label {
    color: var(--accent);
  }

  .plan-price {
    font-size: 2.7rem;
    font-weight: 800;
    color: #fff;
    line-height: 1.1;
    margin-bottom: .5rem;
    letter-spacing: -.03em;
  }

  .plan-card.featured .plan-price {
    color: var(--ink);
  }

  .plan-price span {
    font-size: .95rem;
    font-weight: 500;
    color: rgba(255, 255, 255, .56);
    margin-left: .25rem;
  }

  .plan-card.featured .plan-price span {
    color: var(--muted);
  }

  .plan-desc {
    font-size: .92rem;
    color: rgba(255, 255, 255, .6);
    margin-bottom: 1.4rem;
  }

  .plan-card.featured .plan-desc {
    color: var(--muted);
  }

  .plan-list {
    padding: 0;
    margin-bottom: 1.8rem;
  }

  .plan-list li {
    position: relative;
    padding: .42rem 0 .42rem 1.6rem;
    font-size: .93rem;
    color: rgba(255, 255, 255, .76);
  }

  .plan-card.featured .plan-list li {
    color: var(--body-text);
  }

  .plan-list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: .4rem;
    color: var(--accent);
    font-weight: 800;
  }

  .plan-card .btn {
    width: 100%;
  }

  .featured-flag {
    position: absolute;
    top: -14px;
    right: 20px;
    background: var(--accent);
    color: #fff;
    font-size: .78rem;
    font-weight: 700;
    padding: .32rem .8rem;
    border-radius: 999px;
    letter-spacing: .02em;
  }

  .compare-wrap {
    overflow-x: auto;
    border-radius: 18px;
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .08);
    margin-bottom: 1.5rem;
  }

  .compare-table {
    width: 100%;
    min-width: 600px;
    border-collapse: collapse;
    color: rgba(255, 255, 255, .68);
    font-size: .9rem;
  }

  .compare-table th,
  .compare-table td {
    text-align: left;
    padding: .85rem 1.2rem;
    border-bottom: 1px solid rgba(255, 255, 255, .07);
  }

  .compare-table tr:last-child th,
  .compare-table tr:last-child td {
    border-bottom: 0;
  }

  .compare-table th {
    color: #fff;
    font-weight: 700;
  }

  .compare-table .col-title {
    color: rgba(255, 255, 255, .5);
    font-weight: 600;
  }

  .apply-panel {
    background: var(--surface);
    border-radius: 24px;
    padding: clamp(1.5rem, 3vw, 2.4rem);
    color: var(--body-text);
    border: 1px solid var(--line);
    box-shadow: var(--shadow-card);
  }

  .apply-panel h3 {
    font-size: 1.35rem;
    color: var(--ink);
  }

  .apply-panel .form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
  }

  .apply-panel .form-field {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    margin-bottom: 1rem;
  }

  .apply-panel label {
    font-size: .9rem;
    font-weight: 600;
    color: var(--ink);
  }

  .apply-panel input,
  .apply-panel select,
  .apply-panel textarea {
    background: var(--bg);
    border: 1px solid var(--line);
    padding: .72rem 1rem;
    border-radius: 12px;
    font-size: .95rem;
    color: var(--ink);
    transition: border-color .2s, box-shadow .2s, background .2s;
    width: 100%;
  }

  .apply-panel input:focus,
  .apply-panel select:focus,
  .apply-panel textarea:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 4px var(--accent-soft);
    background: #fff;
  }

  .apply-panel textarea {
    resize: vertical;
    min-height: 90px;
  }

  .form-success {
    font-size: .9rem;
    font-weight: 600;
    color: var(--accent);
    margin-top: .4rem;
  }

  @media (max-width: 860px) {
    .price-grid {
      grid-template-columns: 1fr;
    }

    .apply-panel .form-row {
      grid-template-columns: 1fr;
    }
  }

  /* ------- FAQ ------- */
  .faq-wrap {
    max-width: 820px;
    margin-inline: auto;
  }

  .faq-item {
    border-bottom: 1px solid var(--line);
  }

  .faq-item summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.4rem;
    cursor: pointer;
    list-style: none;
    padding: 1.45rem 0;
    font-size: 1.06rem;
    font-weight: 700;
    color: var(--ink);
    transition: color .2s;
  }

  .faq-item summary::-webkit-details-marker {
    display: none;
  }

  .faq-item summary:hover {
    color: var(--accent);
  }

  .faq-item summary .faq-icon {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 99px;
    background: var(--surface-soft);
    display: grid;
    place-items: center;
    transition: background .2s, color .2s;
    color: var(--muted);
    font-size: 1.2rem;
    font-weight: 500;
  }

  .faq-item[open] summary .faq-icon {
    background: var(--accent);
    color: #fff;
  }

  .faq-item p {
    padding: 0 0 1.5rem;
    margin: 0;
    color: var(--muted);
    max-width: 62ch;
    border-left: 2px solid var(--accent-soft);
    padding-left: 1rem;
  }

  /* ------- CTA ------- */
  .cta-section {
    position: relative;
    background: #121214;
    color: #fff;
    text-align: center;
    overflow: hidden;
  }

  .cta-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background: url('/assets/images/backpic/back-6.jpg') center / cover no-repeat;
    opacity: .2;
  }

  .cta-inner {
    position: relative;
    padding-block: clamp(4rem, 8vw, 6.8rem);
  }

  .cta-section h2 {
    color: #fff;
    font-size: clamp(2.2rem, 4.6vw, 3.8rem);
    max-width: 20ch;
    margin-inline: auto;
    margin-bottom: 1.1rem;
    line-height: 1.14;
  }

  .cta-section p {
    color: rgba(255, 255, 255, .7);
    font-size: 1.06rem;
    max-width: 46ch;
    margin: 0 auto 2rem;
  }

  /* ------- Footer ------- */
  .site-footer {
    background: var(--bg-deep);
    color: rgba(255, 255, 255, .7);
    padding: 4rem 0 2rem;
  }

  .footer-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr;
    gap: 2.5rem;
    margin-bottom: 3rem;
  }

  .site-footer .brand-text {
    color: #fff;
  }

  .footer-desc {
    margin: 1rem 0 0;
    font-size: .9rem;
    line-height: 1.7;
    max-width: 40ch;
    color: rgba(255, 255, 255, .5);
  }

  .footer-col h3 {
    color: #fff;
    font-size: .92rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    margin-bottom: 1rem;
  }

  .footer-col li {
    margin-bottom: .45rem;
  }

  .footer-col a {
    color: rgba(255, 255, 255, .62);
    font-size: .92rem;
    transition: color .2s, padding-left .2s;
  }

  .footer-col a:hover {
    color: var(--accent);
    padding-left: 4px;
  }

  .footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, .08);
    padding-top: 1.8rem;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: .8rem;
    font-size: .82rem;
    color: rgba(255, 255, 255, .4);
  }

  @media (max-width: 768px) {
    .footer-grid {
      grid-template-columns: 1fr;
      gap: 2rem;
    }
  }

  /* ------- reveal ------- */
  .reveal {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity .55s ease-out, transform .55s ease-out;
  }

  .reveal.in {
    opacity: 1;
    transform: none;
  }

  @media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
      animation-duration: .01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: .01ms !important;
    }

    .reveal {
      opacity: 1;
      transform: none;
    }

    html {
      scroll-behavior: auto;
    }
  }

/* roulang page: category1 */
:root {
        --bg: #F5F4F0;
        --bg-deep: #111113;
        --surface: #FFFFFF;
        --surface-soft: #EFEDE8;
        --ink: #161616;
        --body-text: #3F3F3C;
        --muted: #71716C;
        --line: #DDD9D1;
        --accent: #F05223;
        --accent-soft: rgba(240, 82, 35, 0.12);
        --mono-accent: #D9ED92;
        --radius-card: 20px;
        --radius-media: 12px;
        --shadow-card: 0 1px 2px rgba(17, 17, 18, .04), 0 12px 40px rgba(17, 17, 18, .06);
    }

    html {
        scroll-behavior: smooth;
    }

    body {
        margin: 0;
        background: var(--bg);
        color: var(--body-text);
        font-family: Inter, "PingFang SC", "HarmonicOS Sans", "Microsoft YaHei", system-ui, sans-serif;
        line-height: 1.75;
        -webkit-font-smoothing: antialiased;
        text-rendering: optimizeLegibility;
    }

    *,
    *::before,
    *::after {
        box-sizing: border-box;
    }

    img {
        max-width: 100%;
        display: block;
    }

    a {
        color: inherit;
        text-decoration: none;
        transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease;
    }

    button,
    input,
    select,
    textarea {
        font-family: inherit;
    }

    h1, h2, h3, h4 {
        margin: 0;
        color: var(--ink);
        font-weight: 800;
        letter-spacing: -0.02em;
        line-height: 1.2;
    }

    .container {
        width: min(100% - 2rem, 1240px);
        margin-inline: auto;
    }

    .section {
        padding-block: clamp(4.5rem, 9vw, 7rem);
    }

    .lead {
        font-size: 1.06rem;
        color: var(--muted);
        max-width: 58ch;
    }

    .btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: .55rem;
        font-weight: 700;
        font-size: .98rem;
        line-height: 1;
        border: 1px solid transparent;
        border-radius: 999px;
        padding: .95rem 2rem;
        cursor: pointer;
        transition: background .22s ease, color .22s ease, border-color .22s ease, transform .22s ease, box-shadow .22s ease;
        white-space: nowrap;
    }

    .btn-accent {
        background: var(--accent);
        color: #fff;
    }

    .btn-accent:hover {
        background: #d84315;
        transform: translateY(-2px);
        box-shadow: 0 12px 28px rgba(240, 82, 35, .24);
    }

    .btn-dark {
        background: var(--ink);
        color: #fff;
    }

    .btn-dark:hover {
        background: #000;
        transform: translateY(-2px);
        box-shadow: 0 12px 28px rgba(17, 17, 18, .12);
    }

    .btn-outline-light {
        border-color: rgba(255, 255, 255, .5);
        color: #fff;
        background: transparent;
    }

    .btn-outline-light:hover {
        background: #fff;
        border-color: #fff;
        color: var(--ink);
        transform: translateY(-2px);
    }

    .btn-outline-dark {
        border-color: var(--line);
        color: var(--ink);
        background: var(--surface);
    }

    .btn-outline-dark:hover {
        background: var(--ink);
        color: #fff;
        border-color: var(--ink);
        transform: translateY(-2px);
    }

    a:focus-visible,
    button:focus-visible {
        outline: 2px solid var(--accent);
        outline-offset: 3px;
        border-radius: 8px;
    }

    .site-header {
        position: sticky;
        top: 0;
        z-index: 100;
        background: rgba(245, 244, 240, .84);
        backdrop-filter: blur(14px);
        -webkit-backdrop-filter: blur(14px);
        border-bottom: 1px solid transparent;
        transition: border-color .3s ease, box-shadow .3s ease;
    }

    .site-header.scrolled {
        border-color: var(--line);
        box-shadow: 0 10px 30px rgba(17, 17, 18, .04);
    }

    .header-top {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: .8rem;
        padding-block: .85rem;
    }

    .brand {
        display: inline-flex;
        align-items: center;
        gap: .65rem;
        flex-shrink: 0;
    }

    .brand-mark {
        width: 40px;
        height: 40px;
        flex-shrink: 0;
        border-radius: 12px;
        background: var(--bg-deep);
        display: grid;
        place-items: center;
        color: var(--mono-accent);
    }

    .brand-text {
        font-size: 1.45rem;
        font-weight: 800;
        letter-spacing: -.04em;
        color: var(--ink);
        line-height: 1;
    }

    .brand-text span {
        color: var(--accent);
    }

    .header-search {
        flex: 1 1 100%;
        order: 3;
        margin-top: .35rem;
    }

    .header-actions {
        display: flex;
        align-items: center;
        gap: .55rem;
        margin-left: auto;
        order: 2;
    }

    .menu-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border: 0;
        background: var(--ink);
        width: 44px;
        height: 44px;
        border-radius: 12px;
        color: #fff;
        cursor: pointer;
    }

    .search-form {
        display: flex;
        align-items: center;
        background: var(--surface);
        border: 1px solid var(--line);
        border-radius: 16px;
        height: 54px;
        padding: 0 6px 0 1rem;
        transition: border-color .2s, box-shadow .2s;
    }

    .search-form:focus-within {
        border-color: var(--accent);
        box-shadow: 0 0 0 4px var(--accent-soft);
    }

    .search-form .search-icon {
        width: 22px;
        height: 22px;
        color: var(--muted);
        flex-shrink: 0;
    }

    .search-form input {
        flex: 1;
        min-width: 0;
        border: 0;
        outline: none;
        background: transparent;
        height: 100%;
        padding: 0 .8rem;
        font-size: .96rem;
        color: var(--ink);
    }

    .search-form input::placeholder {
        color: var(--muted);
    }

    .search-form button {
        height: 42px;
        border: 0;
        border-radius: 12px;
        padding: 0 1.6rem;
        background: var(--ink);
        color: #fff;
        font-size: .9rem;
        font-weight: 700;
        cursor: pointer;
        transition: background .2s;
    }

    .search-form button:hover {
        background: var(--accent);
    }

    .header-nav {
        border-top: 1px solid rgba(221, 217, 209, .64);
    }

    .header-nav .container {
        overflow-x: auto;
        scrollbar-width: none;
    }

    .header-nav .container::-webkit-scrollbar {
        display: none;
    }

    .nav-links {
        display: flex;
        gap: .2rem;
        padding-block: .25rem;
    }

    .nav-link {
        display: inline-block;
        padding: .52rem 1rem;
        border-radius: 999px;
        font-size: .92rem;
        font-weight: 600;
        color: var(--body-text);
        white-space: nowrap;
        transition: background .2s, color .2s;
    }

    .nav-link:hover {
        color: var(--ink);
        background: var(--surface-soft);
    }

    .nav-link.active {
        background: var(--bg-deep);
        color: #fff;
    }

    .nav-link.active:hover {
        background: var(--bg-deep);
        color: #fff;
    }

    @media (min-width: 768px) {
        .header-top {
            flex-wrap: nowrap;
        }

        .header-search {
            flex: 1;
            order: 2;
            margin: 0 1.15rem;
        }

        .header-actions {
            order: 3;
            margin-left: 0;
        }

        .menu-toggle {
            display: none;
        }
    }

    .category-hero {
        background: var(--bg-deep);
        color: #fff;
        position: relative;
        overflow: hidden;
    }

    .category-hero::before {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(90deg, rgba(17, 17, 19, .94) 0%, rgba(17, 17, 19, .76) 55%, rgba(17, 17, 19, .35) 100%);
        z-index: 1;
        pointer-events: none;
    }

    .category-hero .container {
        position: relative;
        z-index: 2;
        display: grid;
        grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
        gap: 3rem;
        align-items: center;
        padding-block: clamp(3.5rem, 7vw, 6.2rem);
    }

    .breadcrumb {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: .45rem .6rem;
        font-size: .88rem;
        font-weight: 600;
        color: rgba(255, 255, 255, .58);
        margin-bottom: 1.4rem;
    }

    .breadcrumb a:hover {
        color: #fff;
    }

    .breadcrumb-sep {
        color: rgba(255, 255, 255, .34);
    }

    .category-hero h1 {
        color: #fff;
        font-size: clamp(2.1rem, 4.6vw, 3.8rem);
        line-height: 1.14;
        letter-spacing: -0.03em;
        max-width: 15em;
        margin-bottom: 1.3rem;
    }

    .category-hero .hero-mono {
        font-family: "Space Grotesk", ui-monospace, SFMono-Regular, Menlo, monospace;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: .8rem;
        color: rgba(255, 255, 255, .78);
        font-size: .82rem;
        letter-spacing: .08em;
        border-left: 2px solid var(--accent);
        padding-left: 1.1rem;
        margin-top: 2rem;
    }

    .rec-dot {
        width: 9px;
        height: 9px;
        border-radius: 50%;
        background: var(--accent);
        display: inline-block;
        margin-right: .35rem;
        animation: pulse-rec 1.8s ease-out infinite;
    }

    @keyframes pulse-rec {
        0% {
            box-shadow: 0 0 0 0 rgba(240, 82, 35, .5);
        }

        70% {
            box-shadow: 0 0 0 7px rgba(240, 82, 35, 0);
        }

        100% {
            box-shadow: 0 0 0 0 rgba(240, 82, 35, 0);
        }
    }

    .category-hero p {
        color: rgba(255, 255, 255, .78);
        max-width: 52ch;
        font-size: 1.02rem;
    }

    .hero-visual {
        position: relative;
    }

    .hero-visual .visual-frame {
        background: #1b1b1f;
        border: 1px solid rgba(255, 255, 255, .12);
        border-radius: 24px;
        overflow: hidden;
        padding: .7rem .7rem 0;
        box-shadow: 0 30px 70px rgba(0, 0, 0, .35);
    }

    .visual-frame img {
        width: 100%;
        aspect-ratio: 16 / 10;
        object-fit: cover;
        border-radius: 16px;
    }

    .visual-bar {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        color: rgba(255, 255, 255, .55);
        font-family: "Space Grotesk", monospace;
        font-size: .74rem;
        padding: .8rem .5rem .9rem;
        letter-spacing: .1em;
    }

    .visual-wave {
        color: var(--mono-accent);
        display: inline-flex;
        align-items: flex-end;
        gap: 2px;
        height: 16px;
    }

    .visual-wave span {
        display: block;
        width: 2px;
        background: currentColor;
        border-radius: 2px;
        animation: wave 1s ease-in-out infinite alternate;
    }

    .visual-wave span:nth-child(1) {
        height: 6px;
    }

    .visual-wave span:nth-child(2) {
        height: 13px;
        animation-delay: .2s;
    }

    .visual-wave span:nth-child(3) {
        height: 9px;
        animation-delay: .4s;
    }

    .visual-wave span:nth-child(4) {
        height: 4px;
        animation-delay: .1s;
    }

    @keyframes wave {
        0% {
            transform: scaleY(.5);
        }

        100% {
            transform: scaleY(1);
        }
    }

    .stat-chip {
        display: inline-flex;
        align-items: center;
        gap: .5rem;
        background: rgba(255, 255, 255, .1);
        border: 1px solid rgba(255, 255, 255, .14);
        color: #fff;
        border-radius: 999px;
        font-weight: 600;
        font-size: .82rem;
        padding: .4rem .9rem;
    }

    @media (max-width: 991px) {
        .category-hero .container {
            grid-template-columns: 1fr;
            padding-block: 3.2rem 4rem;
        }

        .hero-visual {
            max-width: 620px;
        }
    }

    .video-toolbar {
        background: var(--surface);
        border: 1px solid var(--line);
        border-radius: 20px;
        padding: 1rem 1.25rem;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        box-shadow: var(--shadow-card);
        margin-bottom: 2.4rem;
    }

    .result-info {
        font-weight: 700;
        color: var(--ink);
        font-size: .95rem;
    }

    .result-info small {
        color: var(--muted);
        font-weight: 500;
    }

    .toolbar-actions {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: .8rem;
    }

    .filter-chips {
        display: inline-flex;
        flex-wrap: wrap;
        gap: .4rem;
    }

    .filter-chip {
        border: 1px solid var(--line);
        background: var(--surface);
        color: var(--body-text);
        border-radius: 999px;
        padding: .45rem .95rem;
        font-weight: 600;
        font-size: .84rem;
        cursor: pointer;
        transition: background .2s, border-color .2s, color .2s;
    }

    .filter-chip:hover {
        border-color: var(--ink);
        color: var(--ink);
    }

    .filter-chip.active {
        background: var(--bg-deep);
        border-color: var(--bg-deep);
        color: #fff;
    }

    .filter-select-wrap {
        position: relative;
    }

    .filter-select-wrap select {
        appearance: none;
        -webkit-appearance: none;
        border: 1px solid var(--line);
        background: var(--surface);
        border-radius: 999px;
        color: var(--ink);
        font-size: .85rem;
        font-weight: 600;
        padding: .5rem 2.3rem .5rem 1rem;
        cursor: pointer;
        line-height: 1.4;
        outline: none;
        transition: border-color .2s, box-shadow .2s;
    }

    .filter-select-wrap select:hover {
        border-color: var(--ink);
    }

    .filter-select-wrap select:focus {
        border-color: var(--accent);
        box-shadow: 0 0 0 4px var(--accent-soft);
    }

    .filter-select-wrap::after {
        content: "";
        position: absolute;
        right: 1rem;
        top: 50%;
        width: 9px;
        height: 9px;
        border-right: 1.8px solid var(--muted);
        border-bottom: 1.8px solid var(--muted);
        transform: translateY(-70%) rotate(45deg);
        pointer-events: none;
    }

    .media-card {
        background: var(--surface);
        border: 1px solid var(--line);
        border-radius: var(--radius-card);
        overflow: hidden;
        display: flex;
        flex-direction: column;
        transition: box-shadow .3s ease, transform .3s ease, border-color .3s;
    }

    .media-card:hover {
        box-shadow: var(--shadow-card);
        border-color: rgba(221, 217, 209, .55);
        transform: translateY(-4px);
    }

    .thumb {
        position: relative;
        overflow: hidden;
        border-radius: 0;
    }

    .thumb img {
        width: 100%;
        aspect-ratio: 16 / 9;
        object-fit: cover;
        transition: transform .6s ease;
    }

    .media-card:hover .thumb img {
        transform: scale(1.04);
    }

    .thumb::after {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(0deg, rgba(17, 17, 19, .18), transparent 55%);
        pointer-events: none;
    }

    .video-meta {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: .75rem;
        font-size: .85rem;
    }

    .video-meta .chapter {
        color: var(--muted);
    }

    .video-meta .chapter strong {
        color: var(--accent);
        font-weight: 700;
    }

    .video-meta time,
    .video-meta .views {
        color: var(--muted);
        display: inline-flex;
        align-items: center;
        gap: .35rem;
    }

    .video-meta svg {
        width: 15px;
        height: 15px;
    }

    .media-title {
        font-size: 1.14rem;
        margin: .5rem 0 .25rem;
        line-height: 1.45;
        letter-spacing: -0.01em;
    }

    .media-title a {
        transition: color .2s;
    }

    .media-title a:hover {
        color: var(--accent);
    }

    .media-desc {
        font-size: .92rem;
        color: var(--muted);
        line-height: 1.65;
        margin: .2rem 0 .5rem;
    }

    .badge {
        display: inline-flex;
        align-items: center;
        border-radius: 999px;
        background: rgba(255, 255, 255, .9);
        color: var(--ink);
        font-size: .76rem;
        font-weight: 700;
        padding: .3rem .65rem;
        position: absolute;
        top: 1rem;
        left: 1rem;
        z-index: 2;
    }

    .badge-dark {
        color: #fff;
        background: rgba(17, 17, 19, .72);
    }

    .duration {
        position: absolute;
        right: 1rem;
        bottom: .9rem;
        z-index: 2;
        background: rgba(17, 17, 19, .78);
        color: #fff;
        border-radius: 999px;
        font-family: "Space Grotesk", monospace;
        font-size: .78rem;
        padding: .24rem .62rem;
        letter-spacing: .03em;
        display: inline-flex;
        align-items: center;
        gap: .35rem;
    }

    .duration::before {
        content: "";
        display: inline-block;
        width: 6px;
        height: 6px;
        border-radius: 50%;
        background: var(--accent);
    }

    .media-card-feature {
        display: grid;
        grid-template-columns: 1.08fr .92fr;
        align-items: stretch;
    }

    .media-card-feature .thumb img {
        aspect-ratio: 16 / 10;
        height: 100%;
        object-fit: cover;
    }

    .feature-body {
        padding: 2rem;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }

    .feature-body .media-title {
        font-size: clamp(1.35rem, 2.2vw, 1.9rem);
        line-height: 1.35;
        max-width: 22ch;
    }

    .feature-body .media-desc {
        font-size: .98rem;
    }

    .feature-footer,
    .media-footer {
        display: flex;
        align-items: center;
        gap: .7rem;
        margin-top: 1.4rem;
    }

    .tag {
        color: var(--muted);
        display: inline-flex;
        align-items: center;
        gap: .45rem;
        font-size: .84rem;
        font-weight: 500;
    }

    .tag svg {
        width: 16px;
        height: 16px;
        color: var(--accent);
    }

    .media-content {
        padding: 1.4rem 1.5rem 1.5rem;
        display: flex;
        flex-direction: column;
        flex: 1;
    }

    .media-content .media-desc {
        flex: 1;
    }

    @media (max-width: 767px) {
        .media-card-feature {
            grid-template-columns: 1fr;
        }

        .feature-body {
            padding: 1.5rem;
        }

        .feature-body .media-title {
            max-width: none;
        }
    }

    .pagination {
        display: flex;
        justify-content: flex-end;
        align-items: center;
        flex-wrap: wrap;
        gap: .45rem;
        margin-top: 3.2rem;
    }

    .page-link,
    .page-arrow {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 44px;
        height: 44px;
        border-radius: 12px;
        border: 1px solid var(--line);
        background: var(--surface);
        color: var(--body-text);
        padding: 0 .9rem;
        font-weight: 700;
        font-size: .92rem;
        transition: background .2s, color .2s, border-color .2s;
    }

    .page-link:hover,
    .page-arrow:hover {
        background: var(--surface-soft);
        border-color: var(--ink);
        color: var(--ink);
    }

    .page-link.is-current {
        background: var(--bg-deep);
        border-color: var(--bg-deep);
        color: #fff;
    }

    .page-arrow {
        gap: .45rem;
    }

    .page-arrow svg {
        width: 16px;
        height: 16px;
    }

    .cross-section {
        background: var(--surface-soft);
    }

    .cat-cross-links {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 1rem;
    }

    .cross-link-item {
        background: var(--surface);
        border-radius: 20px;
        border: 1px solid var(--line);
        padding: 1.6rem;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        transition: box-shadow .25s, transform .25s, border-color .25s;
    }

    .cross-link-item:hover {
        box-shadow: var(--shadow-card);
        border-color: rgba(221, 217, 209, .5);
        transform: translateY(-3px);
    }

    .cross-label {
        color: var(--muted);
        font-size: .88rem;
    }

    .cross-title {
        font-size: 1.25rem;
        font-weight: 800;
        color: var(--ink);
        margin-top: .2rem;
    }

    .cross-arrow {
        color: var(--accent);
        flex-shrink: 0;
    }

    @media (max-width: 767px) {
        .cat-cross-links {
            grid-template-columns: 1fr;
        }
    }

    @media (max-width: 640px) {
        .video-toolbar {
            align-items: flex-start;
        }

        .toolbar-actions {
            flex-direction: column;
            align-items: stretch;
        }

        .filter-chips {
            overflow-x: auto;
            flex-wrap: nowrap;
            padding-bottom: .2rem;
        }

        .pagination {
            justify-content: center;
        }
    }

    .section-heading {
        font-size: clamp(1.9rem, 4vw, 2.8rem);
        line-height: 1.2;
        letter-spacing: -.02em;
    }

    .section-heading-sub {
        color: var(--muted);
        max-width: 46ch;
        margin-top: .5rem;
        font-size: 1rem;
    }

    .site-footer {
        background: var(--bg-deep);
        color: rgba(255, 255, 255, .72);
        padding-block: 4.2rem 2.2rem;
    }

    .site-footer .brand-text {
        color: #fff;
    }

    .footer-grid {
        display: grid;
        grid-template-columns: minmax(0, 1.7fr) 1fr 1fr;
        gap: 2.5rem 3rem;
        margin-bottom: 3.4rem;
    }

    .footer-desc {
        color: rgba(255, 255, 255, .58);
        max-width: 38ch;
        font-size: .96rem;
        margin-top: .8rem;
    }

    .footer-col h3 {
        color: #fff;
        font-size: .95rem;
        font-weight: 700;
        margin-bottom: 1rem;
        letter-spacing: .02em;
    }

    .footer-col ul {
        list-style: none;
        margin: 0;
        padding: 0;
        display: grid;
        gap: .55rem;
    }

    .footer-col a {
        color: rgba(255, 255, 255, .66);
        font-size: .92rem;
        transition: color .2s;
    }

    .footer-col a:hover {
        color: #fff;
        text-decoration: underline;
        text-decoration-color: var(--accent);
        text-underline-offset: 4px;
    }

    .footer-bottom {
        border-top: 1px solid rgba(255, 255, 255, .12);
        padding-top: 1.9rem;
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        gap: .8rem;
        font-size: .84rem;
        color: rgba(255, 255, 255, .5);
    }

    @media (max-width: 900px) {
        .footer-grid {
            grid-template-columns: 1fr 1fr;
        }

        .footer-desc {
            max-width: 44ch;
        }
    }

    @media (max-width: 600px) {
        .footer-grid {
            grid-template-columns: 1fr;
            gap: 2rem;
        }
    }

    .reveal {
        opacity: 0;
        transform: translateY(18px);
        transition: opacity .5s ease-out, transform .5s ease-out;
        transition-delay: .1s;
    }

    .reveal.in-view {
        opacity: 1;
        transform: none;
    }

    @media (prefers-reduced-motion: reduce) {
        *,
        *::before,
        *::after {
            animation-duration: .01ms !important;
            animation-iteration-count: 1 !important;
            transition-duration: .01ms !important;
        }

        html {
            scroll-behavior: auto;
        }

        .reveal {
            opacity: 1;
            transform: none;
        }
    }
