 /* Skills cloud: subtle alive effect everywhere (safe). JS will enhance on large screens. */
    .floating-skill { will-change: transform; }
    @media (prefers-reduced-motion: no-preference) {
      .floating-skill { animation: skillFloat 7.5s ease-in-out infinite; }
      .floating-skill:nth-child(2n) { animation-duration: 9s; animation-delay: -1.2s; }
      .floating-skill:nth-child(3n) { animation-duration: 10.5s; animation-delay: -2.4s; }
      .floating-skill:nth-child(5n) { animation-duration: 12s; animation-delay: -3.1s; }
      @keyframes skillFloat {
        0%,100% { transform: translateY(0); }
        50% { transform: translateY(-6px); }
      }
      .floating-skill:hover { animation: skillWiggle .35s ease-in-out; }
      @keyframes skillWiggle {
        0% { transform: translateY(-2px) rotate(0deg); }
        35% { transform: translateY(-6px) rotate(-1.5deg); }
        70% { transform: translateY(-4px) rotate(1.5deg); }
        100% { transform: translateY(-2px) rotate(0deg); }
      }
    }
    @media (prefers-reduced-motion: reduce) {
      .floating-skill { animation: none !important; }
    }

 /* Smooth open/close */
    .skill-panel {
      display: grid;
      grid-template-rows: 0fr;
      transition: grid-template-rows 260ms ease;
    }
    .skill-panel[data-open="true"] {
      grid-template-rows: 1fr;
    }
    .skill-inner { overflow: hidden; }

    /* Stagger bullets */
    .skill-bullet {
      opacity: 0;
      transform: translateY(6px);
      transition: opacity 260ms ease, transform 260ms ease;
    }
    .skill-panel[data-open="true"] .skill-bullet {
      opacity: 1;
      transform: translateY(0);
    }

    @media (prefers-reduced-motion: reduce) {
      .skill-panel, .skill-bullet { transition: none !important; }
    }    