/* ============================================================
   엔이티처 디자인 시스템 적용 — 라이트 버전
   기준: ne-teacher-design-system-guide.md (영어 과목 전용)
   ============================================================ */
:root {
  /* surface */
  --surface-base: #FFFFFF;
  --surface-muted: #F2F2F2;
  --surface-strong: #FFF8C5;
  /* yellow.100 */
  /* text */
  --text-primary: #1E1E1E;
  /* gray.900 */
  --text-secondary: #5E5E5E;
  /* gray.600 */
  --text-tertiary: #7E7E7E;
  /* gray.500 */
  --text-inverse: #FFFFFF;
  /* border */
  --border-default: #BEBEBE;
  /* gray.300 */
  --border-soft: #ECECEC;
  /* brand */
  --brand-primary: #694BC8;
  /* common purple */
  --brand-primary-hover: #5638B4;
  --brand-highlight: #FFE429;
  /* yellow.500 */
  --brand-yellow-pale: #FFF8C5;
  /* english subject */
  --subject-en: #EE9FCF;
  --subject-en-pale: #F8EDF1;
  /* radius (token scale) */
  --radius-xs: 8px;
  --radius-sm: 17px;
  --radius-md: 20px;
  --radius-lg: 22px;
  --radius-xl: 25px;
  --radius-2xl: 28px;
  --radius-round: 999px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Spoqa Han Sans','Malgun Gothic',sans-serif;background:var(--surface-base);color:var(--text-primary);min-width:1200px;line-height:1.5;-webkit-font-smoothing:antialiased}
.wrap{max-width:1120px;margin:0 auto;padding:0 40px}

/* ── NAV ── */
.nav{position:sticky;top:0;z-index:1000;height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 40px;background:rgba(255,255,255,0.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-soft)}
.nav-logo-img{height:34px;width:auto;display:block}
.btn{font-family:inherit;cursor:pointer;border:none;font-weight:500;transition:background .2s,color .2s,border-color .2s,transform .15s}
.btn-primary{background:var(--brand-primary);color:var(--text-inverse);border-radius:24px;padding:0 34px;height:46px;font-size:16px}
.btn-primary:hover{background:var(--brand-primary-hover)}
.btn-primary.lg{height:62px;min-width:280px;padding:0 40px;font-size:18px;border-radius:50px}
.btn-outline{background:transparent;color:var(--brand-primary);border:1px solid var(--brand-primary);border-radius:24px;padding:0 34px;height:46px;font-size:16px}
.btn-outline:hover{background:var(--brand-yellow-pale)}

/* ── HERO (dark + keycap deco) ── */
.hero{position:relative;overflow:hidden;background:radial-gradient(ellipse 78% 56% at 50% -8%, rgba(128, 95, 214, 0.22) 0%, rgba(82, 60, 158, 0.08) 42%, rgba(10, 7, 30, 0) 70%),linear-gradient(180deg, #0d0a26 0%, #090620 56%, #070420 100%);padding:100px 40px 96px;text-align:center;height:100vh;min-height:780px;align-content:center;}
.hero .logo{padding:40px 41px 0;position:absolute;left:0;top:0;z-index:100}
.hero .logo a{position:relative;display:block;width:160px;height:45px;background:url(https://pic.neungyule.com/neteacher/pc/event/2026/0629/logo_white.svg) no-repeat;background-size:100% auto;text-indent:-9999px}

/* hero 텍스트 가독성: .hero-inner 반투명 패널로 처리 */
/* 코딩 스트리밍 배경 */
.hero-code{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;-webkit-mask:radial-gradient(ellipse 70% 62% at 50% 50%, transparent 30%, #000 78%);mask:radial-gradient(ellipse 70% 62% at 50% 50%, transparent 30%, #000 78%)}
.code-col{position:absolute;top:0;width:12%;overflow:hidden;font-family:Menlo,Consolas,'SFMono-Regular',monospace;font-size:15px;line-height:1.85;color:rgba(139,123,242,.72);white-space:pre;will-change:transform;animation:codeScroll linear infinite}
@keyframes codeScroll {
  from {
    transform: translateY(0)
  }

  to {
    transform: translateY(-50%)
  }
}

/* 개별 키캡 — 각자 다른 속도·방향으로 부유 */
.kc{position:absolute;z-index:1;pointer-events:none;user-select:none;width:auto;filter:drop-shadow(0 14px 28px rgba(91,79,232,.40));will-change:transform}

/* 위치를 중앙(텍스트) 기준으로 — 화면 폭과 무관하게 텍스트 옆에 붙음 */
.kc1{left:calc(50% - 660px);top:12%;width:150px;animation:kcA 7s ease-in-out infinite}
.kc2{left:calc(50% - 612px);top:49%;width:118px;animation:kcB 9s ease-in-out infinite;animation-delay:-1.5s}
.kc3{left:calc(50% - 668px);bottom:9%;width:134px;animation:kcA 8.4s ease-in-out infinite;animation-delay:-3s}
.kc4{right:calc(50% - 660px);top:10%;width:154px;animation:kcB 7.8s ease-in-out infinite;animation-delay:-.8s}
.kc5{right:calc(50% - 612px);top:47%;width:120px;animation:kcA 10s ease-in-out infinite;animation-delay:-2.2s}
.kc6{right:calc(50% - 668px);bottom:11%;width:160px;animation:kcB 8s ease-in-out infinite;animation-delay:-4s}
@keyframes kcA {
  0%,
  100% {
    transform: translateY(0) rotate(-2deg)
  }

  50% {
    transform: translateY(-20px) rotate(1deg)
  }
}

@keyframes kcB {
  0%,
  100% {
    transform: translateY(0) rotate(2deg)
  }

  50% {
    transform: translateY(18px) rotate(-1deg)
  }
}
@media(prefers-reduced-motion:reduce){.kc,.code-col,.cta-particle{animation:none}}
.hero-inner{position:relative;z-index:2;max-width:940px;margin:0 auto;padding:44px 40px;opacity:0;}
.fonts-ready .hero-inner{opacity:1}
.hero-inner::before{content:'';position:absolute;left:50%;top:-60px;transform:translateX(-50%);width:128%;height:120%;z-index:-1;background:radial-gradient(60% 52% at 50% 0%, rgba(150, 104, 222, 0.20) 0%, rgba(120, 82, 190, 0.10) 40%, rgba(10, 7, 30, 0) 72%);filter:blur(50px)}
.eyebrow{display:inline-block;background:#101431;border:1px solid #ffffff1a;color:#A78BFA;border-radius:var(--radius-round);padding:9px 20px;font-size:16px;font-weight:600;margin-bottom:35px}
.hero h2{font-size:73px;font-weight:800;line-height:1.15;letter-spacing:-0.035em;color:#FFFFFF}
.hero h2 .accent{color:#8B6FE8}
.hero-hook{font-size:18px;color:#A8A6C8;margin-bottom:18px}
.hero-sub{font-size:21px;color:#A8A6C8;line-height:1.6;margin:29px auto 43px;max-width:620px}
.hero-sub b{color:#FFE429;background:none;padding:0}
.hero-badges{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:48px}
.badge{display:flex;align-items:center;gap:8px;background:#222433;border:1px solid #3b3945;border-radius:10px;padding:10px 16px;font-size:16px;color:#D4D2F0}
.badge .chk{color:#FFE429;font-weight:700;flex-shrink:0}

/* ── SECTION ── */
.section{padding:96px 0}
.section.muted{background:var(--surface-muted)}
.eyebrow-sm{display:table;margin:0 auto 16px;background:transparent;border:1px solid #C9C9C9;color:#5E5E5E;border-radius:var(--radius-round);padding:5px 16px;font-size:14px;font-weight:700;letter-spacing:0.08em}
.concept-purple .eyebrow-sm,.benefit-dark .eyebrow-sm{border-color:rgba(255,255,255,0.3);color:#D4D2F0}
.sec-title{font-size:46px;font-weight:700;letter-spacing:-0.03em;line-height:1.2;color:var(--text-primary);text-align:center;margin-bottom:18px}
.sec-title em{color:var(--brand-primary);font-style:normal}
.divider{display:none}
.sec-desc{font-size:18px;color:var(--text-secondary);line-height:1.6;margin:0 auto 44px;max-width:680px;text-align:center}

/* POINT 02 — 보라 섹션 */
.section.concept-purple{background:#453282}
.concept-purple .sec-title,.concept-purple .sec-title em{color:#fff}
.concept-purple .sec-desc{color:#D4D2F0}

/* ── PAIN ── */
.pain-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:46px}
.pain-card{background:#F2F2F2;border:none;border-radius:18px;padding:28px 22px;text-align:left;word-break:keep-all;}
.pain-img{height:120px;margin-bottom:16px;text-align:center}
.pain-img img{height:100%;width:auto;object-fit:contain}
.pain-card h4{font-size:17px;font-weight:700;margin-bottom:10px;line-height:1.45;color:var(--text-primary)}
.pain-card p{font-size:15px;color:var(--text-secondary);line-height:1.6}
.pain-arrow{text-align:center;margin-top:44px;font-size:25px;font-weight:700;color:var(--text-primary)}
.pain-arrow b{color:var(--text-primary);background:linear-gradient(transparent 60%,var(--brand-highlight) 60%)}
/* ── CTA BAND (POINT 01 ↔ 02) ── */
.cta-band{background:transparent;color:#1A1A1A;display:flex;align-items:center;justify-content:center;gap:14px;margin-top:44px;font-size:22px;font-weight:700;text-align:center;line-height:1.5}
.cta-band b{font-weight:800}
.cta-band .band-icon{display:inline-flex;width:26px;height:26px;flex-shrink:0}
.cta-band .band-icon svg{width:100%;height:100%;display:block}

/* ── STEPS ── */
.step-row{display:grid;grid-template-columns:repeat(3,1fr);background:var(--surface-base);border:1px solid var(--border-soft);border-radius:20px;overflow:hidden;box-shadow:0 1px 3px rgba(20,20,19,.05)}
.step-item{padding:36px 28px;text-align:center}
.step-item:not(:last-child){border-right:1px solid var(--border-soft)}
.step-num{font-size:14px;font-weight:700;letter-spacing:0.08em;color:var(--text-primary);margin-bottom:14px}
.step-big{height:72px;margin-bottom:14px;display:flex;align-items:center;justify-content:center}
.step-big img{height:64px;width:auto;object-fit:contain}
.step-title{font-size:21px;font-weight:700;margin-bottom:8px}
.step-desc{font-size:15px;color:var(--text-secondary)}


/* === 마케팅 수정 반영 추가 === */
.btn-cta{background:linear-gradient(90deg,#694BC8,#FF6B9D)!important;box-shadow:0 8px 24px rgba(105,75,200,.45);animation:ctaPulse 2.2s ease-in-out infinite}
.btn-cta:hover{filter:brightness(1.06)}
.hero-cta{width:min(560px,94%)}
@keyframes ctaPulse {
  0%,
  100% {
    transform: translateY(0);
    box-shadow: 0 8px 24px rgba(105, 75, 200, .4)
  }

  50% {
    transform: translateY(-3px);
    box-shadow: 0 16px 36px rgba(255, 107, 157, .5)
  }
}
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:900;display:flex;justify-content:center;padding:14px 16px;background:none;transform:translateY(140%);transition:transform .35s ease;pointer-events:none}
.sticky-cta.show{transform:translateY(0)}
.sticky-cta .btn{pointer-events:auto;width:min(560px,94%)}
.notice{max-width:none;margin:0 auto 44px;background:var(--surface-base);border:1px solid var(--border-soft);border-radius:16px;padding:26px 32px;text-align:left}
.notice-title{font-size:17px;font-weight:700;color:var(--text-primary);margin-bottom:14px}
.notice-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:14px 48px}
.notice-list li{display:flex;align-items:flex-start;gap:10px;font-size:15px;color:var(--text-secondary);line-height:1.55}
.notice-list b{color:var(--text-primary);font-weight:700;margin-right:6px}
.notice-ic{width:20px;height:20px;flex-shrink:0;margin-top:1px;fill:#6E6E6E}
.sess-tag.t-read{background:#E3EEFF;color:#1E5BC6}
.sess-tag.t-grammar{background:#E3F6EC;color:#138A53}
.sess-card:has(.t-read) .prog-fill{background:#3B82F6}
.sess-card:has(.t-grammar) .prog-fill{background:#22B36B}
.sess-card:has(.t-vocab) .prog-fill{background:#FFC300}
.sess-card:has(.t-vocab) .prog-bar{background:#FDF4CC}
.sess-card:has(.t-read) .prog-bar{background:#E4EFFF}
.sess-card:has(.t-grammar) .prog-bar{background:#E4F6E1}
.inst-left{flex-shrink:0;width:220px;display:flex;flex-direction:column;align-items:center;text-align:center}
.inst-left .inst-avatar{margin-bottom:14px}
.inst-left .inst-name{margin-bottom:4px}
.inst-right{flex:1;min-width:0}

/* POINT03 유의사항 */
.notes{margin-top:40px}
.notes-title{font-size:16px;font-weight:700;color:var(--text-primary);margin-bottom:14px}
.notes-list{list-style:none;display:flex;flex-direction:column;gap:10px}
.notes-list li{font-size:14px;color:var(--text-secondary);line-height:1.65;padding-left:16px;position:relative}
.notes-list li::before{content:'·';position:absolute;left:3px;color:var(--text-tertiary);font-weight:700}
.notes-list b{color:var(--text-primary);font-weight:700}

/* === 신청 모달(팝업) === */
.modal-overlay{position:fixed;inset:0;z-index:2000;background:rgba(0,0,0,0);display:flex;align-items:center;justify-content:center;padding:20px;pointer-events:none;transition:background .3s}
.modal-overlay.open{background:rgba(0,0,0,0.7);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);pointer-events:all}
.modal{background:#1E1C35;border:1px solid rgba(105,75,200,0.45);border-radius:24px;width:100%;max-width:480px;padding:36px;transform:translateY(32px);opacity:0;transition:transform .35s cubic-bezier(.34,1.56,.64,1),opacity .3s;max-height:90vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(139,111,232,0.55) transparent}
.modal::-webkit-scrollbar{width:8px}
.modal::-webkit-scrollbar-track{background:transparent;margin:24px 0}
.modal::-webkit-scrollbar-thumb{background:rgba(139,111,232,0.45);border-radius:999px;border:2px solid transparent;background-clip:padding-box}
.modal::-webkit-scrollbar-thumb:hover{background:rgba(139,111,232,0.75);border:2px solid transparent;background-clip:padding-box}
.modal-overlay.open .modal{transform:translateY(0);opacity:1}
.modal-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}
.modal-session-info{display:inline-block;background:rgba(105,75,200,0.18);border:1px solid rgba(105,75,200,0.35);color:#C7BCF5;border-radius:8px;padding:4px 14px;font-size:13px;font-weight:600;margin-bottom:10px}
.modal-title{font-size:22px;font-weight:800;margin-bottom:4px;color:#fff}
.modal-sub{font-size:13px;color:#A8A6C8}
.modal-close{background:none;border:none;color:#A8A6C8;font-size:22px;cursor:pointer;padding:4px;line-height:1;transition:color .15s}
.modal-close:hover{color:#fff}
.form-group{margin-bottom:18px}
.form-label{display:block;font-size:13px;font-weight:700;color:#D4D2F0;margin-bottom:7px}
.form-label .req,
.privacy-check .req {color:#FF6B35;margin-left:3px}
.form-input,.form-select{width:100%;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.12);border-radius:10px;padding:12px 16px;font-size:15px;color:#fff;font-family:inherit;outline:none;transition:border-color .2s}
.form-input::placeholder{color:rgba(255,255,255,0.22)}
.form-input:focus,.form-select:focus{border-color:#8B6FE8}
.form-input[readonly]{background-color:rgba(255,255,255,0.02);border-color:rgba(255,255,255,0.07);color:rgba(255,255,255,0.55)}
.form-input[readonly]:focus{border-color:rgba(255,255,255,0.07)}
.form-select{cursor:pointer;appearance:none;background-image:url("https://pic.neungyule.com/neteacher/pc/event/2026/0629/angle_wh.svg");background-repeat:no-repeat;background-position:right 16px center;background-size:10px;padding-right:30px}
.form-select optgroup{background:#1E1C35;color:#c7bcf5;font-weight:700;font-style:normal}
.form-select option{background:#1E1C35;color:#fff}
.privacy-box{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:10px;padding:14px;margin-bottom:18px}
.privacy-box p{font-size:13px;color:#A8A6C8;line-height:1.7;margin-bottom:10px}
.privacy-check{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:#D4D2F0}
.privacy-check input{accent-color:#694BC8;width:15px;height:15px;flex-shrink:0}
.modal-submit{width:100%;background:linear-gradient(135deg,#694BC8,#FF6B9D);color:#fff;border:none;border-radius:50px;padding:15px;font-size:17px;font-weight:700;font-family:inherit;cursor:pointer;transition:opacity .2s,transform .15s}
.modal-submit:hover{opacity:.92;transform:translateY(-1px)}
.modal-success{display:none;text-align:center;padding:16px 0}
.modal-success.show{display:block}
.success-ic{width:64px;height:64px;margin:0 auto 16px;display:block;fill:#FFE429}
.success-title{font-size:22px;font-weight:800;margin-bottom:10px;color:#fff}
.success-desc{font-size:14px;color:#A8A6C8;line-height:1.8}
.success-highlight{color:#FFE429;font-weight:700}
.modal-okay{width:100%;margin-top:28px;background:linear-gradient(135deg,#694BC8,#FF6B9D);color:#fff;border:none;border-radius:50px;padding:14px;font-size:16px;font-weight:700;font-family:inherit;cursor:pointer}
.toast{position:fixed;bottom:32px;left:50%;transform:translateX(-50%) translateY(20px);background:#252340;border:1px solid rgba(105,75,200,0.45);border-radius:12px;padding:12px 24px;font-size:14px;color:#D4D2F0;z-index:3000;opacity:0;transition:opacity .3s,transform .3s;pointer-events:none;white-space:nowrap}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ── SESSIONS ── */
.sess-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.sess-card{background:#F7F7F7;border:1px solid var(--border-soft);border-radius:22px;overflow:hidden;box-shadow:0 1px 3px rgba(20,20,19,.05)}
.sess-head{padding:24px 24px 20px;border-bottom:1px solid var(--border-soft)}
.sess-tag{display:inline-block;background:var(--brand-yellow-pale);color:var(--text-primary);border-radius:7px;padding:4px 12px;font-size:14px;font-weight:700;margin-bottom:12px}
.sess-title{font-size:21px;font-weight:700;color:var(--text-primary)}
.date-box{background:var(--surface-base);border-radius:10px;padding:10px 14px;margin-top:12px}
.date-round{font-size:13px;font-weight:700;letter-spacing:0.04em;color:var(--text-secondary);margin-bottom:5px}
.date-val{display:inline-flex;align-items:center;gap:7px;font-size:20px;font-weight:700;color:var(--text-primary);letter-spacing:-0.02em}
.date-val::before{content:'';width:16px;height:16px;flex-shrink:0;background-color:currentColor;-webkit-mask:url('https://pic.neungyule.com/neteacher/pc/event/2026/0629/solar_calendar-outline.svg') center/contain no-repeat;mask:url('https://pic.neungyule.com/neteacher/pc/event/2026/0629/solar_calendar-outline.svg') center/contain no-repeat}
.seat{font-size:14px;color:var(--text-tertiary);margin-top:6px}
.prog-bar{height:5px;background:#E4E4E4;border-radius:3px;margin-top:8px;overflow:hidden}
.prog-fill{height:100%;background:var(--brand-highlight);border-radius:3px}
.sess-body{padding:20px 20px 24px}
.sess-theme{font-size:15px;color:var(--text-primary);font-weight:700;margin-bottom:13px}
.sess-items{list-style:none;display:flex;flex-direction:column;gap:9px}
.sess-items li{display:flex;gap:8px;font-size:15px;color:var(--text-secondary);line-height:1.5}
.sess-items li::before{content:'·';color:var(--text-tertiary);font-weight:700}
.sess-cta{display:block;width:100%;margin-top:20px;background:var(--brand-primary);color:var(--text-inverse);border:none;border-radius:13px;height:48px;font-size:17px;font-weight:500;font-family:inherit;cursor:pointer}
.sess-cta:hover{background:var(--brand-primary-hover)}

/* ── BENEFIT ── */
.ben-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:46px}
.ben-card{background:var(--surface-base);border:1px solid var(--border-soft);border-radius:18px;padding:32px 24px;text-align:center;box-shadow:0 1px 3px rgba(20,20,19,.05)}
.ben-icon{width:84px;height:84px;margin:0 auto 16px;display:block}
.ben-card h4{font-size:18px;font-weight:700;margin-bottom:8px}
.ben-card p{font-size:15px;color:var(--text-secondary);line-height:1.6}
/* POINT 04 — 다크 톤 */
.section.benefit-dark{background:#060a22}
.benefit-dark .sec-title{color:#fff}
.benefit-dark .ben-card{background:#101431;border-color:rgba(255,255,255,0.10);box-shadow:none}
.benefit-dark .ben-card h4{color:#fff}
.benefit-dark .ben-card p{color:#A8A6C8}

/* ── INSTRUCTOR ── */
.inst-card{background:var(--surface-base);border:1px solid var(--border-soft);border-radius:22px;display:flex;gap:44px;padding:48px;box-shadow:0 1px 3px rgba(20,20,19,.05);margin-top:46px}
.inst-avatar{width:160px;height:160px;border-radius:50%;overflow:hidden;flex-shrink:0;border:3px solid var(--brand-yellow-pale)}
.inst-avatar img{width:100%;height:100%;object-fit:cover}
.inst-name{font-size:29px;font-weight:700;margin-bottom:6px;white-space:nowrap}
.inst-role{font-size:18px;color:var(--text-secondary);font-weight:500;margin-bottom:16px}
.inst-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.itag{background:var(--brand-yellow-pale);color:var(--text-primary);border-radius:9px;padding:6px 14px;font-size:15px;font-weight:500}
.inst-bio{background:var(--surface-muted);border-radius:12px;border-left:3px solid var(--brand-highlight);padding:18px;margin-bottom:14px}
.inst-bio-label{font-size:15px;font-weight:700;color:var(--text-primary);margin-bottom:12px}
.inst-career{list-style:none;display:flex;flex-direction:column;gap:8px}
.inst-career li{font-size:16px;color:var(--text-secondary);line-height:1.5;padding-left:14px;position:relative}
.inst-career li::before{content:'·';position:absolute;left:0;color:var(--text-tertiary);font-weight:700}
.inst-career li b{color:var(--text-primary)}
.inst-award{background:var(--brand-yellow-pale);border-radius:12px;padding:16px 18px}
.inst-award-label{font-size:15px;font-weight:700;color:#9A7B00;margin-bottom:8px}
.inst-award-title{font-size:16px;font-weight:700;margin-bottom:6px}
.inst-award-desc{font-size:14px;color:var(--text-secondary);line-height:1.6}

/* ── FINAL CTA ── */
.final-cta{background:#060a22;text-align:center;padding:96px 40px;position:relative;overflow:hidden}
.cta-particles{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}
.cta-particle{position:absolute;border-radius:50%;background:#B7ADE8;opacity:0;animation:ctaFloat linear infinite}
@keyframes ctaFloat {
  0% {
    opacity: 0;
    transform: translateY(0) translateX(0)
  }

  20% {
    opacity: .28
  }

  80% {
    opacity: .14
  }

  100% {
    opacity: 0;
    transform: translateY(-280px) translateX(var(--dx))
  }
}
.cta-inner{position:relative;z-index:1}
.chip{display:inline-block;background:#292824;border:1px solid #ffffff1a;color:#FFE429;border-radius:var(--radius-round);padding:8px 20px;font-size:16px;font-weight:700;margin-bottom:24px}
.final-cta h2{font-size:clamp(37px,4.6vw,55px);font-weight:700;line-height:1.2;letter-spacing:-0.03em;margin-bottom:16px;color:#fff}
.final-cta h2 em{color:#FFE429;font-style:normal}
.sec-title .hl{color:#FFE429}
.final-cta p{font-size:21px;color:#A8A6C8;margin-bottom:36px}

/* ── FOOTER ── */
.footer{background:var(--surface-muted);border-top:1px solid var(--border-soft);padding:36px 40px;text-align:center}
.footer p{font-size:16px;color:var(--text-secondary);line-height:1.9}
.footer b{color:var(--text-primary)}

/* 정원 마감 표시 (date-box.is-full + badge-full) */
.date-box.is-full{opacity:.55;position:relative}
.date-box.is-full .seat-remain{color:#F87171;}
.date-box.is-full .prog-fill{background:#A0A0B0!important}
.badge-full{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:6px;background:#F87171;color:#fff;font-size:11px;font-weight:700;letter-spacing:.4px;vertical-align:middle}
