/* roulang page: index */
:root {
    --page-bg: #0B1220;
    --panel-bg: #0D1526;
    --panel-deep: #111C33;
    --text-main: #F1F5F9;
    --text-mid: #94A3B8;
    --text-dim: #64748B;
    --text-body: #CBD5E1;
    --brand-a: #2DD4BF;
    --brand-b: #38BDF8;
    --gold: #F59E0B;
    --line: rgba(255, 255, 255, 0.08);
    --line-light: rgba(255, 255, 255, 0.14);
    --glass-bg: rgba(255, 255, 255, 0.04);
    --radius-lg: 1rem;
    --radius-md: .75rem;
    --shadow-card: 0 20px 40px rgba(0, 0, 0, .3);
  }

  html {
    scroll-behavior: smooth;
  }

  body {
    background: var(--page-bg);
    color: var(--text-main);
    font-family: "Inter", "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;
    line-height: 1.75;
    letter-spacing: .015em;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
  }

  body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image: radial-gradient(circle at 20% 10%, rgba(45, 212, 191, .06), transparent 30%), radial-gradient(circle at 80% 60%, rgba(56, 189, 248, .05), transparent 35%);
  }

  main, header, footer {
    position: relative;
    z-index: 1;
  }

  .container-x {
    width: 100%;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
  }

  .section-pad {
    padding-top: 80px;
    padding-bottom: 80px;
  }

  .eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-size: .8rem;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--brand-a);
    font-weight: 600;
    margin-bottom: .75rem;
  }

  .eyebrow::before {
    content: "";
    width: 22px;
    height: 1px;
    background: linear-gradient(90deg, var(--brand-a), var(--brand-b));
    display: inline-block;
  }

  .glass-card {
    background: var(--glass-bg);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
  }

  .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    border-radius: .85rem;
    font-weight: 600;
    line-height: 1;
    transition: all .25s ease;
    cursor: pointer;
    border: 1px solid transparent;
    white-space: nowrap;
  }

  .btn-primary {
    background: linear-gradient(135deg, var(--brand-a), var(--brand-b));
    color: #062033;
    border: 1px solid rgba(255, 255, 255, .2);
    box-shadow: 0 0 22px rgba(45, 212, 191, .22);
  }

  .btn-primary:hover {
    box-shadow: 0 0 36px rgba(45, 212, 191, .42);
    transform: translateY(-3px);
    filter: saturate(1.18);
  }

  .btn-primary:active {
    transform: translateY(0);
    box-shadow: 0 0 14px rgba(45, 212, 191, .2);
  }

  .btn-secondary {
    background: rgba(255, 255, 255, .05);
    border-color: rgba(255, 255, 255, .16);
    color: #E2E8F0;
    backdrop-filter: blur(8px);
  }

  .btn-secondary:hover {
    background: rgba(255, 255, 255, .1);
    border-color: rgba(255, 255, 255, .28);
    transform: translateY(-3px);
  }

  .btn-outline {
    background: transparent;
    border-color: rgba(255, 255, 255, .2);
    color: #E2E8F0;
  }

  .btn-outline:hover {
    border-color: var(--brand-a);
    color: var(--brand-a);
    transform: translateY(-2px);
  }

  .btn-sm {
    padding: .7rem 1.1rem;
    font-size: .86rem;
  }

  .btn-lg {
    padding: 1rem 1.7rem;
    font-size: 1rem;
  }

  .badge {
    display: inline-flex;
    align-items: center;
    padding: .26rem .7rem;
    border-radius: 999px;
    background: rgba(45, 212, 191, .1);
    border: 1px solid rgba(45, 212, 191, .24);
    color: #5EEAD4;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .05em;
  }

  .badge-gold {
    background: rgba(245, 158, 11, .12);
    border-color: rgba(245, 158, 11, .24);
    color: #FCD34D;
  }

  .line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  /* Navigation */
  .nav-shell {
    position: fixed;
    top: 16px;
    left: 0;
    right: 0;
    z-index: 50;
    display: flex;
    justify-content: center;
    padding: 0 16px;
  }

  .nav-dock {
    width: 100%;
    max-width: 1080px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .6rem .7rem;
    border-radius: 999px;
    background: rgba(15, 23, 42, .82);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border: 1px solid rgba(255, 255, 255, .1);
    box-shadow: 0 18px 50px rgba(0, 0, 0, .36);
    gap: .5rem;
  }

  .brand {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    padding: .3rem .5rem;
    font-weight: 800;
    font-size: 1.08rem;
    color: #F8FAFC;
    letter-spacing: .03em;
    text-decoration: none;
  }

  .brand-mark {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(45, 212, 191, .2), rgba(56, 189, 248, .2));
    border: 1px solid rgba(45, 212, 191, .4);
    color: var(--brand-a);
    font-size: 1rem;
    box-shadow: 0 0 16px rgba(45, 212, 191, .24);
  }

  .nav-menu {
    display: none;
    align-items: center;
    gap: .2rem;
  }

  @media (min-width: 768px) {
    .nav-menu {
      display: flex;
    }
  }

  .nav-link {
    display: inline-flex;
    align-items: center;
    padding: .55rem 1.05rem;
    border-radius: 999px;
    color: #CBD5E1;
    font-size: .92rem;
    font-weight: 500;
    transition: all .2s ease;
    text-decoration: none;
  }

  .nav-link:hover {
    color: #F8FAFC;
    background: rgba(255, 255, 255, .06);
  }

  .nav-link.nav-active {
    color: #08151F;
    background: linear-gradient(135deg, var(--brand-a), var(--brand-b));
    font-weight: 600;
  }

  .menu-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .12);
    color: #E2E8F0;
    font-size: 1.1rem;
    cursor: pointer;
    transition: all .2s ease;
  }

  @media (min-width: 768px) {
    .menu-button {
      display: none;
    }
  }

  .menu-button:hover {
    background: rgba(255, 255, 255, .12);
    color: #fff;
  }

  .mobile-menu {
    position: fixed;
    inset: 0;
    z-index: 80;
    display: none;
    align-items: center;
    justify-content: flex-end;
    background: rgba(2, 6, 23, .66);
    backdrop-filter: blur(6px);
  }

  .mobile-menu.open {
    display: flex;
  }

  .mobile-menu-panel {
    width: min(86%, 360px);
    height: 100%;
    margin-left: auto;
    background: rgba(15, 23, 42, .94);
    backdrop-filter: blur(20px);
    border-left: 1px solid var(--line-light);
    padding: 2rem 1.4rem;
    display: flex;
    flex-direction: column;
    gap: .4rem;
    box-shadow: -30px 0 70px rgba(0, 0, 0, .4);
    overflow-y: auto;
  }

  .mobile-menu-panel .mobile-close {
    align-self: flex-end;
    margin-bottom: 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .07);
    border: 1px solid var(--line);
    color: #E2E8F0;
    cursor: pointer;
    font-size: 1.15rem;
  }

  .mobile-link {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .85rem 1rem;
    border-radius: 1rem;
    color: #E2E8F0;
    font-weight: 500;
    text-decoration: none;
    transition: all .2s;
  }

  .mobile-link:hover {
    background: rgba(255, 255, 255, .08);
  }

  .mobile-link i {
    width: 26px;
    color: var(--brand-a);
  }

  .mobile-menu-btn {
    margin-top: 1rem;
    justify-content: center;
  }

  /* Hero */
  .hero {
    position: relative;
    min-height: 100svh;
    display: flex;
    align-items: center;
    overflow: hidden;
    padding-top: 110px;
    padding-bottom: 70px;
  }

  .hero-bg {
    position: absolute;
    inset: 0;
    background-image: linear-gradient(80deg, rgba(11, 18, 32, .98) 8%, rgba(11, 18, 32, .8) 45%, rgba(11, 18, 32, .45) 100%), url('/assets/images/backpic/back-1.png');
    background-size: cover;
    background-position: center;
    z-index: -1;
  }

  .hero-bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 20%, var(--page-bg) 98%);
    opacity: .8;
  }

  .hero-status {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    padding: .4rem .85rem;
    border-radius: 999px;
    background: rgba(255,255,255,.05);
    border: 1px solid rgba(255,255,255,.1);
    font-size: .78rem;
    color: #A5B4CB;
  }

  .pulse-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: #34D399;
    box-shadow: 0 0 0 0 rgba(52, 211, 153, .6);
    animation: pulse-dot 1.8s infinite;
  }

  @keyframes pulse-dot {
    0% { box-shadow: 0 0 0 0 rgba(52, 211, 153, .55); }
    70% { box-shadow: 0 0 0 10px rgba(52, 211, 153, 0); }
    100% { box-shadow: 0 0 0 0 rgba(52, 211, 153, 0); }
  }

  .hero h1 {
    font-size: clamp(2.4rem, 6vw, 4.2rem);
    font-weight: 800;
    line-height: 1.18;
    letter-spacing: .01em;
    color: #FFFFFF;
    margin: 1.2rem 0 .8rem;
  }

  .hero-sub {
    max-width: 30rem;
    color: #BFD9F0;
    font-size: 1.12rem;
    line-height: 1.8;
  }

  .hero-data {
    background: rgba(15, 23, 42, .62);
    border: 1px solid rgba(255, 255, 255, .12);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border-radius: 1.7rem;
    padding: 1.5rem;
    box-shadow: 0 30px 80px rgba(0, 0, 0, .38);
  }

  .data-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.2rem;
    color: #C7D4E5;
    font-size: .82rem;
  }

  .data-live {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    color: #2DD4BF;
    font-size: .74rem;
    font-weight: 600;
  }

  .data-number {
    font-size: 1.8rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.02em;
    color: #FFFFFF;
  }

  .data-label {
    margin-top: .35rem;
    color: #8196AD;
    font-size: .72rem;
  }

  .data-trend {
    color: #34D399;
    font-size: .68rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    gap: .15rem;
  }

  .data-sep {
    height: 1px;
    margin: 1.2rem 0;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .12), transparent);
  }

  /* value cards */
  .value-card {
    position: relative;
    background: rgba(255, 255, 255, .045);
    border: 1px solid var(--line);
    border-radius: 1.2rem;
    padding: 1.8rem 1.5rem;
    transition: all .28s ease;
    overflow: hidden;
  }

  .value-card::after {
    content: "";
    position: absolute;
    left: 1.6rem;
    right: 1.6rem;
    bottom: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(45, 212, 191, .5), transparent);
    opacity: 0;
    transition: opacity .25s;
  }

  .value-card:hover {
    transform: translateY(-6px);
    border-color: rgba(255, 255, 255, .18);
    background: rgba(255, 255, 255, .07);
    box-shadow: var(--shadow-card);
  }

  .value-card:hover::after {
    opacity: 1;
  }

  .value-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    border-radius: 1rem;
    background: rgba(45, 212, 191, .12);
    border: 1px solid rgba(45, 212, 191, .24);
    color: var(--brand-a);
    font-size: 1.15rem;
    margin-bottom: 1rem;
  }

  /* feature section */
  .feature-panel {
    background: rgba(255, 255, 255, .04);
    border: 1px solid var(--line);
    border-radius: 1.35rem;
    padding: 1.8rem;
    position: relative;
    transition: all .25s ease;
  }

  .feature-panel:hover {
    transform: translateY(-4px);
    border-color: rgba(255,255,255,.16);
    background: rgba(255,255,255,.06);
  }

  .feature-panel::before {
    content: "";
    position: absolute;
    left: 0;
    top: 24px;
    bottom: 24px;
    width: 2px;
    border-radius: 2px;
    background: linear-gradient(180deg, var(--brand-a), var(--brand-b));
    box-shadow: 0 0 12px rgba(45, 212, 191, .4);
    opacity: .75;
  }

  .feature-panel h3 {
    font-size: 1.12rem;
    font-weight: 700;
    color: #EAF2FF;
  }

  .feature-panel p {
    color: #9FB0C8;
    font-size: .92rem;
    line-height: 1.75;
    margin-top: .45rem;
  }

  .feature-index {
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .12em;
    color: #7A92AD;
    margin-bottom: .25rem;
  }

  .scene-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: .7rem;
    padding: 1.2rem .8rem;
    background: rgba(255,255,255,.04);
    border: 1px solid var(--line);
    border-radius: 1.1rem;
    min-height: 104px;
    color: #B7C7DD;
    font-size: .88rem;
    transition: all .22s ease;
  }

  .scene-badge:hover {
    border-color: rgba(45, 212, 191, .34);
    background: rgba(45, 212, 191, .08);
    color: #E2F3FF;
    transform: translateY(-4px);
  }

  .scene-badge i {
    font-size: 1.35rem;
    color: var(--brand-a);
  }

  /* case card */
  .case-card {
    background: rgba(255,255,255,.04);
    border: 1px solid var(--line);
    border-radius: 1.3rem;
    overflow: hidden;
    transition: all .26s ease;
  }

  .case-card:hover {
    border-color: rgba(255,255,255,.17);
    transform: translateY(-8px);
    background: rgba(255,255,255,.065);
    box-shadow: 0 30px 80px rgba(0,0,0,.3);
  }

  .case-img {
    position: relative;
    overflow: hidden;
    aspect-ratio: 4/3;
    background: #0a121e;
  }

  .case-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .55s ease;
  }

  .case-card:hover .case-img img {
    transform: scale(1.05);
  }

  .case-img::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 50%, rgba(11,18,32,.6));
  }

  .case-tag {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 1;
    backdrop-filter: blur(8px);
  }

  /* pricing */
  .price-card {
    background: rgba(255,255,255,.04);
    border: 1px solid var(--line);
    border-radius: 1.4rem;
    padding: 1.8rem 1.6rem;
    backdrop-filter: blur(14px);
    transition: all .25s ease;
  }

  .price-card:hover {
    transform: translateY(-6px);
    border-color: rgba(255,255,255,.15);
  }

  .price-card.recommend {
    background: linear-gradient(180deg, rgba(45,212,191,.14), rgba(56,189,248,.07));
    border: 1px solid rgba(45,212,191,.45);
    box-shadow: 0 0 44px rgba(45,212,191,.16);
    transform: scale(1.03);
  }

  @media (max-width: 1023px) {
    .price-card.recommend { transform: none; }
  }

  .price-feature {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    padding: .35rem 0;
    color: #B7C7DD;
    font-size: .9rem;
  }

  .price-feature i {
    color: var(--brand-a);
    margin-top: .22rem;
    font-size: .8rem;
  }

  .price-num {
    font-size: 2.4rem;
    font-weight: 800;
    color: #F8FAFC;
    letter-spacing: -.03em;
  }

  .price-label {
    font-size: .85rem;
    color: #94A3B8;
  }

  /* news */
  .news-headline-card {
    background: rgba(255,255,255,.04);
    border: 1px solid var(--line);
    border-radius: 1.3rem;
    overflow: hidden;
    transition: all .25s;
  }

  .news-headline-card:hover {
    border-color: rgba(255,255,255,.16);
    transform: translateY(-4px);
  }

  .news-list-item {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: .9rem .45rem;
    border-radius: .8rem;
    transition: background .2s;
  }

  .news-list-item:hover {
    background: rgba(255,255,255,.05);
  }

  .news-list-item .news-thumb {
    flex-shrink: 0;
    width: 84px;
    height: 66px;
    border-radius: .8rem;
    object-fit: cover;
    border: 1px solid var(--line);
  }

  .news-line {
    min-width: 0;
    flex: 1;
  }

  .news-title {
    color: #E6EEF9;
    font-size: .95rem;
    font-weight: 600;
    line-height: 1.5;
  }

  .news-title:hover {
    color: var(--brand-a);
  }

  .news-empty {
    text-align: center;
    padding: 3.8rem 1rem;
    background: rgba(255,255,255,.025);
    border: 1px dashed var(--line);
    border-radius: 1.5rem;
    color: var(--text-dim);
    font-size: 1rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .75rem;
  }

  .news-empty i {
    font-size: 2rem;
    color: #50627A;
  }

  .date-chip {
    display: inline-flex;
    align-items: center;
    padding: .1rem .4rem;
    border-radius: .35rem;
    background: rgba(255,255,255,.05);
    border: 1px solid var(--line);
    font-size: .7rem;
    color: #9CB2CB;
  }

  /* FAQ */
  .faq-item {
    background: rgba(255,255,255,.035);
    border: 1px solid var(--line);
    border-radius: 1rem;
    margin-bottom: .85rem;
    overflow: hidden;
    transition: border-color .2s;
  }

  .faq-item.open {
    border-color: rgba(45,212,191,.3);
    background: rgba(255,255,255,.055);
  }

  .faq-question {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    text-align: left;
    padding: 1.2rem 1.3rem;
    background: transparent;
    color: #EAF2FF;
    font-size: .98rem;
    font-weight: 600;
    cursor: pointer;
    border: 0;
  }

  .faq-question:hover {
    color: #FFFFFF;
  }

  .faq-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    color: var(--brand-a);
    font-size: 1rem;
    transition: transform .25s ease;
  }

  .faq-item.open .faq-icon {
    transform: rotate(45deg);
    background: var(--brand-a);
    color: #062033;
  }

  .faq-answer {
    max-height: 0;
    transition: max-height .28s ease;
    overflow: hidden;
  }

  .faq-item.open .faq-answer {
    max-height: 460px;
  }

  .faq-answer-inner {
    padding: .1rem 1.3rem 1.25rem;
    color: #A9BBD4;
    font-size: .94rem;
    line-height: 1.85;
  }

  /* CTA */
  .cta-card {
    position: relative;
    border-radius: 1.8rem;
    padding: 4.2rem 2rem;
    text-align: center;
    overflow: hidden;
    background-image: linear-gradient(90deg, rgba(11,18,32,.92), rgba(11,18,32,.65)), url('/assets/images/backpic/back-3.png');
    background-size: cover;
    background-position: center;
    border: 1px solid rgba(255,255,255,.16);
  }

  .cta-card h2 {
    font-size: clamp(1.7rem, 4vw, 2.7rem);
    font-weight: 800;
    margin-bottom: .75rem;
  }

  /* footer */
  .footer {
    background: #0A0F1A;
    border-top: 1px solid rgba(255,255,255,.05);
    margin-top: 2rem;
    padding-top: 4rem;
  }

  .footer-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2.5rem 1.5rem;
    padding-bottom: 3rem;
  }

  @media (min-width: 768px) {
    .footer-grid {
      grid-template-columns: repeat(4, 1fr);
    }
  }

  .footer-title {
    color: #E8EFFA;
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 1.1rem;
    letter-spacing: .06em;
  }

  .footer-link {
    display: block;
    padding: .25rem 0;
    color: #8698AF;
    font-size: .92rem;
    text-decoration: none;
    transition: color .2s;
  }

  .footer-link:hover {
    color: var(--brand-a);
  }

  .footer-bottom {
    border-top: 1px solid rgba(255,255,255,.05);
    padding: 1.3rem 0;
    color: #64748B;
    font-size: .82rem;
    text-align: center;
  }

  .img-shadow {
    box-shadow: 0 28px 70px rgba(0,0,0,.32);
  }

  blockquote {
    border-left: 4px solid var(--brand-a);
    background: rgba(255,255,255,.045);
    padding: 1rem 1.2rem;
    border-radius: .6rem;
  }

  @media (max-width: 640px) {
    .section-pad {
      padding-top: 56px;
      padding-bottom: 56px;
    }
    .footer-grid {
      grid-template-columns: 1fr 1fr;
    }
  }

  @media (max-width: 480px) {
    .footer-grid {
      grid-template-columns: 1fr;
    }
  }

