html, body { overflow-x: hidden; width: 100%; position: relative; }

    body {
      background-color: #0F172A;
      color: #ffffff;
      -webkit-font-smoothing: antialiased;
    }

    .text-gradient-dottos {
      background-clip: text;
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-image: linear-gradient(135deg, #51ebe1, #1a749e, #4ce4db);
      background-size: 200% 200%;
      animation: gradient-shift 6s ease infinite;
    }

    @keyframes gradient-shift {

      0%,
      100% {
        background-position: 0% 50%;
      }

      50% {
        background-position: 100% 50%;
      }
    }

    .glass-panel {
      background: rgba(255, 255, 255, 0.02);
      backdrop-filter: blur(16px);
      -webkit-backdrop-filter: blur(16px);
      border: 1px solid rgba(81, 235, 225, 0.1);
      box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
      transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    }

    .glass-panel:hover {
      border-color: rgba(81, 235, 225, 0.3);
      box-shadow: 0 8px 40px rgba(28, 116, 157, 0.2);
    }

    .ambient-glow-cyan {
      position: absolute;
      border-radius: 50%;
      background: #51ebe1;
      filter: blur(90px);
      z-index: 0;
      pointer-events: none;
      mix-blend-mode: screen;
      opacity: 0.15;
      animation: glow-pulse 5s alternate infinite;
    }

    .ambient-glow-blue {
      position: absolute;
      border-radius: 50%;
      background: #1a749e;
      filter: blur(120px);
      z-index: 0;
      pointer-events: none;
      mix-blend-mode: screen;
      opacity: 0.2;
      animation: glow-pulse 6s alternate-reverse infinite;
    }

    /* Phone View Details */
    .phone-mockup {
      width: 290px;
      height: 590px;
      border-radius: 3.25rem;
      border: 5px solid #0B1120;
      position: relative;
      overflow: hidden;
      box-shadow: 0 25px 50px -12px rgba(26, 116, 158, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.1);
      background: #02040A;
    }

    .phone-notch {
      position: absolute;
      top: 0;
      left: 50%;
      transform: translateX(-50%);
      width: 120px;
      height: 25px;
      background: #0B1120;
      border-bottom-left-radius: 16px;
      border-bottom-right-radius: 16px;
      z-index: 20;
    }

    .chat-bg {
      background: radial-gradient(circle at 50% 0%, rgba(37, 170, 182, 0.1), transparent 70%);
    }

    .message-user {
      background: rgba(255, 255, 255, 0.05);
      border: 1px solid rgba(255, 255, 255, 0.1);
      border-radius: 18px 18px 4px 18px;
      color: #fff;
    }

    .message-bot {
      background: linear-gradient(135deg, rgba(26, 116, 158, 0.2), rgba(37, 170, 182, 0.2));
      border: 1px solid rgba(81, 235, 225, 0.2);
      border-radius: 18px 18px 18px 4px;
      color: #fff;
    }

    .typing-dot {
      width: 6px;
      height: 6px;
      background-color: #51ebe1;
      border-radius: 50%;
      display: inline-block;
      animation: typing 1.4s infinite ease-in-out both;
    }

    .typing-dot:nth-child(1) {
      animation-delay: -0.32s;
    }

    .typing-dot:nth-child(2) {
      animation-delay: -0.16s;
    }

    @keyframes typing {

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

      40% {
        transform: scale(1);
        opacity: 1;
      }
    }

    /* Grid line background overlay */
    .bg-grid {
      background-size: 40px 40px;
      background-image: linear-gradient(to right, rgba(81, 235, 225, 0.03) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(81, 235, 225, 0.03) 1px, transparent 1px);
      mask-image: linear-gradient(to bottom, transparent, black, transparent);
      -webkit-mask-image: linear-gradient(to bottom, transparent, black, transparent);
    }

    /* Initial state for GSAP */
    .hero-elem {
      opacity: 0;
      transform: translateY(30px);
    }

    .chat-msg {
      opacity: 0;
      transform: translateY(15px);
      display: none;
    }

    /* Infinite Marquee */
    .marquee-wrapper {
      position: relative;
      width: 100vw;
      max-width: 100%;
      overflow: hidden;
      mask-image: linear-gradient(to right, transparent, black 15%, black 85%, transparent);
      -webkit-mask-image: linear-gradient(to right, transparent, black 15%, black 85%, transparent);
    }

    .marquee-track {
      display: flex;
      width: max-content;
      will-change: transform;
    }

    .marquee-track-left {
      animation: scroll-left 40s linear infinite;
    }

    .marquee-track-right {
      animation: scroll-right 45s linear infinite;
    }

    .marquee-track:hover {
      animation-play-state: paused;
    }

    @keyframes scroll-left {
      0% {
        transform: translateX(0);
      }

      100% {
        transform: translateX(-50%);
      }
    }

    @keyframes scroll-right {
      0% {
        transform: translateX(-50%);
      }

      100% {
        transform: translateX(0);
      }
    }

    .marquee-item {
      display: flex;
      align-items: center;
      gap: 0.75rem;
      padding: 1rem 3.5rem;
      color: #6b7280;
      /* text-gray-400 */
      font-weight: 500;
      transition: all 0.3s ease;
      white-space: nowrap;
      cursor: default;
    }

    .marquee-item:hover {
      color: white;
      text-shadow: 0 0 20px rgba(81, 235, 225, 0.4);
    }

    .marquee-item svg {
      transition: all 0.3s ease;
      opacity: 0.7;
    }

    .marquee-item:hover svg {
      opacity: 1;
      color: #51ebe1;
      /* dottos-300 */
      filter: drop-shadow(0 0 10px rgba(81, 235, 225, 0.6));
    }

    .marquee-star {
      color: #25aab6;
      /* dottos-500 */
      font-size: 1.25rem;
      filter: drop-shadow(0 0 5px rgba(37, 170, 182, 0.5));
    }

    @keyframes float {

      0%,
      100% {
        transform: translateY(0px);
      }

      50% {
        transform: translateY(-20px);
      }
    }

    /* ===== NAVBAR ===== */
    /* Nav Link Glow Effect */
    .nav-link {
      position: relative;
      padding: 8px 16px;
      border-radius: 999px;
      transition: color .35s ease;
      color: #9ca3af;
    }

    .nav-link:hover {
      color: #ffffff;
      text-shadow: 0 0 12px rgba(81, 235, 225, 0.8);
      background: rgba(81, 235, 225, 0.05);
    }

    /* CTA Button Glow */
    .btn-glow {
      position: relative;
    }

    .btn-glow::before {
      content: '';
      position: absolute;
      top: -2px;
      left: -2px;
      right: -2px;
      bottom: -2px;
      background: linear-gradient(45deg, #1a749e, #51ebe1, #25aab6);
      border-radius: inherit;
      z-index: -1;
      opacity: 0;
      transition: opacity 0.3s ease;
    }

    .btn-glow:hover::before {
      opacity: 1;
      filter: blur(10px);
    }

    /* Navbar Scroll State */
    #navbar.scrolled {
      background: rgba(6, 9, 19, 0.85);
      padding-top: 0.75rem;
      padding-bottom: 0.75rem;
      width: 100%;
      max-width: 1000px;
      border-color: rgba(81, 235, 225, 0.2);
      box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
    }

    /* Mobile drawer transition */
    #mobile-drawer {
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    }

    #mobile-drawer.open {
      max-height: 400px;
    }

