    :root {
      --teal: #38d39b;
      --orange: #ffa200;
      --black: #0a0a0a;
      --white: #ffffff;
      --radius: 30px;
      --ease: cubic-bezier(0.4, 0, 0.2, 1);
    }

    *,
    *::before,
    *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
      cursor: none !important;
    }

    html,
    body {
      cursor: none !important;
    }

    html {
      scroll-behavior: smooth;
      overflow-x: hidden;
    }

    body {
      font-family: 'Montserrat', sans-serif;
      background: #31343c;
      color: var(--black);
    }

    ::-webkit-scrollbar {
      width: 4px;
    }

    ::-webkit-scrollbar-thumb {
      background: var(--teal);
      border-radius: 2px;
    }

    img {
      display: block;
      max-width: 100%;
    }

    /* ── NAV ── */
    .nav {
      position: fixed;
      top: 20px;
      left: 50%;
      transform: translateX(-50%);
      z-index: 100;
      width: calc(50% - 24px);
      max-width: 600px;
      padding: 12px 12px 12px 28px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      background: #31343c;
      border-radius: 100px;
      box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
    }

    .nav-logo {
      height: 36px;
      width: auto;
      display: block;
    }

    .footer-logo-img {
      height: 38px;
      width: auto;
      display: block;
    }

    /* ── HERO SCROLL DRIVER (keeps hero sticky for extra scroll distance) ── */
    .hero-scroll-driver {
      position: relative;
      height: 250vh;
    }

    /* ── HERO FRAME (shrinks to rounded card on scroll) ── */
    .hero-frame {
      background: #31343c;
      padding: 0;
      position: sticky;
      top: 0;
      z-index: 10;
      transition: padding 0.55s var(--ease);
    }

    .hero-frame.shrunk {
      padding: 0 24px;
    }

    /* ── HERO ── */
    .hero {
      position: relative;
      width: 100%;
      height: 100vh;
      min-height: 600px;
      overflow: hidden;
      background: #030d08;
      display: flex;
      align-items: flex-end;
      justify-content: center;
      border-radius: 0;
      transition: border-radius 0.55s var(--ease);
    }

    .hero-frame.shrunk .hero {
      border-radius: 30px;
    }

    .hero-video {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      z-index: 0;
      opacity: 0;
      transition: opacity 1.2s ease;
    }

    .hero-video.loaded {
      opacity: 1;
    }

    .hero-bg {
      position: absolute;
      inset: 0;
      will-change: transform;
      z-index: 1;
      background: radial-gradient(ellipse 80% 70% at 50% 55%, rgba(56, 211, 155, 0.08) 0%, rgba(56, 211, 155, 0.02) 45%, rgba(3, 13, 8, 0.55) 72%);
      animation: bgBreath 7s ease-in-out infinite alternate;
    }

    @keyframes bgBreath {
      from {
        opacity: .7
      }

      to {
        opacity: 1
      }
    }

    .hero-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(to bottom, rgba(3, 13, 8, .35) 0%, rgba(3, 13, 8, .15) 50%, rgba(3, 13, 8, .6) 100%);
      z-index: 1;
    }

    .ring {
      position: absolute;
      top: 50%;
      left: 50%;
      border-radius: 50%;
      border: 1px solid rgba(56, 211, 155, .22);
      z-index: 2;
    }

    .ring-1 {
      width: 440px;
      height: 440px;
      margin: -220px 0 0 -220px;
      animation: spin 11s linear infinite;
    }

    .ring-2 {
      width: 580px;
      height: 580px;
      margin: -290px 0 0 -290px;
      animation: spin 17s linear infinite reverse;
      border-style: dashed;
      border-color: rgba(56, 211, 155, .12);
    }

    .ring-3 {
      width: 700px;
      height: 700px;
      margin: -350px 0 0 -350px;
      animation: spin 25s linear infinite;
      border-color: rgba(56, 211, 155, .07);
    }

    .ring-1::before {
      content: '';
      position: absolute;
      width: 8px;
      height: 8px;
      background: var(--teal);
      border-radius: 50%;
      top: -4px;
      left: 50%;
      margin-left: -4px;
      box-shadow: 0 0 12px var(--teal);
    }

    .ring-2::after {
      content: '';
      position: absolute;
      width: 5px;
      height: 5px;
      background: rgba(56, 211, 155, .6);
      border-radius: 50%;
      bottom: -2.5px;
      left: 30%;
      box-shadow: 0 0 8px var(--teal);
    }

    @keyframes spin {
      to {
        transform: rotate(360deg)
      }
    }

    .orb {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 280px;
      height: 280px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(56, 211, 155, .14) 0%, rgba(56, 211, 155, .04) 55%, transparent 75%);
      box-shadow: 0 0 0 1px rgba(56, 211, 155, .25), 0 0 80px rgba(56, 211, 155, .06);
      animation: orbPulse 4s ease-in-out infinite;
      z-index: 2;
    }

    @keyframes orbPulse {

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

      50% {
        transform: translate(-50%, -50%) scale(1.06);
        opacity: 1
      }
    }

    .hero-content {
      position: relative;
      z-index: 2;
      text-align: center;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 24px;
      padding: 0;
      width: 100%;
    }

    .hero-glass {
      background: #31343c;
      border-radius: 28px 28px 0 0;
      padding: 28px 60px 36px;
      width: fit-content;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0;
      box-shadow: 0 -8px 48px rgba(0, 0, 0, 0.22);
      opacity: 0;
      animation: fadeInBlock .5s .2s var(--ease) forwards;
    }

    @keyframes fadeInBlock {
      to {
        opacity: 1;
      }
    }

    .hero-frame.shrunk .hero-glass {
      border-radius: 20px 20px 0 0;
    }

    .hero-title {
      font-family: 'Comfortaa', cursive;
      font-weight: 700;
      font-size: clamp(26px, 3.5vw, 44px);
      line-height: 1.3;
      color: #fff;
    }

    .hero-title span {
      color: var(--teal);
      display: block;
    }

    .btn-orange {
      display: inline-block;
      font-family: 'Comfortaa', cursive;
      font-weight: 700;
      font-size: 17px;
      color: #fff;
      background: var(--orange);
      border: none;
      border-radius: 100px;
      padding: 16px 44px;
      cursor: pointer;
      text-decoration: none;
      transition: transform .3s, background .25s;
      position: relative;
      overflow: hidden;
    }

    .btn-orange::after {
      content: '';
      position: absolute;
      inset: 0;
      background: rgba(0, 0, 0, 0);
      border-radius: 100px;
      transition: background .25s;
    }

    .btn-orange:hover {
      transform: translateY(-3px);
    }

    .btn-orange:hover::after {
      background: rgba(0, 0, 0, 0.18);
    }

    .hero-btn-anim {
      margin: 0 28px;
    }

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

    .scroll-cue {
      position: absolute;
      bottom: 32px;
      left: 50%;
      transform: translateX(-50%);
      z-index: 3;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 6px;
      opacity: 0;
      animation: fadeTo .8s 2s forwards;
    }

    .scroll-cue-line {
      width: 1px;
      height: 48px;
      background: linear-gradient(to bottom, rgba(56, 211, 155, .8), transparent);
      animation: linePulse 2s ease-in-out infinite;
    }

    @keyframes linePulse {

      0%,
      100% {
        opacity: .4
      }

      50% {
        opacity: 1
      }
    }

    @keyframes fadeTo {
      to {
        opacity: .7
      }
    }


    /* ── VISION (scroll-hijacked, sticky inner) ── */
    .vision {
      position: relative;
      height: 280vh;
      /* extra scroll space to drive text fill */
      background: #fff;
    }

    .vision-sticky {
      position: sticky;
      top: 0;
      height: 100vh;
      display: flex;
      align-items: center;
      overflow: hidden;
    }

    .vision-content {
      max-width: 1100px;
      margin: 0 auto;
      padding: 60px 80px;
      width: 100%;
      text-align: center;
    }

    .vision-text {
      font-family: 'Comfortaa', cursive;
      font-weight: 700;
      font-size: clamp(24px, 3.2vw, 46px);
      line-height: 1.42;
    }

    /* Both spans start grey — JS fills them on scroll */
    #vt1,
    #vt2 {}

    /* ── HASHTAG LINK ── */
    .atom-hashtag {
      position: relative;
      display: inline;
      text-decoration: none;
      cursor: pointer;
      color: var(--teal) !important;
      -webkit-text-fill-color: var(--teal) !important;
      background: none !important;
      -webkit-background-clip: unset !important;
      background-clip: unset !important;
    }

    .atom-hashtag:hover {
      text-decoration: underline;
      text-decoration-color: #38d39b;
    }

    .ig-bubble {
      position: fixed;
      pointer-events: none;
      transform: translate(-50%, -100%) scale(0.75);
      transform-origin: bottom center;
      opacity: 0;
      transition: opacity 0.18s var(--ease), transform 0.18s var(--ease);
      background: #fff;
      border-radius: 100px;
      padding: 8px 16px 8px 10px;
      display: flex;
      align-items: center;
      gap: 9px;
      box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
      white-space: nowrap;
    }

    .ig-bubble.visible {
      opacity: 1;
      transform: translate(-50%, -100%) scale(1);
    }

    .ig-bubble-text {
      font-family: 'Comfortaa', cursive;
      font-weight: 700;
      font-size: 13px;
      color: #38d39b !important;
      -webkit-text-fill-color: #38d39b !important;
      background: none !important;
      -webkit-background-clip: unset !important;
      background-clip: unset !important;
      letter-spacing: 0.2px;
    }

    /* ── YOUR ATOM ── */
    .your-atom {
      background: var(--teal);
      border-radius: var(--radius);
      margin: 0 24px 0;
      padding: 90px 70px;
      overflow: hidden;
      position: relative;
      z-index: 3;
    }

    .your-atom-inner {
      max-width: 1200px;
      margin: 0 auto;
      display: flex;
      align-items: center;
      gap: 80px;
    }

    .atom-img-wrap {
      flex: 0 0 auto;
      width: 430px;
      height: 480px;
      border-radius: 300px 300px 300px 30px;
      overflow: hidden;
      position: relative;
    }

    .atom-img-wrap img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: opacity .55s ease;
    }

    .atom-img-wrap img.out {
      opacity: 0;
    }

    .atom-text {
      flex: 1;
      position: relative;
    }

    .atom-subtitle {
      font-family: 'Comfortaa', cursive;
      font-weight: 700;
      font-size: 14px;
      color: rgba(0, 0, 0, .55);
      margin-bottom: 26px;
      letter-spacing: .4px;
    }

    .atom-dot {
      display: none;
    }

    .atom-words {
      display: block;
      line-height: 1.45;
    }

    /* Inactive = black on teal bg, Active = white */
    .atom-word {
      font-family: 'Comfortaa', cursive;
      font-weight: 700;
      font-size: clamp(22px, 2.6vw, 32px);
      line-height: 1.45;
      color: #000;
      display: inline;
      transition: color .45s ease;
    }

    .atom-word.active {
      color: #fff;
    }

    .atom-word:not(:last-child)::after {
      content: ' ';
    }

    /* ── LAUNCH SECTION (Coming in September + USP cards) ── */
    .launch-section {
      background: #fff;
      padding: 80px 60px 100px;
      position: relative;
      z-index: 2;
      overflow-x: clip;
    }

    .launch-inner {
      max-width: 1300px;
      margin: 0 auto;
      display: flex;
      align-items: flex-start;
      gap: 80px;
    }

    .launch-left {
      flex: 0 0 300px;
      min-width: 240px;
    }

    .launch-title {
      font-family: 'Comfortaa', cursive;
      font-weight: 700;
      font-size: clamp(32px, 4vw, 60px);
      color: var(--black);
      line-height: 1.1;
      margin-bottom: 24px;
    }

    .launch-body {
      font-size: 15px;
      line-height: 1.8;
      color: rgba(0, 0, 0, 0.6);
      margin-bottom: 36px;
    }

    /* ── CAROUSEL ── */
    .launch-carousel-wrap {
      flex: 1;
      overflow: visible;
      min-width: 0;
      position: relative;
      clip-path: inset(0 -9999px 0 0);
    }

    .launch-carousel {
      display: flex;
      gap: 20px;
      transition: transform 0.5s var(--ease);
      cursor: grab;
      user-select: none;
    }

    .launch-carousel:active {
      cursor: grabbing;
    }

    .lcard {
      flex: 0 0 260px;
      height: 320px;
      background: #31343c;
      border-radius: 24px;
      position: relative;
      overflow: hidden;
      display: flex;
      align-items: flex-end;
      padding: 28px;
    }

    .lcard-zone {
      position: relative;
      overflow: visible;
    }

    .carousel-follow-circle {
      position: absolute;
      width: 90px;
      height: 90px;
      background: var(--teal);
      border-radius: 50%;
      transform: translate(-50%, -50%);
      pointer-events: none;
      opacity: 0;
      transition: opacity 0.4s ease;
      z-index: 20;
    }

    .lcard-text {
      font-family: 'Comfortaa', cursive;
      font-weight: 700;
      font-size: clamp(18px, 1.6vw, 22px);
      color: #fff;
      line-height: 1.3;
      position: relative;
      z-index: 1;
    }

    .launch-car-btns {
      display: flex;
      gap: 12px;
      margin-top: 24px;
    }

    .car-btn {
      width: 44px;
      height: 44px;
      border-radius: 50%;
      border: 2px solid rgba(0, 0, 0, 0.2);
      background: transparent;
      color: var(--black);
      font-size: 18px;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: border-color .3s, background .3s;
    }

    .car-btn:hover {
      border-color: var(--teal);
      background: rgba(56, 211, 155, 0.12);
    }

    /* ── JOURNAL ── */
    .journal {
      background: var(--teal);
      border-radius: var(--radius);
      margin: 24px 24px 0;
      padding: 80px 60px;
      position: relative;
      overflow: hidden;
      z-index: 2;
    }

    .journal-bg {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%) rotate(-135deg);
      opacity: .06;
      width: 580px;
      pointer-events: none;
    }

    .journal-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 60px;
      position: relative;
      z-index: 1;
    }

    .journal-title {
      font-family: 'Comfortaa', cursive;
      font-weight: 700;
      font-size: clamp(26px, 3vw, 38px);
      color: #fff;
    }

    .journal-nav {
      display: flex;
      gap: 12px;
      flex-shrink: 0;
    }

    .journal-nav-btn {
      width: 44px;
      height: 44px;
      border-radius: 50%;
      border: 2px solid rgba(255, 255, 255, .45);
      background: transparent;
      color: #fff;
      font-size: 18px;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: border-color .3s, background .3s;
    }

    .journal-nav-btn:hover {
      border-color: #fff;
      background: rgba(255, 255, 255, .18);
    }

    .journal-nav-btn:disabled {
      opacity: .3;
      cursor: default;
    }

    .journal-carousel-wrap {
      overflow: hidden;
      position: relative;
      z-index: 1;
    }

    .journal-carousel-wrap::after {
      content: '';
      position: absolute;
      top: 0;
      right: 0;
      width: 80px;
      height: 100%;
      background: linear-gradient(to right, transparent, var(--teal));
      pointer-events: none;
      z-index: 2;
      transition: opacity .3s;
    }

    .journal-carousel-wrap.at-end::after {
      opacity: 0;
    }

    .journal-grid {
      display: flex;
      gap: 28px;
      transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
      cursor: grab;
      user-select: none;
    }

    .journal-grid:active {
      cursor: grabbing;
    }

    .jcard {
      flex: 0 0 calc(25% - 21px);
      cursor: pointer;
      opacity: 0;
      transform: translateY(36px);
      transition: opacity .65s ease, transform .65s ease;
      perspective: 900px;
    }

    .jcard.vis {
      opacity: 1;
      transform: translateY(0);
    }

    .jcard.vis:hover {
      transform: translateY(-8px);
    }

    .jcard-img {
      overflow: hidden;
      aspect-ratio: .94;
      margin-bottom: 16px;
      transform-style: preserve-3d;
      transition: transform 0.12s ease;
    }

    .jcard-img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform .5s ease;
    }

    .jcard.vis:hover .jcard-img img {
      transform: scale(1.06);
    }

    .jcard:nth-child(4n+1) .jcard-img {
      border-radius: 200px 200px 200px 20px;
    }

    .jcard:nth-child(4n+2) .jcard-img {
      border-radius: 20px 20px 1000px 1000px;
    }

    .jcard:nth-child(4n+3) .jcard-img {
      border-radius: 200px;
    }

    .jcard:nth-child(4n+4) .jcard-img {
      border-radius: 152px 152px 20px 20px;
    }

    .jcard-date {
      font-family: 'Montserrat', sans-serif;
      font-weight: 600;
      font-size: 12px;
      color: rgba(255, 255, 255, .65);
      margin-bottom: 6px;
    }

    .jcard-ttl {
      font-family: 'Comfortaa', cursive;
      font-weight: 700;
      font-size: clamp(14px, 1.3vw, 17px);
      color: var(--black);
      line-height: 1.4;
    }

    /* ── REGISTER ── */
    .register {
      padding: 100px 40px 80px;
      max-width: 1300px;
      margin: 0 auto;
      background: #fff;
    }

    .reg-eyebrow {
      font-family: 'Comfortaa', cursive;
      font-weight: 700;
      font-size: 16px;
      color: var(--black);
      text-align: center;
      max-width: 600px;
      margin: 0 auto 52px;
      line-height: 1.55;
    }

    .reg-title {
      font-family: 'Comfortaa', cursive;
      font-weight: 700;
      font-size: clamp(24px, 3vw, 34px);
      color: var(--black);
      text-align: center;
      margin-bottom: 16px;
    }

    .reg-form {
      max-width: 640px;
      margin: 0 auto;
    }

    .fg {
      margin-bottom: 14px;
      opacity: 0;
      transform: translateY(18px);
      transition: opacity .5s ease, transform .5s ease;
    }

    .fg.vis {
      opacity: 1;
      transform: translateY(0);
    }

    .fg label {
      display: block;
      font-family: 'Comfortaa', cursive;
      font-weight: 700;
      font-size: 15px;
      color: var(--black);
      margin-bottom: 8px;
    }

    .fg input {
      width: 100%;
      height: 46px;
      border: 1.5px solid var(--teal);
      border-radius: 100px;
      background: rgba(255, 255, 255, .9);
      padding: 0 22px;
      font-family: 'Montserrat', sans-serif;
      font-size: 14px;
      color: var(--black);
      outline: none;
      transition: box-shadow .3s;
    }

    .fg input:focus {
      box-shadow: 0 0 0 3px rgba(56, 211, 155, .18);
    }

    .chk-row {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      margin-bottom: 18px;
      opacity: 0;
      transform: translateY(14px);
      transition: opacity .5s .1s ease, transform .5s .1s ease;
    }

    .chk-row.vis {
      opacity: 1;
      transform: translateY(0);
    }

    .chk-row input[type=checkbox] {
      width: 22px;
      height: 22px;
      flex-shrink: 0;
      border: 1.5px solid var(--teal);
      border-radius: 3px;
      background: #fff;
      cursor: pointer;
      appearance: none;
      margin-top: 1px;
      position: relative;
      transition: background .2s;
    }

    .chk-row input[type=checkbox]:checked {
      background: var(--teal);
    }

    .chk-row input[type=checkbox]:checked::after {
      content: '';
      position: absolute;
      left: 6px;
      top: 2px;
      width: 6px;
      height: 10px;
      border: 2px solid #fff;
      border-top: none;
      border-left: none;
      transform: rotate(45deg);
    }

    .chk-row label {
      font-size: 13px;
      color: var(--black);
      line-height: 1.5;
      cursor: pointer;
    }

    .captcha-mock {
      background: #f9f9f9;
      border: 1px solid #d3d3d3;
      border-radius: 3px;
      box-shadow: 0 0 4px 1px rgba(0, 0, 0, .07);
      padding: 14px 16px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      width: 300px;
      margin-bottom: 18px;
      opacity: 0;
      transform: translateY(14px);
      transition: opacity .5s .2s ease, transform .5s .2s ease;
    }

    .captcha-mock.vis {
      opacity: 1;
      transform: translateY(0);
    }

    .captcha-left {
      display: flex;
      align-items: center;
      gap: 12px;
    }

    .captcha-box {
      width: 26px;
      height: 26px;
      border: 2px solid #333;
      border-radius: 2px;
      background: #fff;
    }

    .captcha-text {
      font-size: 14px;
      color: #333;
      font-family: 'Roboto', sans-serif;
    }

    .captcha-right {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 2px;
    }

    .captcha-logo {
      font-size: 10px;
      color: #555;
    }

    .captcha-links {
      font-size: 8px;
      color: #555;
    }

    .reg-submit {
      display: block;
      width: 100%;
      height: 54px;
      background: var(--orange);
      border: none;
      border-radius: 100px;
      font-family: 'Comfortaa', cursive;
      font-weight: 700;
      font-size: 17px;
      color: #fff;
      cursor: pointer;
      opacity: 0;
      transform: translateY(14px);
      transition: opacity .5s .35s ease, transform .5s .35s ease;
      position: relative;
      overflow: hidden;
    }

    .reg-submit::after {
      content: '';
      position: absolute;
      inset: 0;
      background: rgba(0, 0, 0, 0);
      border-radius: 100px;
      transition: background .25s;
      pointer-events: none;
    }

    .reg-submit.vis {
      opacity: 1;
      transform: translateY(0);
    }

    .reg-submit:hover::after {
      background: rgba(0, 0, 0, 0.18);
    }

    .reg-submit.success {
      background: var(--teal);
      cursor: default;
    }

    /* ── FOOTER ── */
    .footer {
      border-top: 1px solid rgba(0, 0, 0, .08);
      padding: 36px 60px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      flex-wrap: wrap;
      gap: 20px;
      background: #fff;
    }

    .footer-links {
      display: flex;
      gap: 32px;
    }

    .footer-links a {
      font-family: 'Montserrat', sans-serif;
      font-weight: 600;
      font-size: 13px;
      color: var(--black);
      text-decoration: none;
      transition: color .3s;
    }

    .footer-links a:hover {
      color: var(--teal);
    }

    .footer-logo {
      height: 38px;
      width: auto;
      filter: invert(1);
    }

    .footer-socials {
      display: flex;
      align-items: center;
      gap: 18px;
    }

    .footer-socials a {
      display: flex;
      align-items: center;
      color: var(--black);
      opacity: .55;
      transition: opacity .3s, color .3s;
      text-decoration: none;
    }

    .footer-socials a:hover {
      opacity: 1;
      color: var(--teal);
    }

    .footer-socials svg {
      width: 20px;
      height: 20px;
    }

    /* ── ARTICLE MODAL ── */
    .article-modal {
      position: fixed;
      inset: 0;
      z-index: 300;
      background: #fff;
      overflow-y: auto;
      transform: translateY(100%);
      transition: transform .55s var(--ease);
    }

    .article-modal.open {
      transform: translateY(0);
    }

    .article-head {
      position: sticky;
      top: 0;
      background: rgba(255, 255, 255, .9);
      backdrop-filter: blur(12px);
      padding: 18px 60px;
      display: flex;
      align-items: center;
      gap: 18px;
      border-bottom: 1px solid rgba(0, 0, 0, .07);
      z-index: 5;
    }

    .article-close {
      background: none;
      border: 1px solid rgba(0, 0, 0, .15);
      border-radius: 100px;
      padding: 8px 20px;
      cursor: pointer;
      font-family: 'Montserrat', sans-serif;
      font-size: 14px;
      color: var(--black);
      transition: all .3s;
    }

    .article-close:hover {
      background: var(--teal);
      color: #fff;
      border-color: var(--teal);
    }

    .article-body {
      max-width: 780px;
      margin: 0 auto;
      padding: 60px 40px;
    }

    .article-body img {
      width: 100%;
      height: 440px;
      object-fit: cover;
      border-radius: 20px;
      margin-bottom: 40px;
    }

    .article-body .a-date {
      font-family: 'Montserrat', sans-serif;
      font-weight: 600;
      font-size: 13px;
      color: var(--teal);
      text-transform: uppercase;
      letter-spacing: 1px;
      margin-bottom: 14px;
    }

    .article-body h1 {
      font-family: 'Comfortaa', cursive;
      font-weight: 700;
      font-size: 32px;
      color: var(--black);
      line-height: 1.3;
      margin-bottom: 28px;
    }

    .article-body p {
      font-size: 16px;
      line-height: 1.8;
      color: #333;
      margin-bottom: 22px;
    }

    /* ── REGISTER SUCCESS ── */
    .reg-success {
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      padding: 20px 40px 60px;
      opacity: 0;
      transform: translateY(20px);
      transition: opacity .6s ease, transform .6s ease;
      pointer-events: none;
    }

    .reg-success.show {
      opacity: 1;
      transform: translateY(0);
      pointer-events: auto;
    }

    .reg-check-wrap {
      position: relative;
      width: 120px;
      height: 120px;
      margin-bottom: 36px;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    /* atom orbital rings */
    .atom-ring {
      position: absolute;
      top: 50%;
      left: 50%;
      width: 112px;
      height: 38px;
      margin-top: -19px;
      margin-left: -56px;
      border-radius: 50%;
      border: 1.5px solid rgba(56, 211, 155, .5);
      opacity: 0;
      transition: opacity .4s ease;
    }

    .atom-ring::before {
      content: '';
      position: absolute;
      width: 7px;
      height: 7px;
      background: var(--teal);
      border-radius: 50%;
      top: -3.5px;
      left: 50%;
      margin-left: -3.5px;
      box-shadow: 0 0 14px var(--teal), 0 0 5px var(--teal);
    }

    .atom-ring-2 {
      border-color: rgba(56, 211, 155, .3);
    }

    .atom-ring-2::before {
      width: 5px;
      height: 5px;
      top: -2.5px;
      margin-left: -2.5px;
      background: rgba(56, 211, 155, .7);
      box-shadow: 0 0 10px var(--teal);
    }

    .reg-success.show .atom-ring {
      opacity: 1;
    }

    .atom-ring-1 {
      animation: atomSpin1 2.4s linear infinite;
    }

    .atom-ring-2 {
      animation: atomSpin2 3.6s linear infinite;
    }

    @keyframes atomSpin1 {
      from {
        transform: rotate(0deg)
      }

      to {
        transform: rotate(360deg)
      }
    }

    @keyframes atomSpin2 {
      from {
        transform: rotate(60deg)
      }

      to {
        transform: rotate(-300deg)
      }
    }

    /* nucleus glow */
    .atom-nucleus {
      position: absolute;
      top: 50%;
      left: 50%;
      width: 10px;
      height: 10px;
      margin: -5px 0 0 -5px;
      background: var(--teal);
      border-radius: 50%;
      box-shadow: 0 0 18px var(--teal), 0 0 6px var(--teal);
      opacity: 0;
      transform: scale(0);
      transition: opacity .35s .25s ease, transform .35s .25s cubic-bezier(.34, 1.56, .64, 1);
    }

    .reg-success.show .atom-nucleus {
      opacity: 1;
      transform: scale(1);
    }


    .reg-success-spark {
      position: absolute;
      border: 1.5px solid rgba(56, 211, 155, .7);
      border-radius: 50%;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      pointer-events: none;
      animation: successSpark 1.1s ease-out forwards;
    }

    @keyframes successSpark {
      from {
        width: 120px;
        height: 120px;
        opacity: .9;
      }

      to {
        width: 360px;
        height: 360px;
        opacity: 0;
      }
    }

    .reg-success-title {
      font-family: 'Comfortaa', cursive;
      font-weight: 700;
      font-size: clamp(24px, 3vw, 36px);
      color: var(--black);
      margin-bottom: 16px;
      opacity: 0;
      transform: translateY(14px);
      transition: opacity .5s 1s ease, transform .5s 1s ease;
    }

    .reg-success-sub {
      font-size: 15px;
      line-height: 1.75;
      color: rgba(0, 0, 0, .5);
      max-width: 440px;
      opacity: 0;
      transform: translateY(10px);
      transition: opacity .5s 1.15s ease, transform .5s 1.15s ease;
    }

    .reg-success.show .reg-success-title,
    .reg-success.show .reg-success-sub {
      opacity: 1;
      transform: translateY(0);
    }

    /* ── GENERIC SCROLL ANIMS ── */
    .ao {
      opacity: 0;
      transform: translateY(36px);
      transition: opacity .7s ease, transform .7s ease;
    }

    .ao.vis {
      opacity: 1;
      transform: translateY(0);
    }

    .af {
      opacity: 0;
      transition: opacity .8s ease;
    }

    .af.vis {
      opacity: 1;
    }

    /* ── RESPONSIVE ── */
    @media(max-width:1100px) {
      .jcard {
        flex: 0 0 calc(50% - 14px);
      }

      .journal-carousel-wrap::after {
        width: 60px;
      }

      .your-atom-inner {
        flex-direction: column;
        gap: 40px;
      }

      .atom-img-wrap {
        width: 100%;
        max-width: 380px;
        margin: 0 auto;
      }

      .launch-inner {
        gap: 48px;
      }
    }

    @media(max-width:768px) {

      /* Nav */
      .nav {
        top: 12px;
        width: calc(100% - 24px);
        padding: 10px 10px 10px 20px;
      }

      .nav img {
        height: 30px;
      }

      .nav .btn-orange {
        font-size: 13px;
        padding: 10px 18px;
      }

      /* Hero */
      .hero-glass {
        padding: 24px 20px 32px;
        width: calc(100% - 32px);
        max-width: none;
      }

      /* Vision */
      .vision-content {
        padding: 40px 32px;
      }

      /* Your Atom — mobile redesign */
      .your-atom {
        padding: 44px 20px 52px;
        margin: 0 12px;
      }

      .your-atom-inner {
        flex-direction: column;
        gap: 24px;
        align-items: flex-start;
      }

      .atom-img-wrap {
        width: 100%;
        height: 260px;
        max-width: none;
        border-radius: 140px 140px 140px 18px;
      }

      .atom-text {
        padding-left: 4px;
        width: 100%;
      }

      .atom-subtitle {
        font-size: 13px;
        margin-bottom: 14px;
      }

      .atom-word {
        font-size: clamp(20px, 6vw, 28px);
        line-height: 1.45;
      }

      /* Launch section mobile */
      .launch-section {
        padding: 60px 24px 80px;
      }

      .launch-inner {
        flex-direction: column;
        gap: 40px;
      }

      .launch-left {
        flex: none;
        width: 100%;
      }

      .lcard {
        flex: 0 0 220px;
        height: 280px;
      }

      /* Journal */
      .journal {
        margin: -40px 12px 0;
        padding: 56px 20px;
      }

      .journal-head {
        margin-bottom: 36px;
      }

      .jcard {
        flex: 0 0 calc(50% - 8px);
      }

      .journal-grid {
        gap: 16px;
      }

      .jcard-ttl {
        font-size: 13px;
      }

      /* Register */
      .register {
        padding: 72px 24px 64px;
      }

      .reg-form {
        max-width: 100%;
      }

      /* Footer */
      .footer {
        padding: 28px 24px;
        flex-direction: column;
        align-items: flex-start;
        gap: 24px;
      }

      .footer-links {
        flex-wrap: wrap;
        gap: 20px;
      }

      /* Article modal */
      .article-head {
        padding: 14px 24px;
      }
    }

    @media(max-width:480px) {
      .hero-glass {
        width: calc(100% - 20px);
      }

      .jcard {
        flex: 0 0 calc(85% - 14px);
      }

      .atom-img-wrap {
        height: 220px;
      }

      .your-atom {
        margin: 0 8px;
      }

      .journal {
        margin: -40px 8px 0;
      }

      .lcard {
        flex: 0 0 200px;
        height: 260px;
      }
    }

    /* ── CUSTOM CURSOR ── */
    .cursor-dot {
      position: fixed;
      pointer-events: none;
      z-index: 99999;
      width: 10px;
      height: 10px;
      background: #38d39b;
      border-radius: 50%;
      top: 0;
      left: 0;
      transform: translate(-999px, -999px);
      transition: width .25s, height .25s, background .25s, border .2s, box-shadow .25s;
    }

    .cursor-dot.ring-mode {
      width: 26px;
      height: 26px;
      background: transparent;
      border: 2px solid var(--teal);
      box-shadow: 0 0 18px rgba(56, 211, 155, .55), inset 0 0 6px rgba(56, 211, 155, .15);
    }

    .cursor-dot.btn-mode {
      width: 34px;
      height: 34px;
      background: transparent;
      border: 2px solid #fff;
      box-shadow: none;
    }

    @keyframes dotBounce {

      0%,
      100% {
        top: 0px;
      }

      50% {
        top: -7px;
      }
    }

    .cursor-dot.bouncing {
      animation: dotBounce 0.52s ease-in-out infinite;
    }

    @keyframes cursorPing {
      0% {
        box-shadow: 0 0 0 0 rgba(56, 211, 155, .8);
      }

      70% {
        box-shadow: 0 0 0 22px rgba(56, 211, 155, 0);
      }

      100% {
        box-shadow: 0 0 0 0 rgba(56, 211, 155, 0);
      }
    }

    .cursor-dot.pinging {
      animation: cursorPing .7s ease-out;
    }

    .cursor-scroll-hint {
      position: fixed;
      pointer-events: none;
      z-index: 99998;
      top: 0;
      left: 0;
      background: rgba(5, 5, 5, .82);
      color: #fff;
      font-family: 'Comfortaa', cursive;
      font-weight: 700;
      font-size: 12px;
      border-radius: 20px;
      padding: 6px 14px;
      white-space: nowrap;
      letter-spacing: .2px;
      opacity: 0;
      transition: opacity .3s;
    }

    .cursor-scroll-hint.visible {
      opacity: 1;
    }

    .cursor-emit-ring {
      position: fixed;
      pointer-events: none;
      z-index: 99997;
      border: 1.5px solid rgba(56, 211, 155, .65);
      border-radius: 50%;
      transform: translate(-50%, -50%);
      animation: emitExpand 1.3s ease-out forwards;
    }

    @keyframes emitExpand {
      from {
        width: 10px;
        height: 10px;
        opacity: .75;
      }

      to {
        width: 110px;
        height: 110px;
        opacity: 0;
      }
    }

    .error-msg {
      color: red;
      font-size: 13px;
      margin-top: 5px;
      display: none;
    }

    .fg input.error {
      border: 1.5px solid red;
    }

    .fg input.success {
      border: 1.5px solid var(--teal);
    }