/* roulang page: article */
:root{
  --bg:#0B1220;
  --panel:#111C33;
  --panel-2:#0D1526;
  --ink:#F1F5F9;
  --ink-2:#94A3B8;
  --ink-3:#64748B;
  --body-ink:#CBD5E1;
  --line:rgba(255,255,255,.1);
  --glass:rgba(255,255,255,.055);
  --teal:#2DD4BF;
  --sky:#38BDF8;
  --amber:#F59E0B;
  --grad:linear-gradient(135deg,#2DD4BF,#38BDF8);
  --radius-xl:1.4rem;
  --radius-lg:1rem;
  --radius-md:.7rem;
  --shadow:0 18px 50px -20px rgba(0,0,0,.7);
  --shadow-glow:0 0 24px rgba(45,212,191,.32);
}
*,*:before,*:after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:"Inter","PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;transition:color .22s ease,border-color .22s ease,background .22s ease}
img{max-width:100%;height:auto;display:block}
button{font-family:inherit}
::selection{background:rgba(45,212,191,.28);color:#fff}
.container-x{
  width:min(100% - 2rem,1200px);
  margin-inline:auto;
}
.container-narrow{max-width:920px}
.grid{display:grid}
main{overflow:hidden}
.text-soft{color:var(--ink-2)}
.core-cta{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  background:var(--grad);
  color:#062033;
  font-weight:700;
  border-radius:999px;
  padding:.62rem 1.2rem;
  border:0;
  cursor:pointer;
  box-shadow:var(--shadow-glow);
  transition:filter .2s,transform .2s,a box-shadow .2s;
  white-space:nowrap;
}
.core-cta:hover{filter:saturate(1.25) brightness(1.04);transform:translateY(-2px)}
.glass-cta{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.16);
  color:var(--ink);
  border-radius:999px;
  padding:.62rem 1.18rem;
  font-weight:600;
  backdrop-filter:blur(12px);
  transition:background .2s,transform .2s,border-color .2s;
}
.glass-cta:hover{background:rgba(255,255,255,.1);border-color:rgba(45,212,191,.45);transform:translateY(-2px)}
:focus-visible{outline:2px solid rgba(45,212,191,.85);outline-offset:3px;border-radius:6px}

/* ===== 导航 ===== */
.nav-shell{
  position:sticky;
  top:0;
  z-index:60;
  padding:14px 14px 4px;
}
.nav-dock{
  position:relative;
  display:flex;
  align-items:center;
  gap:14px;
  width:min(100%,1120px);
  margin-inline:auto;
  background:rgba(10,17,32,.68);
  backdrop-filter:blur(18px);
  border:1px solid rgba(255,255,255,.11);
  border-radius:999px;
  padding:8px 12px 8px 18px;
  box-shadow:0 22px 60px -20px rgba(0,0,0,.78);
}
.brand{display:inline-flex;align-items:center;gap:.6rem;font-weight:800;font-size:1.06rem;letter-spacing:.2px;}
.brand-mark{
  display:grid;
  place-items:center;
  width:34px;height:34px;
  border-radius:11px;
  background:var(--grad);
  color:#071323;
  font-size:.95rem;
  box-shadow:0 6px 18px rgba(45,212,191,.28);
}
.nav-menu{display:flex;align-items:center;gap:2px;margin:0 auto}
.nav-link{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.48rem .88rem;
  border-radius:999px;
  color:var(--ink-2);
  font-weight:500;
  font-size:.95rem;
  transition:all .22s;
}
.nav-link:hover{color:#fff;background:rgba(255,255,255,.08)}
.nav-link.nav-active{color:#fff;background:rgba(255,255,255,.11);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.nav-actions{display:inline-flex;align-items:center;gap:.5rem}
.menu-button{
  display:none;width:38px;height:38px;place-items:center;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.13);
  color:var(--ink);border-radius:50%;cursor:pointer;font-size:1rem;
}
.menu-button:hover{background:rgba(255,255,255,.1)}

/* ===== 文章头 ===== */
.page-main{background:var(--bg)}
.article-hero{
  position:relative;
  min-height:370px;
  padding:78px 0 58px;
  background-position:center;
  background-size:cover;
  display:flex;
  align-items:flex-end;
}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(0deg,rgba(11,18,32,.98) 4%,rgba(11,18,32,.58) 72%,rgba(11,18,32,.48));}
.breadcrumb{position:relative;z-index:1;display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;color:var(--ink-3);font-size:.88rem;margin-bottom:1rem}
.breadcrumb i{color:var(--ink-3);font-size:.62rem}
.breadcrumb a:hover{color:var(--teal)}
.breadcrumb .crumb-now{color:var(--ink-2);max-width:400px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block}
.article-title{position:relative;z-index:1;margin:0 0 18px;font-size:clamp(1.65rem,3.6vw,2.55rem);font-weight:800;line-height:1.35;letter-spacing:.2px;max-width:820px}
.article-meta{position:relative;z-index:1;display:flex;align-items:center;flex-wrap:wrap;gap:.75rem 1.35rem;color:var(--ink-2);font-size:.9rem}
.article-meta span{display:inline-flex;align-items:center;gap:.4rem}
.article-meta i{color:var(--teal);opacity:.85}

/* ===== 正文区 ===== */
.article-main{padding:54px 0 68px;background:radial-gradient(ellipse at 20% 5%,rgba(56,189,248,.05),transparent 30%),radial-gradient(ellipse at 90% 10%,rgba(45,212,191,.04),transparent 34%),var(--bg)}
.article-shell{position:relative}
.glass-board{
  background:rgba(16,26,48,.64);
  border:1px solid rgba(255,255,255,.095);
  border-radius:var(--radius-xl);
  backdrop-filter:blur(18px);
  padding:46px 50px 40px;
  box-shadow:var(--shadow);
}
.article-cover{
  width:100%;
  border-radius:var(--radius-lg);
  object-fit:cover;
  aspect-ratio:16/7;
  margin-bottom:28px;
  border:1px solid rgba(255,255,255,.08);
  background:var(--panel-2);
}
.rich-text{
  color:var(--body-ink);
  font-size:1.01rem;
  line-height:1.9;
  word-break:break-word;
}
.rich-text p{margin:1.05rem 0}
.rich-text a{color:var(--teal);border-bottom:1px solid rgba(45,212,191,.35)}
.rich-text a:hover{border-color:var(--teal)}
.rich-text h2,.rich-text h3,.rich-text h4{color:var(--ink);font-weight:800;line-height:1.45}
.rich-text h2{font-size:1.5rem;margin:2.6rem 0 1rem;padding-left:.85rem;border-left:4px solid var(--teal)}
.rich-text h3{font-size:1.22rem;margin:2.1rem 0 .8rem;color:#e4edf7}
.rich-text h4{font-size:1.06rem;margin:1.7rem 0 .6rem;color:#d4e3ef}
.rich-text blockquote{
  border-left:3px solid rgba(56,189,248,.75);
  background:rgba(255,255,255,.04);
  border-radius:0 var(--radius-md) var(--radius-md) 0;
  margin:1.6rem 0;
  padding:.9rem 1.2rem;
  color:#aabfd4;
}
.rich-text ul,.rich-text ol{padding-left:1.35rem;margin:1.1rem 0}
.rich-text li{margin:.45rem 0;padding-left:.2rem}
.rich-text ul li::marker{color:var(--teal)}
.rich-text img{border-radius:var(--radius-md);margin:1.8rem auto;border:1px solid rgba(255,255,255,.09)}
.rich-text table{width:100%;border-collapse:collapse;margin:1.6rem 0;font-size:.92rem;background:rgba(255,255,255,.025);border-radius:var(--radius-md);overflow:hidden}
.rich-text th,.rich-text td{border:1px solid rgba(255,255,255,.1);padding:.62rem .85rem;text-align:left}
.rich-text th{background:rgba(255,255,255,.07);color:var(--ink)}
.rich-text pre{background:#0a1220;border:1px solid rgba(255,255,255,.09);border-radius:var(--radius-md);padding:1rem 1.1rem;overflow:auto;font-size:.9rem;color:#b6e6dd}
.rich-text code{font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;color:#7ee0d2}
.rich-text hr{border:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);margin:2.4rem 0}

/* tags + nav */
.tag-row{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;padding-top:1.6rem;margin-top:2rem;border-top:1px solid rgba(255,255,255,.08)}
.tag-chip{
  display:inline-flex;align-items:center;gap:.35rem;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.11);
  color:var(--ink-2);
  border-radius:999px;
  padding:.28rem .8rem;
  font-size:.84rem;
  transition:all .2s;
}
.tag-chip i{color:var(--teal);font-size:.7rem}
.tag-chip:hover{background:rgba(45,212,191,.12);color:#d9fff9;border-color:rgba(45,212,191,.35)}
.article-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:34px;flex-wrap:wrap}
.pager-btn{
  display:inline-flex;align-items:center;gap:.5rem;
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.13);
  border-radius:999px;
  padding:.6rem 1.18rem;
  color:var(--ink);
  font-weight:600;
  font-size:.92rem;
  transition:all .22s;
}
.pager-btn:hover{border-color:rgba(45,212,191,.5);color:#c8fff7;transform:translateY(-2px)}
.pager-btn .arr{color:var(--teal)}

/* quick link */
.rel-section{margin-top:-4px;padding:18px 0 64px;background:linear-gradient(180deg,var(--bg) 0%,#0b1422 100%)}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:26px}
.section-head h2{font-size:1.55rem;margin:2px 0 0;font-weight:800}
.eyebrow{display:block;color:var(--teal);font-size:.78rem;letter-spacing:.14em;font-weight:600;margin-bottom:5px}
.light-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.light-card{
  display:flex;align-items:center;gap:15px;
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.09);
  border-radius:var(--radius-lg);
  padding:18px;
  transition:all .25s;
}
.light-card:hover{background:rgba(255,255,255,.08);transform:translateY(-3px);border-color:rgba(45,212,191,.4)}
.light-icon{
  flex:0 0 51px;height:51px;display:grid;place-items:center;border-radius:15px;
  background:rgba(45,212,191,.12);color:var(--teal);font-size:1.12rem;
  border:1px solid rgba(45,212,191,.22)
}
.light-card h3{font-size:.99rem;margin:0 0 3px;font-weight:700;color:var(--ink)}
.light-card p{margin:0;color:var(--ink-3);font-size:.8rem;line-height:1.5}

/* CTA */
.cta-zone{padding:0 0 84px;background:linear-gradient(180deg,#0b1422,var(--bg))}
.cta-banner{
  position:relative;
  border-radius:var(--radius-xl);
  padding:48px 36px;
  text-align:center;
  background:linear-gradient(140deg,rgba(45,212,191,.14),rgba(56,189,248,.08) 58%,rgba(255,255,255,.025));
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 30px 70px -30px rgba(2,6,23,.95);
  overflow:hidden;
}
.cta-banner::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% -30%,rgba(45,212,191,.22),transparent 60%);pointer-events:none}
.cta-banner h2{position:relative;font-size:clamp(1.45rem,3vw,2rem);font-weight:800;margin:0 0 8px}
.cta-banner p{position:relative;margin:0 0 24px;color:var(--ink-2)}
.btn-row{position:relative;display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap}

/* 空状态 */
.empty-zone{padding:90px 0}
.empty-panel{
  max-width:560px;margin:0 auto;text-align:center;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);
  border-radius:var(--radius-xl);padding:46px 28px;backdrop-filter:blur(10px);
}
.empty-icon{width:66px;height:66px;margin:0 auto 18px;display:grid;place-items:center;background:rgba(45,212,191,.1);border:1px solid rgba(45,212,191,.2);color:var(--teal);border-radius:22px;font-size:1.6rem}
.empty-panel h1{font-size:1.5rem;margin:0 0 10px;font-weight:800}
.empty-panel p{color:var(--ink-2);margin:0 0 22px;line-height:1.8}

/* ===== 页脚 ===== */
.footer{background:#0a0f1a;border-top:1px solid rgba(255,255,255,.05);margin-top:0}
.footer-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.2fr;gap:40px 32px;padding:62px 0 38px}
.footer-title{font-size:.95rem;font-weight:700;margin:0 0 18px;color:var(--ink);letter-spacing:.02em}
.footer-link{display:block;color:var(--ink-3);margin-bottom:10px;font-size:.85rem;transition:color .2s,transform .2s}
.footer-link:hover{color:var(--teal);transform:translateX(3px)}
.footer a.footer-link:last-child{margin-bottom:0}
.footer-bottom{border-top:1px solid rgba(255,255,255,.07);padding:20px 0;color:var(--ink-3);font-size:.8rem;letter-spacing:.02em}

/* responsive */
@media (max-width:1023px){
  .footer-grid{grid-template-columns:1fr 1fr}
  .glass-board{padding:36px 30px}
}
@media (max-width:767px){
  .nav-shell{padding-top:10px}
  .nav-dock{padding:8px 10px 8px 14px}
  .nav-menu{
    position:absolute;top:calc(100% + 14px);left:0;right:0;
    background:rgba(10,16,30,.92);
    backdrop-filter:blur(20px);
    border:1px solid rgba(255,255,255,.1);
    border-radius:22px;
    padding:12px;
    display:none;
    flex-direction:column;
    align-items:stretch;
    box-shadow:0 30px 80px -20px rgba(0,0,0,.9);
  }
  .nav-shell.menu-open .nav-menu{display:flex}
  .nav-menu .nav-link{padding:.75rem .9rem}
  .menu-button{display:grid}
  .header-cta{display:none!important}
  .article-title{font-size:1.5rem}
  .glass-board{padding:24px 18px}
  .article-cover{aspect-ratio:16/9}
  .light-cards{grid-template-columns:1fr}
  .cta-banner{padding:40px 22px}
  .article-pager{flex-direction:column;align-items:stretch}
  .pager-btn{justify-content:center}
  .footer-grid{grid-template-columns:1fr;gap:30px}
  .article-hero{padding:62px 0 40px;min-height:280px}
}

/* roulang page: category1 */
:root {
  --bg-page: #0B1220;
  --bg-panel: #111C33;
  --bg-soft: #0d1526;
  --brand-cyan: #2DD4BF;
  --brand-blue: #38BDF8;
  --brand-gold: #F59E0B;
  --text-main: #F1F5F9;
  --text-sub: #94A3B8;
  --text-dim: #64748B;
  --text-body: #CBD5E1;
  --border-glass: rgba(255, 255, 255, 0.08);
  --card-bg: rgba(255, 255, 255, 0.05);
  --card-bg-hover: rgba(255, 255, 255, 0.08);
  --radius-xl: 24px;
  --radius-lg: 16px;
  --radius-md: 12px;
  --radius-full: 999px;
  --shadow-soft: 0 20px 50px rgba(0, 0, 0, 0.35);
  --shadow-cyan: 0 0 24px rgba(45, 212, 191, 0.3);
  --transition: 0.28s ease;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: "Inter", "PingFang SC", "Microsoft YaHei", "Noto Sans SC", ui-sans-serif, sans-serif;
  background: var(--bg-page);
  color: var(--text-main);
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}

body.no-scroll {
  overflow: hidden;
}

img {
  max-width: 100%;
  display: block;
}

a {
  text-decoration: none;
  color: inherit;
}

button,
input {
  font: inherit;
  border: none;
  background: none;
  color: inherit;
}

.container-x {
  width: 100%;
  max-width: 1240px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}

.nav-shell {
  position: fixed;
  top: 16px;
  left: 0;
  right: 0;
  z-index: 60;
  display: flex;
  justify-content: center;
  padding: 0 16px;
  pointer-events: none;
}

.nav-dock {
  pointer-events: auto;
  width: 100%;
  max-width: 1080px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 8px 10px 8px 12px;
  border-radius: var(--radius-full);
  background: rgba(9, 17, 33, 0.72);
  border: 1px solid rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.36);
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 800;
  font-size: 17px;
  letter-spacing: 0.01em;
  color: #F8FAFC;
  transition: opacity 0.2s ease;
}

.brand:hover {
  opacity: 0.88;
}

.brand-mark {
  width: 34px;
  height: 34px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  color: #062033;
  background: linear-gradient(135deg, #2DD4BF, #38BDF8);
  box-shadow: 0 0 14px rgba(56, 189, 248, 0.28);
}

.nav-menu {
  display: flex;
  align-items: center;
  gap: 4px;
}

.nav-link {
  display: inline-flex;
  align-items: center;
  padding: 9px 14px;
  border-radius: var(--radius-full);
  font-size: 14px;
  font-weight: 500;
  color: var(--text-sub);
  transition: all 0.22s ease;
  position: relative;
}

.nav-link:hover {
  color: #E2E8F0;
  background: rgba(255, 255, 255, 0.06);
}

.nav-active {
  color: #F1F5F9;
  background: rgba(255, 255, 255, 0.08);
}

.nav-active::after {
  content: "";
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 5px;
  height: 2px;
  border-radius: 8px;
  background: linear-gradient(90deg, #2DD4BF, #38BDF8);
  opacity: 0.8;
}

.menu-button {
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-full);
  color: #E2E8F0;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.08);
  transition: background 0.2s ease;
}

.menu-button:hover {
  background: rgba(255, 255, 255, 0.14);
}

.menu-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(4, 8, 16, 0.68);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  z-index: 68;
  opacity: 0;
  visibility: hidden;
  transition: all 0.28s ease;
}

.menu-backdrop.show {
  opacity: 1;
  visibility: visible;
}

.menu-panel {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 300px;
  z-index: 70;
  padding: 26px 22px;
  background: rgba(10, 16, 30, 0.96);
  border-left: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: -20px 0 50px rgba(0, 0, 0, 0.3);
  transform: translateX(100%);
  transition: transform 0.3s ease;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.menu-panel.open {
  transform: translateX(0);
}

.menu-panel .panel-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 22px;
  margin-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.menu-panel .panel-links {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.menu-panel .panel-links a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 13px 14px;
  border-radius: 14px;
  color: var(--text-sub);
  font-size: 15px;
  font-weight: 500;
  transition: all 0.2s ease;
}

.menu-panel .panel-links a:hover,
.menu-panel .panel-links a.active {
  background: rgba(255, 255, 255, 0.08);
  color: #F8FAFC;
}

.menu-close {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 14px;
  border-radius: 16px;
  color: var(--text-sub);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.08);
  transition: all 0.2s ease;
}

.menu-close:hover {
  background: rgba(255, 255, 255, 0.1);
  color: #F8FAFC;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 14px;
  font-weight: 600;
  font-size: 15px;
  padding: 12px 22px;
  line-height: 1.2;
  min-height: 44px;
  transition: all 0.28s ease;
  white-space: nowrap;
  cursor: pointer;
}

.btn-sm {
  padding: 8px 17px;
  min-height: 36px;
  border-radius: var(--radius-full);
  font-size: 14px;
}

.btn-primary {
  background: linear-gradient(135deg, #2DD4BF, #38BDF8);
  color: #062033;
  box-shadow: 0 0 22px rgba(45, 212, 191, 0.24);
}

.btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 0 34px rgba(56, 189, 248, 0.4);
  filter: saturate(1.15);
}

.btn-primary:active {
  transform: translateY(0);
  box-shadow: 0 0 14px rgba(45, 212, 191, 0.25);
}

.btn-ghost {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #E2E8F0;
}

.btn-ghost:hover {
  background: rgba(255, 255, 255, 0.11);
  border-color: rgba(255, 255, 255, 0.2);
  transform: translateY(-2px);
}

.btn-outline-mid {
  background: transparent;
  border: 1px solid rgba(45, 212, 191, 0.35);
  color: var(--brand-cyan);
}

.btn-outline-mid:hover {
  border-color: var(--brand-cyan);
  background: rgba(45, 212, 191, 0.08);
  transform: translateY(-2px);
}

.focus-glass {
  display: flex;
  align-items: center;
  gap: 12px;
  width: min(560px, 100%);
  padding: 8px 8px 8px 18px;
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(12px);
}

.focus-glass input {
  width: 100%;
  background: transparent;
  color: #F1F5F9;
  font-size: 14px;
  line-height: 1.4;
  outline: none;
  min-height: 32px;
}

.focus-glass input::placeholder {
  color: rgba(148, 163, 184, 0.8);
}

.focus-glass button {
  flex-shrink: 0;
  min-height: 36px;
  padding: 0 18px;
  border-radius: var(--radius-full);
  background: linear-gradient(120deg, #2DD4BF, #38BDF8);
  color: #062033;
  font-weight: 600;
  font-size: 13px;
  transition: all 0.24s ease;
}

.focus-glass button:hover {
  filter: brightness(1.08);
  box-shadow: 0 0 16px rgba(56, 189, 248, 0.3);
}

.glass-card {
  background: var(--card-bg);
  border: 1px solid var(--border-glass);
  border-radius: var(--radius-xl);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.18);
}

.section-pad {
  padding: 80px 0;
}

@media (min-width: 768px) {
  .section-pad {
    padding: 100px 0;
  }
}

.tag-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 13px;
  border-radius: var(--radius-full);
  background: rgba(45, 212, 191, 0.1);
  border: 1px solid rgba(45, 212, 191, 0.22);
  color: #5EEAD4;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.05em;
}

.eyebrow-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #2DD4BF;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.text-gradient {
  background: linear-gradient(120deg, #99F6E4, #7DD3FC, #BAE6FD);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.digits {
  font-family: "Inter", ui-sans-serif, sans-serif;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.03em;
}

.hero-area {
  min-height: 94vh;
  display: flex;
  align-items: center;
  background-image: url("/assets/images/backpic/back-2.webp");
  background-size: cover;
  background-position: center;
  position: relative;
  padding: 150px 0 80px;
  overflow: hidden;
}

.hero-area::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(95deg, rgba(8, 13, 25, 0.96) 0%, rgba(8, 13, 25, 0.82) 42%, rgba(8, 13, 25, 0.32) 100%);
}