#solution .sofia-glow {
        position: absolute;
        top: 50%;
        left: 50%;
        width: 800px;
        height: 800px;
        transform: translate(-50%, -50%);
        border-radius: 9999px;
        background: radial-gradient(circle, rgba(37, 170, 182, 0.05) 0%, rgba(37, 170, 182, 0.01) 30%, transparent 70%);
        filter: blur(20px);
        pointer-events: none;
      }

      #solution .sofia-showcase {
        perspective: 1800px;
      }

      #solution .sofia-stack {
        position: relative;
        width: 100%;
        height: 100%;
        transform-style: preserve-3d;
      }

      #solution .sofia-panel {
        position: absolute;
        width: 24rem;
        height: 24rem;
        left: 50%;
        top: 50%;
        border-radius: 1.5rem;
        overflow: hidden;
        backdrop-filter: blur(16px);
        -webkit-backdrop-filter: blur(16px);
        will-change: transform, opacity, box-shadow, border-color;
        transition:
          transform 0.7s cubic-bezier(0.22, 1, 0.36, 1),
          opacity 0.45s ease,
          box-shadow 0.45s ease,
          border-color 0.45s ease,
          filter 0.45s ease;
      }

      #solution .panel-bottom {
        background: rgba(8, 8, 8, 0.4);
        border: 1px solid rgba(81, 235, 225, 0.03);
        box-shadow: 0 40px 80px rgba(0, 0, 0, 0.8);
        opacity: 0.35;
        transform: translate(-50%, -50%) translateX(35px) translateY(45px) translateZ(-20px) rotateX(60deg) rotateZ(-28deg);
        z-index: 1;
      }

      #solution .panel-middle {
        background: rgba(18, 18, 18, 0.55);
        border: 1px solid rgba(81, 235, 225, 0.05);
        box-shadow: 0 30px 60px rgba(0, 0, 0, 0.6);
        opacity: 0.75;
        transform: translate(-50%, -50%) translateX(-25px) translateY(5px) translateZ(40px) rotateX(60deg) rotateZ(-28deg);
        z-index: 2;
      }

      #solution .panel-top {
        background: linear-gradient(135deg, rgba(35, 35, 35, 0.7), rgba(15, 15, 15, 0.8));
        border: 1px solid rgba(81, 235, 225, 0.12);
        box-shadow:
          inset 0 1px 1px rgba(255, 255, 255, 0.08),
          0 20px 50px rgba(0, 0, 0, 0.7),
          0 0 40px rgba(37, 170, 182, 0.05);
        animation: topCardFloat 7s ease-in-out infinite;
        z-index: 3;
      }

      @keyframes topCardFloat {

        0%,
        100% {
          transform: translate(-50%, -50%) translateX(25px) translateY(-35px) translateZ(100px) rotateX(60deg) rotateZ(-28deg);
        }

        50% {
          transform: translate(-50%, -50%) translateX(22px) translateY(-40px) translateZ(108px) rotateX(60.5deg) rotateZ(-27.5deg);
        }
      }

      @keyframes pulseGlowSofia {

        0%,
        100% {
          box-shadow: 0 0 20px rgba(81, 235, 225, 0.05);
          border-color: rgba(81, 235, 225, 0.1);
        }

        50% {
          box-shadow: 0 0 40px rgba(81, 235, 225, 0.15), inset 0 0 15px rgba(81, 235, 225, 0.05);
          border-color: rgba(81, 235, 225, 0.25);
        }
      }

      #solution .sofia-panel::before {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(135deg, rgba(81, 235, 225, 0.06) 0%, transparent 30%, transparent 70%, rgba(81, 235, 225, 0.02) 100%);
        pointer-events: none;
      }

      #solution .sofia-panel::after {
        content: "";
        position: absolute;
        inset: 1px;
        border-radius: inherit;
        box-shadow: inset 0 0 0 1px rgba(81, 235, 225, 0.04);
        pointer-events: none;
      }

      /* Stack opens up on hover */
      #solution .sofia-showcase:hover .panel-bottom,
      #solution .panel-bottom:hover {
        transform: translate(-50%, -50%) translateX(70px) translateY(88px) translateZ(-34px) rotateX(60deg) rotateZ(-28deg);
        opacity: 0.48;
        border-color: rgba(81, 235, 225, 0.08);
        box-shadow: 0 52px 100px rgba(0, 0, 0, 0.82);
      }

      #solution .sofia-showcase:hover .panel-middle,
      #solution .panel-middle:hover {
        transform: translate(-50%, -50%) translateX(-42px) translateY(16px) translateZ(68px) rotateX(60deg) rotateZ(-28deg);
        opacity: 0.86;
        border-color: rgba(81, 235, 225, 0.1);
        box-shadow: 0 40px 80px rgba(0, 0, 0, 0.68);
      }

      #solution .sofia-showcase:hover .panel-top,
      #solution .panel-top:hover {
        animation-play-state: paused;
        transform: translate(-50%, -50%) translateX(36px) translateY(-64px) translateZ(136px) rotateX(60deg) rotateZ(-28deg);
        box-shadow:
          inset 0 1px 1px rgba(255, 255, 255, 0.08),
          0 28px 70px rgba(0, 0, 0, 0.74),
          0 0 48px rgba(81, 235, 225, 0.1);
      }

      /* Focused card lifts a bit more */
      #solution .panel-bottom:hover {
        transform: translate(-50%, -50%) translateX(76px) translateY(98px) translateZ(-24px) rotateX(60deg) rotateZ(-28deg) scale(1.01);
      }

      #solution .panel-middle:hover {
        transform: translate(-50%, -50%) translateX(-48px) translateY(10px) translateZ(82px) rotateX(60deg) rotateZ(-28deg) scale(1.015);
      }

      #solution .panel-top:hover {
        transform: translate(-50%, -50%) translateX(38px) translateY(-78px) translateZ(152px) rotateX(60deg) rotateZ(-28deg) scale(1.02);
      }

      @media (max-width: 1024px) {
        #solution .sofia-panel {
          width: 20rem;
          height: 20rem;
        }

        #solution .panel-bottom {
          transform: translate(-50%, -50%) translateX(25px) translateY(35px) translateZ(-15px) rotateX(60deg) rotateZ(-28deg);
        }

        #solution .panel-middle {
          transform: translate(-50%, -50%) translateX(-15px) translateY(5px) translateZ(25px) rotateX(60deg) rotateZ(-28deg);
        }

        @keyframes topCardFloat {

          0%,
          100% {
            transform: translate(-50%, -50%) translateX(15px) translateY(-25px) translateZ(70px) rotateX(60deg) rotateZ(-28deg);
          }

          50% {
            transform: translate(-50%, -50%) translateX(12px) translateY(-30px) translateZ(75px) rotateX(60.5deg) rotateZ(-27.5deg);
          }
        }

        #solution .sofia-showcase:hover .panel-bottom,
        #solution .panel-bottom:hover {
          transform: translate(-50%, -50%) translateX(46px) translateY(66px) translateZ(-22px) rotateX(60deg) rotateZ(-28deg);
        }

        #solution .sofia-showcase:hover .panel-middle,
        #solution .panel-middle:hover {
          transform: translate(-50%, -50%) translateX(-26px) translateY(12px) translateZ(46px) rotateX(60deg) rotateZ(-28deg);
        }

        #solution .sofia-showcase:hover .panel-top,
        #solution .panel-top:hover {
          transform: translate(-50%, -50%) translateX(24px) translateY(-48px) translateZ(96px) rotateX(60deg) rotateZ(-28deg);
        }
      }

      @media (max-width: 767px) {
        #solution .sofia-showcase {
          height: 24rem;
        }

        #solution .sofia-panel {
          width: 16rem;
          height: 16rem;
        }

        #solution .panel-bottom {
          transform: translate(-50%, -50%) translateX(15px) translateY(25px) translateZ(-10px) rotateX(60deg) rotateZ(-28deg);
        }

        #solution .panel-middle {
          transform: translate(-50%, -50%) translateX(-10px) translateY(0px) translateZ(15px) rotateX(60deg) rotateZ(-28deg);
        }

        @keyframes topCardFloat {

          0%,
          100% {
            transform: translate(-50%, -50%) translateX(10px) translateY(-15px) translateZ(40px) rotateX(60deg) rotateZ(-28deg);
          }

          50% {
            transform: translate(-50%, -50%) translateX(8px) translateY(-18px) translateZ(45px) rotateX(60.5deg) rotateZ(-27.5deg);
          }
        }

        #solution .sofia-showcase:hover .panel-bottom,
        #solution .panel-bottom:hover {
          transform: translate(-50%, -50%) translateX(30px) translateY(48px) translateZ(-16px) rotateX(60deg) rotateZ(-28deg);
        }

        #solution .sofia-showcase:hover .panel-middle,
        #solution .panel-middle:hover {
          transform: translate(-50%, -50%) translateX(-18px) translateY(8px) translateZ(30px) rotateX(60deg) rotateZ(-28deg);
        }

        #solution .sofia-showcase:hover .panel-top,
        #solution .panel-top:hover {
          transform: translate(-50%, -50%) translateX(18px) translateY(-32px) translateZ(58px) rotateX(60deg) rotateZ(-28deg);
        }
      }

      /* Audio wave animation for neural panel */
      @keyframes audioWave {

        0%,
        100% {
          height: 10%;
        }

        50% {
          height: 100%;
        }
      }

      .wave-bar {
        width: 4px;
        background: #4ce4db;
        border-radius: 4px;
        animation: audioWave 1.4s ease-in-out infinite;
      }

      .stagger-item {
        opacity: 1;
        transform: none;
      }

