.jp-wave{background:radial-gradient(circle at 20% 10%,rgba(24,199,211,.20),transparent 32%),radial-gradient(circle at 80% 20%,rgba(39,58,134,.18),transparent 28%),linear-gradient(135deg,#fff,#f7f9ff)}
    .glass{background:rgba(255,255,255,.74);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.75)}
    .dark-glass{background:rgba(15,23,42,.72);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.10)}
@media (prefers-reduced-motion: no-preference) {
      .reveal-up {
        opacity: 0;
        transform: translateY(18px);
        animation: revealUp .75s ease forwards;
      }
      .delay-1 { animation-delay: .08s; }
      .delay-2 { animation-delay: .16s; }
      .delay-3 { animation-delay: .24s; }
      .delay-4 { animation-delay: .32s; }

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

      .float-soft {
        animation: floatSoft 7s ease-in-out infinite;
      }

      @keyframes floatSoft {
        0%, 100% { transform: translateY(0); }
        50% { transform: translateY(-10px); }
      }

      .hover-lift {
        transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
      }
      .hover-lift:hover {
        transform: translateY(-8px);
        box-shadow: 0 28px 70px rgba(39,58,134,.18);
      }

      .hover-glow {
        transition: transform .28s ease, box-shadow .28s ease, background .28s ease;
      }
      .hover-glow:hover {
        transform: translateY(-6px) scale(1.01);
        box-shadow: 0 26px 70px rgba(24,199,211,.20);
      }

      .hover-photo {
        transition: transform .55s ease, filter .55s ease;
      }
      .group:hover .hover-photo {
        transform: scale(1.045);
        filter: saturate(1.06) contrast(1.03);
      }

      .hover-arrow {
        transition: transform .24s ease;
      }
      .group:hover .hover-arrow {
        transform: translateX(4px);
      }
    }
@media (prefers-reduced-motion: no-preference) {
      .motion-item {
        opacity: 0;
        transform: translateY(22px);
        transition:
          opacity .72s ease,
          transform .72s cubic-bezier(.22,1,.36,1),
          box-shadow .28s ease,
          border-color .28s ease,
          background .28s ease;
        transition-delay: var(--motion-delay, 0ms);
        will-change: opacity, transform;
      }

      .motion-item.motion-left {
        transform: translateX(-28px);
      }

      .motion-item.motion-right {
        transform: translateX(28px);
      }

      .motion-item.motion-scale {
        transform: translateY(16px) scale(.96);
      }

      .motion-item.is-visible {
        opacity: 1;
        transform: translate(0,0) scale(1);
      }

      .text-sweep {
        background-image: linear-gradient(90deg, #111827, #273a86, #18c7d3, #273a86);
        background-size: 220% auto;
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent;
        animation: textSweep 8s ease-in-out infinite;
      }

      @keyframes textSweep {
        0%, 100% { background-position: 0% center; }
        50% { background-position: 100% center; }
      }

      .interactive-link,
      a.rounded-full,
      button.rounded-full {
        transition: transform .22s ease, box-shadow .22s ease, background-color .22s ease, color .22s ease;
      }

      .interactive-link:hover,
      a.rounded-full:hover,
      button.rounded-full:hover {
        transform: translateY(-2px);
      }

      nav a {
        transition: transform .22s ease, background-color .22s ease, color .22s ease;
      }

      nav a:hover {
        transform: translateY(-1px);
      }

      .soft-pulse {
        animation: softPulse 4.5s ease-in-out infinite;
      }

      @keyframes softPulse {
        0%, 100% { box-shadow: 0 18px 45px rgba(15,23,42,.10); }
        50% { box-shadow: 0 26px 70px rgba(24,199,211,.18); }
      }

      .hover-lift:hover {
        border-color: rgba(24,199,211,.35);
      }
    }
.jp-wave-offset{background:radial-gradient(circle at 18% 12%,rgba(24,199,211,.20),transparent 32%),radial-gradient(circle at 82% 18%,rgba(39,58,134,.18),transparent 28%),linear-gradient(135deg,#fff,#f7f9ff)}
a:focus-visible,button:focus-visible{outline:3px solid #0891b2;outline-offset:4px}