.hero-area::after {
  content: "";
  position: absolute;
  left: -10%;
  bottom: -30%;
  width: 520px;
  height: 520px;
  background: radial-gradient(circle, rgba(56, 189, 248, 0.14) 0%, transparent 70%);
  pointer-events: none;
}

.hero-content {
  position: relative;
  z-index: 2;
}

.hero-title {
  font-size: clamp(2.4rem, 5.6vw, 4.6rem);
  line-height: 1.18;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #F8FAFC;
}

.stat-glass {
  background: rgba(8, 14, 28, 0.42);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 28px;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow: var(--shadow-soft);
}

.section-copy-dark {
  background: transparent;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.img-card-shadow {
  box-shadow: 0 26px 70px rgba(0, 0, 0, 0.45);
}

.media-card {
  position: relative;
  overflow: hidden;
  border-radius: 24px;
  background: #0d1526;
}

.media-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.55s ease;
}

.media-card:hover img {
  transform: scale(1.05);
}

.feat-card {
  background: var(--card-bg);
  border: 1px solid var(--border-glass);
  border-radius: 20px;
  padding: 22px;
  transition: all 0.3s ease;
}

.feat-card:hover {
  background: var(--card-bg-hover);
  border-color: rgba(255, 255, 255, 0.16);
  transform: translateY(-4px);
  box-shadow: 0 20px 44px rgba(2, 132, 199, 0.1);
}

