
    * { margin: 0; padding: 0; box-sizing: border-box; }

    body {
      font-family: -apple-system, BlinkMacSystemFont, 'Apple SD Gothic Neo', 'Noto Sans KR', 'Malgun Gothic', sans-serif;
      background: #0a0a0a;
      color: #fff;
      width: 100%;
    }

    /* ══ NAV ══ */
    .gnb {
      position: absolute;
      top: 0; left: 0; right: 0;
      z-index: 10;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 0 60px;
      height: 72px;
      background: transparent;
      border-bottom: 1px solid rgba(255,255,255,0.15);
    }
    .gnb-logo {
      display: flex;
      align-items: center;
      gap: 10px;
    }
    .gnb-logo-icon {
      width: 42px; height: 42px;
      overflow: hidden;
      display: flex; align-items: flex-start; justify-content: center;
    }
    .gnb-logo-icon img {
      width: 120px;
      margin-top: -2px;
    }
    .gnb-logo-text {
      font-size: 15px;
      font-weight: 700;
      color: rgba(255,255,255,0.85);
      letter-spacing: 1px;
      margin-top: 6px;
    }
    .gnb-logo-text span { color: #c9a030; }

    /* ══ HERO ══ */
    .hero {
      width: 100%;
      height: 100vh;
      min-height: 600px;
      position: relative;
      overflow: hidden;
    }

    /* 배경 이미지 */
    .hero-bg {
      position: absolute;
      inset: 0;
      background: url('53a42e67-615e-4665-b2ff-e18ad708ca7b.jpg') center center / cover no-repeat;
    }

    /* 왼쪽 텍스트 가독성용 그라데이션 */
    .hero-fade {
      position: absolute;
      inset: 0;
      background: linear-gradient(
        to right,
        rgba(0,0,0,0.72) 0%,
        rgba(0,0,0,0.35) 45%,
        rgba(0,0,0,0.0)  75%
      );
    }

    /* 텍스트 콘텐츠 */
    .hero-content {
      position: absolute;
      top: 50%;
      left: 60px;
      transform: translateY(-50%);
      max-width: 520px;
    }

    /* 상단 작은 텍스트 */
    .hero-small {
      font-size: 20px;
      font-weight: 300;
      color: rgba(255,255,255,0.75);
      line-height: 1.9;
      margin-bottom: 6px;
      letter-spacing: -0.3px;
    }
    .hero-small-indent {
      padding-left: 40px;
    }

    /* 가로선 */
    .hero-line {
      display: flex;
      align-items: center;
      gap: 14px;
      margin: 10px 0 18px;
    }
    .hero-line-bar {
      width: 60px;
      height: 1px;
      background: rgba(255,255,255,0.5);
    }

    /* 대형 타이틀 */
    .hero-title {
      font-size: 58px;
      font-weight: 900;
      color: #fff;
      line-height: 1.15;
      letter-spacing: -2px;
      margin-bottom: 32px;
    }

    /* 설명 텍스트 */
    .hero-desc {
      font-size: 14px;
      font-weight: 300;
      color: rgba(255,255,255,0.55);
      line-height: 1.9;
      letter-spacing: 0.2px;
    }
    .hero-desc b {
      color: rgba(255,255,255,0.85);
      font-weight: 500;
    }

    /* ══ 하단 컨트롤 ══ */
    .hero-bottom {
      position: absolute;
      bottom: 40px;
      right: 60px;
      display: flex;
      align-items: center;
      gap: 20px;
    }

    /* 페이지네이션 */
    .pg-wrap {
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: 13px;
      color: rgba(255,255,255,0.5);
      font-weight: 400;
    }
    .pg-current {
      font-size: 22px;
      font-weight: 700;
      color: #fff;
      letter-spacing: -0.5px;
    }
    .pg-sep-line {
      width: 20px;
      height: 1px;
      background: rgba(255,255,255,0.3);
    }

    /* 모바일 이미지 태그 (PC에서는 숨김) */
    .hero-bg-mobile { display: none; }

    /* 재생/정지 버튼 */
    .ctrl-wrap {
      display: flex;
      align-items: center;
      gap: 12px;
    }
    .ctrl-btn {
      width: 36px; height: 36px;
      border-radius: 50%;
      border: 1px solid rgba(255,255,255,0.3);
      display: flex; align-items: center; justify-content: center;
      font-size: 11px;
      color: rgba(255,255,255,0.7);
      cursor: pointer;
    }
    .ctrl-btn.play { background: rgba(255,255,255,0.08); }

    /* ══ TEACHERS ══ */
    .teachers {
      width: 100%;
      background: #0d0d0d;
      padding: 100px 60px;
    }

    .teachers-header {
      text-align: center;
      margin-bottom: 70px;
    }
    .teachers-label {
      font-size: 12px;
      font-weight: 400;
      letter-spacing: 4px;
      color: #c9a030;
      text-transform: uppercase;
      margin-bottom: 16px;
    }
    .teachers-title {
      font-size: 38px;
      font-weight: 900;
      color: #fff;
      letter-spacing: -1.5px;
      line-height: 1.2;
      margin-bottom: 16px;
    }
    .teachers-title-gold { font-style:normal; color:#c9a030; }
    .teachers-sub {
      font-size: 14px;
      font-weight: 400;
      color: rgba(255,255,255,0.55);
      letter-spacing: 0.2px;
    }

    .teachers-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 32px;
      max-width: 1100px;
      margin: 0 auto;
    }

    @property --laser {
      syntax: '<angle>';
      initial-value: 0deg;
      inherits: false;
    }

    .teacher-card {
      background:
        linear-gradient(#141414, #141414) padding-box,
        conic-gradient(from var(--laser),
          transparent 0%,
          transparent 68%,
          rgba(201,160,48,0.9) 75%,
          rgba(255,220,100,0.6) 78%,
          transparent 84%
        ) border-box;
      border: 1px solid transparent;
      border-radius: 4px;
      overflow: hidden;
      cursor: pointer;
      position: relative;
      animation: laserSpin 3.5s linear infinite;
      transition: transform 0.3s, box-shadow 0.3s;
    }
    .teacher-card:hover {
      transform: translateY(-5px);
      box-shadow: 0 14px 36px rgba(0,0,0,0.5), 0 0 20px rgba(201,160,48,0.08);
      animation: laserSpin 1.2s linear infinite;
    }
    @keyframes laserSpin {
      from { --laser: 0deg; }
      to   { --laser: 360deg; }
    }

    /* 광선 스캔 오버레이 */
    .teacher-shine {
      position: absolute;
      inset: 0;
      background: linear-gradient(
        108deg,
        transparent 30%,
        rgba(201,160,48,0.06) 50%,
        transparent 70%
      );
      background-size: 250% 100%;
      background-position: 150% 0;
      animation: shineScan 4s ease-in-out infinite;
      pointer-events: none;
      z-index: 2;
    }
    @keyframes shineScan {
      0%   { background-position: 150% 0; }
      50%  { background-position: -50% 0; }
      100% { background-position: 150% 0; }
    }

    .teacher-photo {
      width: 100%;
      aspect-ratio: 1 / 1;
      background: #1a1a1a;
      overflow: hidden;
    }
    .teacher-photo img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center top;
      display: block;
      transition: transform 0.4s ease;
    }
    .teacher-card:hover .teacher-photo img { transform: scale(1.04); }
    .teacher-photo-placeholder {
      width: 100%;
      height: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 48px;
      color: rgba(255,255,255,0.08);
    }

    .teacher-info {
      padding: 20px 20px 16px;
    }
    .teacher-subject {
      font-size: 10px;
      font-weight: 600;
      color: #c9a030;
      letter-spacing: 3px;
      text-transform: uppercase;
      margin-bottom: 8px;
    }
    .teacher-name {
      font-size: 17px;
      font-weight: 700;
      color: #fff;
      letter-spacing: -0.5px;
      margin-bottom: 8px;
    }
    .teacher-edu {
      font-size: 12px;
      font-weight: 400;
      color: rgba(255,255,255,0.45);
      line-height: 1.5;
      margin-bottom: 18px;
    }
    .teacher-more {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      font-size: 11px;
      font-weight: 600;
      color: #c9a030;
      letter-spacing: 0.5px;
      padding-bottom: 3px;
      border-bottom: 1px solid rgba(201,160,48,0.5);
      margin-bottom: 20px;
      transition: border-color 0.2s, gap 0.2s;
    }
    .teacher-card:hover .teacher-more {
      border-color: #c9a030;
      gap: 8px;
    }
    .teacher-plus {
      position: absolute;
      bottom: 18px;
      right: 18px;
      width: 28px; height: 28px;
      border-radius: 50%;
      border: 1px solid rgba(201,160,48,0.4);
      display: flex; align-items: center; justify-content: center;
      transition: background 0.25s, border-color 0.25s, transform 0.3s;
    }
    .teacher-plus svg {
      width: 12px; height: 12px;
      stroke: rgba(201,160,48,0.7);
      fill: none;
      stroke-width: 2;
      stroke-linecap: round;
      stroke-linejoin: round;
      transition: stroke 0.25s;
    }
    .teacher-card:hover .teacher-plus {
      background: rgba(201,160,48,0.12);
      border-color: #c9a030;
      transform: rotate(45deg);
    }
    .teacher-card:hover .teacher-plus svg { stroke: #c9a030; }

    /* ══ COMPARE SECTION ══ */
    .cmp-section { background:#f5f3f0; padding:80px 20px 90px; }
    .cmp-inner { max-width:460px; margin:0 auto; }

    /* 헤더 텍스트 */
    .cmp-num  { text-align:center; font-size:0.72rem; color:#bbb; letter-spacing:0.14em; margin:0 0 16px; }
    .cmp-tsub { text-align:center; font-size:0.92rem; font-weight:400; color:#888; margin:0 0 6px; }
    .cmp-tmain{ text-align:center; font-size:1.9rem; font-weight:800; color:#111; letter-spacing:-0.03em; margin:0 0 40px; line-height:1.2; }

    /* 스크롤 reveal */
    .cmp-stage { opacity:0; transform:translateY(20px); transition:opacity .6s ease, transform .6s ease; }
    .cmp-stage.revealed { opacity:1; transform:none; }

    /* 카드 */
    .cmp-card {
      background:#141414;
      border-radius:16px;
      overflow:hidden;
      border:1px solid rgba(201,160,48,0.2);
      box-shadow:0 20px 60px rgba(0,0,0,0.14);
    }

    /* 카드 헤더 */
    .cmp-card-head {
      display:flex; align-items:center; gap:10px;
      padding:24px 24px;
      background:#1a1a1a;
      border-bottom:1px solid rgba(255,255,255,0.06);
    }
    .cmp-col-label {
      flex:1; text-align:center;
      font-size:1.05rem; font-weight:700; letter-spacing:-0.01em;
    }
    .cmp-col-label--L { color:rgba(255,255,255,0.28); }
    .cmp-col-label--R { color:#c9a030; }

    /* VS 배지 */
    .cmp-vs-badge {
      width:38px; height:38px; flex-shrink:0;
      border-radius:50%;
      background:#2b1a0e;
      border:1px solid rgba(201,160,48,0.4);
      display:flex; align-items:center; justify-content:center;
      font-size:0.6rem; font-weight:800; color:#c9a030; letter-spacing:0.05em;
    }

    /* 비교 테이블 */
    .cmp-table { padding:4px 0; }
    .cmp-row {
      display:flex; align-items:center; gap:10px;
      padding:18px 24px;
      border-bottom:1px solid rgba(255,255,255,0.05);
    }
    .cmp-row:last-child { border-bottom:none; }

    .cmp-item {
      flex:1; text-align:center;
      font-size:1.05rem; font-weight:600; line-height:1.4;
    }
    .cmp-item--L {
      color:rgba(255,255,255,0.22);
      text-decoration:line-through;
      text-decoration-color:rgba(255,255,255,0.1);
      font-weight:400;
    }
    .cmp-item--R { color:#fff; font-weight:700; }

    /* 카테고리 배지 */
    .cmp-cat {
      flex-shrink:0; width:80px;
      text-align:center;
      font-size:1.05rem; font-weight:700;
      color:#c9a030; letter-spacing:0.02em;
      padding:10px 4px;
      border:1px solid rgba(201,160,48,0.3);
      border-radius:4px;
      line-height:1.3;
    }

    /* 하단 텍스트 */
    .cmp-foot { text-align:center; margin-top:40px; }
    .cmp-foot-tag {
      display:inline-block;
      font-size:0.65rem; font-weight:700; letter-spacing:0.18em;
      color:#c9a030; text-transform:uppercase;
      border:1px solid rgba(201,160,48,0.4);
      padding:4px 14px; border-radius:20px;
      margin-bottom:14px;
    }
    .cmp-foot-main {
      font-size:1.35rem; font-weight:800;
      color:#fff; letter-spacing:-0.02em; line-height:1.4;
    }
    .cmp-foot-main em { font-style:normal; color:#c9a030; }

    @media(max-width:400px) {
      .cmp-tmain { font-size:1.45rem; }
      .cmp-card-head { padding:16px 18px; }
      .cmp-row { padding:15px 14px; gap:6px; }
      .cmp-col-label { font-size:0.75rem; }
      .cmp-item { font-size:0.95rem; }
      .cmp-cat { width:68px; font-size:1rem; padding:9px 2px; }
    }

    /* ══ ADMISSIONS SECTION ══ */
    .adm-section { background:#fff; padding:80px 24px 100px; }
    .adm-inner { max-width:860px; margin:0 auto; }

    /* 신문 오버레이 */
    .adm-news {
      position:relative;
      margin-bottom:80px;
    }
    .adm-news-img1 {
      width:100%; display:block;
      border-radius:12px;
      box-shadow:0 6px 24px rgba(0,0,0,0.12);
    }
    .adm-news-img2 {
      position:absolute;
      bottom:-28px; right:16px;
      width:52%;
      border-radius:10px;
      box-shadow:0 12px 40px rgba(0,0,0,0.22);
      border:3px solid #fff;
    }

    /* 헤드라인 */
    .adm-headline { text-align:center; margin-bottom:72px; }
    .adm-hl-sub  { font-size:0.88rem; font-weight:500; color:#999; letter-spacing:0.06em; margin-bottom:10px; }
    .adm-hl-main { font-size:2rem; font-weight:900; color:#111; letter-spacing:-0.04em; line-height:1.2; }

    /* 피처 3개 — 고급형 */
    .adm-features { display:flex; flex-direction:column; gap:60px; }

    .adm-feature-img {
      overflow:hidden; border-radius:12px;
      box-shadow:0 8px 32px rgba(0,0,0,0.1);
      margin-bottom:0;
    }
    .adm-feature-img img {
      width:100%; display:block;
      transition:transform 0.4s ease;
    }
    .adm-feature:hover .adm-feature-img img { transform:scale(1.02); }

    .adm-feature-body {
      padding:22px 4px 0;
      display:flex; align-items:flex-start; gap:16px;
    }
    .adm-feature-num {
      flex-shrink:0;
      font-size:0.62rem; font-weight:700;
      color:#c9a030; letter-spacing:0.18em;
      padding-top:4px;
    }
    .adm-feature-divider {
      flex-shrink:0;
      width:1px; height:36px;
      background:rgba(201,160,48,0.35);
      margin-top:2px;
    }
    .adm-feature-text {
      font-size:1.05rem; font-weight:700;
      color:#111; letter-spacing:-0.02em; line-height:1.55;
    }

    @media(min-width:769px) {
      .adm-news-img2 { width:44%; right:24px; }
      .adm-hl-main { font-size:2.4rem; }
      .adm-features { flex-direction:row; gap:32px; }
      .adm-feature { flex:1; }
    }
    @media(max-width:480px) {
      .adm-news-img2 { width:58%; right:10px; bottom:-20px; }
      .adm-news { margin-bottom:64px; }
    }

    /* ══ SLIDE SECTION ══ */
    .slide-section { background:#fff; padding:80px 0 90px; overflow:hidden; }
    .slide-header { text-align:center; padding:0 24px; margin-bottom:44px; }
    .slide-num2 { font-size:0.72rem; color:#bbb; letter-spacing:0.14em; margin-bottom:14px; }
    .slide-title { font-size:1.65rem; font-weight:900; color:#111; letter-spacing:-0.03em; line-height:1.3; margin-bottom:8px; }
    .slide-title em { font-style:normal; color:#c9a030; }
    .slide-subtitle { font-size:0.9rem; font-weight:600; color:#c9a030; letter-spacing:0.1em; }

    .slide-wrap-outer { position:relative; }
    .slide-arrow {
      position:absolute; top:50%; transform:translateY(-50%);
      z-index:2;
      width:32px; height:32px;
      border-radius:50%;
      background:rgba(255,255,255,0.9);
      border:1px solid #ddd;
      box-shadow:0 2px 8px rgba(0,0,0,0.12);
      display:flex; align-items:center; justify-content:center;
      cursor:pointer;
      transition:background 0.2s, border-color 0.2s;
    }
    .slide-arrow:hover { background:#fff; border-color:#c9a030; }
    .slide-arrow svg { width:14px; height:14px; stroke:#555; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
    .slide-arrow:hover svg { stroke:#c9a030; }
    .slide-arrow--prev { left:6px; }
    .slide-arrow--next { right:6px; }

    .slide-track-wrap { width:100%; overflow:hidden; cursor:grab; }
    .slide-track-wrap:active { cursor:grabbing; }
    .slide-track {
      display:flex;
      transition:transform 0.45s cubic-bezier(0.4,0,0.2,1);
      will-change:transform;
    }
    /* 모바일: 2개씩 */
    .slide-item {
      flex:0 0 50%;
      padding:0 8px;
      box-sizing:border-box;
    }
    .slide-item img {
      width:100%; display:block;
      border-radius:10px;
      box-shadow:0 6px 20px rgba(0,0,0,0.1);
      object-fit:cover;
    }

    .slide-dots {
      display:flex; justify-content:center;
      gap:8px; margin-top:28px;
    }
    .slide-dot {
      width:7px; height:7px; border-radius:50%;
      background:#ddd; cursor:pointer;
      transition:background 0.3s, width 0.3s, border-radius 0.3s;
      border:none; padding:0;
    }
    .slide-dot.active { background:#c9a030; width:22px; border-radius:4px; }

    .slide-foot {
      text-align:center; margin-top:52px; padding:0 24px;
      font-size:1.25rem; font-weight:800;
      color:#111; letter-spacing:-0.03em; line-height:1.5;
    }

    /* PC: 4개씩 */
    @media(min-width:769px) {
      .slide-item { flex:0 0 25%; padding:0 12px; }
      .slide-title { font-size:2rem; }
      .slide-foot { font-size:1.5rem; }
    }

    /* ══ FAQ SECTION ══ */
    .faq-section {
      background:#0d0d0d;
      padding:90px 24px 100px;
      text-align:center;
    }
    .faq-num {
      font-size:0.72rem; color:#c9a030;
      letter-spacing:0.18em; font-weight:600;
      margin-bottom:20px;
    }
    .faq-title {
      font-size:2.8rem; font-weight:900;
      color:#fff; letter-spacing:-0.04em;
      line-height:1.2; margin-bottom:48px;
    }
    .faq-title em {
      font-style:normal; color:#c9a030;
    }
    .faq-gif-wrap {
      max-width:420px; margin:0 auto 48px;
      border-radius:12px; overflow:hidden;
      border:1px solid rgba(201,160,48,0.15);
      box-shadow:0 16px 48px rgba(0,0,0,0.5);
    }
    .faq-gif-wrap img { width:100%; display:block; }

    /* 설명 아이템 */
    .faq-item {
      max-width:480px; margin:0 auto 48px;
      padding-bottom:48px;
      border-bottom:1px solid rgba(255,255,255,0.07);
    }
    .faq-item:last-child { border-bottom:none; margin-bottom:0; }
    .faq-item-label {
      font-size:0.68rem; font-weight:700;
      color:#c9a030; letter-spacing:0.14em;
      text-transform:uppercase; margin-bottom:10px;
    }
    .faq-desc {
      font-size:1.25rem; font-weight:500;
      color:rgba(255,255,255,0.82);
      line-height:1.8; letter-spacing:-0.02em;
    }
    .faq-desc strong { color:#fff; font-weight:800; }

    /* PC에서 gif 더 크게 */
    @media(min-width:769px) {
      .faq-gif-wrap { max-width:660px; }
    }
    @media(max-width:480px) {
      .faq-title { font-size:2rem; }
      .faq-desc  { font-size:1.05rem; }
    }

    /* ══ MODAL ══ */
    .teacher-modal {
      display: none;
      position: fixed;
      inset: 0;
      z-index: 100;
    }
    .teacher-modal.active { display: flex; }
    .modal-overlay {
      position: absolute;
      inset: 0;
      background: rgba(0,0,0,0.85);
      backdrop-filter: blur(4px);
      animation: fadeIn 0.25s ease;
    }
    @keyframes fadeIn { from { opacity:0; } to { opacity:1; } }

    .modal-panel {
      position: relative;
      z-index: 1;
      width: 100%;
      max-width: 480px;
      max-height: 90vh;
      margin: auto;
      background: #141414;
      border: 1px solid rgba(201,160,48,0.25);
      overflow-y: auto;
      animation: slideUp 0.3s cubic-bezier(0.4,0,0.2,1);
    }
    @keyframes slideUp {
      from { opacity:0; transform: translateY(30px); }
      to   { opacity:1; transform: translateY(0); }
    }

    .modal-close {
      position: absolute;
      top: 16px; right: 16px;
      width: 32px; height: 32px;
      border: 1px solid rgba(255,255,255,0.2);
      border-radius: 50%;
      background: transparent;
      color: rgba(255,255,255,0.6);
      font-size: 18px;
      cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      z-index: 2;
      transition: border-color 0.2s, color 0.2s;
    }
    .modal-close:hover { border-color: #c9a030; color: #c9a030; }

    .modal-photo {
      width: 100%;
      aspect-ratio: 1/1;
      background: #1a1a1a;
      overflow: hidden;
    }
    .modal-photo img {
      width: 100%; height: 100%;
      object-fit: cover; object-position: center top;
      display: block;
    }

    .modal-body { padding: 26px 26px 36px; }
    .modal-subject {
      font-size: 10px; font-weight: 600;
      color: #c9a030; letter-spacing: 3px;
      text-transform: uppercase; margin-bottom: 8px;
    }
    .modal-name {
      font-size: 22px; font-weight: 700;
      color: #fff; letter-spacing: -0.5px; margin-bottom: 20px;
      padding-bottom: 20px;
      border-bottom: 1px solid rgba(255,255,255,0.08);
    }
    .modal-section { margin-bottom: 24px; }
    .modal-label {
      font-size: 10px; font-weight: 600;
      color: rgba(255,255,255,0.3); letter-spacing: 2px;
      text-transform: uppercase; margin-bottom: 12px;
    }
    .modal-levels {
      display: flex; gap: 8px; flex-wrap: wrap;
    }
    .modal-level-tag {
      padding: 5px 14px;
      border: 1px solid rgba(201,160,48,0.35);
      font-size: 12px; font-weight: 500;
      color: rgba(255,255,255,0.75);
      border-radius: 2px;
    }
    .modal-career {
      list-style: none; padding: 0; margin: 0;
    }
    .modal-career li {
      font-size: 13px; font-weight: 400;
      color: rgba(255,255,255,0.7); line-height: 1.9;
      padding-left: 16px; position: relative;
    }
    .modal-career li::before {
      content: '—';
      position: absolute; left: 0;
      color: #c9a030; font-size: 10px; top: 4px;
    }

    .teacher-card.hidden { display: none; }
    .teacher-card.fade-in {
      animation: cardFadeIn 0.4s ease forwards;
    }
    @keyframes cardFadeIn {
      from { opacity: 0; transform: translateY(16px); }
      to   { opacity: 1; transform: translateY(0); }
    }

    .teachers-more-wrap {
      text-align: center;
      margin-top: 56px;
    }
    .teachers-more-btn {
      position: relative;
      display: inline-flex;
      align-items: center;
      gap: 16px;
      padding: 18px 52px;
      background: transparent;
      border: 1px solid rgba(201,160,48,0.55);
      color: rgba(201,160,48,0.9);
      font-size: 13px;
      font-weight: 600;
      letter-spacing: 3px;
      cursor: pointer;
      overflow: hidden;
      transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s, color 0.25s;
      animation: btnGlow 3s ease-in-out infinite;
    }
    /* 시머 스윕 */
    .teachers-more-btn::before {
      content: '';
      position: absolute;
      top: 0; left: -100%;
      width: 60%; height: 100%;
      background: linear-gradient(
        105deg,
        transparent 20%,
        rgba(201,160,48,0.12) 50%,
        transparent 80%
      );
      animation: btnShimmer 3s ease-in-out infinite;
      pointer-events: none;
    }
    @keyframes btnShimmer {
      0%   { left: -100%; }
      50%  { left: 140%; }
      100% { left: 140%; }
    }
    @keyframes btnGlow {
      0%, 100% { box-shadow: 0 0 0px rgba(201,160,48,0); border-color: rgba(201,160,48,0.4); }
      50%       { box-shadow: 0 0 18px rgba(201,160,48,0.18); border-color: rgba(201,160,48,0.8); }
    }
    .teachers-more-btn:hover {
      transform: translateY(-2px);
      box-shadow: 0 6px 24px rgba(201,160,48,0.2);
      border-color: #c9a030;
      color: #c9a030;
    }
    .teachers-more-btn:active { transform: scale(0.97); }

    .btn-chevron {
      display: flex;
      align-items: center;
      justify-content: center;
      transition: transform 0.4s cubic-bezier(0.4,0,0.2,1);
    }
    .btn-chevron svg {
      width: 14px; height: 14px;
      stroke: currentColor;
      fill: none;
      stroke-width: 2;
      stroke-linecap: round;
      stroke-linejoin: round;
    }
    .teachers-more-btn.open .btn-chevron { transform: rotate(180deg); }

    /* ══ MOBILE ══ */
    @media (max-width: 768px) {
      .gnb { padding: 0 20px; height: 58px; }
      .gnb-menu { display: none; }

      .hero { height: 100svh; min-height: 500px; overflow: hidden; }
      .hero-bg { display: none; }
      .hero-bg-mobile {
        display: block;
        position: absolute;
        top: 0;
        right: 0;
        height: 78%;
        width: auto;
      }

      /* 왼쪽 텍스트 가독성 강화 */
      .hero-fade {
        background: linear-gradient(
          to right,
          rgba(0,0,0,0.88) 0%,
          rgba(0,0,0,0.60) 45%,
          rgba(0,0,0,0.0)  75%
        );
      }

      .hero-content {
        left: 20px;
        right: auto;
        max-width: 58%;
        top: 38%;
        transform: translateY(-50%);
      }

      .hero-small { font-size: 14px; line-height: 2.2; margin-bottom: 4px; }
      .hero-line { margin: 12px 0 18px; }
      .hero-line-bar { width: 40px; }
      .hero-title { font-size: 28px; letter-spacing: -1px; line-height: 1.4; margin-bottom: 20px; }
      .hero-desc { font-size: 11px; line-height: 2.1; }

      .hero-bottom { right: 16px; bottom: 24px; gap: 14px; }
      .pg-current { font-size: 18px; }
      .ctrl-btn { width: 30px; height: 30px; font-size: 9px; }

      .teachers { padding: 70px 20px; }
      .teachers-title { font-size: 26px; }
      .teachers-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
      .teacher-info { padding: 18px 16px 20px; }
      .teacher-name { font-size: 15px; }

      /* 모바일은 4번째 카드까지 초기 표시 */
      .teachers-grid .teacher-card:nth-child(4) { display: block; }
    }

    /* ══ PRICING SECTION ══ */
    .price-section {
      background: #111;
      padding: 90px 24px 100px;
      border-top: 1px solid rgba(255,255,255,0.06);
    }
    .price-inner {
      max-width: 960px;
      margin: 0 auto;
      text-align: center;
    }
    .price-kicker {
      display: inline-block;
      font-size: 0.68rem; font-weight: 700;
      color: #c9a030; letter-spacing: 0.18em;
      text-transform: uppercase;
      border: 1px solid rgba(201,160,48,0.35);
      padding: 5px 14px; border-radius: 20px;
      margin-bottom: 28px;
    }
    .price-tmain {
      font-size: 2.4rem; font-weight: 900;
      color: #fff; letter-spacing: -0.04em;
      line-height: 1.15; margin-bottom: 14px;
    }
    .price-desc {
      font-size: 0.85rem; color: rgba(255,255,255,0.3);
      font-weight: 400; margin-bottom: 60px;
      letter-spacing: 0.06em;
    }

    .price-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 12px;
    }

    .price-card {
      position: relative;
      background: #1a1a1a;
      border: 1px solid rgba(255,255,255,0.1);
      border-radius: 16px;
      padding: 30px 22px 34px;
      text-align: left;
      transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s;
    }
    .price-card:hover {
      transform: translateY(-4px);
      border-color: rgba(201,160,48,0.4);
      box-shadow: 0 20px 48px rgba(0,0,0,0.4);
    }
    .price-card--featured {
      background: linear-gradient(145deg, #1e1600, #1a1200);
      border-color: rgba(201,160,48,0.6);
      box-shadow: 0 0 0 1px rgba(201,160,48,0.15), 0 8px 40px rgba(201,160,48,0.1);
    }
    .price-card--featured:hover {
      border-color: #c9a030;
      box-shadow: 0 0 0 1px rgba(201,160,48,0.4), 0 24px 56px rgba(201,160,48,0.18);
    }

    .price-badge {
      display: inline-block;
      font-size: 0.58rem; font-weight: 800;
      color: #111; background: #c9a030;
      padding: 4px 11px; border-radius: 20px;
      letter-spacing: 0.1em;
      margin-bottom: 16px;
    }

    .price-level {
      font-size: 0.72rem; font-weight: 700;
      color: rgba(255,255,255,0.3);
      letter-spacing: 0.14em; text-transform: uppercase;
      margin-bottom: 12px;
    }
    .price-card--featured .price-level { color: rgba(201,160,48,0.65); }

    .price-amount {
      display: flex;
      align-items: baseline;
      gap: 3px;
      margin-bottom: 4px;
    }
    .price-num-big {
      font-size: 1.9rem; font-weight: 900;
      color: #fff; letter-spacing: -0.03em;
      line-height: 1;
    }
    .price-card--featured .price-num-big { color: #c9a030; }
    .price-won {
      font-size: 0.9rem; font-weight: 600;
      color: rgba(255,255,255,0.4);
    }
    .price-cycle {
      font-size: 0.73rem; color: rgba(255,255,255,0.22);
      font-weight: 400; margin-bottom: 22px;
    }

    .price-divider {
      width: 100%; height: 1px;
      background: rgba(255,255,255,0.08);
      margin-bottom: 20px;
    }
    .price-card--featured .price-divider { background: rgba(201,160,48,0.25); }

    .price-includes {
      list-style: none; padding: 0; margin: 0;
      display: flex; flex-direction: column; gap: 10px;
    }
    .price-includes li {
      font-size: 0.8rem; color: rgba(255,255,255,0.45);
      font-weight: 400; padding-left: 18px; position: relative;
      line-height: 1.5;
    }
    .price-card--featured .price-includes li { color: rgba(255,255,255,0.65); }
    .price-includes li::before {
      content: '✓';
      position: absolute; left: 0;
      color: #c9a030; font-size: 0.68rem; font-weight: 800;
      top: 1px;
    }

    @media (min-width: 769px) {
      .price-grid { grid-template-columns: repeat(4, 1fr); gap: 18px; }
      .price-tmain { font-size: 3rem; }
    }
    @media (max-width: 380px) {
      .price-tmain { font-size: 1.9rem; }
      .price-grid { grid-template-columns: 1fr; }
      .price-num-big { font-size: 1.65rem; }
    }
