/* ── HERO ── */
    .hero {
      position: relative;
      min-height: 100vh;
      display: flex;
      align-items: center;
      overflow: hidden;
    }

    #hcv {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      z-index: 0;
    }

    .hg1 {
      position: absolute;
      width: 600px;
      height: 600px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(201, 24, 74, .16) 0%, transparent 70%);
      top: -120px;
      left: -120px;
      z-index: 1;
      pointer-events: none;
      animation: p1 8s ease-in-out infinite;
    }

    .hg2 {
      position: absolute;
      width: 460px;
      height: 460px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(255, 183, 3, .07) 0%, transparent 70%);
      bottom: 0;
      right: 5%;
      z-index: 1;
      pointer-events: none;
      animation: p2 10s ease-in-out infinite;
    }

    @keyframes p1 {

      0%,
      100% {
        transform: scale(1);
        opacity: .8;
      }

      50% {
        transform: scale(1.12);
        opacity: 1;
      }
    }

    @keyframes p2 {

      0%,
      100% {
        transform: scale(1);
        opacity: .6;
      }

      50% {
        transform: scale(1.18);
        opacity: .9;
      }
    }

    .hc {
      position: relative;
      z-index: 2;
      max-width: 1280px;
      margin: 0 auto;
      padding: 130px 60px 80px;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 70px;
      align-items: center;
    }

    /* hero text */
    .he-ey {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      font-family: var(--fc);
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 3px;
      text-transform: uppercase;
      color: var(--crimson-light);
      margin-bottom: 24px;
      opacity: 0;
      transform: translateY(20px);
      animation: fu .8s .2s forwards;
    }

    .ey-dot {
      width: 6px;
      height: 6px;
      background: var(--crimson-light);
      border-radius: 50%;
      animation: pd 2s infinite;
    }

    @keyframes pd {

      0%,
      100% {
        box-shadow: 0 0 0 0 rgba(255, 45, 107, .5);
      }

      50% {
        box-shadow: 0 0 0 6px transparent;
      }
    }

    @keyframes fu {
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    @keyframes fr {
      to {
        opacity: 1;
        transform: translateX(0);
      }
    }

    .he-t {
      font-family: var(--fd);
      font-size: clamp(40px, 5.5vw, 78px);
      line-height: 1;
      letter-spacing: 1px;
      color: var(--text);
      margin-bottom: 14px;
      opacity: 0;
      transform: translateY(30px);
      animation: fu .9s .35s forwards;
    }

    .he-t .a {
      color: var(--crimson);
    }

    .he-si {
      font-family: var(--fs);
      font-style: italic;
      font-size: clamp(17px, 2vw, 24px);
      color: var(--text2);
      line-height: 1.5;
      margin-bottom: 24px;
      opacity: 0;
      transform: translateY(20px);
      animation: fu .9s .5s forwards;
    }

    .he-d {
      font-size: 16px;
      line-height: 1.85;
      color: var(--muted);
      max-width: 480px;
      margin-bottom: 36px;
      opacity: 0;
      transform: translateY(20px);
      animation: fu .9s .65s forwards;
    }

    .he-ac {
      display: flex;
      gap: 14px;
      flex-wrap: wrap;
      opacity: 0;
      transform: translateY(20px);
      animation: fu .9s .8s forwards;
    }

    /* hero meeple */
    .he-r {
      position: relative;
      z-index: 2;
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      transform: translateX(40px);
      animation: fr 1s .5s forwards;
    }

    .mw {
      position: relative;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .mr1 {
      position: absolute;
      width: 320px;
      height: 320px;
      border-radius: 50%;
      border: 1px solid rgba(201, 24, 74, .15);
      animation: rp 5s ease-in-out infinite;
    }

    .mr2 {
      position: absolute;
      width: 420px;
      height: 420px;
      border-radius: 50%;
      border: 1px solid rgba(201, 24, 74, .07);
      animation: rp 5s 1s ease-in-out infinite;
    }

    @keyframes rp {

      0%,
      100% {
        transform: scale(1);
        opacity: 1;
      }

      50% {
        transform: scale(1.06);
        opacity: .5;
      }
    }

    .mi {
      width: 220px;
      height: 220px;
      object-fit: contain;
      filter: drop-shadow(0 0 50px rgba(201, 24, 74, .55)) drop-shadow(0 0 100px rgba(201, 24, 74, .2));
      animation: fm 5s ease-in-out infinite;
    }

    @keyframes fm {

      0%,
      100% {
        transform: translateY(0) rotate(-3deg);
      }

      50% {
        transform: translateY(-16px) rotate(3deg);
      }
    }

    /* STATS BAR */
    .sb {
      background: var(--bg2);
      border-top: 1px solid var(--border-s);
      border-bottom: 1px solid var(--border-s);
    }

    .si {
      max-width: 1280px;
      margin: 0 auto;
      padding: 0 60px;
      display: grid;
      grid-template-columns: repeat(4, 1fr);
    }

    .sc-i {
      padding: 40px 16px;
      text-align: center;
      border-right: 1px solid var(--border-s);
      transition: background .3s;
    }

    .sc-i:last-child {
      border-right: none;
    }

    .sc-i:hover {
      background: rgba(201, 24, 74, .04);
    }

    .sn {
      font-family: var(--fd);
      font-size: clamp(30px, 3.8vw, 52px);
      color: var(--crimson);
      line-height: 1;
      margin-bottom: 8px;
      text-shadow: 0 0 40px rgba(201, 24, 74, .4);
    }

    .sn.g {
      color: var(--green);
      text-shadow: 0 0 40px rgba(74, 222, 128, .3);
    }

    .sla {
      font-family: var(--fc);
      font-size: 11px;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: var(--muted);
      font-weight: 600;
    }

    /* WHAT SECTION */
    .ws {
      padding: 100px 0;
      position: relative;
    }

    .ws::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 1px;
      background: linear-gradient(90deg, transparent, var(--border), transparent);
    }

    .wg {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 80px;
      align-items: start;
    }

    .wr {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 14px;
    }

    .wc {
      background: var(--card);
      border: 1px solid var(--border-s);
      border-radius: 12px;
      padding: 22px;
      transition: all .35s;
      position: relative;
      overflow: hidden;
    }

    .wc::before {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(135deg, rgba(201, 24, 74, .06), transparent);
      opacity: 0;
      transition: opacity .35s;
    }

    .wc:hover {
      border-color: var(--border);
      transform: translateY(-4px);
      box-shadow: 0 14px 40px rgba(0, 0, 0, .4);
    }

    .wc:hover::before {
      opacity: 1;
    }

    .wi {
      font-size: 26px;
      margin-bottom: 10px;
    }

    .wt {
      font-family: var(--fc);
      font-size: 14px;
      font-weight: 700;
      letter-spacing: 1px;
      text-transform: uppercase;
      color: var(--text);
      margin-bottom: 5px;
    }

    .wd {
      font-size: 13px;
      line-height: 1.7;
      color: var(--muted);
    }

    .wc.ft {
      grid-column: span 2;
      display: flex;
      align-items: center;
      gap: 18px;
      background: linear-gradient(135deg, rgba(201, 24, 74, .1), rgba(139, 15, 51, .05));
      border-color: rgba(201, 24, 74, .3);
    }

    .wc.ft:hover {
      border-color: rgba(201, 24, 74, .55);
    }

    /* FEATURES GRID */
    .fg-s {
      padding: 100px 0;
      background: var(--bg2);
      position: relative;
      overflow: hidden;
    }

    .fg-s::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 1px;
      background: linear-gradient(90deg, transparent, var(--border), transparent);
    }

    .fg-glow {
      position: absolute;
      width: 700px;
      height: 700px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(201, 24, 74, .07) 0%, transparent 65%);
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      pointer-events: none;
    }

    .fgh {
      text-align: center;
      margin-bottom: 60px;
    }

    .fgh .ss {
      margin: 0 auto;
    }

    .fg {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 2px;
    }

    .fc-card {
      background: var(--bg3);
      padding: 44px 36px;
      transition: all .35s;
      position: relative;
      overflow: hidden;
      cursor: default;
    }

    .fc-card::after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      height: 2px;
      background: linear-gradient(90deg, transparent, var(--crimson), transparent);
      transform: scaleX(0);
      transform-origin: center;
      transition: transform .4s;
    }

    .fc-card:hover::after {
      transform: scaleX(1);
    }

    .fc-card:hover {
      background: var(--card);
    }

    .fn {
      font-family: var(--fd);
      font-size: 64px;
      line-height: 1;
      color: rgba(201, 24, 74, .08);
      margin-bottom: -18px;
      transition: color .35s;
    }

    .fc-card:hover .fn {
      color: rgba(201, 24, 74, .15);
    }

    .fci {
      font-size: 30px;
      margin-bottom: 16px;
    }

    .fct {
      font-family: var(--fc);
      font-size: 17px;
      font-weight: 700;
      letter-spacing: 1px;
      text-transform: uppercase;
      color: var(--text);
      margin-bottom: 10px;
    }

    .fcd {
      font-size: 14px;
      line-height: 1.8;
      color: var(--muted);
    }

    .tag {
      display: inline-block;
      margin-top: 14px;
      background: rgba(201, 24, 74, .1);
      border: 1px solid rgba(201, 24, 74, .2);
      color: var(--crimson-light);
      padding: 4px 12px;
      border-radius: 100px;
      font-family: var(--fc);
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 1.5px;
      text-transform: uppercase;
    }

    .tag.gd {
      background: rgba(255, 183, 3, .1);
      border-color: rgba(255, 183, 3, .2);
      color: var(--gold);
    }

    /* SHOWCASE */
    .shw-s {
      padding: 100px 0;
      overflow: hidden;
    }

    .shw-scr {
      display: flex;
      gap: 20px;
      overflow-x: auto;
      padding: 16px 60px 36px;
      scrollbar-width: none;
    }

    .shw-scr::-webkit-scrollbar {
      display: none;
    }

    .shw-i {
      flex: 0 0 auto;
      background: var(--card);
      border-radius: 14px;
      border: 1px solid var(--border-s);
      overflow: hidden;
      transition: all .4s;
    }

    .shw-i:hover {
      transform: translateY(-6px);
      border-color: var(--border);
      box-shadow: 0 28px 56px rgba(0, 0, 0, .5), 0 0 36px rgba(201, 24, 74, .1);
    }

    .shw-i img {
      display: block;
      width: 100%;
    }

    .shw-w {
      width: 580px;
    }

    .shw-n {
      width: 240px;
    }

    .shw-cap {
      padding: 16px 18px;
      background: var(--card2);
      border-top: 1px solid var(--border-s);
    }

    .shw-cap-t {
      font-family: var(--fc);
      font-size: 13px;
      font-weight: 700;
      letter-spacing: 1px;
      text-transform: uppercase;
      color: var(--text);
      margin-bottom: 3px;
    }

    .shw-cap-d {
      font-size: 12px;
      color: var(--muted);
    }

    /* STORY */
    .st-s {
      padding: 100px 0;
      background: linear-gradient(135deg, var(--bg2) 0%, var(--bg) 60%);
      position: relative;
      overflow: hidden;
    }

    .st-s::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(255, 183, 3, .3), transparent);
    }

    .st-g {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 80px;
      align-items: center;
    }

    .st-q {
      font-family: var(--fs);
      font-style: italic;
      font-size: clamp(20px, 2.5vw, 30px);
      line-height: 1.5;
      color: var(--text);
      margin-bottom: 28px;
      position: relative;
      padding-left: 8px;
    }

    .st-q::before {
      content: '"';
      font-size: 110px;
      color: rgba(201, 24, 74, .12);
      position: absolute;
      top: -35px;
      left: -16px;
      line-height: 1;
      font-family: Georgia, serif;
      pointer-events: none;
    }

    .st-ls {
      display: flex;
      flex-direction: column;
      gap: 14px;
      margin-bottom: 36px;
    }

    .st-li {
      display: flex;
      align-items: flex-start;
      gap: 12px;
      font-size: 15px;
      color: var(--muted);
      line-height: 1.6;
    }

    .st-li::before {
      content: '—';
      color: var(--crimson);
      font-weight: 700;
      flex-shrink: 0;
      margin-top: 2px;
    }

    .st-r {
      background: var(--card);
      border: 1px solid var(--border-s);
      border-radius: 18px;
      padding: 40px;
      position: relative;
      overflow: hidden;
    }

    .st-r::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 3px;
      background: linear-gradient(90deg, var(--crimson), var(--gold));
    }

    .st-ot {
      font-family: var(--fd);
      font-size: 12px;
      letter-spacing: 4px;
      text-transform: uppercase;
      color: var(--crimson);
      margin-bottom: 18px;
    }

    .st-p {
      font-size: 15px;
      line-height: 1.9;
      color: var(--text2);
      margin-bottom: 18px;
    }

    /* ── RESPONSIVE HOME ── */
    @media(max-width:960px) {
      .hc {
        grid-template-columns: 1fr;
        padding: 110px 30px 60px;
        gap: 50px;
      }

      .he-r {
        display: none;
      }

      .wg {
        grid-template-columns: 1fr;
        gap: 50px;
      }

      .fg {
        grid-template-columns: 1fr 1fr;
      }

      .st-g {
        grid-template-columns: 1fr;
        gap: 50px;
      }

      .si {
        grid-template-columns: repeat(2, 1fr);
        padding: 0 30px;
      }

      .sc-i:nth-child(2) {
        border-right: none;
      }

      .shw-scr {
        padding: 16px 30px 30px;
      }
    }

    @media(max-width:600px) {
      .hc {
        padding: 100px 20px 50px;
      }

      .wr {
        grid-template-columns: 1fr;
      }

      .wc.ft {
        flex-direction: column;
      }

      .fg {
        grid-template-columns: 1fr;
      }

      .si {
        grid-template-columns: 1fr 1fr;
      }

      .st-r {
        padding: 28px 20px;
      }

      .shw-w {
        width: 85vw;
      }

      .shw-n {
        width: 55vw;
      }
    }