.feature-icon {
  width: 46px;
  height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(45, 212, 191, 0.2), rgba(56, 189, 248, 0.2));
  border: 1px solid rgba(45, 212, 191, 0.24);
  color: #5EEAD4;
  font-size: 18px;
}

.result-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 11px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  background: rgba(245, 158, 11, 0.12);
  border: 1px solid rgba(245, 158, 11, 0.25);
  color: #FBBF24;
}

.live-dot {
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: #22E58B;
  box-shadow: 0 0 0 0 rgba(34, 229, 139, 0.6);
  animation: pulse-dot 1.8s infinite;
}

@keyframes pulse-dot {
  0% {
    box-shadow: 0 0 0 0 rgba(34, 229, 139, 0.5);
  }
  70% {
    box-shadow: 0 0 0 7px rgba(34, 229, 139, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(34, 229, 139, 0);
  }
}

.divider-line {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(148, 163, 184, 0.22), transparent);
}

.info-neon-line {
  width: 3px;
  border-radius: 8px;
  background: linear-gradient(180deg, #2DD4BF, #38BDF8);
  box-shadow: 0 0 12px rgba(45, 212, 191, 0.25);
}

.step-number {
  width: 52px;
  height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 18px;
  font-weight: 800;
  font-size: 20px;
  color: #062033;
  background: linear-gradient(135deg, #2DD4BF, #38BDF8);
  box-shadow: 0 0 24px rgba(45, 212, 191, 0.24);
}

.faq-item {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 20px;
  overflow: hidden;
  transition: all 0.28s ease;
}

.faq-item[open] {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(45, 212, 191, 0.24);
}

.faq-item summary {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 24px;
  cursor: pointer;
  font-weight: 700;
  font-size: 16px;
  color: #E2E8F0;
  transition: color 0.2s ease;
}

.faq-item summary::-webkit-details-marker {
  display: none;
}

.faq-item summary:hover {
  color: #F8FAFC;
}

.faq-icon {
  width: 30px;
  height: 30px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #94A3B8;
  transition: all 0.3s ease;
  flex-shrink: 0;
}

.faq-icon i {
  font-style: normal;
  font-size: 18px;
  line-height: 1;
  transition: transform 0.3s ease;
}

.faq-item[open] .faq-icon {
  background: rgba(45, 212, 191, 0.16);
  border-color: rgba(45, 212, 191, 0.3);
  color: #5EEAD4;
}

.faq-item[open] .faq-icon i {
  transform: rotate(45deg);
}

.faq-answer {
  padding: 0 24px 22px;
  color: var(--text-body);
  font-size: 15px;
  line-height: 1.9;
}

.cta-area {
  background-image: url("/assets/images/backpic/back-3.png");
  background-size: cover;
  background-position: center;
  position: relative;
  overflow: hidden;
}

.cta-area::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, rgba(8, 13, 25, 0.96) 30%, rgba(11, 18, 32, 0.84) 70%, rgba(11, 18, 32, 0.72));
}

