/* roulang page: index */
:root{
      --bg: #eef2f7;
      --bg-soft: #f7f9fc;
      --surface: rgba(255,255,255,.84);
      --surface-strong: #ffffff;
      --surface-dark: #0e1426;
      --surface-dark-2: #121a33;
      --text: #101827;
      --text-strong: #06101f;
      --muted: #667085;
      --muted-dark: rgba(231,236,247,.76);
      --border: rgba(15, 23, 42, .10);
      --border-strong: rgba(255,255,255,.12);
      --primary: #6c5ce7;
      --primary-2: #865dff;
      --accent: #ffb547;
      --accent-2: #22c55e;
      --danger: #ef4444;
      --shadow: 0 28px 80px rgba(15, 23, 42, .12);
      --shadow-soft: 0 16px 38px rgba(15, 23, 42, .08);
      --radius-xl: 30px;
      --radius-lg: 22px;
      --radius-md: 16px;
      --radius-sm: 12px;
      --container: 1180px;
      --gap: 24px;
      --gap-lg: 32px;
      --section: 88px;
      --transition: 240ms cubic-bezier(.2,.8,.2,1);
    }

    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body{
      margin:0;
      font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;
      color: var(--text);
      background:
        radial-gradient(circle at 12% 14%, rgba(108,92,231,.10), transparent 26%),
        radial-gradient(circle at 84% 10%, rgba(255,181,71,.12), transparent 24%),
        radial-gradient(circle at 78% 82%, rgba(34,197,94,.08), transparent 24%),
        linear-gradient(180deg, #eff3f9 0%, #f8fafc 100%);
      line-height: 1.75;
      letter-spacing: .01em;
      overflow-x: hidden;
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
    }

    body::before,
    body::after{
      content:"";
      position: fixed;
      inset: auto;
      pointer-events: none;
      z-index: 0;
      filter: blur(70px);
      opacity: .55;
    }
    body::before{
      width: 220px;
      height: 220px;
      left: -60px;
      top: 20%;
      background: rgba(108,92,231,.18);
    }
    body::after{
      width: 260px;
      height: 260px;
      right: -80px;
      bottom: 10%;
      background: rgba(255,181,71,.16);
    }

    ::selection{
      background: rgba(108,92,231,.18);
      color: var(--text-strong);
    }

    a{
      color: inherit;
      text-decoration: none;
      transition: color var(--transition), opacity var(--transition), transform var(--transition), background var(--transition), border-color var(--transition), box-shadow var(--transition);
    }

    img{
      max-width: 100%;
      display: block;
    }

    button, input, select, textarea{
      font: inherit;
    }

    button{
      border: 0;
      background: none;
      cursor: pointer;
    }

    :focus-visible{
      outline: 3px solid rgba(108,92,231,.34);
      outline-offset: 3px;
      border-radius: 12px;
    }

    .container{
      width: min(100% - 32px, var(--container));
      margin: 0 auto;
      position: relative;
      z-index: 1;
    }

    .site-header{
      position: sticky;
      top: 0;
      z-index: 20;
      backdrop-filter: blur(18px);
      -webkit-backdrop-filter: blur(18px);
      background: rgba(248,250,252,.68);
      border-bottom: 1px solid rgba(15,23,42,.06);
      transition: box-shadow var(--transition), background var(--transition), border-color var(--transition);
    }

    body.scrolled .site-header{
      background: rgba(248,250,252,.88);
      box-shadow: 0 10px 30px rgba(15,23,42,.06);
      border-bottom-color: rgba(15,23,42,.08);
    }

    .header-inner{
      min-height: 76px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap: 16px;
      flex-wrap: wrap;
      padding: 14px 0;
    }

    .brand{
      display:inline-flex;
      align-items:center;
      gap: 12px;
      font-weight: 800;
      color: var(--text-strong);
      letter-spacing: .02em;
      white-space: nowrap;
    }

    .brand-mark{
      width: 40px;
      height: 40px;
      border-radius: 14px;
      display:grid;
      place-items:center;
      background: linear-gradient(145deg, var(--primary), #9b87ff);
      box-shadow: 0 12px 26px rgba(108,92,231,.28);
      position: relative;
      overflow: hidden;
    }

    .brand-mark::before{
      content:"";
      width: 18px;
      height: 18px;
      border-radius: 50%;
      background: rgba(255,255,255,.88);
      box-shadow: inset 0 0 0 5px rgba(255,255,255,.18);
    }

    .nav{
      display:flex;
      align-items:center;
      justify-content:center;
      gap: 18px;
      flex: 1 1 320px;
    }

    .nav-link{
      display:inline-flex;
      align-items:center;
      gap: 8px;
      padding: 10px 16px;
      border-radius: 999px;
      color: var(--muted);
      font-weight: 600;
      background: rgba(255,255,255,.76);
      border: 1px solid rgba(15,23,42,.06);
      box-shadow: 0 10px 24px rgba(15,23,42,.04);
    }

    .nav-link:hover,
    .nav-link:focus-visible{
      color: var(--text-strong);
      border-color: rgba(108,92,231,.18);
      transform: translateY(-1px);
    }

    .nav-link.active{
      color: #fff;
      background: linear-gradient(135deg, var(--primary), var(--primary-2));
      border-color: transparent;
      box-shadow: 0 14px 28px rgba(108,92,231,.28);
    }

    .status-chips{
      display:flex;
      align-items:center;
      gap: 8px;
      flex-wrap: wrap;
      min-width: 0;
    }

    .status-chip{
      display:inline-flex;
      align-items:center;
      gap: 8px;
      padding: 9px 14px;
      border-radius: 999px;
      font-size: .92rem;
      font-weight: 700;
      color: var(--text);
      background: rgba(15,23,42,.03);
      border: 1px solid rgba(15,23,42,.08);
    }

    .status-chip::before{
      content:"";
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: var(--accent-2);
      box-shadow: 0 0 0 6px rgba(34,197,94,.10);
    }

    .status-chip.live::before{
      background: var(--primary);
      box-shadow: 0 0 0 6px rgba(108,92,231,.12);
    }

    .status-chip.replay::before{
      background: var(--accent);
      box-shadow: 0 0 0 6px rgba(255,181,71,.12);
    }

    .header-cta{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap: 10px;
      padding: 12px 18px;
      border-radius: 999px;
      font-weight: 800;
      color: #fff;
      background: linear-gradient(135deg, var(--primary), var(--primary-2));
      box-shadow: 0 16px 32px rgba(108,92,231,.28);
      white-space: nowrap;
    }

    .header-cta:hover,
    .header-cta:focus-visible{
      transform: translateY(-1px);
      box-shadow: 0 18px 34px rgba(108,92,231,.36);
    }

    .section{
      padding: var(--section) 0;
      position: relative;
      z-index: 1;
    }

    .section--dark{
      color: #eef2ff;
      background:
        radial-gradient(circle at 18% 10%, rgba(108,92,231,.26), transparent 25%),
        radial-gradient(circle at 82% 20%, rgba(255,181,71,.10), transparent 24%),
        linear-gradient(180deg, #0b1020 0%, #0f1426 100%);
    }

    .section--tint{
      background: linear-gradient(180deg, #f5f7fb 0%, #eef3fb 100%);
    }

    .section--cta{
      padding: 96px 0;
      background:
        radial-gradient(circle at 15% 20%, rgba(255,181,71,.18), transparent 22%),
        radial-gradient(circle at 85% 10%, rgba(108,92,231,.22), transparent 24%),
        linear-gradient(135deg, #11162b 0%, #171d36 100%);
      color: #fff;
    }

    .hero{
      padding: 34px 0 78px;
      overflow: hidden;
    }

    .hero::before,
    .hero::after{
      content:"";
      position:absolute;
      border-radius: 50%;
      pointer-events: none;
      filter: blur(40px);
      opacity: .55;
    }

    .hero::before{
      width: 240px;
      height: 240px;
      right: 8%;
      top: 16%;
      background: rgba(255,181,71,.14);
    }

    .hero::after{
      width: 260px;
      height: 260px;
      left: 6%;
      bottom: 14%;
      background: rgba(108,92,231,.12);
    }

    .hero-grid{
      display:grid;
      grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr);
      gap: 28px;
      align-items: center;
    }

    .eyebrow{
      display:inline-flex;
      align-items:center;
      gap: 10px;
      padding: 8px 14px;
      border-radius: 999px;
      font-size: .88rem;
      font-weight: 800;
      letter-spacing: .08em;
      text-transform: uppercase;
      color: rgba(255,255,255,.88);
      background: rgba(255,255,255,.08);
      border: 1px solid rgba(255,255,255,.08);
    }

    .section:not(.section--dark) .eyebrow{
      color: var(--primary);
      background: rgba(108,92,231,.08);
      border-color: rgba(108,92,231,.12);
      text-transform: none;
      letter-spacing: .04em;
    }

    .hero h1{
      margin: 18px 0 14px;
      font-size: clamp(2.8rem, 5.4vw, 5.2rem);
      line-height: .95;
      letter-spacing: -0.05em;
      color: #fff;
      max-width: 11ch;
    }

    .hero-lead{
      max-width: 62ch;
      margin: 0;
      color: rgba(238,242,255,.84);
      font-size: 1.05rem;
      line-height: 1.9;
    }

    .hero-tags{
      display:flex;
      gap: 10px;
      flex-wrap: wrap;
      margin: 22px 0 28px;
    }

    .hero-tag{
      display:inline-flex;
      align-items:center;
      padding: 9px 13px;
      border-radius: 999px;
      color: #fff;
      background: rgba(255,255,255,.09);
      border: 1px solid rgba(255,255,255,.10);
      font-size: .92rem;
      font-weight: 700;
    }

    .hero-actions{
      display:flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-bottom: 28px;
    }

    .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap: 10px;
      min-height: 48px;
      padding: 0 18px;
      border-radius: 999px;
      font-weight: 800;
      letter-spacing: .01em;
      transition: transform var(--transition), box-shadow var(--transition), background var(--transition), border-color var(--transition), color var(--transition), opacity var(--transition);
      user-select: none;
    }

    .btn:hover,
    .btn:focus-visible{
      transform: translateY(-1px);
    }

    .btn-primary{
      color: #fff;
      background: linear-gradient(135deg, var(--primary), var(--primary-2));
      box-shadow: 0 18px 34px rgba(108,92,231,.30);
    }

    .btn-primary:hover,
    .btn-primary:focus-visible{
      box-shadow: 0 20px 38px rgba(108,92,231,.40);
    }

    .btn-outline{
      color: #fff;
      background: rgba(255,255,255,.05);
      border: 1px solid rgba(255,255,255,.16);
      box-shadow: 0 14px 28px rgba(15,23,42,.10);
    }

    .btn-outline:hover,
    .btn-outline:focus-visible{
      border-color: rgba(255,255,255,.28);
      background: rgba(255,255,255,.08);
    }

    .btn-soft{
      color: #e9eeff;
      background: rgba(108,92,231,.14);
      border: 1px solid rgba(108,92,231,.26);
    }

    .btn-soft:hover,
    .btn-soft:focus-visible{
      background: rgba(108,92,231,.20);
    }

    .hero-stats{
      display:grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 14px;
      margin-top: 8px;
    }

    .stat{
      padding: 18px 16px;
      border-radius: var(--radius-lg);
      background: rgba(255,255,255,.07);
      border: 1px solid rgba(255,255,255,.10);
      box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
    }

    .stat strong{
      display:block;
      font-size: 1.75rem;
      line-height: 1;
      letter-spacing: -0.04em;
      color: #fff;
      margin-bottom: 6px;
    }

    .stat span{
      display:block;
      font-size: .93rem;
      color: rgba(238,242,255,.72);
    }

    .hero-alert{
      display:flex;
      align-items:flex-start;
      gap: 10px;
      margin-top: 18px;
      padding: 16px 18px;
      border-radius: var(--radius-lg);
      background: rgba(255,181,71,.10);
      border: 1px solid rgba(255,181,71,.20);
      color: #fff;
      box-shadow: 0 16px 28px rgba(15,23,42,.10);
    }

    .hero-alert::before{
      content:"";
      width: 10px;
      height: 10px;
      margin-top: 8px;
      border-radius: 50%;
      background: var(--accent);
      box-shadow: 0 0 0 6px rgba(255,181,71,.12);
      flex: 0 0 auto;
    }

    .hero-panel{
      position: relative;
      padding: 22px;
      border-radius: 34px;
      background:
        linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.06)),
        rgba(8, 12, 24, .40);
      border: 1px solid rgba(255,255,255,.12);
      box-shadow: 0 28px 80px rgba(4, 8, 18, .34);
      overflow: hidden;
    }

    .hero-panel::before{
      content:"";
      position:absolute;
      inset: auto -20% -20% auto;
      width: 260px;
      height: 260px;
      background: radial-gradient(circle, rgba(108,92,231,.26), transparent 65%);
      pointer-events:none;
    }

    .hero-panel::after{
      content:"";
      position:absolute;
      inset: 16px;
      border-radius: 28px;
      border: 1px solid rgba(255,255,255,.06);
      pointer-events:none;
    }

    .schedule-card{
      position: relative;
      z-index: 1;
      padding: 18px;
      border-radius: 28px;
      background: rgba(255,255,255,.06);
      border: 1px solid rgba(255,255,255,.10);
      backdrop-filter: blur(8px);
    }

    .schedule-head{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap: 12px;
      margin-bottom: 16px;
    }

    .schedule-title{
      margin:0;
      color:#fff;
      font-size: 1.08rem;
      font-weight: 800;
      letter-spacing: -.02em;
    }

    .live-status{
      display:inline-flex;
      align-items:center;
      gap: 8px;
      padding: 8px 12px;
      border-radius: 999px;
      background: rgba(34,197,94,.10);
      border: 1px solid rgba(34,197,94,.18);
      color: #d7ffe7;
      font-size: .88rem;
      font-weight: 700;
      white-space: nowrap;
    }

    .live-status::before{
      content:"";
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: var(--accent-2);
      box-shadow: 0 0 0 6px rgba(34,197,94,.12);
    }

    .slot-grid{
      display:grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      margin-bottom: 18px;
    }

    .slot-btn{
      display:flex;
      flex-direction:column;
      align-items:flex-start;
      gap: 4px;
      width:100%;
      padding: 14px 14px 13px;
      border-radius: 18px;
      color:#e9eeff;
      background: rgba(255,255,255,.06);
      border: 1px solid rgba(255,255,255,.10);
      transition: transform var(--transition), border-color var(--transition), background var(--transition), box-shadow var(--transition);
      text-align:left;
    }

    .slot-btn span{
      font-size: .85rem;
      color: rgba(233,238,255,.68);
    }

    .slot-btn strong{
      font-size: 1rem;
      letter-spacing: -.02em;
    }

    .slot-btn:hover,
    .slot-btn:focus-visible{
      transform: translateY(-1px);
      border-color: rgba(255,255,255,.22);
      background: rgba(255,255,255,.10);
    }

    .slot-btn.active{
      color: #fff;
      background: linear-gradient(135deg, rgba(108,92,231,.92), rgba(134,93,255,.88));
      border-color: transparent;
      box-shadow: 0 14px 30px rgba(108,92,231,.28);
    }

    .slot-btn.active span{
      color: rgba(255,255,255,.82);
    }

    .clock-box{
      margin-top: 4px;
      padding: 16px;
      border-radius: 22px;
      background: rgba(4, 8, 18, .38);
      border: 1px solid rgba(255,255,255,.08);
    }

    .clock-row{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap: 10px;
      margin-bottom: 10px;
      color: rgba(233,238,255,.80);
      font-size: .94rem;
    }

    #countdown{
      font-size: 1.6rem;
      letter-spacing: .08em;
      font-variant-numeric: tabular-nums;
      color: #fff;
      font-weight: 800;
    }

    .clock-bar{
      width:100%;
      height: 10px;
      border-radius: 999px;
      overflow:hidden;
      background: rgba(255,255,255,.08);
      margin-bottom: 12px;
    }

    .clock-bar span{
      display:block;
      width: 50%;
      height:100%;
      border-radius: inherit;
      background: linear-gradient(90deg, var(--accent), #ffd36f);
      box-shadow: 0 0 18px rgba(255,181,71,.24);
      transition: width 1s linear;
    }

    .slot-note{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap: 12px;
      font-size: .92rem;
      color: rgba(233,238,255,.72);
    }

    .slot-note strong{
      color: #fff;
      font-weight: 800;
    }

    .support-row{
      display:grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 10px;
      margin-top: 14px;
    }

    .support-card{
      padding: 14px;
      border-radius: 18px;
      background: rgba(255,255,255,.06);
      border: 1px solid rgba(255,255,255,.08);
    }

    .support-card span{
      display:block;
      color: rgba(233,238,255,.62);
      font-size: .84rem;
      margin-bottom: 4px;
    }

    .support-card strong{
      color: #fff;
      font-size: 1.1rem;
      letter-spacing: -.02em;
    }

    .section-head{
      max-width: 760px;
      margin-bottom: 30px;
    }

    .section-head h2{
      margin: 14px 0 12px;
      font-size: clamp(1.8rem, 3vw, 3rem);
      line-height: 1.08;
      letter-spacing: -.04em;
      color: var(--text-strong);
    }

    .section--dark .section-head h2,
    .section--dark .section-head p{
      color: #f5f7ff;
    }

    .section-head p{
      margin: 0;
      font-size: 1rem;
      color: var(--muted);
      line-height: 1.9;
    }

    .section--dark .section-head .eyebrow{
      background: rgba(255,255,255,.08);
      border-color: rgba(255,255,255,.10);
      color: #fff;
    }

    .process-grid{
      display:grid;
      grid-template-columns: 1.3fr 1fr 1fr;
      gap: 18px;
    }

    .process-card{
      padding: 24px;
      border-radius: 28px;
      background: var(--surface-strong);
      border: 1px solid rgba(15,23,42,.08);
      box-shadow: var(--shadow-soft);
      transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
      min-height: 250px;
      position: relative;
      overflow:hidden;
    }

    .process-card:hover{
      transform: translateY(-4px);
      box-shadow: var(--shadow);
      border-color: rgba(108,92,231,.16);
    }

    .process-card--lead{
      color: #fff;
      background:
        radial-gradient(circle at 18% 14%, rgba(255,181,71,.18), transparent 20%),
        linear-gradient(145deg, #141a31 0%, #0f1426 100%);
      border-color: rgba(255,255,255,.08);
    }

    .process-badge{
      display:inline-flex;
      align-items:center;
      gap: 8px;
      padding: 8px 12px;
      border-radius: 999px;
      font-size: .84rem;
      font-weight: 800;
      background: rgba(108,92,231,.10);
      color: var(--primary);
      border: 1px solid rgba(108,92,231,.12);
      margin-bottom: 14px;
    }

    .process-card--lead .process-badge{
      background: rgba(255,255,255,.08);
      color: #fff;
      border-color: rgba(255,255,255,.10);
    }

    .process-card h3{
      margin: 0 0 10px;
      font-size: 1.28rem;
      line-height: 1.2;
      letter-spacing: -.03em;
      color: inherit;
    }

    .process-card p{
      margin: 0 0 16px;
      color: inherit;
      line-height: 1.85;
      opacity: .88;
    }

    .process-list{
      display:grid;
      gap: 10px;
    }

    .process-item{
      display:flex;
      align-items:flex-start;
      gap: 10px;
      padding: 12px 14px;
      border-radius: 18px;
      background: rgba(255,255,255,.05);
      border: 1px solid rgba(255,255,255,.08);
    }

    .process-item strong{
      display:block;
      margin-bottom: 2px;
      font-size: .98rem;
    }

    .process-item span{
      color: rgba(238,242,255,.72);
      font-size: .9rem;
      line-height: 1.7;
    }

    .process-num{
      display:grid;
      place-items:center;
      width: 38px;
      height: 38px;
      border-radius: 12px;
      color: #fff;
      background: linear-gradient(135deg, var(--primary), var(--primary-2));
      font-weight: 900;
      flex: 0 0 auto;
      box-shadow: 0 12px 20px rgba(108,92,231,.24);
    }

    .process-mini{
      margin-top: auto;
      display:flex;
      flex-wrap: wrap;
      gap: 8px;
    }

    .process-mini .mini-tag{
      display:inline-flex;
      align-items:center;
      padding: 8px 11px;
      border-radius: 999px;
      font-size: .84rem;
      font-weight: 700;
      background: rgba(255,255,255,.06);
      color: #fff;
      border: 1px solid rgba(255,255,255,.08);
    }

    .progress-grid{
      display:grid;
      grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr);
      gap: 20px;
      align-items: start;
    }

    .invite-panel{
      padding: 26px;
      border-radius: 30px;
      background: rgba(255,255,255,.90);
      border: 1px solid rgba(15,23,42,.08);
      box-shadow: var(--shadow-soft);
    }

    .invite-panel h3,
    .ranking-summary h3,
    .aside-card h3,
    .focus-mini h3,
    .cta-copy h2{
      margin: 0 0 10px;
      letter-spacing: -.03em;
      line-height: 1.18;
    }

    .invite-panel h3{
      font-size: 1.4rem;
      color: var(--text-strong);
    }

    .invite-panel p{
      margin: 0 0 22px;
      color: var(--muted);
      line-height: 1.9;
    }

    .progress-rows{
      display:grid;
      gap: 16px;
      margin-bottom: 20px;
    }

    .progress-row{
      display:grid;
      gap: 8px;
    }

    .progress-head{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap: 10px;
      font-size: .95rem;
      color: var(--text-strong);
      font-weight: 700;
    }

    .progress-bar{
      height: 12px;
      border-radius: 999px;
      overflow:hidden;
      background: #edf1f8;
      border: 1px solid rgba(15,23,42,.06);
    }

    .progress-bar span{
      display:block;
      height:100%;
      border-radius: inherit;
      background: linear-gradient(90deg, var(--primary), #8d78ff);
      box-shadow: 0 0 20px rgba(108,92,231,.22);
      transition: width 1s ease;
    }

    .timeline{
      display:grid;
      gap: 14px;
      margin-top: 8px;
      position: relative;
      padding-left: 14px;
    }

    .timeline::before{
      content:"";
      position:absolute;
      left: 10px;
      top: 4px;
      bottom: 4px;
      width: 2px;
      background: linear-gradient(180deg, rgba(108,92,231,.25), rgba(108,92,231,.06));
    }

    .timeline-item{
      display:grid;
      grid-template-columns: 16px minmax(0, 1fr);
      gap: 14px;
      align-items: start;
    }

    .timeline-item::before{
      content:"";
      width: 16px;
      height: 16px;
      margin-top: 4px;
      border-radius: 50%;
      background: #fff;
      border: 4px solid var(--primary);
      box-shadow: 0 0 0 6px rgba(108,92,231,.10);
      z-index: 1;
    }

    .timeline-item strong{
      display:block;
      margin-bottom: 4px;
      font-size: 1rem;
      color: var(--text-strong);
    }

    .timeline-item p{
      margin: 0;
      color: var(--muted);
      line-height: 1.8;
    }

    .invite-side{
      display:grid;
      gap: 16px;
    }

    .invite-card{
      padding: 22px;
      border-radius: 26px;
      background: linear-gradient(180deg, rgba(255,255,255,.90), rgba(248,250,252,.90));
      border: 1px solid rgba(15,23,42,.08);
      box-shadow: var(--shadow-soft);
    }

    .invite-card strong{
      display:block;
      margin-bottom: 8px;
      font-size: 1.15rem;
      color: var(--text-strong);
      letter-spacing: -.02em;
    }

    .invite-card p{
      margin: 0;
      color: var(--muted);
      line-height: 1.8;
    }

    .invite-card .tag{
      display:inline-flex;
      align-items:center;
      padding: 7px 11px;
      border-radius: 999px;
      margin-bottom: 12px;
      font-size: .84rem;
      font-weight: 800;
      background: rgba(108,92,231,.08);
      color: var(--primary);
    }

    .ranking-wrap{
      display:grid;
      grid-template-columns: minmax(0, 1fr) 340px;
      gap: 20px;
    }

    .ranking-list{
      list-style:none;
      margin:0;
      padding: 24px;
      border-radius: 30px;
      background: rgba(255,255,255,.08);
      border: 1px solid rgba(255,255,255,.09);
      box-shadow: 0 22px 60px rgba(4, 8, 18, .24);
      display:grid;
      gap: 16px;
    }

    .rank-item{
      display:grid;
      grid-template-columns: 44px minmax(0, 1fr) auto;
      gap: 12px;
      align-items:center;
      padding: 14px 14px 14px 12px;
      border-radius: 20px;
      background: rgba(255,255,255,.05);
      border: 1px solid rgba(255,255,255,.06);
    }

    .rank-num{
      display:grid;
      place-items:center;
      width: 44px;
      height: 44px;
      border-radius: 14px;
      color: #fff;
      background: linear-gradient(145deg, rgba(108,92,231,.95), rgba(134,93,255,.88));
      font-weight: 900;
      letter-spacing: -.02em;
      box-shadow: 0 12px 20px rgba(108,92,231,.22);
    }

    .rank-main strong{
      display:block;
      font-size: 1rem;
      color: #fff;
      margin-bottom: 6px;
      letter-spacing: -.02em;
    }

    .rank-bar{
      width: 100%;
      height: 9px;
      border-radius: 999px;
      background: rgba(255,255,255,.08);
      overflow:hidden;
    }

    .rank-bar span{
      display:block;
      height:100%;
      border-radius: inherit;
      background: linear-gradient(90deg, var(--accent), #ffd36f);
      box-shadow: 0 0 16px rgba(255,181,71,.24);
    }

    .rank-percent{
      color: rgba(238,242,255,.82);
      font-weight: 800;
      font-variant-numeric: tabular-nums;
      white-space: nowrap;
    }

    .ranking-summary{
      display:grid;
      gap: 16px;
    }

    .summary-card{
      padding: 22px;
      border-radius: 28px;
      background: rgba(255,255,255,.07);
      border: 1px solid rgba(255,255,255,.08);
      box-shadow: 0 18px 44px rgba(4, 8, 18, .18);
    }

    .summary-card h3{
      font-size: 1.1rem;
      color: #fff;
    }

    .summary-card p{
      margin: 0 0 14px;
      color: rgba(238,242,255,.74);
      line-height: 1.8;
    }

    .summary-tags{
      display:flex;
      flex-wrap: wrap;
      gap: 10px;
    }

    .summary-tag{
      padding: 9px 12px;
      border-radius: 999px;
      font-size: .85rem;
      font-weight: 700;
      color: #fff;
      background: rgba(255,255,255,.06);
      border: 1px solid rgba(255,255,255,.08);
    }

    .info-grid{
      display:grid;
      grid-template-columns: minmax(0, 1fr) 320px;
      gap: 20px;
      align-items:start;
    }

    .news-list{
      display:grid;
      gap: 12px;
    }

    .news-item{
      padding: 20px 22px;
      border-radius: 24px;
      background: var(--surface-strong);
      border: 1px solid rgba(15,23,42,.08);
      box-shadow: var(--shadow-soft);
      transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
    }

    .news-item:hover{
      transform: translateY(-3px);
      box-shadow: var(--shadow);
      border-color: rgba(108,92,231,.16);
    }

    .news-meta{
      display:flex;
      align-items:center;
      gap: 10px;
      flex-wrap: wrap;
      margin-bottom: 10px;
    }

    .news-badge{
      display:inline-flex;
      align-items:center;
      padding: 7px 11px;
      border-radius: 999px;
      font-size: .82rem;
      font-weight: 800;
      color: var(--primary);
      background: rgba(108,92,231,.08);
    }

    .news-time{
      font-size: .85rem;
      color: var(--muted);
    }

    .news-item a{
      display:block;
      font-size: 1.08rem;
      font-weight: 800;
      color: var(--text-strong);
      letter-spacing: -.02em;
      line-height: 1.45;
      margin-bottom: 8px;
    }

    .news-item a:hover,
    .news-item a:focus-visible{
      color: var(--primary);
    }

    .news-item p{
      margin: 0;
      color: var(--muted);
      line-height: 1.8;
    }

    .news-aside{
      display:grid;
      gap: 16px;
    }

    .aside-card{
      padding: 22px;
      border-radius: 28px;
      background: linear-gradient(180deg, #fff, #f7f9fd);
      border: 1px solid rgba(15,23,42,.08);
      box-shadow: var(--shadow-soft);
    }

    .aside-card h3{
      font-size: 1.08rem;
      color: var(--text-strong);
    }

    .aside-card ul{
      list-style:none;
      padding:0;
      margin: 0;
      display:grid;
      gap: 10px;
    }

    .aside-card li{
      display:flex;
      align-items:flex-start;
      gap: 10px;
      color: var(--muted);
      line-height: 1.75;
    }

    .aside-card li::before{
      content:"";
      width: 9px;
      height: 9px;
      margin-top: 9px;
      border-radius: 50%;
      background: linear-gradient(135deg, var(--primary), var(--accent));
      flex: 0 0 auto;
    }

    .aside-card p{
      margin:0;
      color: var(--muted);
      line-height: 1.9;
    }

    .chips-row{
      display:flex;
      gap: 10px;
      flex-wrap: wrap;
      overflow-x: auto;
      padding-bottom: 4px;
      scrollbar-width: none;
      -ms-overflow-style: none;
    }

    .chips-row::-webkit-scrollbar{
      display:none;
    }

    .topic-chip{
      display:inline-flex;
      align-items:center;
      padding: 10px 14px;
      border-radius: 999px;
      font-weight: 800;
      color: var(--text-strong);
      background: rgba(255,255,255,.82);
      border: 1px solid rgba(15,23,42,.08);
      box-shadow: 0 10px 24px rgba(15,23,42,.04);
      white-space: nowrap;
    }

    .topic-chip:hover,
    .topic-chip:focus-visible{
      transform: translateY(-1px);
      border-color: rgba(108,92,231,.16);
      color: var(--primary);
    }

    .category-grid{
      margin-top: 18px;
      display:grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 18px;
    }

    .category-card{
      padding: 22px;
      border-radius: 26px;
      background: var(--surface-strong);
      border: 1px solid rgba(15,23,42,.08);
      box-shadow: var(--shadow-soft);
      transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
      min-height: 180px;
    }

    .category-card:hover{
      transform: translateY(-3px);
      box-shadow: var(--shadow);
      border-color: rgba(108,92,231,.16);
    }

    .category-card .index{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-width: 38px;
      height: 38px;
      padding: 0 12px;
      border-radius: 12px;
      margin-bottom: 12px;
      background: rgba(108,92,231,.10);
      color: var(--primary);
      font-size: .88rem;
      font-weight: 900;
    }

    .category-card h3{
      margin: 0 0 8px;
      font-size: 1.14rem;
      letter-spacing: -.03em;
      color: var(--text-strong);
    }

    .category-card p{
      margin: 0;
      color: var(--muted);
      line-height: 1.85;
    }

    .focus-grid{
      display:grid;
      grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
      gap: 18px;
      align-items: stretch;
    }

    .focus-main{
      position: relative;
      padding: 28px;
      border-radius: 32px;
      background:
        radial-gradient(circle at 20% 20%, rgba(255,181,71,.16), transparent 20%),
        radial-gradient(circle at 84% 22%, rgba(108,92,231,.18), transparent 22%),
        linear-gradient(145deg, #151b32 0%, #101827 100%);
      border: 1px solid rgba(255,255,255,.08);
      color: #fff;
      min-height: 360px;
      overflow: hidden;
      box-shadow: 0 28px 70px rgba(4, 8, 18, .24);
    }

    .focus-main::before{
      content:"";
      position:absolute;
      right: 18px;
      top: 18px;
      width: 170px;
      height: 170px;
      border-radius: 30px;
      background:
        linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,.02)),
        radial-gradient(circle at 50% 50%, rgba(255,181,71,.20), transparent 58%);
      transform: rotate(10deg);
      opacity: .9;
    }

    .focus-main h3{
      font-size: 1.6rem;
      max-width: 12ch;
    }

    .focus-main p{
      max-width: 48ch;
      margin: 0 0 18px;
      color: rgba(238,242,255,.76);
      line-height: 1.9;
    }

    .focus-points{
      display:grid;
      gap: 12px;
      max-width: 520px;
    }

    .focus-point{
      display:flex;
      align-items:flex-start;
      gap: 12px;
      padding: 14px 16px;
      border-radius: 20px;
      background: rgba(255,255,255,.06);
      border: 1px solid rgba(255,255,255,.08);
    }

    .focus-point i{
      font-style: normal;
      font-weight: 900;
      color: var(--accent);
    }

    .focus-point strong{
      display:block;
      margin-bottom: 3px;
      font-size: 1rem;
      color: #fff;
    }

    .focus-point span{
      color: rgba(238,242,255,.74);
      line-height: 1.75;
      font-size: .94rem;
    }

    .focus-side{
      display:grid;
      gap: 18px;
    }

    .focus-mini{
      padding: 22px;
      border-radius: 28px;
      background: rgba(255,255,255,.92);
      border: 1px solid rgba(15,23,42,.08);
      box-shadow: var(--shadow-soft);
    }

    .focus-mini .mini-num{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-width: 40px;
      height: 40px;
      padding: 0 12px;
      border-radius: 12px;
      margin-bottom: 12px;
      background: rgba(108,92,231,.10);
      color: var(--primary);
      font-weight: 900;
    }

    .focus-mini h3{
      color: var(--text-strong);
      font-size: 1.1rem;
    }

    .focus-mini p{
      margin: 0;
      color: var(--muted);
      line-height: 1.85;
    }

    .bubble-wall{
      display:grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 16px;
    }

    .bubble{
      display:flex;
      gap: 14px;
      padding: 18px;
      border-radius: 24px 24px 24px 8px;
      background: var(--surface-strong);
      border: 1px solid rgba(15,23,42,.08);
      box-shadow: var(--shadow-soft);
      transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
    }

    .bubble:hover{
      transform: translateY(-3px);
      box-shadow: var(--shadow);
      border-color: rgba(108,92,231,.16);
    }

    .bubble.wide{
      grid-column: span 2;
    }

    .avatar{
      width: 46px;
      height: 46px;
      border-radius: 16px;
      display:grid;
      place-items:center;
      flex: 0 0 auto;
      color: #fff;
      font-weight: 900;
      background: linear-gradient(135deg, var(--primary), #9b87ff);
      box-shadow: 0 12px 20px rgba(108,92,231,.22);
    }

    .bubble-content{
      min-width: 0;
    }

    .bubble-content strong{
      display:block;
      margin-bottom: 5px;
      color: var(--text-strong);
      font-size: .96rem;
    }

    .bubble-content p{
      margin: 0;
      color: var(--muted);
      line-height: 1.8;
    }

    .bubble-content span{
      display:block;
      margin-top: 8px;
      font-size: .84rem;
      color: #8a94a6;
    }

    .faq-grid{
      display:grid;
      gap: 12px;
    }

    details.faq-item{
      padding: 0;
      border-radius: 24px;
      background: var(--surface-strong);
      border: 1px solid rgba(15,23,42,.08);
      box-shadow: var(--shadow-soft);
      overflow: hidden;
    }

    details.faq-item[open]{
      border-color: rgba(108,92,231,.16);
      box-shadow: var(--shadow);
    }

    details.faq-item summary{
      list-style:none;
      cursor:pointer;
      padding: 20px 22px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap: 16px;
      font-weight: 800;
      color: var(--text-strong);
      letter-spacing: -.02em;
    }

    details.faq-item summary::-webkit-details-marker{
      display:none;
    }

    details.faq-item summary::after{
      content:"+";
      width: 34px;
      height: 34px;
      display:grid;
      place-items:center;
      border-radius: 12px;
      color: var(--primary);
      background: rgba(108,92,231,.08);
      flex: 0 0 auto;
      transition: transform var(--transition), background var(--transition), color var(--transition);
    }

    details.faq-item[open] summary::after{
      content:"−";
      background: rgba(108,92,231,.14);
      transform: rotate(0deg);
    }

    .faq-answer{
      padding: 0 22px 20px;
      color: var(--muted);
      line-height: 1.9;
    }

    .cta-grid{
      display:grid;
      grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
      gap: 24px;
      align-items: stretch;
    }

    .cta-copy{
      padding: 8px 0;
    }

    .cta-copy h2{
      font-size: clamp(2rem, 3vw, 3.1rem);
      color: #fff;
      max-width: 11ch;
    }

    .cta-copy p{
      margin: 0;
      max-width: 58ch;
      color: rgba(238,242,255,.78);
      line-height: 1.9;
      font-size: 1rem;
    }

    .cta-bullets{
      display:grid;
      gap: 12px;
      margin-top: 22px;
    }

    .cta-bullet{
      display:flex;
      align-items:flex-start;
      gap: 10px;
      color: rgba(238,242,255,.84);
    }

    .cta-bullet::before{
      content:"";
      width: 10px;
      height: 10px;
      margin-top: 8px;
      border-radius: 50%;
      background: var(--accent);
      box-shadow: 0 0 0 6px rgba(255,181,71,.12);
      flex: 0 0 auto;
    }

    .lead-form{
      padding: 24px;
      border-radius: 30px;
      background: rgba(255,255,255,.08);
      border: 1px solid rgba(255,255,255,.12);
      box-shadow: 0 24px 60px rgba(4, 8, 18, .24);
      backdrop-filter: blur(8px);
    }

    .field{
      display:grid;
      gap: 8px;
      margin-bottom: 16px;
    }

    .field label,
    .fieldset legend{
      font-weight: 800;
      color: #fff;
      margin-bottom: 0;
    }

    .field input{
      width:100%;
      min-height: 52px;
      border-radius: 16px;
      padding: 0 16px;
      border: 1px solid rgba(255,255,255,.12);
      background: rgba(5,10,20,.34);
      color: #fff;
      box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
    }

    .field input::placeholder{
      color: rgba(238,242,255,.52);
    }

    .field input:focus-visible{
      border-color: rgba(255,255,255,.26);
      outline-color: rgba(255,255,255,.22);
    }

    .fieldset{
      margin: 0 0 16px;
      padding: 0;
      border: 0;
    }

    .chip-set{
      display:flex;
      flex-wrap: wrap;
      gap: 10px;
      margin-top: 10px;
    }

    .chip-set input{
      position:absolute;
      opacity:0;
      pointer-events:none;
    }

    .chip-set label{
      display:inline-flex;
      align-items:center;
      padding: 10px 14px;
      border-radius: 999px;
      border: 1px solid rgba(255,255,255,.14);
      color: rgba(238,242,255,.76);
      background: rgba(255,255,255,.05);
      font-weight: 700;
      cursor: pointer;
      transition: transform var(--transition), border-color var(--transition), background var(--transition), color var(--transition), box-shadow var(--transition);
    }

    .chip-set label:hover{
      transform: translateY(-1px);
      border-color: rgba(255,255,255,.22);
      color: #fff;
    }

    .chip-set input:checked + label{
      color: #fff;
      background: linear-gradient(135deg, var(--primary), var(--primary-2));
      border-color: transparent;
      box-shadow: 0 14px 24px rgba(108,92,231,.26);
    }

    .lead-form .btn{
      width: 100%;
      margin-top: 8px;
    }

    .form-help{
      margin: 12px 0 0;
      color: rgba(238,242,255,.70);
      font-size: .92rem;
      line-height: 1.8;
      text-align: center;
    }

    .site-footer{
      padding: 34px 0 42px;
      background: #070b16;
      color: rgba(238,242,255,.78);
      border-top: 1px solid rgba(255,255,255,.08);
    }

    .footer-grid{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap: 18px;
      flex-wrap: wrap;
    }

    .footer-brand{
      display:grid;
      gap: 12px;
      max-width: 620px;
    }

    .footer-brand .brand{
      color: #fff;
    }

    .footer-brand p{
      margin: 0;
      line-height: 1.9;
      color: rgba(238,242,255,.72);
    }

    .footer-meta{
      display:grid;
      gap: 10px;
      justify-items:end;
      text-align:right;
    }

    .footer-home{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      padding: 10px 14px;
      border-radius: 999px;
      color: #fff;
      border: 1px solid rgba(255,255,255,.14);
      background: rgba(255,255,255,.04);
    }

    .footer-home:hover,
    .footer-home:focus-visible{
      background: rgba(255,255,255,.08);
      border-color: rgba(255,255,255,.22);
      transform: translateY(-1px);
    }

    .footer-meta small{
      display:block;
      line-height: 1.8;
      color: rgba(238,242,255,.64);
    }

    .footer-meta strong{
      color: #fff;
      font-weight: 800;
    }

    .sr-only{
      position:absolute;
      width:1px;
      height:1px;
      padding:0;
      margin:-1px;
      overflow:hidden;
      clip:rect(0,0,0,0);
      border:0;
      white-space:nowrap;
    }

    @media (max-width: 1024px){
      :root{ --section: 76px; }
      .hero-grid,
      .progress-grid,
      .ranking-wrap,
      .info-grid,
      .focus-grid,
      .cta-grid{
        grid-template-columns: 1fr;
      }
      .process-grid{
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
      .bubble-wall{
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
      .category-grid{
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
      .ranking-summary{
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

    @media (max-width: 768px){
      .header-inner{
        padding: 12px 0 14px;
      }
      .nav{
        order: 3;
        width: 100%;
        justify-content:flex-start;
        overflow-x: auto;
        padding-bottom: 2px;
      }
      .header-cta{
        margin-left: auto;
      }
      .hero{
        padding-top: 22px;
      }
      .hero-grid{
        gap: 20px;
      }
      .hero h1{
        max-width: 100%;
      }
      .hero-stats{
        grid-template-columns: 1fr;
      }
      .support-row{
        grid-template-columns: 1fr;
      }
      .process-grid{
        grid-template-columns: 1fr;
      }
      .process-card{
        min-height: auto;
      }
      .ranking-summary{
        grid-template-columns: 1fr;
      }
      .bubble-wall{
        grid-template-columns: 1fr;
      }
      .bubble.wide{
        grid-column: auto;
      }
      .category-grid{
        grid-template-columns: 1fr;
      }
      .slot-grid{
        grid-template-columns: 1fr;
      }
      .footer-grid{
        flex-direction: column;
      }
      .footer-meta{
        justify-items: start;
        text-align: left;
      }
    }

    @media (max-width: 520px){
      :root{ --section: 68px; }
      .container{
        width: min(100% - 22px, var(--container));
      }
      .brand{
        gap: 10px;
        font-size: .98rem;
      }
      .brand-mark{
        width: 36px;
        height: 36px;
      }
      .nav-link,
      .status-chip,
      .header-cta{
        padding-left: 12px;
        padding-right: 12px;
      }
      .hero h1{
        font-size: clamp(2.4rem, 14vw, 3.4rem);
      }
      .hero-lead,
      .section-head p,
      .cta-copy p{
        font-size: .98rem;
      }
      .hero-actions{
        gap: 10px;
      }
      .btn{
        width: 100%;
      }
      .process-card,
      .invite-panel,
      .news-item,
      .aside-card,
      .category-card,
      .focus-mini,
      .lead-form,
      .ranking-list,
      .summary-card{
        border-radius: 24px;
      }
      .clock-row{
        flex-direction: column;
        align-items:flex-start;
      }
      #countdown{
        font-size: 1.45rem;
      }
      .lead-form{
        padding: 18px;
      }
      .section-head{
        margin-bottom: 22px;
      }
    }