/* Stats Outlined Text — Space Grotesk Display */
      .stat-text {
        font-family: 'Space Grotesk', sans-serif;
        font-size: clamp(3.5rem, 7vw, 5.5rem);
        font-weight: 800;
        letter-spacing: -0.04em;
        line-height: 1;
        color: transparent;
        -webkit-text-stroke: 1.5px rgba(255, 255, 255, 0.08);
        position: relative;
        display: inline-block;
      }

      .stat-text::before {
        content: attr(data-val);
        position: absolute;
        left: 0;
        top: 0;
        width: 0;
        height: 100%;
        color: #fff;
        -webkit-text-stroke: 0px;
        overflow: hidden;
        transition: width 2s cubic-bezier(0.16, 1, 0.3, 1);
        text-shadow: 0 0 40px rgba(255, 255, 255, 0.25), 0 0 80px rgba(76, 228, 219, 0.1);
        white-space: nowrap;
      }

      .reveal.active .stat-text::before {
        width: 100%;
        transition-delay: calc(var(--delay, 0ms) + 200ms);
      }

      /* Correção para o fade up local */
      .reveal.active.seq-fade-up {
        opacity: 1;
        transform: translateY(0);
        transition-delay: var(--delay, 0ms);
      }

      /* Separadores verticais entre stat items no desktop */
      .stat-item+.stat-item {
        position: relative;
      }

      @media (min-width: 1024px) {
        .stat-item+.stat-item::before {
          content: '';
          position: absolute;
          left: 0;
          top: 15%;
          height: 70%;
          width: 1px;
          background: linear-gradient(to bottom, transparent, rgba(255, 255, 255, 0.08), transparent);
        }
      }