.footer {
  background: #080E1A;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  padding-top: 66px;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 34px;
  padding-bottom: 48px;
}

@media (min-width: 768px) {
  .footer-grid {
    grid-template-columns: 1.4fr 1fr 1fr 1fr;
    gap: 40px;
  }
}

.footer-title {
  font-size: 15px;
  font-weight: 700;
  color: #E2E8F0;
  margin-bottom: 16px;
  letter-spacing: 0.02em;
}

.footer-link {
  display: block;
  color: #64748B;
  font-size: 14px;
  line-height: 2.2;
  transition: color 0.2s ease;
}

.footer-link:hover {
  color: #A5F3FC;
}

.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  padding: 22px 0;
  color: #475569;
  font-size: 13px;
  text-align: center;
}

@media (min-width: 768px) {
  .nav-menu {
    display: flex;
  }
  .menu-button {
    display: none;
  }
}

@media (max-width: 767px) {
  .nav-menu {
    display: none;
  }
  .brand {
    font-size: 15px;
  }
  .brand-mark {
    width: 31px;
    height: 31px;
  }
  .nav-shell {
    top: 10px;
    padding: 0 12px;
  }
  .nav-dock {
    padding: 7px;
  }
  .focus-glass {
    flex-wrap: wrap;
    border-radius: 22px;
    padding: 10px;
  }
  .focus-glass input {
    min-height: 34px;
  }
  .focus-glass button {
    width: 100%;
    border-radius: 999px;
  }
  .hero-area {
    padding-top: 130px;
  }
  .footer-bottom {
    line-height: 1.7;
    padding-left: 10px;
    padding-right: 10px;
  }
}

