    @keyframes ctaPulse {
      0%, 100% { box-shadow: 0 10px 30px rgba(0,0,0,0.15), 0 0 0 0 rgba(0,0,0,0); }
      50%      { box-shadow: 0 14px 44px rgba(0,0,0,0.22), 0 0 0 10px rgba(0,0,0,0.04); }
    }
    .sn-cta-pulse {
      animation: ctaPulse 2.6s ease-in-out infinite;
    }

    @keyframes fadeInOnScroll {
      from { opacity: 0; transform: translateY(28px); filter: blur(8px); }
      to   { opacity: 1; transform: translateY(0);   filter: blur(0);   }
    }
    .sn-fade-in-on-scroll {
      opacity: 0;
      animation: fadeInOnScroll 0.9s cubic-bezier(0.22, 1, 0.36, 1) forwards;
      animation-timeline: view();
      animation-range: entry 35% cover 55%;
    }


    .sn-teacher-card-actions {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      margin-top: 20px;
      flex-wrap: wrap;
    }
    .sn-choose-teacher-btn {
      background: #111;
      color: #fff;
      border: none;
      border-radius: 999px;
      padding: 8px 16px;
      font-size: 0.8125rem;
      font-weight: 600;
      cursor: pointer;
      transition: background 0.15s, transform 0.15s;
      white-space: nowrap;
    }
    .sn-choose-teacher-btn:hover {
      background: #333;
      transform: scale(1.02);
    }
    @media (max-width: 480px) {
      .sn-teacher-card-actions { flex-direction: column; }
      .sn-teacher-card-actions button, .sn-teacher-card-actions a { width: 100%; text-align: center; }
    }

    @keyframes appleSoftGlow {
      0%   { box-shadow: 0 0 0 rgba(255,255,255,0); }
      50%  { box-shadow: 0 0 24px rgba(255,255,255,0.45), 0 0 48px rgba(255,255,255,0.18); }
      100% { box-shadow: 0 0 0 rgba(255,255,255,0); }
    }
    .sn-modal-choose-btn {
      display: block;
      width: calc(100% - 48px);
      margin: 20px auto 0;
      background: #fff;
      color: #000;
      border: none;
      border-radius: 999px;
      padding: 16px 32px;
      font-size: 1rem;
      font-weight: 700;
      letter-spacing: -0.02em;
      cursor: pointer;
      animation: appleSoftGlow 2.4s ease-in-out infinite;
      transition: transform 0.2s ease;
    }
    .sn-modal-choose-btn:hover {
      transform: translateY(-1px);
      box-shadow: 0 14px 40px rgba(255,255,255,0.28);
    }

    .sn-feature-card {
      display: flex;
      flex-direction: column;
      justify-content: center;
      gap: 20px;
    }
    .sn-feature-icon {
      width: 60px;
      height: 60px;
      flex-shrink: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 16px;
      background: rgba(0,0,0,0.06);
    }
    .sn-feature-icon svg { width: 26px; height: 26px; }
    .sn-feature-title {
      font-size: 1.75rem;
      font-weight: 700;
      letter-spacing: -0.02em;
      color: #111;
      margin: 0;
      line-height: 1.15;
    }
    .sn-feature-text {
      font-size: 1rem;
      line-height: 1.7;
      color: #6e6e73;
      margin: 0;
    }

    .sn-handwrite-wrapper { margin-top: 4px; }
    .sn-handwriting-text {
      font-family: "Brush Script MT", "Brush Script Std", cursive;
      font-size: clamp(42px, 6vw, 82px);
      font-weight: 400;
      line-height: 1.1;
      color: #ff7a00;
      white-space: nowrap;
      display: flex;
      align-items: baseline;
    }
    .sn-handwriting-text span {
      display: inline-block;
      opacity: 0;
      transform: translateY(6px) scale(0.96);
      animation: writeLetter 0.28s ease forwards;
      animation-delay: calc(var(--i) * 0.18s + 0.2s);
    }
    .sn-handwriting-text .sn-hw-space {
      display: inline-block;
      width: 0.22em;
      opacity: 1;
      animation: none;
      transform: none;
    }
    @keyframes writeLetter {
      0%   { opacity: 0; transform: translateY(6px) scale(0.96); filter: blur(3px); }
      60%  { opacity: 1; transform: translateY(0) scale(1.03); filter: blur(0); }
      100% { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
    }