/* Timeline Progressive Animations */
      .seq-fade-up {
        opacity: 0;
        transform: translateY(30px);
        transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
      }

      .reveal.active .seq-fade-up {
        opacity: 1;
        transform: translateY(0);
      }

      .seq-dot {
        background-color: #1a749e;
        box-shadow: 0 0 0 rgba(81, 235, 225, 0);
        transition: all 0.6s cubic-bezier(0.16, 1, 0.3, 1);
      }

      .reveal.active .seq-dot {
        background-color: #51ebe1;
        box-shadow: 0 0 15px rgba(81, 235, 225, 0.5);
      }

      .seq-code {
        opacity: 0;
        transform: translateY(6px);
      }

      .reveal.active .seq-code {
        animation: seqCodeReveal 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
      }

      .seq-prog {
        width: 0%;
        position: relative;
      }

      .reveal.active .seq-prog {
        animation: seqFill var(--duration, 1.2s) cubic-bezier(0.16, 1, 0.3, 1) forwards;
      }

      .seq-ui {
        opacity: 0;
        transform: scale(0.95);
      }

      .reveal.active .seq-ui {
        animation: seqUiPop 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
      }

      .seq-node {
        opacity: 0;
        transform: scale(0);
      }

      .reveal.active .seq-node {
        animation: seqNodePop 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
      }

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

      @keyframes seqFill {
        to {
          width: var(--target-width, 100%);
        }
      }

      @keyframes seqUiPop {
        to {
          opacity: 1;
          transform: scale(1);
        }
      }

      @keyframes seqNodePop {
        0% {
          opacity: 0;
          transform: scale(0);
        }

        60% {
          transform: scale(1.3);
          box-shadow: 0 0 20px rgba(81, 235, 225, 0.6);
          opacity: 1;
        }

        100% {
          opacity: 1;
          transform: scale(1);
          box-shadow: 0 0 10px rgba(81, 235, 225, 0.4);
        }
      }