@media (min-width: 640px) {
  .sm\:inline-flex {
    display: inline-flex !important;
  }
}

/* roulang page: category2 */
:root {
    --bg-deep: #0B1220;
    --bg-panel: #111C33;
    --bg-panel-2: #0d1526;
    --brand-teal: #2DD4BF;
    --brand-sky: #38BDF8;
    --brand-gold: #F59E0B;
    --text-main: #F1F5F9;
    --text-secondary: #94A3B8;
    --text-muted: #64748B;
    --border-soft: rgba(255,255,255,.08);
    --border-strong: rgba(255,255,255,.12);
    --glass-bg: rgba(255,255,255,.05);
    --radius-lg: 18px;
    --radius-xl: 24px;
    --shadow-soft: 0 20px 48px rgba(0,0,0,.32);
  }

  * { margin: 0; padding: 0; box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body {
    background: var(--bg-deep);
    color: var(--text-main);
    font-family: Inter, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;
    line-height: 1.75;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
  }
  a { color: inherit; text-decoration: none; }
  img, svg { display: block; max-width: 100%; }
  button, input, select, textarea { font: inherit; color: inherit; }
  button { cursor: pointer; background: none; border: none; }

  .container-x { width: 100%; max-width: 1200px; margin-left: auto; margin-right: auto; padding-left: 22px; padding-right: 22px; }
  .section-pad { padding-top: 84px; padding-bottom: 84px; }
  .section-pad-sm { padding-top: 56px; padding-bottom: 56px; }
  @media (max-width: 768px) { .section-pad { padding-top: 56px; padding-bottom: 56px; } }

  .section-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; letter-spacing: .14em; color: var(--brand-teal); text-transform: uppercase; }
  .section-eyebrow::before { content: ""; width: 22px; height: 2px; border-radius: 2px; background: linear-gradient(135deg, var(--brand-teal), var(--brand-sky)); }
  .section-title { font-size: clamp(28px, 3.6vw, 38px); font-weight: 800; line-height: 1.25; letter-spacing: -0.02em; margin-top: 10px; color: #F8FAFC; }
  .section-sub { color: var(--text-secondary); max-width: 640px; margin-top: 12px; font-size: 16px; line-height: 1.85; }

  .gradient-text { background: linear-gradient(135deg, var(--brand-teal), var(--brand-sky)); -webkit-background-clip: text; background-clip: text; color: transparent; }
  .text-gradient { background: linear-gradient(135deg, var(--brand-teal), var(--brand-sky)); -webkit-background-clip: text; background-clip: text; color: transparent; }

  .nav-shell { position: fixed; top: 0; left: 0; right: 0; z-index: 80; display: flex; justify-content: center; pointer-events: none; padding: 16px 18px 0; }
  .nav-dock { pointer-events: auto; width: 100%; max-width: 1024px; display: flex; align-items: center; justify-content: space-between; gap: 12px; background: rgba(9, 15, 28, .78); border: 1px solid rgba(255,255,255,.09); border-radius: 999px; padding: 9px 20px 9px 10px; box-shadow: var(--shadow-soft), inset 0 1px 0 rgba(255,255,255,.05); backdrop-filter: blur(22px); -webkit-backdrop-filter: blur(22px); }
  .brand { display: inline-flex; align-items: center; gap: 10px; flex-shrink: 0; font-weight: 800; font-size: 17px; letter-spacing: -.01em; color: #F8FAFC; }
  .brand-mark { width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; background: linear-gradient(135deg, var(--brand-teal), var(--brand-sky)); color: #062033; font-size: 14px; box-shadow: 0 0 20px rgba(45,212,191,.28); }
  .nav-menu { display: flex; align-items: center; gap: 4px; flex: 1; justify-content: center; padding: 0 10px; }
  .nav-link { font-size: 14px; font-weight: 500; color: #CBD5E1; padding: 8px 16px; border-radius: 999px; transition: all .25s ease; line-height: 1.4; }
  .nav-link:hover { color: #fff; background: rgba(255,255,255,.07); }
  .nav-link.nav-active { color: #062033; background: linear-gradient(135deg, var(--brand-teal), var(--brand-sky)); font-weight: 700; box-shadow: 0 0 18px rgba(45,212,191,.24); }
  .menu-button { display: none; width: 40px; height: 40px; align-items: center; justify-content: center; border-radius: 50%; color: #E2E8F0; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.09); }
  .menu-button:hover { background: rgba(255,255,255,.12); color: #fff; }
  .menu-button i { font-size: 17px; }

  .btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-weight: 600; border-radius: 14px; padding: 13px 26px; font-size: 15px; transition: transform .25s ease, box-shadow .25s ease, background .25s ease, border-color .25s ease, filter .25s ease; line-height: 1.3; border: 1px solid transparent; white-space: nowrap; }
  .btn-sm { padding: 8px 16px; font-size: 13px; border-radius: 999px; }
  .btn-primary { color: #062033; background: linear-gradient(135deg, var(--brand-teal), var(--brand-sky)); box-shadow: 0 0 24px rgba(45,212,191,.30); }
  .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 12px 32px rgba(56,189,248,.35); filter: saturate(1.2); }
  .btn-primary:active { transform: translateY(0); box-shadow: 0 0 14px rgba(45,212,191,.25); }
  .btn-ghost { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.15); color: #E2E8F0; backdrop-filter: blur(10px); }
  .btn-ghost:hover { background: rgba(255,255,255,.10); border-color: rgba(255,255,255,.24); transform: translateY(-2px); color: #fff; }
  .btn-outline-primary { background: transparent; border-color: rgba(45,212,191,.55); color: var(--brand-teal); }
  .btn-outline-primary:hover { background: rgba(45,212,191,.1); border-color: var(--brand-teal); transform: translateY(-2px); box-shadow: 0 0 22px rgba(45,212,191,.15); }

  .hero-section { position: relative; display: flex; align-items: center; min-height: 680px; overflow: hidden; padding-top: 170px; padding-bottom: 90px; }
  .hero-section::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,18,32,.68) 0%, rgba(11,18,32,.78) 100%), url('/assets/images/backpic/back-2.webp') no-repeat center / cover; z-index: -2; }
  .hero-section::after { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(600px 260px at 18% 22%, rgba(45,212,191,.16), transparent 70%), radial-gradient(520px 240px at 82% 72%, rgba(56,189,248,.12), transparent 70%); }
  .hero-card { background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.09); border-radius: 28px; backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); box-shadow: var(--shadow-soft); }
  .hero-search { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); backdrop-filter: blur(18px); border-radius: 999px; }
  .hero-search input { width: 100%; background: transparent; border: none; outline: none; font-size: 15px; color: #F1F5F9; }
  .hero-search input::placeholder { color: rgba(148,163,184,.8); }
  .filter-chip { display: inline-flex; align-items: center; font-size: 13px; font-weight: 600; color: var(--text-secondary); padding: 7px 15px; border-radius: 999px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); transition: all .2s ease; }
  .filter-chip:hover { color: #fff; border-color: var(--brand-teal); background: rgba(45,212,191,.08); }
  .filter-chip.active, .filter-chip.chip-active { color: #062033; background: linear-gradient(135deg, var(--brand-teal), var(--brand-sky)); border-color: transparent; }

  .glass-card { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.09); border-radius: 22px; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); box-shadow: var(--shadow-soft); transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
  .glass-card:hover { transform: translateY(-6px); border-color: rgba(255,255,255,.18); box-shadow: 0 24px 56px rgba(0,0,0,.36), 0 0 28px rgba(45,212,191,.08); }
  .dark-panel { background: var(--bg-panel); border: 1px solid var(--border-soft); border-radius: 24px; }
  .panel-title { font-size: 16px; font-weight: 700; color: #F1F5F9; }
  .badge-gold { display: inline-flex; align-items: center; gap: 5px; background: rgba(245,158,11,.14); border: 1px solid rgba(245,158,11,.32); color: #FBBF24; padding: 4px 12px; border-radius: 999px; font-size: 12px; font-weight: 700; letter-spacing: .03em; }

  .icon-box { width: 44px; height: 44px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 14px; background: linear-gradient(135deg, rgba(45,212,191,.18), rgba(56,189,248,.16)); color: var(--brand-teal); font-size: 18px; border: 1px solid rgba(45,212,191,.24); box-shadow: inset 0 1px 0 rgba(255,255,255,.05); }

  .game-media-card { position: relative; overflow: hidden; border-radius: 24px; border: 1px solid rgba(255,255,255,.09); min-height: 300px; isolation: isolate; box-shadow: var(--shadow-soft); }
  .game-media-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; z-index: -2; }
  .game-media-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,18,32,.12) 0%, rgba(11,18,32,.74) 100%); z-index: -1; }
  .game-media-card:hover img { transform: scale(1.05); }

  .feature-row { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: 22px; align-items: stretch; }
  @media (max-width: 900px) { .feature-row { grid-template-columns: 1fr; } }
  .side-zone { display: grid; grid-template-columns: 1fr; gap: 16px; }
  .line-feature { padding: 20px 22px; display: flex; gap: 16px; position: relative; align-items: flex-start; border-radius: 18px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); transition: all .25s ease; }
  .line-feature::before { content: ""; position: absolute; left: -1px; top: 22px; bottom: 22px; width: 3px; border-radius: 3px; background: linear-gradient(180deg, var(--brand-teal), var(--brand-sky)); box-shadow: 0 0 12px rgba(45,212,191,.45); }
  .line-feature:hover { background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.14); transform: translateX(4px); }

  .scene-zone { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: center; }
  @media (max-width: 880px) { .scene-zone { grid-template-columns: 1fr; } }
  .mini-scene-grid { display: grid; grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr; gap: 14px; }
  .mini-scene { padding: 22px 14px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.09); border-radius: 20px; transition: all .25s ease; text-align: center; }
  .mini-scene:hover { transform: translateY(-5px); border-color: rgba(45,212,191,.4); box-shadow: 0 12px 28px rgba(0,0,0,.26); }
  .mini-scene i { font-size: 22px; color: var(--brand-teal); }
  .mini-scene span { font-size: 14px; font-weight: 600; color: #E2E8F0; }

  .process-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
  @media (max-width: 1000px) { .process-grid { grid-template-columns: repeat(2, 1fr); } }
  @media (max-width: 560px) { .process-grid { grid-template-columns: 1fr; } }
  .process-card { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08); border-radius: 22px; padding: 28px 22px; position: relative; transition: all .25s ease; }
  .process-card:hover { transform: translateY(-5px); border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.06); }
  .step-num { width: 42px; height: 42px; border-radius: 14px; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 17px; font-variant-numeric: tabular-nums; margin-bottom: 18px; background: rgba(45,212,191,.16); border: 1px solid rgba(45,212,191,.3); color: var(--brand-teal); box-shadow: 0 0 16px rgba(45,212,191,.12); }

  .data-panel { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
  @media (max-width: 768px) { .data-panel { flex-wrap: wrap; justify-content: center; } }
  .stat-item { padding: 22px 18px; }
  .stat-num { font-size: clamp(24px, 4vw, 34px); font-weight: 800; color: #F8FAFC; line-height: 1.2; }
  .stat-label { margin-top: 6px; font-size: 13px; color: var(--text-secondary); }
  .stat-up { color: var(--brand-teal); font-size: 12px; font-weight: 700; margin-top: 5px; }

  .faq-item { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.09); border-radius: 20px; transition: all .25s ease; }
  .faq-item:hover { border-color: rgba(255,255,255,.17); }
  .faq-item details summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 21px 24px; cursor: pointer; font-weight: 700; font-size: 16px; color: #E2E8F0; }
  .faq-item details p { padding: 0 24px 22px; color: var(--text-secondary); line-height: 1.9; font-size: 15px; }
  .faq-item summary::-webkit-details-marker { display: none; }
  .faq-item .faq-icon { font-size: 16px; width: 28px; height: 28px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; background: rgba(255,255,255,.06); color: var(--brand-teal); transition: transform .25s ease; flex-shrink: 0; }
  .faq-item summary:hover .faq-icon { transform: rotate(90deg); }
  .faq-item details[open] .faq-icon { transform: rotate(45deg); background: linear-gradient(135deg, var(--brand-teal), var(--brand-sky)); color: #062033; }

  .social-quote { background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.1); border-radius: 24px; padding: 36px; position: relative; }
  @media (max-width: 640px) { .social-quote { padding: 26px 20px; } }
  .quote-mark { position: absolute; top: 20px; right: 28px; font-size: 34px; color: rgba(45,212,191,.35); font-weight: 800; font-family: Georgia, serif; }

  .cta-zone { position: relative; overflow: hidden; background: linear-gradient(135deg, rgba(45,212,191,.12), rgba(56,189,248,.10)), rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.13); border-radius: 32px; padding: 64px 40px; text-align: center; box-shadow: inset 0 1px 0 rgba(255,255,255,.06), var(--shadow-soft); }
  .cta-zone::before { content: ""; position: absolute; width: 380px; height: 380px; border-radius: 50%; background: radial-gradient(circle, rgba(45,212,191,.34), transparent 68%); top: -180px; left: -80px; pointer-events: none; }
  @media (max-width: 640px) { .cta-zone { padding: 42px 20px; } }

  .footer { background: #0A0F1A; border-top: 1px solid rgba(255,255,255,.05); padding-top: 64px; }
  .footer-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1.2fr; gap: 40px; padding-bottom: 38px; }
  @media (max-width: 980px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
  @media (max-width: 560px) { .footer-grid { grid-template-columns: 1fr; gap: 28px; } }
  .footer-title { font-size: 14px; font-weight: 700; color: #E2E8F0; letter-spacing: .03em; margin-bottom: 16px; }
  .footer-link { display: block; font-size: 14px; color: #94A3B8; padding: 5px 0; transition: color .2s ease, padding-left .2s ease; }
  .footer-link:hover { color: var(--brand-teal); padding-left: 5px; }
  .footer-bottom { border-top: 1px solid rgba(255,255,255,.04); padding: 18px 0; color: #64748B; font-size: 13px; }
  .footer-bottom .container-x { opacity: .9; }

  .mobile-menu { position: fixed; top: 0; right: 0; bottom: 0; width: 300px; max-width: 86vw; background: rgba(10, 18, 34, .96); border-left: 1px solid rgba(255,255,255,.08); padding: 26px 20px; z-index: 120; transform: translateX(100%); transition: transform .3s ease; backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); box-shadow: var(--shadow-soft); }
  .mobile-menu.open { transform: translateX(0); }
  .drawer-backdrop { position: fixed; inset: 0; background: rgba(4, 8, 16, .68); z-index: 110; opacity: 0; pointer-events: none; transition: opacity .3s ease; backdrop-filter: blur(4px); }
  .drawer-backdrop.open { opacity: 1; pointer-events: auto; }

  @media (max-width: 780px) {
    .nav-brand-text { font-size: 15px; }
    .brand { gap: 8px; }
    .brand-mark { width: 32px; height: 32px; border-radius: 10px; }
    .nav-dock { padding: 7px 12px 7px 6px; }
    .nav-menu, .nav-dock .btn-primary { display: none !important; }
    .menu-button { display: flex; }
    .hero-section { min-height: 640px; padding-top: 130px; padding-bottom: 56px; }
    .hero-search { border-radius: 18px; padding: 8px 10px; }
    .stat-item { flex: 1 1 40%; min-width: 140px; }
  }

  ::selection { background: rgba(45,212,191,.35); color: #fff; }
  :focus-visible { outline: 2px solid var(--brand-teal); outline-offset: 3px; border-radius: 8px; }