@keyframes radar-sweep {
        from {
          transform: translate(-50%, -50%) rotate(0deg);
        }

        to {
          transform: translate(-50%, -50%) rotate(360deg);
        }
      }

      @keyframes ring-spin {
        from {
          transform: rotate(0deg);
        }

        to {
          transform: rotate(360deg);
        }
      }

      .animate-radar {
        animation: radar-sweep 6s linear infinite;
      }

      .animate-ring {
        animation: ring-spin 4s linear infinite;
      }

/* Portal Rings */
      .portal-ring {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        border-radius: 50%;
        border: 1px solid rgba(76, 228, 219, 0.05);
        animation: portal-pulse 5s cubic-bezier(0.4, 0, 0.6, 1) infinite alternate;
      }

      @keyframes portal-pulse {
        0% {
          transform: translate(-50%, -50%) scale(1);
          opacity: 1;
        }

        100% {
          transform: translate(-50%, -50%) scale(1.08);
          opacity: 0.4;
        }
      }

      /* CTA Glow Pulse */
      @keyframes glow-pulse {

        0%,
        100% {
          box-shadow: 0 0 25px rgba(76, 228, 219, 0.3), 0 0 60px rgba(37, 170, 182, 0.15);
        }

        50% {
          box-shadow: 0 0 35px rgba(81, 235, 225, 0.5), 0 0 80px rgba(37, 170, 182, 0.25);
        }
      }

      .cta-glow-pulse {
        animation: glow-pulse 3s ease-in-out infinite;
      }

@keyframes shimmer {
      100% {
        transform: translateX(100%);
      }
    }