@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css');
    @import url('https://fonts.googleapis.com/css2?family=Nanum+Myeongjo:wght@400;700;800&display=swap');

    :root {
      --bg: #F7F1E8;
      --paper: #FFFDF8;
      --beige: #EDE1D0;
      --ink: #1F1C18;
      --muted: #6F665D;
      --line: #24211D;
      --soft-line: #D8CAB9;
      --green: #183B2D;
      --green-soft: #E3EADF;
      --orange: #D95F24;
      --orange-soft: #F3C4A8;
      --shadow-soft: 0 18px 44px rgba(31, 28, 24, 0.07);
      --shadow-brutal: 5px 5px 0 rgba(31, 28, 24, 0.16);
      --radius: 16px;
      --section: 96px;
      --mobile-section: 56px;
    }

    * { 
      box-sizing: border-box; 
      /* Grid/Flex blow-out 방지용 안전장치 */
      min-width: 0; 
    }
    
    html { scroll-behavior: smooth; }
    
    body {
      margin: 0;
      font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
      letter-spacing: -0.018em;
      background: var(--bg);
      color: var(--ink);
      overflow-x: hidden;
      width: 100%;
    }
    
    body::before {
      content: '';
      position: fixed;
      inset: 0;
      z-index: -2;
      pointer-events: none;
      background:
        radial-gradient(circle at 10% 8%, rgba(217, 95, 36, 0.12), transparent 32%),
        radial-gradient(circle at 90% 18%, rgba(24, 59, 45, 0.10), transparent 34%),
        linear-gradient(90deg, rgba(36,33,29,.035) 1px, transparent 1px),
        linear-gradient(rgba(36,33,29,.03) 1px, transparent 1px);
      background-size: auto, auto, 52px 52px, 52px 52px;
    }
    
    body::after {
      content: '';
      position: fixed;
      inset: 0;
      pointer-events: none;
      z-index: 200;
      opacity: .032;
      mix-blend-mode: multiply;
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    }

    .font-serif-ko { font-family: 'Nanum Myeongjo', serif; }

    /* 아이콘 크기 전역 정리: 모바일/공유 링크에서 과하게 커 보이는 현상 방지 */
    i[data-lucide], svg { flex-shrink: 0; }
    .btn svg { width: 16px; height: 16px; }
    .icon-soft svg, .row-icon svg { width: 22px; height: 22px; }
    .label svg, .chev { width: 14px; height: 14px; }
    .close-btn svg { width: 20px; height: 20px; }

    .nav-label-mobile { display: none; }
    
    /* ✨ 반응형 컨테이너: vw 연산으로 인한 모바일 스크롤 버그 수정 */
    .container { 
      width: 100%; 
      max-width: 1180px; 
      padding: 0 16px; 
      margin: 0 auto; 
    }
    
    .section { padding: var(--section) 0; position: relative; }
    .break-keep { word-break: keep-all; overflow-wrap: break-word; }

    .nav {
      position: fixed;
      inset: 0 0 auto 0;
      z-index: 90;
      background: rgba(255, 253, 248, .96);
      border-bottom: 1px solid rgba(36, 33, 29, .15);
      width: 100%;
    }
    .nav-inner {
      width: 100%;
      max-width: 1280px;
      padding: 0 16px;
      height: 66px;
      margin: 0 auto;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 14px;
    }
    .brand {
      color: var(--ink);
      text-decoration: none;
      font-size: 23px;
      font-weight: 950;
      letter-spacing: -0.075em;
      white-space: nowrap;
    }
    .nav-links { display: flex; gap: 22px; align-items: center; }
    .nav-links a {
      color: var(--muted);
      text-decoration: none;
      font-size: 14px;
      font-weight: 850;
    }
    .nav-links a:hover { color: var(--ink); }

    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      min-height: 48px;
      padding: 0 20px;
      color: var(--paper);
      background: var(--green);
      border: 2px solid var(--line);
      border-radius: 10px;
      box-shadow: 4px 4px 0 rgba(36, 33, 29, .2);
      text-decoration: none;
      font-weight: 950;
      transition: transform .18s ease, box-shadow .18s ease;
      white-space: nowrap; /* 데스크톱에서는 줄바꿈 안함 */
      cursor: pointer;
    }
    .btn:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 rgba(36, 33, 29, .22); }
    .btn-orange { background: var(--orange); }
    .btn-ghost {
      background: rgba(255,253,248,.7);
      color: var(--ink);
      border: 1.5px solid rgba(36, 33, 29, .34);
      box-shadow: none;
    }
    .btn-ghost:hover { box-shadow: 4px 4px 0 rgba(36,33,29,.1); }

    .label {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      width: max-content;
      padding: 7px 10px;
      border: 1.5px solid var(--line);
      background: var(--paper);
      color: var(--ink);
      box-shadow: 2px 2px 0 rgba(36,33,29,.18);
      font-size: 11px;
      font-weight: 950;
      letter-spacing: .08em;
      text-transform: uppercase;
    }

    .section-head {
      display: grid;
      grid-template-columns: .72fr 1.28fr;
      gap: 34px;
      align-items: end;
      margin-bottom: 42px;
    }
    .kicker {
      color: var(--green);
      font-size: 12px;
      font-weight: 950;
      letter-spacing: .14em;
      text-transform: uppercase;
    }
    .section-title {
      margin: 0;
      font-size: clamp(32px, 4.7vw, 60px);
      line-height: 1.04;
      letter-spacing: -.07em;
      font-weight: 950;
      text-wrap: balance;
    }
    .section-desc {
      margin: 16px 0 0;
      color: var(--muted);
      font-size: 17px;
      line-height: 1.65;
      font-weight: 650;
      word-break: keep-all;
    }
    .tap-hint-pill { display: none; }

    .soft-card {
      background: var(--paper);
      border: 1px solid var(--soft-line);
      border-radius: var(--radius);
      box-shadow: 0 12px 30px rgba(31,28,24,.045);
      transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
    }
    .soft-card:hover {
      transform: translateY(-3px);
      border-color: rgba(24,59,45,.45);
      box-shadow: var(--shadow-soft);
    }
    .brutal-card {
      background: var(--paper);
      border: 2px solid var(--line);
      border-radius: 12px;
      box-shadow: var(--shadow-brutal);
    }

    .hero {
      padding: 112px 0 72px;
      /* 구형 사파리 브라우저 호환성을 위한 높이 설정 */
      min-height: 92vh; 
      min-height: 92svh;
      display: flex;
      align-items: center;
    }
    .hero-grid {
      display: grid;
      grid-template-columns: minmax(0, 1.02fr) minmax(320px, .88fr);
      gap: 48px;
      align-items: center;
    }
    .hero-copy { max-width: 720px; }
    .hero h1 {
      margin: 18px 0 20px;
      font-size: clamp(48px, 7.8vw, 104px);
      line-height: .94;
      letter-spacing: -.086em;
      font-weight: 950;
      text-wrap: balance;
    }
    .orange { color: var(--orange); }
    .hero-lead {
      margin: 0 0 26px;
      max-width: 610px;
      color: var(--muted);
      font-size: clamp(17px, 1.8vw, 21px);
      line-height: 1.58;
      font-weight: 680;
      word-break: keep-all;
    }
    .hero-actions { display: flex; gap: 11px; flex-wrap: wrap; align-items: center; margin-bottom: 22px; }
    .hero-chips {
      display: grid;
      grid-template-columns: repeat(3, max-content);
      gap: 8px;
      align-items: center;
    }
    .info-chip {
      padding: 8px 11px;
      background: rgba(255,253,248,.76);
      border: 1px solid rgba(36,33,29,.18);
      color: var(--ink);
      font-size: 12px;
      font-weight: 900;
      line-height: 1.2;
      white-space: nowrap;
    }

    .poster-card {
      position: relative;
      min-height: 520px;
      padding: 26px;
      overflow: hidden;
      background: var(--paper);
      border: 2px solid var(--line);
      border-radius: 14px;
      box-shadow: 10px 10px 0 rgba(36,33,29,.13);
      isolation: isolate;
    }
    .poster-card::before {
      content: '';
      position: absolute;
      width: 310px;
      height: 310px;
      right: -100px;
      top: 58px;
      border-radius: 50%;
      background: var(--orange-soft);
      opacity: .56;
      z-index: -1;
    }
    .poster-card::after {
      content: '';
      position: absolute;
      inset: 15px;
      border: 1px solid rgba(36,33,29,.2);
      pointer-events: none;
    }
    .poster-top {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      gap: 16px;
      position: relative;
      z-index: 1;
    }
    .poster-brand { font-size: 15px; font-weight: 950; letter-spacing: -.055em; }
    .poster-meta-small { color: var(--muted); font-size: 11px; line-height: 1.35; font-weight: 850; text-align: right; }
    .poster-number {
      margin-top: 38px;
      font-size: clamp(128px, 18vw, 220px);
      line-height: .72;
      letter-spacing: -.12em;
      font-weight: 950;
      color: var(--orange);
    }
    .poster-title {
      margin-top: 22px;
      max-width: 360px;
      font-size: clamp(26px, 3vw, 40px);
      line-height: 1.08;
      letter-spacing: -.07em;
      font-weight: 950;
      word-break: keep-all;
    }
    .poster-line { width: 100%; height: 2px; background: var(--line); margin: 24px 0 16px; }
    .poster-bottom { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
    .poster-box {
      min-height: 94px;
      padding: 14px;
      border: 1.5px solid var(--line);
      background: rgba(247,241,232,.74);
    }
    .poster-box strong { display: block; margin-bottom: 6px; font-size: 14px; font-weight: 950; }
    .poster-box span { display: block; color: var(--muted); font-size: 12px; line-height: 1.38; font-weight: 750; }
    .poster-seal {
      position: absolute;
      right: 28px;
      bottom: 28px;
      width: 70px;
      height: 70px;
      border-radius: 50%;
      border: 2px solid var(--line);
      background: var(--green);
      color: var(--paper);
      display: grid;
      place-items: center;
      font-size: 10px;
      font-weight: 950;
      text-align: center;
      line-height: 1.1;
    }

    .empathy .section-head { align-items: start; }
    .empathy-quote { padding-left: 26px; border-left: 3px solid var(--orange); }
    .empathy-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
    .empathy-card { padding: 23px; min-height: 190px; }
    .empathy-card i { color: var(--green); }
    .empathy-card h3 { margin: 18px 0 10px; font-size: 20px; letter-spacing: -.045em; font-weight: 950; }
    .empathy-card p { margin: 0; color: var(--muted); line-height: 1.56; font-size: 14px; font-weight: 650; word-break: keep-all; }

    .about { background: var(--green); color: var(--paper); overflow: hidden; }
    .about-grid {
      display: grid;
      grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr);
      gap: 50px;
      align-items: center;
    }
    .about .label { background: transparent; color: var(--paper); border-color: var(--paper); box-shadow: 2px 2px 0 rgba(255,253,248,.85); }
    .about h2 {
      margin: 26px 0 22px;
      font-size: clamp(35px, 5.2vw, 68px);
      line-height: 1.05;
      letter-spacing: -.075em;
      font-weight: 950;
      text-wrap: balance;
    }
    .about p { color: rgba(255,253,248,.78); font-size: 18px; line-height: 1.68; font-weight: 650; word-break: keep-all; max-width: 610px; }
    .about-poster {
      background: var(--paper);
      color: var(--ink);
      min-height: 460px;
      border: 2px solid var(--line);
      box-shadow: 9px 9px 0 var(--orange);
      padding: 30px;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
    }
    .about-poster h3 { margin: 0; font-size: clamp(40px, 4.7vw, 66px); line-height: .94; letter-spacing: -.08em; font-weight: 950; text-transform: uppercase; }
    .outline-text { color: transparent; -webkit-text-stroke: 1.5px var(--ink); }
    .poster-tag-row { display: flex; justify-content: space-between; align-items: center; border-bottom: 2px solid var(--line); padding-bottom: 15px; font-weight: 950; }
    .orange-block { width: 26px; height: 26px; background: var(--orange); border: 1.5px solid var(--line); }
    .about-poster-foot { border-top: 2px solid var(--line); padding-top: 15px; display: flex; justify-content: space-between; gap: 12px; color: var(--muted); font-size: 11px; font-weight: 850; }

    .benefits-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
    .benefit-card { padding: 27px; min-height: 215px; }
    .icon-soft { width: 50px; height: 50px; display: grid; place-items: center; border-radius: 13px; background: var(--green-soft); color: var(--green); margin-bottom: 22px; }
    .benefit-card h3 { margin: 0 0 10px; font-size: 25px; line-height: 1.15; letter-spacing: -.06em; font-weight: 950; }
    .benefit-card p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.58; font-weight: 650; word-break: keep-all; }
    .onboarding-card {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr) auto;
      gap: 20px;
      align-items: center;
      margin-top: 18px;
      padding: 26px;
      cursor: pointer;
      background: linear-gradient(135deg, rgba(255,253,248,.98), rgba(235,244,233,.7));
    }
    .onboarding-card .icon-soft { margin: 0; }
    .onboarding-card-label {
      display: inline-flex;
      margin-bottom: 8px;
      color: var(--green);
      font-size: 11px;
      line-height: 1;
      font-weight: 950;
      letter-spacing: .08em;
      text-transform: uppercase;
    }
    .onboarding-card h3 {
      margin: 0 0 8px;
      font-size: 27px;
      line-height: 1.12;
      letter-spacing: -.06em;
      font-weight: 950;
    }
    .onboarding-card strong {
      display: block;
      margin-bottom: 10px;
      color: var(--ink);
      font-size: 15px;
      line-height: 1.45;
      font-weight: 900;
      word-break: keep-all;
    }
    .onboarding-card p {
      margin: 0;
      color: var(--muted);
      font-size: 14px;
      line-height: 1.62;
      font-weight: 650;
      word-break: keep-all;
    }
    .positive-program-meta {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
      gap: 6px 12px;
      align-items: baseline;
      margin-top: 16px;
      padding: 12px 14px;
      border: 1px solid rgba(36,33,29,.1);
      border-radius: 12px;
      background: rgba(255,253,248,.76);
    }
    .positive-program-meta span {
      color: var(--green);
      font-size: 11px;
      font-weight: 950;
      letter-spacing: .08em;
      text-transform: uppercase;
      white-space: nowrap;
    }
    .positive-program-meta strong {
      margin: 0;
      font-size: 13px;
      line-height: 1.35;
    }
    .positive-program-meta p {
      grid-column: 1 / -1;
      font-size: 12px;
      line-height: 1.45;
      font-weight: 750;
    }
    .positive-modal-facilitators {
      display: grid;
      gap: 10px;
    }
    .positive-modal-facilitators h4 {
      margin: 0;
      font-size: 15px;
      line-height: 1.35;
      font-weight: 950;
      letter-spacing: -.035em;
    }
    .positive-facilitator-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 9px;
    }
    .positive-facilitator-card {
      display: grid;
      grid-template-columns: 92px minmax(0, 1fr);
      gap: 16px;
      align-items: center;
      min-height: 118px;
      padding: 14px;
      border: 1px solid rgba(36,33,29,.1);
      border-radius: 12px;
      background: rgba(255,253,248,.82);
    }
    .positive-facilitator-card img {
      width: 92px;
      height: 96px;
      border-radius: 12px;
      object-fit: cover;
      background: var(--bg);
    }
    .positive-facilitator-card strong {
      display: block;
      margin: 0 0 7px;
      font-size: 17px;
      line-height: 1.15;
      font-weight: 950;
      word-break: keep-all;
    }
    .positive-facilitator-card span,
    .positive-facilitator-card p {
      display: block;
      margin: 0;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.42;
      font-weight: 800;
      word-break: keep-all;
    }
    .onboarding-card:hover .icon-soft { background: var(--orange-soft); color: var(--orange); }
    .onboarding-card:hover .row-action { color: var(--green); border-color: rgba(24,59,45,.22); background: rgba(235,244,233,.72); transform: translateX(2px); }

    .journey { background: var(--paper); border-top: 1px solid var(--soft-line); border-bottom: 1px solid var(--soft-line); }
    .journey-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
    .journey-card { min-height: 340px; padding: 27px; display: flex; flex-direction: column; justify-content: space-between; position: relative; overflow: hidden; }
    .journey-no { font-size: 94px; line-height: .76; letter-spacing: -.12em; font-weight: 950; color: rgba(36,33,29,.18); transition: color .2s ease; }
    .journey-card:hover .journey-no { color: var(--ink); }
    .journey-card:nth-child(3):hover .journey-no { color: var(--orange); }
    .tag-row { display: flex; flex-wrap: wrap; gap: 7px; margin: 20px 0 16px; }
    .tag { padding: 6px 9px; border: 1.5px solid var(--line); background: var(--bg); color: var(--ink); font-size: 11px; font-weight: 950; }
    .journey-card h3 { margin: 0 0 10px; font-size: 24px; line-height: 1.15; letter-spacing: -.06em; font-weight: 950; }
    .journey-card p { margin: 0; color: var(--muted); line-height: 1.54; font-size: 14px; font-weight: 650; word-break: keep-all; }
    .card-line { height: 4px; width: 100%; background: var(--green); margin-top: 24px; }
    .journey-card:nth-child(3) .card-line { background: var(--orange); }

    .schedule-mini {
      display: grid;
      grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
      gap: 28px;
      align-items: start;
      margin-top: 26px;
      padding: 26px;
      background: linear-gradient(135deg, rgba(255,253,248,.96), rgba(247,241,232,.74));
    }

    .schedule-mini h3 {
      margin: 0;
      font-size: 25px;
      line-height: 1.18;
      letter-spacing: -.055em;
      font-weight: 950;
      word-break: keep-all;
    }

    .schedule-mini p {
      margin: 12px 0 0;
      color: var(--muted);
      font-size: 14px;
      line-height: 1.62;
      font-weight: 650;
      word-break: keep-all;
    }

    .schedule-mini-note {
      color: var(--green) !important;
    }

    .schedule-list {
      display: grid;
      gap: 9px;
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .schedule-list li {
      display: grid;
      grid-template-columns: 120px minmax(0, 1fr);
      gap: 12px;
      align-items: center;
      padding: 12px 0;
      border-bottom: 1px solid rgba(36,33,29,.1);
    }

    .schedule-list li:last-child {
      border-bottom: 0;
    }

    .schedule-list strong {
      color: var(--ink);
      font-size: 13px;
      font-weight: 950;
      letter-spacing: -.02em;
      word-break: keep-all;
    }

    .schedule-list span {
      color: var(--muted);
      font-size: 14px;
      line-height: 1.45;
      font-weight: 700;
      word-break: keep-all;
    }

    /* ✨ 새로워진 트랙 & 랩 레이아웃 CSS */
    .tracks-split { display: grid; grid-template-columns: 1fr; gap: 40px; }
    @media (min-width: 980px) { .tracks-split { grid-template-columns: 1fr 1fr; gap: 60px; } }
    
    .track-group { display: flex; flex-direction: column; }
    .group-head { display: flex; justify-content: space-between; align-items: flex-end; border-bottom: 2px solid var(--line); padding-bottom: 12px; margin-bottom: 20px; }
    .group-head h3 { margin: 0; font-size: 24px; font-weight: 950; letter-spacing: -.05em; color: var(--ink); }
    .group-head span { font-size: 11px; font-weight: 850; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; }

    .main-tracks { display: flex; flex-direction: column; gap: 14px; flex: 1; }
    .lab-tracks { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; flex: 1; }

    .row-card { display: flex; align-items: center; gap: 20px; padding: 22px 24px; cursor: pointer; flex: 1; }
    .row-icon { width: 52px; height: 52px; border-radius: 12px; background: var(--bg); border: 1px solid var(--soft-line); display: grid; place-items: center; color: var(--ink); flex-shrink: 0; transition: all .2s; }
    .row-text { flex: 1; }
    .row-text h4 { margin: 0 0 4px; font-size: 20px; font-weight: 950; transition: color .2s; }
    .row-text p { margin: 0; font-size: 13px; color: var(--muted); font-weight: 650; line-height: 1.4; }
    .row-action { display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-height: 28px; padding: 6px 10px; border: 1px solid rgba(36,33,29,.14); border-radius: 999px; background: rgba(255,253,248,.58); color: var(--muted); box-shadow: none; font-size: 11px; line-height: 1; font-weight: 900; transition: color .2s ease, border-color .2s ease, background .2s ease, transform .2s ease; white-space: nowrap; }
    .row-action span { display: inline-flex; align-items: center; line-height: 1; }
    .row-action svg,
    .row-action i { display: block; width: 12px; height: 12px; flex: 0 0 12px; stroke-width: 2.25; }

    .row-card:hover .row-icon { background: var(--green-soft); color: var(--green); border-color: rgba(24,59,45,.2); }
    .row-card:hover .row-text h4 { color: var(--green); }
    .row-card:hover .row-action { color: var(--green); border-color: rgba(24,59,45,.22); background: rgba(235,244,233,.72); transform: translateX(2px); }

    .grid-card { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 24px 16px; cursor: pointer; gap: 10px; flex: 1; }
    .grid-card .row-icon { margin: 0 auto; width: 46px; height: 46px; }
    .grid-card h4 { margin: 0; font-size: 17px; font-weight: 950; transition: color .2s; }
    .grid-card p { margin: 0; font-size: 12px; color: var(--muted); font-weight: 650; line-height: 1.4; }
    .grid-card .row-action { align-self: center; margin-top: 8px; font-size: 11px; }

    .grid-card:hover .row-icon { background: var(--orange-soft); color: var(--orange); border-color: rgba(217,95,36,.2); }
    .grid-card:hover h4 { color: var(--orange); }
    .grid-card:hover .row-action { color: var(--orange); border-color: rgba(217,95,36,.22); background: rgba(255,244,236,.72); transform: translateY(-1px); }

    .staff-operators {
      background: linear-gradient(180deg, rgba(247,241,232,.2), rgba(255,253,248,.72));
    }
    .staff-operators-desc { margin-top: 8px; }
    .staff-summary {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 18px;
      padding: 22px 24px;
      cursor: pointer;
    }
    .staff-summary:hover,
    .staff-summary:focus-visible {
      transform: translateY(-2px);
      border-color: rgba(24,59,45,.28);
      box-shadow: 0 14px 34px rgba(31,28,24,.065);
    }
    .staff-summary:focus-visible { outline: 2px solid rgba(24,59,45,.42); outline-offset: 3px; }
    .staff-summary span,
    .staff-modal-info span {
      color: var(--orange);
      font-size: 11px;
      font-weight: 950;
      letter-spacing: .12em;
      text-transform: uppercase;
    }
    .staff-summary p {
      margin: 8px 0 0;
      color: var(--muted);
      font-size: 14px;
      line-height: 1.55;
      font-weight: 700;
      word-break: keep-all;
    }
    .staff-modal-list {
      display: grid;
      gap: 12px;
    }
    .staff-modal-card {
      display: grid;
      grid-template-columns: 104px minmax(0, 1fr);
      gap: 16px;
      align-items: stretch;
      padding: 14px;
      border-radius: 14px;
      background: rgba(247,241,232,.46);
    }
    .staff-modal-photo {
      width: 104px;
      height: 130px;
      object-fit: cover;
      display: block;
      border-radius: 12px;
      background: var(--bg);
    }
    .staff-modal-info {
      display: flex;
      flex-direction: column;
      justify-content: center;
    }
    .staff-modal-info h4 {
      margin: 8px 0 6px;
      color: var(--ink);
      font-size: 22px;
      line-height: 1.16;
      letter-spacing: -.055em;
      font-weight: 950;
    }
    .staff-modal-info strong {
      color: var(--ink);
      font-size: 13px;
      line-height: 1.45;
      font-weight: 900;
      word-break: keep-all;
    }
    .staff-modal-info p {
      margin: 8px 0 0;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.45;
      font-weight: 750;
      word-break: keep-all;
    }
    .staff-modal-info blockquote {
      margin: 8px 0 0;
      color: var(--green);
      font-size: 12px;
      line-height: 1.45;
      font-weight: 850;
      word-break: keep-all;
    }



    /* 클럽 활동 섹션 */
    .clubs {
      background:
        linear-gradient(180deg, rgba(255,253,248,.52), rgba(247,241,232,.88));
      border-top: 1px solid rgba(216,202,185,.65);
      border-bottom: 1px solid rgba(216,202,185,.65);
    }

    .club-note {
      display: grid;
      grid-template-columns: .82fr 1.18fr;
      gap: 24px;
      align-items: center;
      margin-bottom: 18px;
      padding: 24px 26px;
      background: var(--paper);
    }

    .club-note-label {
      display: inline-block;
      margin-bottom: 10px;
      color: var(--orange);
      font-size: 11px;
      font-weight: 950;
      letter-spacing: .12em;
      text-transform: uppercase;
    }

    .club-note h3 {
      margin: 0;
      font-size: 25px;
      line-height: 1.18;
      letter-spacing: -.055em;
      font-weight: 950;
      word-break: keep-all;
    }

    .club-note p {
      margin: 0;
      color: var(--muted);
      font-size: 14px;
      line-height: 1.62;
      font-weight: 650;
      word-break: keep-all;
    }

    .optional-program-note {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
      gap: 14px;
      align-items: start;
      margin-bottom: 18px;
      padding: 18px 20px;
    }

    .optional-program-icon {
      width: 42px;
      height: 42px;
      display: grid;
      place-items: center;
      border-radius: 12px;
      background: var(--green-soft);
      color: var(--green);
    }

    .optional-program-icon svg {
      width: 20px;
      height: 20px;
    }

    .optional-program-note span {
      display: block;
      margin-bottom: 6px;
      color: var(--orange);
      font-size: 12px;
      font-weight: 950;
      letter-spacing: .08em;
      text-transform: uppercase;
    }

    .optional-program-note p {
      margin: 0;
      color: var(--muted);
      font-size: 14px;
      line-height: 1.6;
      font-weight: 650;
      word-break: keep-all;
    }

    .club-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 14px;
    }

    .club-card {
      position: relative;
      min-height: 250px;
      padding: 22px;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
    }

    .club-card::after {
      content: '';
      position: absolute;
      right: -36px;
      top: -36px;
      width: 96px;
      height: 96px;
      border-radius: 50%;
      background: var(--green-soft);
      opacity: .72;
      z-index: 0;
    }

    .club-card > * { position: relative; z-index: 1; }

    .club-icon {
      width: 46px;
      height: 46px;
      display: grid;
      place-items: center;
      border-radius: 12px;
      border: 1px solid var(--soft-line);
      background: var(--bg);
      color: var(--green);
      margin-bottom: 18px;
    }

    .club-icon svg { width: 22px; height: 22px; }

    .club-tag {
      display: inline-flex;
      width: max-content;
      max-width: 100%;
      padding: 5px 8px;
      margin-bottom: 12px;
      border: 1px solid rgba(36,33,29,.18);
      background: rgba(247,241,232,.76);
      color: var(--muted);
      font-size: 10px;
      line-height: 1.2;
      font-weight: 900;
      letter-spacing: -.01em;
    }

    .club-card h3 {
      margin: 0 0 10px;
      font-size: 21px;
      line-height: 1.16;
      letter-spacing: -.055em;
      font-weight: 950;
    }

    .club-card p {
      margin: 0;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.55;
      font-weight: 650;
      word-break: keep-all;
    }

    .discord-club-grid {
      grid-template-columns: repeat(2, 1fr);
    }

    .club-card-sub {
      margin-top: 14px !important;
      padding-top: 14px;
      border-top: 1px solid rgba(36,33,29,.1);
      color: var(--green) !important;
      font-weight: 750 !important;
    }

    .discord-club-note {
      margin: 18px 0 0;
    }

    .club-card-dark {
      background: var(--green);
      color: var(--paper);
      border-color: var(--line);
    }

    .club-card-dark::after {
      background: var(--orange);
      opacity: .72;
    }

    .club-card-dark .club-icon {
      background: rgba(255,253,248,.12);
      border-color: rgba(255,253,248,.28);
      color: var(--paper);
    }

    .club-card-dark .club-tag {
      background: rgba(255,253,248,.12);
      border-color: rgba(255,253,248,.28);
      color: rgba(255,253,248,.78);
    }

    .club-card-dark p { color: rgba(255,253,248,.76); }


    /* Redefine Day 섹션 */
    .redefine-day {
      background:
        radial-gradient(circle at 15% 10%, rgba(217,95,36,.10), transparent 30%),
        linear-gradient(180deg, rgba(247,241,232,.95), rgba(255,253,248,.72));
      border-top: 1px solid rgba(216,202,185,.72);
      border-bottom: 1px solid rgba(216,202,185,.72);
    }

    .day-hero {
      display: grid;
      grid-template-columns: .9fr 1.1fr;
      gap: 26px;
      align-items: center;
      padding: 28px 30px;
      margin-bottom: 18px;
      background: var(--paper);
    }

    .day-label {
      display: inline-flex;
      width: max-content;
      margin-bottom: 12px;
      padding: 6px 9px;
      border: 1.5px solid var(--line);
      background: var(--orange);
      color: var(--paper);
      font-size: 11px;
      line-height: 1.2;
      font-weight: 950;
      letter-spacing: .08em;
    }

    .day-hero h3 {
      margin: 0;
      font-size: clamp(25px, 3vw, 38px);
      line-height: 1.08;
      letter-spacing: -.065em;
      font-weight: 950;
      word-break: keep-all;
    }

    .day-hero p {
      margin: 0;
      color: var(--muted);
      font-size: 15px;
      line-height: 1.68;
      font-weight: 650;
      word-break: keep-all;
    }

    .day-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 14px;
    }

    .day-card {
      position: relative;
      min-height: 250px;
      padding: 24px;
      overflow: hidden;
    }

    .day-card strong {
      display: block;
      margin-bottom: 18px;
      color: var(--orange);
      font-size: 12px;
      font-weight: 950;
      letter-spacing: .11em;
      text-transform: uppercase;
    }

    .day-icon {
      width: 48px;
      height: 48px;
      display: grid;
      place-items: center;
      border-radius: 14px;
      border: 1px solid var(--soft-line);
      background: var(--green-soft);
      color: var(--green);
      margin-bottom: 20px;
    }

    .day-icon svg { width: 22px; height: 22px; }

    .day-card h3 {
      margin: 0 0 10px;
      font-size: 22px;
      line-height: 1.16;
      letter-spacing: -.055em;
      font-weight: 950;
      word-break: keep-all;
    }

    .day-card p {
      margin: 0;
      color: var(--muted);
      font-size: 14px;
      line-height: 1.58;
      font-weight: 650;
      word-break: keep-all;
    }

    .day-card-dark {
      background: var(--green);
      color: var(--paper);
      border-color: var(--line);
    }

    .day-card-dark strong { color: var(--orange-soft); }

    .day-card-dark .day-icon {
      background: rgba(255,253,248,.12);
      border-color: rgba(255,253,248,.26);
      color: var(--paper);
    }

    .day-card-dark p { color: rgba(255,253,248,.76); }


    .guide-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 30px; align-items: start; }
    .process { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
    .process-step { padding: 21px; min-height: 190px; }
    .process-no { width: 44px; height: 44px; display: grid; place-items: center; border: 1.5px solid var(--line); background: var(--paper); color: var(--ink); font-weight: 950; margin-bottom: 20px; }
    .process-step:last-child .process-no { background: var(--green); color: var(--paper); }
    .process-step h3 { margin: 0 0 8px; font-size: 19px; font-weight: 950; letter-spacing: -.045em; }
    .process-step p { margin: 0; color: var(--muted); line-height: 1.5; font-size: 13px; font-weight: 650; word-break: keep-all; }
    .info-box { padding: 25px; }
    .info-box h3 { margin: 0 0 14px; font-size: 21px; font-weight: 950; letter-spacing: -.05em; }
    .info-box li { color: var(--muted); font-size: 13px; line-height: 1.62; font-weight: 650; margin: 6px 0; }

    .expected-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
    .expected-card { padding: 26px; min-height: 220px; }
    .expected-card strong { display: block; margin-bottom: 16px; color: var(--orange); font-size: 13px; letter-spacing: .08em; }
    .expected-card h3 { margin: 0 0 10px; font-size: 23px; line-height: 1.16; letter-spacing: -.06em; font-weight: 950; }
    .expected-card p { color: var(--muted); line-height: 1.55; font-size: 14px; font-weight: 650; margin: 0; word-break: keep-all; }

    .faq-list { max-width: 840px; margin: 0 auto; display: grid; gap: 9px; }
    details.faq { background: var(--paper); border: 1px solid var(--soft-line); border-radius: 14px; padding: 20px 22px; transition: border-color .2s ease, box-shadow .2s ease; }
    details.faq:hover { border-color: var(--line); box-shadow: 4px 4px 0 rgba(36,33,29,.1); }
    details.faq summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 14px; cursor: pointer; font-weight: 900; }
    details.faq summary::-webkit-details-marker { display: none; }
    details.faq p { margin: 14px 0 0; padding-top: 14px; border-top: 1px solid var(--soft-line); color: var(--muted); line-height: 1.62; font-size: 14px; font-weight: 650; word-break: keep-all; }
    details[open] .chev { transform: rotate(180deg); }
    .chev { transition: transform .2s ease; }
    #faq-more-content { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .34s ease; }
    #faq-more-content.open { grid-template-rows: 1fr; }
    #faq-more-content > div { overflow: hidden; display: grid; gap: 9px; padding-top: 9px; }
    .faq-more-wrap { text-align: center; margin-top: 18px; }

    .ai-box { max-width: 780px; margin: 0 auto; padding: 28px; }
    textarea { width: 100%; min-height: 110px; resize: vertical; border: 1px solid var(--soft-line); border-radius: 14px; background: var(--bg); padding: 16px 18px; color: var(--ink); font-family: inherit; font-size: 15px; line-height: 1.55; outline: none; }
    textarea:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(24,59,45,.1); }
    .ai-quick-picks { display: flex; flex-wrap: wrap; gap: 8px; min-width: 0; margin-top: 12px; }
    .ai-chip { display: inline-flex; flex: 0 1 auto; align-items: center; justify-content: center; max-width: 100%; min-height: 32px; padding: 7px 11px; border: 1px solid rgba(36,33,29,.16); border-radius: 999px; background: rgba(255,253,248,.68); color: var(--muted); font-family: inherit; font-size: 12px; line-height: 1.25; font-weight: 850; letter-spacing: -.01em; white-space: normal; overflow-wrap: anywhere; text-align: center; cursor: pointer; transition: color .2s ease, border-color .2s ease, background .2s ease, transform .2s ease; }
    .ai-chip:hover { color: var(--green); border-color: rgba(24,59,45,.28); background: rgba(235,244,233,.72); transform: translateY(-1px); }
    .ai-chip:active { transform: translateY(0); }
    .ai-chip:focus-visible { outline: 2px solid rgba(24,59,45,.42); outline-offset: 3px; }
    .ai-result { display: none; margin-top: 20px; padding: 22px; border-left: 4px solid var(--green); background: var(--paper); border-radius: 14px; border-top: 1px solid var(--soft-line); border-right: 1px solid var(--soft-line); border-bottom: 1px solid var(--soft-line); }
    .ai-result.show { display: block; }
    .result-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0; }
    .result-tags .tag { max-width: 100%; white-space: normal; overflow-wrap: anywhere; line-height: 1.35; }
    .ai-guide-note { margin: 14px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; font-weight: 700; word-break: keep-all; }

    .apply { background: var(--green); color: var(--paper); text-align: center; overflow: hidden; }
    .apply h2 { margin: 0 0 22px; font-size: clamp(40px, 7vw, 88px); line-height: .98; letter-spacing: -.08em; font-weight: 950; text-wrap: balance; }
    .apply p { margin: 0 auto 32px; max-width: 620px; color: rgba(255,253,248,.78); font-size: 19px; line-height: 1.62; font-weight: 650; word-break: keep-all; }

    .partners {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
      gap: 22px;
      align-items: center;
      margin: 0 auto 24px;
      padding: 4px 0;
    }

    .partners-copy {
      text-align: left;
      min-width: 170px;
    }

    .partners-copy h2 {
      margin: 0;
      color: var(--paper);
      font-size: 15px;
      line-height: 1.25;
      font-weight: 950;
      letter-spacing: -.035em;
    }

    .partner-logo-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
    }

    .partner-logo-card {
      min-height: 54px;
      padding: 8px 12px;
      border: 1px solid rgba(255,253,248,.16);
      border-radius: 8px;
      background: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
    }

    .partner-logo-card img {
      display: block;
      width: 100%;
      max-width: 150px;
      max-height: 36px;
      object-fit: contain;
    }

    .partner-logo-card-wide img {
      max-width: 168px;
      max-height: 32px;
    }

    .partner-logo-card-square img {
      max-width: 92px;
      max-height: 36px;
    }

    .modal-backdrop { position: fixed; inset: 0; z-index: 300; display: none; place-items: center; background: rgba(31,28,24,.62); padding: 18px; }
    .modal-backdrop.show { display: grid; }
    .modal { width: min(680px, 100%); max-height: 86svh; overflow: auto; background: var(--paper); border: 1px solid rgba(36,33,29,.075); box-shadow: 0 18px 44px rgba(31,28,24,.09); padding: 26px; border-radius: 16px; }
    .modal-top { display: flex; justify-content: space-between; align-items: start; gap: 18px; border-bottom: 1px solid rgba(36,33,29,.07); padding-bottom: 16px; margin-bottom: 18px; }
    .close-btn { border: 1px solid rgba(36,33,29,.075); border-radius: 999px; background: rgba(247,241,232,.62); width: 38px; height: 38px; display: grid; place-items: center; cursor: pointer; }
    .modal h3 { margin: 8px 0 6px; font-size: 32px; letter-spacing: -.065em; }
    .modal p { color: var(--muted); line-height: 1.65; font-weight: 650; word-break: keep-all; }

    .modal-body { display: grid; gap: 18px; }
    .modal-lead {
      margin: 0;
      color: var(--ink);
      font-size: 18px;
      line-height: 1.5;
      font-weight: 900;
      letter-spacing: -.04em;
    }
    .modal-desc-text { margin: 0; }
    .modal-info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
    .modal-info-block {
      padding: 18px;
      border: none;
      border-radius: 14px;
      background: rgba(247,241,232,.58);
    }
    .modal-info-block h4 {
      margin: 0 0 12px;
      font-size: 15px;
      font-weight: 950;
      letter-spacing: -.035em;
    }
    .modal-info-block ul {
      margin: 0;
      padding: 0;
      list-style: none;
      display: grid;
      gap: 8px;
    }
    .modal-info-block li {
      color: var(--muted);
      font-size: 13px;
      line-height: 1.48;
      font-weight: 650;
      word-break: keep-all;
    }
    .modal-info-block li::before {
      content: '•';
      color: var(--orange);
      font-weight: 950;
      margin-right: 7px;
    }
    .instructor-card {
      display: grid;
      grid-template-columns: 120px 1fr;
      gap: 16px;
      align-items: stretch;
      padding: 16px;
      border: none;
      border-radius: 14px;
      background: rgba(247,241,232,.46);
      box-shadow: none;
    }
    .instructor-photo {
      min-height: 132px;
      border: none;
      border-radius: 12px;
      background: rgba(247,241,232,.8);
      color: var(--muted);
      display: grid;
      place-items: center;
      text-align: center;
      gap: 8px;
      font-size: 9px;
      line-height: 1.2;
      font-weight: 950;
      letter-spacing: .06em;
      overflow: hidden;
    }
    .instructor-photo svg { color: var(--green); }
    .instructor-photo img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
    .instructor-info { display: flex; flex-direction: column; justify-content: center; }
    .instructor-info span {
      color: var(--orange);
      font-size: 11px;
      font-weight: 950;
      letter-spacing: .12em;
      text-transform: uppercase;
    }
    .instructor-info h4 {
      margin: 8px 0 6px;
      color: var(--ink);
      font-size: 22px;
      line-height: 1.16;
      letter-spacing: -.055em;
      font-weight: 950;
    }
    .instructor-info strong {
      display: block;
      margin-bottom: 8px;
      color: var(--green);
      font-size: 13px;
      line-height: 1.35;
      font-weight: 900;
      word-break: keep-all;
    }
    .instructor-info p {
      margin: 0;
      font-size: 13px;
      line-height: 1.55;
    }

    .footer { padding: 30px 0 34px; background: var(--ink); color: rgba(255,253,248,.56); text-align: center; font-size: 13px; font-weight: 750; }



    /* 신청 안내 섹션 상세화 */
    .join-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: 26px; align-items: start; }
    .join-side { position: sticky; top: 92px; display: grid; gap: 14px; }
    .join-note { padding: 25px; }
    .join-note h3 { margin: 18px 0 10px; font-size: 23px; font-weight: 950; letter-spacing: -.05em; }
    .join-note p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.62; font-weight: 650; word-break: keep-all; }
    .join-note ul, .join-step ul { margin: 16px 0 0; padding: 0; list-style: none; display: grid; gap: 8px; }
    .join-note li, .join-step li { color: var(--muted); font-size: 13px; line-height: 1.52; font-weight: 650; word-break: keep-all; }
    .join-note li::before, .join-step li::before { content: '✓'; color: var(--orange); font-weight: 950; margin-right: 8px; }
    .join-note-dark { background: var(--green); color: var(--paper); border-color: var(--line); }
    .join-note-dark .label { background: transparent; color: var(--paper); border-color: var(--paper); box-shadow: 2px 2px 0 rgba(255,253,248,.85); }
    .join-note-dark p, .join-note-dark li { color: rgba(255,253,248,.76); }
    .join-steps { display: grid; gap: 14px; }
    .join-step { display: grid; grid-template-columns: 76px 1fr; gap: 20px; padding: 24px; }
    .join-no { width: 52px; height: 52px; display: grid; place-items: center; border: 1.5px solid var(--line); background: var(--paper); color: var(--ink); font-size: 15px; font-weight: 950; box-shadow: 3px 3px 0 rgba(36,33,29,.12); }
    .join-step-final .join-no { background: var(--orange); color: var(--paper); }
    .join-step h3 { margin: 0 0 8px; font-size: 22px; font-weight: 950; letter-spacing: -.05em; }
    .join-step p { margin: 0; color: var(--muted); line-height: 1.58; font-size: 14px; font-weight: 650; word-break: keep-all; }
    @media (max-width: 980px) {
      :root { --section: 78px; }
      .nav-links { display: none; }
      .hero-grid, .about-grid, .section-head, .guide-grid { grid-template-columns: 1fr; }
      .partners { grid-template-columns: 1fr; gap: 14px; }
      .partners-copy { text-align: center; min-width: 0; }
      .hero { padding-top: 104px; min-height: auto; }
      .hero-grid { gap: 34px; }
      .poster-card { min-height: 430px; }
      .empathy-grid, .process { grid-template-columns: repeat(2, 1fr); }
      .club-grid { grid-template-columns: repeat(2, 1fr); }
      .club-note { grid-template-columns: 1fr; }
      .staff-summary { align-items: flex-start; flex-direction: column; }
      .journey-grid, .expected-grid { grid-template-columns: 1fr; }
      .benefits-grid { grid-template-columns: 1fr 1fr; }
      .partner-logo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .hero-chips { grid-template-columns: repeat(3, minmax(0, 1fr)); width: min(520px, 100%); }
      .info-chip { text-align: center; }
    }

    @media (max-width: 640px) {
      :root { --section: var(--mobile-section); }
      .container { width: min(100vw - 28px, 1180px); }
      .nav-inner { height: 56px; width: min(100vw - 24px, 1280px); }
      .brand { font-size: 19px; }
      .nav .btn { min-height: 36px; padding: 0 12px; font-size: 12px; max-width: none; overflow: visible; text-overflow: clip; }
      .nav .btn svg { display: none; }
      .nav-label-desktop { display: none; }
      .nav-label-mobile { display: inline; }

      .hero { padding: 82px 0 44px; align-items: flex-start; }
      .hero-grid { gap: 24px; }
      .label { font-size: 10px; padding: 6px 9px; box-shadow: 1.5px 1.5px 0 rgba(36,33,29,.18); }
      .hero h1 { margin: 12px 0 12px; font-size: clamp(40px, 14vw, 54px); line-height: .98; letter-spacing: -.08em; }
      .hero-lead { font-size: 15px; line-height: 1.5; margin-bottom: 18px; max-width: 330px; }
      .hero-lead .desktop-copy { display: none; }
      .hero-actions { display: grid; grid-template-columns: 1fr; gap: 9px; margin-bottom: 16px; }
      .hero-actions .btn { width: 100%; min-height: 46px; padding: 0 14px; font-size: 14px; white-space: normal; text-align: center; line-height: 1.35; }
      .hero-actions .btn-ghost { min-height: 42px; font-size: 13.5px; box-shadow: none; background: transparent; }
      .hero-chips { grid-template-columns: repeat(3, 1fr); gap: 7px; }
      .info-chip { padding: 8px 5px; font-size: 10.5px; letter-spacing: -.02em; }

      .poster-card { min-height: auto; max-width: 350px; margin: 0 auto; padding: 14px; box-shadow: 5px 5px 0 rgba(36,33,29,.12); }
      .poster-card::after { inset: 10px; }
      .poster-card::before { width: 180px; height: 180px; right: -72px; top: 44px; opacity: .48; }
      .poster-brand { font-size: 12px; }
      .poster-meta-small { font-size: 8px; line-height: 1.25; }
      .poster-number { margin-top: 18px; font-size: clamp(82px, 26vw, 104px); }
      .poster-title { margin-top: 10px; font-size: 19px; max-width: 210px; line-height: 1.12; }
      .poster-line { margin: 14px 0 10px; }
      .poster-bottom { grid-template-columns: 1fr 1fr; gap: 7px; }
      .poster-box { min-height: auto; padding: 9px; }
      .poster-box strong { font-size: 11px; margin-bottom: 4px; }
      .poster-box span { font-size: 9px; line-height: 1.28; }
      .poster-seal { width: 46px; height: 46px; right: 16px; bottom: 16px; font-size: 7px; border-width: 1.5px; }

      .section-head { gap: 14px; margin-bottom: 26px; }
      .kicker { font-size: 11px; }
      .section-title { font-size: clamp(30px, 9vw, 42px); line-height: 1.06; }
      .section-desc { font-size: 15px; line-height: 1.55; margin-top: 12px; }
      .tap-hint-pill {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        width: max-content;
        max-width: 100%;
        margin: 12px 0 0;
        padding: 7px 10px;
        border: 1px solid rgba(36,33,29,.16);
        border-radius: 999px;
        background: rgba(255,253,248,.82);
        color: var(--green);
        font-size: 12px;
        line-height: 1.25;
        font-weight: 900;
        letter-spacing: -.015em;
        word-break: keep-all;
        overflow-wrap: break-word;
      }
      .tap-hint-pill svg { width: 14px; height: 14px; flex: 0 0 auto; }
      .empathy-quote { padding-left: 16px; }
      .poster-bottom, .empathy-grid, .benefits-grid, .process, .expected-grid { grid-template-columns: 1fr; }
      .onboarding-card {
        grid-template-columns: 1fr;
        align-items: flex-start;
        gap: 14px;
        padding: 22px;
      }
      .onboarding-card .row-action {
        justify-self: flex-start;
        margin-top: 0;
      }
      .positive-program-meta { grid-template-columns: 1fr; padding: 12px; }
      .positive-program-meta span { white-space: normal; }
      .positive-facilitator-grid { grid-template-columns: 1fr; }
      .positive-facilitator-card {
        grid-template-columns: 80px minmax(0, 1fr);
        min-height: 104px;
        padding: 11px;
      }
      .positive-facilitator-card img {
        width: 80px;
        height: 84px;
      }
      .soft-card:hover { transform: none; }
      .empathy-card { min-height: auto; padding: 20px; }
      .empathy-card h3 { font-size: 18px; margin: 14px 0 7px; }
      .empathy-card p { font-size: 13px; line-height: 1.48; }

      .about h2 { font-size: clamp(31px, 9.2vw, 43px); line-height: 1.08; margin: 20px 0 16px; }
      .about p { font-size: 15px; line-height: 1.55; }
      .about-poster { min-height: 330px; padding: 20px; box-shadow: 6px 6px 0 var(--orange); }
      .about-poster h3 { font-size: clamp(34px, 11vw, 48px); }
      .about-poster-foot { font-size: 9px; }

      .benefit-card { min-height: auto; padding: 22px; }
      .icon-soft { width: 44px; height: 44px; margin-bottom: 16px; }
      .benefit-card h3 { font-size: 21px; margin-bottom: 8px; }
      .benefit-card p { font-size: 13px; line-height: 1.48; }

      .journey-card { min-height: auto; padding: 22px; box-shadow: 4px 4px 0 rgba(31,28,24,.15); }
      .journey-no { font-size: 72px; }
      .tag-row { margin: 14px 0 14px; }
      .journey-card h3 { font-size: 21px; }
      .journey-card p { font-size: 13px; line-height: 1.48; }
      .card-line { margin-top: 18px; }
      .schedule-mini { grid-template-columns: 1fr; gap: 18px; margin-top: 20px; padding: 20px; }
      .schedule-mini h3 { font-size: 21px; }
      .schedule-mini p { font-size: 13px; line-height: 1.5; }
      .schedule-list li { grid-template-columns: 1fr; gap: 4px; padding: 11px 0; }
      .schedule-list strong,
      .schedule-list span { font-size: 13px; }

      .tracks-split { gap: 32px; }
      .group-head { margin-bottom: 16px; }
      .row-card { padding: 18px 16px; gap: 14px; }
      .row-icon { width: 42px; height: 42px; }
      .icon-soft { width: 40px; height: 40px; }
      .icon-soft svg, .row-icon svg { width: 20px; height: 20px; }
      .btn svg { width: 15px; height: 15px; }
      .row-text h4 { font-size: 17px; line-height: 1.2; word-break: keep-all; }
      .row-text p { font-size: 12px; line-height: 1.45; word-break: keep-all; }
      .row-action span { display: none; }
      .grid-card { padding: 20px 14px; }
      .grid-card h4 { font-size: 15px; line-height: 1.25; word-break: keep-all; }
      .grid-card .row-action span { display: none; }

      .guide-grid { gap: 16px; }
      .process-step { min-height: auto; padding: 18px; }
      .process-no { width: 38px; height: 38px; margin-bottom: 12px; font-size: 14px; }
      .process-step h3 { font-size: 18px; }
      .info-box { padding: 20px; }

      .expected-card { min-height: auto; padding: 22px; }
      .expected-card strong { margin-bottom: 12px; font-size: 12px; }
      .expected-card h3 { font-size: 20px; }
      .expected-card p { font-size: 13px; line-height: 1.48; }

      details.faq { padding: 17px 18px; }
      details.faq summary { font-size: 14px; line-height: 1.35; }
      details.faq p { font-size: 13px; line-height: 1.5; }
      .ai-box { padding: 20px; }
      textarea { min-height: 104px; font-size: 14px; }
      .ai-quick-picks { gap: 7px; }
      .ai-chip { min-height: 31px; padding: 7px 10px; font-size: 11.5px; }
      .ai-box .hero-actions { display: block !important; }
      .ai-box .btn { width: 100%; }

      .apply h2 { font-size: clamp(36px, 11vw, 52px); line-height: 1.02; }
      .apply p { font-size: 15px; line-height: 1.52; margin-bottom: 24px; }
      .apply .btn { width: 100%; min-height: 52px; }
      .partners { margin-bottom: 20px; padding: 14px; }
      .partner-logo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
      .partner-logo-card { min-height: 50px; padding: 7px 10px; }
      .partner-logo-card img { max-width: 126px; max-height: 34px; }
      .partner-logo-card-wide img { max-width: 132px; max-height: 30px; }
      .partner-logo-card-square img { max-width: 72px; max-height: 34px; }
      .footer { font-size: 11px; padding: 32px 0; }
      .modal { padding: 20px; box-shadow: 0 12px 28px rgba(31,28,24,.08); }
      .modal h3 { font-size: 27px; }
      .modal-info-grid { grid-template-columns: 1fr; }
      .modal-info-block { padding: 16px; }
      .instructor-card { grid-template-columns: 1fr; padding: 14px; }
      .instructor-photo { min-height: 120px; }
      .staff-modal-card { grid-template-columns: 1fr; }
      .staff-modal-photo { width: 100%; height: auto; aspect-ratio: 4 / 5; }
      .modal-lead { font-size: 16px; }
    }
  
    @media (max-width: 980px) {
      .join-grid { grid-template-columns: 1fr; }
      .join-side { position: static; }
    }
    @media (max-width: 640px) {
      .join-note { padding: 20px; }
      .join-note h3 { font-size: 20px; }
      .join-step { grid-template-columns: 1fr; gap: 14px; padding: 20px; }
      .join-no { width: max-content; height: auto; padding: 8px 12px; font-size: 13px; }
      .join-step h3 { font-size: 19px; }
      .join-step p, .join-step li, .join-note p, .join-note li { font-size: 13px; line-height: 1.52; word-break: keep-all; }
    }
    
    /* Mobile visual tuning - safe override */
@media (max-width: 640px) {
  .hero {
    padding: 72px 0 38px;
  }

  .hero-grid {
    gap: 20px;
  }

  .hero h1 {
    font-size: clamp(36px, 13vw, 50px);
    line-height: 1;
  }

  .hero-lead {
    max-width: 320px;
    font-size: 14.5px;
    line-height: 1.52;
  }

  .poster-card {
    max-width: 330px;
    padding: 13px;
  }

  .poster-number {
    font-size: clamp(76px, 24vw, 98px);
  }

  .poster-title {
    max-width: 200px;
    font-size: 18px;
    line-height: 1.14;
  }

  .poster-box {
    padding: 8px;
  }

  .poster-box strong {
    font-size: 10.5px;
  }

  .poster-box span {
    font-size: 8.8px;
  }

  .section {
    padding: 52px 0;
  }

  .section-head {
    margin-bottom: 24px;
  }

  .section-title {
    font-size: clamp(29px, 8.6vw, 40px);
  }

  .join-grid {
    gap: 14px;
  }

  .join-note,
  .join-step {
    padding: 18px;
  }

  .join-step h3 {
    font-size: 18px;
  }

  .join-step p,
  .join-step li,
  .join-note p,
  .join-note li {
    font-size: 12.8px;
    line-height: 1.5;
  }
}
/* Club activity mobile tuning */
@media (max-width: 640px) {
  .club-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .club-note {
    padding: 20px;
    gap: 12px;
    margin-bottom: 14px;
  }

  .club-note h3 {
    font-size: 20px;
  }

  .club-note p {
    font-size: 13px;
    line-height: 1.52;
  }

  .club-card {
    min-height: auto;
    padding: 20px;
  }

  .club-card h3 {
    font-size: 19px;
  }

  .club-card p {
    font-size: 13px;
    line-height: 1.5;
  }
}

/* Program structure & care system refinements */
.program-card { display: flex; flex-direction: column; cursor: pointer; }
.program-action { align-self: flex-start; margin-top: auto; padding-top: 0; }
.program-examples + .program-action { margin-top: 18px; }
.club-card-dark .program-action {
  border-color: rgba(255,253,248,.22);
  background: rgba(255,253,248,.12);
  color: rgba(255,253,248,.9);
}
.program-card:hover .program-action {
  border-color: rgba(24,59,45,.22);
  background: rgba(255,253,248,.78);
  color: var(--green);
}
.club-card-dark:hover .program-action {
  border-color: rgba(255,253,248,.3);
  background: rgba(255,253,248,.16);
  color: var(--paper);
}
.program-examples {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 14px;
}
.program-examples span {
  display: inline-flex;
  padding: 5px 8px;
  border: 1px solid rgba(255,253,248,.3);
  border-radius: 999px;
  color: rgba(255,253,248,.86);
  background: rgba(255,253,248,.1);
  font-size: 10px;
  line-height: 1.2;
  font-weight: 900;
}
.club-card:not(.club-card-dark) .program-examples span {
  border-color: rgba(36,33,29,.18);
  color: var(--muted);
  background: rgba(247,241,232,.76);
}




@media (max-width: 900px) {
  .day-hero {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .day-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .day-hero {
    padding: 22px 20px;
    margin-bottom: 14px;
  }

  .day-hero h3 {
    font-size: 23px;
  }

  .day-hero p {
    font-size: 13px;
    line-height: 1.55;
  }

  .day-grid {
    grid-template-columns: 1fr;
  }

  .day-card {
    min-height: auto;
    padding: 20px;
  }

  .day-card h3 {
    font-size: 20px;
  }
}

/* Mobile line-break and compact card tuning - safe override */
@media (max-width: 640px) {
  /* 한국어 문장/제목이 글자 단위로 끊기지 않도록 보정 */
  .hero h1,
  .section-title,
  .about h2,
  .poster-title,
  .group-head h3,
  .row-text h4,
  .grid-card h4,
  .club-note h3,
  .club-card h3,
  .day-hero h3,
  .day-card h3,
  .benefit-card h3,
  .expected-card h3,
  .join-note h3,
  .join-step h3,
  details.faq summary {
    word-break: keep-all;
    overflow-wrap: break-word;
    text-wrap: balance;
  }

  /* 모바일에서 너무 과한 자간/폰트 크기로 생기는 어색한 줄바꿈 완화 */
  .hero h1 {
    font-size: clamp(34px, 11.8vw, 46px);
    line-height: 1.04;
    letter-spacing: -0.065em;
    max-width: 335px;
  }

  .section-title {
    font-size: clamp(27px, 7.4vw, 36px);
    line-height: 1.14;
    letter-spacing: -0.052em;
  }

  .about h2 {
    font-size: clamp(28px, 8vw, 38px);
    line-height: 1.14;
    letter-spacing: -0.055em;
  }

  .section-desc,
  .hero-lead,
  .about p,
  .club-note p,
  .day-hero p,
  .join-step p,
  .join-note p,
  details.faq p {
    word-break: keep-all;
    overflow-wrap: break-word;
  }

  /* CTA 버튼 문구가 애매하게 두 줄로 갈라지지 않도록 보정 */
  .hero-actions .btn {
    white-space: nowrap;
    font-size: 13.5px;
    letter-spacing: -0.035em;
  }

  .hero-actions .btn-ghost {
    font-size: 13px;
  }

  /* Redefine Lab: 모바일에서도 2열 2줄 유지 + 카드 높이 압축 */
  .lab-tracks {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px;
  }

  .grid-card {
    min-height: 132px;
    padding: 15px 9px 14px;
    gap: 7px;
    justify-content: center;
  }

  .grid-card .row-icon {
    width: 34px;
    height: 34px;
    border-radius: 10px;
  }

  .grid-card .row-icon svg {
    width: 17px;
    height: 17px;
  }

  .grid-card h4 {
    font-size: 14px;
    line-height: 1.18;
    letter-spacing: -0.025em;
    white-space: nowrap;
  }

  .grid-card p {
    max-width: 12em;
    margin: 0 auto;
    font-size: 10.8px;
    line-height: 1.35;
    letter-spacing: -0.025em;
    word-break: keep-all;
    overflow-wrap: break-word;
  }

  .grid-card .row-action {
    margin-top: 3px;
    font-size: 10px;
  }

  /* 메인 트랙 카드도 모바일에서 과하게 넓고 높아 보이지 않게 정리 */
  .row-card {
    padding: 15px 14px;
    gap: 12px;
  }

  .row-text h4 {
    font-size: 16.5px;
    letter-spacing: -0.035em;
  }

  .row-text p {
    font-size: 11.5px;
    line-height: 1.38;
  }

  .row-icon {
    width: 38px;
    height: 38px;
  }

  .row-icon svg {
    width: 18px;
    height: 18px;
  }

  /* 카드형 섹션 제목 줄바꿈 안정화 */
  .club-card h3,
  .day-card h3,
  .benefit-card h3,
  .expected-card h3,
  .join-step h3 {
    letter-spacing: -0.04em;
  }

  /* 긴 카드 설명은 줄 수를 제한해 모바일 스크롤 피로도 완화 */
  .program-card p,
  .day-card p {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
}

@media (max-width: 390px) {
  .container {
    width: min(100vw - 24px, 1180px);
  }

  .section-title {
    font-size: clamp(26px, 7.2vw, 33px);
  }

  .hero h1 {
    font-size: clamp(33px, 11.2vw, 44px);
  }

  .lab-tracks {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 9px;
  }

  .grid-card {
    min-height: 124px;
    padding: 14px 8px;
  }

  .grid-card h4 {
    font-size: 13.3px;
  }

  .grid-card p {
    font-size: 10.4px;
  }
}

/* =========================================================
   Desktop line-break tuning
   - 웹 화면에서 제목/설명 줄바꿈이 너무 짧게 끊기는 현상 보정
   - 모바일 튜닝은 기존 규칙을 유지
   ========================================================= */
@media (min-width: 981px) {
  .container {
    padding-left: 28px;
    padding-right: 28px;
  }

  .section-head {
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 46px;
    align-items: start;
    margin-bottom: 40px;
  }

  .section-head > div {
    max-width: 900px;
  }

  .section-title {
    font-size: clamp(34px, 3.75vw, 54px);
    line-height: 1.08;
    letter-spacing: -0.058em;
    word-break: keep-all;
    overflow-wrap: normal;
    text-wrap: balance;
  }

  .section-desc {
    max-width: 860px;
    font-size: 16px;
    line-height: 1.62;
    word-break: keep-all;
    overflow-wrap: normal;
  }

  .hero h1 {
    font-size: clamp(56px, 6.6vw, 92px);
    line-height: .96;
    letter-spacing: -0.078em;
    word-break: keep-all;
    overflow-wrap: normal;
  }

  .hero-lead {
    max-width: 650px;
    font-size: clamp(17px, 1.45vw, 20px);
    line-height: 1.58;
    word-break: keep-all;
    overflow-wrap: normal;
  }

  .about h2 {
    font-size: clamp(38px, 4.55vw, 62px);
    line-height: 1.08;
    letter-spacing: -0.065em;
    word-break: keep-all;
    overflow-wrap: normal;
  }

  .about p {
    max-width: 680px;
    word-break: keep-all;
    overflow-wrap: normal;
  }

  .poster-title {
    font-size: clamp(25px, 2.65vw, 36px);
    line-height: 1.1;
    letter-spacing: -0.064em;
    word-break: keep-all;
    overflow-wrap: normal;
  }

  .empathy-quote {
    max-width: 900px;
  }

  .club-note {
    grid-template-columns: minmax(260px, .78fr) minmax(0, 1.22fr);
  }

  .day-hero {
    grid-template-columns: minmax(320px, .82fr) minmax(0, 1.18fr);
  }

  .day-hero h3 {
    max-width: 560px;
    font-size: clamp(25px, 2.55vw, 35px);
    line-height: 1.12;
    letter-spacing: -0.058em;
    word-break: keep-all;
    overflow-wrap: normal;
  }

  .day-hero p,
  .club-note p,
  .join-step p,
  .join-note p,
  .benefit-card p,
  .expected-card p,
  .day-card p,
  .club-card p {
    word-break: keep-all;
    overflow-wrap: normal;
  }

  .benefit-card h3,
  .journey-card h3,
  .club-card h3,
  .day-card h3,
  .expected-card h3,
  .join-step h3,
  .join-note h3,
  .row-text h4,
  .grid-card h4 {
    word-break: keep-all;
    overflow-wrap: normal;
    text-wrap: balance;
  }

  .journey-card p,
  .day-card p,
  .club-card p {
    line-height: 1.55;
  }
}

@media (min-width: 1180px) {
  .section-title {
    font-size: clamp(38px, 3.45vw, 52px);
  }

  .section-head {
    grid-template-columns: 230px minmax(0, 1fr);
  }

  .hero-grid {
    grid-template-columns: minmax(0, 1.04fr) minmax(360px, .84fr);
  }
}
/* Mobile nav / anchor position tuning */
@media (max-width: 640px) {
  .nav {
    position: sticky;
    top: 0;
    z-index: 500;
  }

  .hero {
    padding-top: 48px;
  }

  #about,
  #journey,
  #tracks,
  #clubs,
  #guides,
  #expected,
  #redefine-day,
  #info,
  #faq,
  #ai-guide,
  #apply {
    scroll-margin-top: 88px;
  }
}
/* Mobile menu */
.nav-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.nav-more {
  display: none;
  min-height: 38px;
  padding: 0 12px;
  font-size: 12px;
}

.mobile-menu {
  display: none;
}

.mobile-menu-inner {
  width: min(100% - 28px, 480px);
  margin: 0 auto;
  padding: 12px;
  background: rgba(255, 253, 248, 0.96);
  border: 1px solid rgba(36, 33, 29, 0.18);
  border-radius: 18px;
  box-shadow: var(--shadow-soft);
}

.mobile-menu-label {
  display: block;
  margin: 2px 4px 10px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--green);
}

.mobile-menu a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 42px;
  padding: 0 12px;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 800;
  color: var(--ink);
  border: 1px solid transparent;
}

.mobile-menu a:hover {
  border-color: rgba(36, 33, 29, 0.14);
  background: rgba(255, 255, 255, 0.75);
}

.mobile-menu a::after {
  content: "↗";
  font-size: 12px;
  color: var(--orange);
}

/* Evidence section */
.evidence {
  background:
    linear-gradient(180deg, rgba(24, 59, 45, 0.035), rgba(255, 253, 248, 0)),
    var(--paper);
}

.evidence-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.evidence-stat {
  padding: 24px;
  min-height: 210px;
}

.evidence-stat strong {
  display: block;
  margin-bottom: 20px;
  color: var(--orange);
  font-size: clamp(30px, 4vw, 48px);
  line-height: 0.95;
  letter-spacing: -0.08em;
}

.evidence-stat h3 {
  margin-bottom: 10px;
  color: var(--ink);
  font-size: 18px;
  font-weight: 950;
  letter-spacing: -0.04em;
}

.evidence-stat p {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
  word-break: keep-all;
}

.voice-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 14px;
}

.voice-card {
  padding: 24px;
  min-height: 180px;
}

.voice-card span {
  display: block;
  margin-bottom: 16px;
  color: var(--green);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: 0.13em;
}

.voice-card p {
  color: var(--ink);
  font-size: 18px;
  font-weight: 850;
  line-height: 1.55;
  letter-spacing: -0.045em;
  word-break: keep-all;
}

.evidence-note {
  margin-top: 16px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.6;
  word-break: keep-all;
}

/* Mobile nav / anchor position tuning */
@media (max-width: 640px) {
  .nav {
    position: sticky;
    top: 0;
    z-index: 600;
  }

  .nav-inner {
    height: 60px;
  }

  .nav-links {
    display: none;
  }

  .nav-actions {
    gap: 6px;
  }

  .nav-more {
    display: inline-flex;
  }

  .nav-apply {
    min-height: 38px;
    padding: 0 12px;
    font-size: 12px;
  }

  .mobile-menu {
    display: block;
    max-height: 0;
    overflow: hidden;
    padding-bottom: 0;
    opacity: 0;
    transition: max-height 0.28s ease, opacity 0.2s ease, padding-bottom 0.2s ease;
  }

  .mobile-menu.open {
    max-height: 360px;
    opacity: 1;
    padding-bottom: 12px;
  }

  .hero {
    padding-top: 42px;
  }

  #about,
  #journey,
  #tracks,
  #clubs,
  #guides,
  #expected,
  #evidence,
  #redefine-day,
  #info,
  #faq,
  #ai-guide,
  #apply {
    scroll-margin-top: 92px;
  }

  .evidence-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .evidence-stat {
    min-height: auto;
    padding: 16px 14px;
  }

  .evidence-stat strong {
    margin-bottom: 12px;
    font-size: 28px;
    letter-spacing: -0.07em;
  }

  .evidence-stat h3 {
    font-size: 14px;
    line-height: 1.25;
  }

  .evidence-stat p {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    font-size: 11.5px;
    line-height: 1.45;
  }

  .voice-grid {
    grid-template-columns: 1fr;
    gap: 8px;
    margin-top: 8px;
  }

  .voice-card {
    min-height: auto;
    padding: 18px;
  }

  .voice-card span {
    margin-bottom: 10px;
    font-size: 10px;
  }

  .voice-card p {
    font-size: 15px;
    line-height: 1.48;
  }

  .evidence-note {
    font-size: 11px;
  }
}
/* Disabled external link buttons */
.btn-disabled,
.btn-disabled:hover {
  cursor: not-allowed;
  opacity: 0.86;
  transform: none;
}

.btn-disabled:hover {
  box-shadow: 4px 4px 0 rgba(36, 33, 29, .2);
}

.btn-ghost.btn-disabled:hover {
  box-shadow: none;
}

/* Categorized FAQ */
.faq-category-wrap {
  max-width: 840px;
  margin: 0 auto 16px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.faq-tab {
  min-height: 46px;
  padding: 0 14px;
  border: 1.5px solid rgba(36, 33, 29, .22);
  border-radius: 12px;
  background: rgba(255, 253, 248, .76);
  color: var(--muted);
  font-family: inherit;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: -.02em;
  cursor: pointer;
  transition: transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.faq-tab:hover {
  transform: translateY(-2px);
  border-color: rgba(36, 33, 29, .42);
  box-shadow: 3px 3px 0 rgba(36, 33, 29, .1);
}

.faq-tab.active {
  background: var(--green);
  border-color: var(--line);
  color: var(--paper);
  box-shadow: 4px 4px 0 rgba(36, 33, 29, .16);
}

.faq-category-list {
  min-height: 430px;
}

.faq-panel {
  display: none;
  gap: 9px;
}

.faq-panel.active {
  display: grid;
}

.faq-category-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 4px;
  padding: 14px 18px;
  border: 1px solid rgba(36, 33, 29, .14);
  border-radius: 14px;
  background: rgba(255, 253, 248, .55);
}

.faq-category-head span {
  color: var(--orange);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .12em;
}

.faq-category-head strong {
  color: var(--ink);
  font-size: 15px;
  font-weight: 950;
  letter-spacing: -.035em;
  word-break: keep-all;
}

@media (max-width: 640px) {
  .faq-category-wrap {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    margin-bottom: 12px;
  }

  .faq-tab {
    min-height: 40px;
    padding: 0 10px;
    font-size: 13px;
  }

  .faq-category-list {
    min-height: auto;
  }

  .faq-category-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
    padding: 13px 15px;
  }

  .faq-category-head span {
    font-size: 10px;
  }

  .faq-category-head strong {
    font-size: 14px;
  }
}

/* Hero poster final clean version
   - 히어로 우측 포스터는 정보표가 아니라 브랜드 포스터 역할로 정리
   - 장식 요소는 연한 원형 배경만 남기고, 오렌지 선/도트/스탬프는 제거
*/
.poster-card-clean {
  min-height: 500px;
  padding: 30px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.poster-card-clean::before {
  width: 260px;
  height: 260px;
  right: -86px;
  top: 112px;
  background: rgba(217, 95, 36, 0.14);
  opacity: 1;
  z-index: 0;
}

.poster-card-clean::after {
  inset: 18px;
  border-color: rgba(36, 33, 29, 0.20);
}

.poster-card-clean .poster-top,
.poster-card-clean .poster-number,
.poster-card-clean .poster-title,
.poster-card-clean .poster-line,
.poster-card-clean .poster-bottom {
  position: relative;
  z-index: 2;
}

.poster-card-clean .poster-number {
  margin-top: 44px;
  font-size: clamp(126px, 15vw, 178px);
  line-height: 0.78;
  letter-spacing: -0.11em;
}

.poster-card-clean .poster-title {
  margin-top: 26px;
  max-width: 360px;
  font-size: clamp(26px, 2.65vw, 36px);
  line-height: 1.12;
  letter-spacing: -0.062em;
  word-break: keep-all;
  text-wrap: balance;
}

.poster-card-clean .poster-line {
  margin: 26px 0 16px;
}

.poster-card-clean .poster-bottom {
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  padding-right: 0;
}

.poster-card-clean .poster-box {
  min-height: 86px;
  padding: 14px;
  background: rgba(247, 241, 232, 0.66);
}

.poster-card-clean .poster-box strong {
  display: block;
  margin-bottom: 7px;
  color: var(--ink);
  font-size: 13px;
  line-height: 1.22;
  font-weight: 950;
  word-break: keep-all;
}

.poster-card-clean .poster-box span {
  display: block;
  color: var(--muted);
  font-size: 11.5px;
  line-height: 1.38;
  font-weight: 760;
  word-break: keep-all;
}

/* 이전 히어로 포스터 장식은 최종안에서 사용하지 않음 */
.poster-card-clean .poster-seal,
.poster-card-clean .poster-corner-accent,
.poster-card-refined .poster-seal,
.poster-card-refined .poster-corner-accent,
.poster-accent,
.poster-accent-bar,
.poster-accent-dot {
  display: none !important;
}

@media (max-width: 640px) {
  .poster-card-clean {
    min-height: auto;
    max-width: 330px;
    padding: 16px;
  }

  .poster-card-clean::before {
    width: 168px;
    height: 168px;
    right: -62px;
    top: 78px;
  }

  .poster-card-clean::after {
    inset: 10px;
  }

  .poster-card-clean .poster-number {
    margin-top: 26px;
    font-size: clamp(82px, 26vw, 108px);
  }

  .poster-card-clean .poster-title {
    margin-top: 16px;
    max-width: 250px;
    font-size: 19px;
    line-height: 1.12;
  }

  .poster-card-clean .poster-line {
    margin: 18px 0 10px;
  }

  .poster-card-clean .poster-bottom {
    grid-template-columns: 1fr 1fr;
    gap: 7px;
  }

  .poster-card-clean .poster-box {
    min-height: auto;
    padding: 9px;
  }

  .poster-card-clean .poster-box strong {
    font-size: 10.5px;
    margin-bottom: 5px;
  }

  .poster-card-clean .poster-box span {
    font-size: 9px;
    line-height: 1.32;
  }
}

/* Mobile spacing final override */
@media (max-width: 640px) {
  .container {
    width: 100%;
    max-width: 1180px;
    padding-left: 22px;
    padding-right: 22px;
  }

  .nav-inner {
    width: 100%;
    max-width: 1280px;
    padding-left: 18px;
    padding-right: 18px;
  }

  .poster-card,
  .poster-card-clean {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
  }

  .hero {
    max-width: 100%;
    overflow-x: hidden;
  }

  .hero-grid,
  .hero-copy,
  .hero-actions,
  .hero-chips {
    width: 100%;
    max-width: 100%;
  }

  .hero-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .hero-actions {
    grid-template-columns: minmax(0, 1fr);
  }

  .hero-actions .btn {
    min-width: 0;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .hero-chips {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .hero-chips .info-chip {
    min-width: 0;
    white-space: nowrap;
  }

  .hero .poster-card-clean {
    overflow: hidden;
  }

  #tracks .row-action span,
  #tracks .grid-card .row-action span,
  #clubs .program-action span {
    display: inline-flex;
    align-items: center;
    line-height: 1;
  }

  #tracks .row-card {
    flex-wrap: wrap;
    align-items: flex-start;
  }

  #tracks .row-card .row-action,
  #tracks .grid-card .row-action {
    width: auto;
    margin-top: 8px;
  }

  #tracks .grid-card .row-action {
    align-self: center;
  }

  #clubs .program-card .program-action {
    width: auto;
    margin-top: auto;
  }

  #clubs .program-card .program-examples + .program-action {
    margin-top: 18px;
  }

  #clubs .program-card .program-examples {
    margin-bottom: 0;
  }

  .modal {
    width: calc(100% - 32px);
    max-width: 460px;
    max-height: 82vh;
    max-height: 82svh;
    overflow-y: auto;
    padding: 0;
    border-radius: 18px 18px 12px 12px;
    box-shadow: 0 -8px 24px rgba(31,28,24,.08);
  }

  .modal-backdrop {
    align-items: end;
    justify-items: center;
    padding: 0 0 max(14px, env(safe-area-inset-bottom));
  }

  .modal-backdrop.show .modal {
    animation: modalSheetUp .24s ease-out;
  }

  .modal-top {
    position: sticky;
    top: 0;
    z-index: 2;
    align-items: flex-start;
    margin: 0;
    padding: 18px 18px 14px;
    background: var(--paper);
    border-bottom: 1px solid rgba(36,33,29,.07);
  }

  .modal-body {
    padding: 18px;
  }

  .close-btn {
    flex: 0 0 auto;
  }
}

@keyframes modalSheetUp {
  from { transform: translateY(18px); opacity: .86; }
  to { transform: translateY(0); opacity: 1; }
}

@media (max-width: 390px) {
  .container {
    padding-left: 20px;
    padding-right: 20px;
  }

  .nav-inner {
    padding-left: 16px;
    padding-right: 16px;
  }

  .modal {
    width: calc(100% - 28px);
  }
}
/* Evidence section refinement */
.evidence .section-head {
  margin-bottom: 26px;
}

.evidence-overview {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 24px;
  align-items: center;
  margin-bottom: 18px;
  padding: 26px 28px;
  border-color: rgba(217, 95, 36, 0.28);
  background:
    radial-gradient(circle at 96% 10%, rgba(217, 95, 36, 0.12), transparent 24%),
    var(--paper);
}

.evidence-overview-label {
  display: block;
  margin-bottom: 8px;
  color: var(--green);
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.evidence-overview > div:first-child > strong {
  display: block;
  color: var(--orange);
  font-size: clamp(42px, 5vw, 66px);
  line-height: .95;
  letter-spacing: -.07em;
  font-weight: 950;
}

.evidence-overview p {
  margin: 0;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.68;
  font-weight: 700;
  word-break: keep-all;
}

.evidence-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  align-items: stretch;
}

.evidence-stat {
  min-height: 230px;
  padding: 26px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.evidence-stat-label {
  display: inline-flex;
  width: max-content;
  margin-bottom: 16px;
  padding: 5px 8px;
  border: 1px solid rgba(36, 33, 29, 0.16);
  background: rgba(247, 241, 232, 0.72);
  color: var(--green);
  font-size: 10px;
  line-height: 1.1;
  font-weight: 950;
  letter-spacing: .1em;
}

.evidence-stat strong {
  display: block;
  margin-bottom: 18px;
  color: var(--orange);
  font-size: clamp(38px, 4.2vw, 56px);
  line-height: .95;
  letter-spacing: -.07em;
  font-weight: 950;
}

.evidence-stat h3 {
  margin: 0 0 10px;
  color: var(--ink);
  font-size: 21px;
  line-height: 1.2;
  letter-spacing: -.055em;
  font-weight: 950;
  word-break: keep-all;
}

.evidence-stat p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.58;
  font-weight: 650;
  word-break: keep-all;
}

.voice-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 16px;
}

.voice-card {
  min-height: 150px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.voice-card span {
  display: block;
  margin-bottom: 16px;
  color: var(--green);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .12em;
}

.voice-card p {
  margin: 0;
  color: var(--ink);
  font-size: 18px;
  line-height: 1.48;
  letter-spacing: -.045em;
  font-weight: 900;
  word-break: keep-all;
}

.evidence-note {
  margin: 18px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
  font-weight: 650;
}

@media (max-width: 900px) {
  .evidence-overview {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .evidence-grid,
  .voice-grid {
    grid-template-columns: 1fr;
  }

  .evidence-stat {
    min-height: auto;
  }

  .voice-card {
    min-height: auto;
  }
}

@media (max-width: 640px) {
  .evidence-overview {
    padding: 22px;
    margin-bottom: 14px;
  }

  .evidence-overview > div:first-child > strong {
    font-size: 46px;
  }

  .evidence-stat {
    padding: 22px;
  }

  .evidence-stat strong {
    font-size: 42px;
  }

  .voice-card {
    padding: 22px;
  }

  .voice-card p {
    font-size: 16px;
  }
}
.evidence-overview > div:first-child > strong {
  display: block;
  color: var(--orange);
  font-size: clamp(42px, 5vw, 66px);
  line-height: .95;
  letter-spacing: -.07em;
  font-weight: 950;
}

/* Evidence overview copy balance */
.evidence-overview-copy {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.evidence-overview-copy strong {
  display: block;
  color: var(--ink);
  font-size: 17px;
  line-height: 1.35;
  letter-spacing: -0.025em;
  font-weight: 900;
}

.evidence-overview-copy p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.65;
  font-weight: 650;
  word-break: keep-all;
}
/* Evidence overview text emphasis */
.evidence-overview-copy {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.evidence-overview-copy strong {
  display: block;
  color: var(--ink);
  font-size: 18px;
  line-height: 1.35;
  letter-spacing: -0.035em;
  font-weight: 950;
}

.evidence-overview-copy p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.62;
  font-weight: 650;
  word-break: keep-all;
}

/* Final evidence overview selector fix */
.evidence-overview > div:first-child > strong {
  display: block;
  color: var(--orange);
  font-size: clamp(42px, 5vw, 66px);
  line-height: .95;
  letter-spacing: -.07em;
  font-weight: 950;
}

.evidence-overview-copy strong {
  display: block;
  color: var(--ink);
  font-size: 18px;
  line-height: 1.35;
  letter-spacing: -0.035em;
  font-weight: 950;
}

.evidence-overview-copy p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.62;
  font-weight: 650;
  word-break: keep-all;
}

@media (max-width: 640px) {
  .evidence-overview > div:first-child > strong {
    font-size: 46px;
  }
}
/* Evidence overview copy size tuning */
.evidence-overview-copy strong {
  font-size: 30px;
  line-height: 1.25;
  letter-spacing: -0.045em;
  font-weight: 950;
}

.evidence-overview-copy p {
  margin-top: 4px;
  font-size: 15px;
  line-height: 1.6;
  font-weight: 700;
}
/* Softer card system: reduce closed borders and separate structure with shadow. */
.soft-card {
  border-color: rgba(36, 33, 29, 0.075);
  box-shadow:
    0 14px 34px rgba(31, 28, 24, 0.052),
    0 1px 0 rgba(255, 255, 255, 0.62) inset;
}

.soft-card:hover {
  border-color: rgba(24, 59, 45, 0.16);
  box-shadow:
    0 18px 46px rgba(31, 28, 24, 0.075),
    0 1px 0 rgba(255, 255, 255, 0.7) inset;
}

/* Brutal cards keep hierarchy without the original heavy outline. */
.brutal-card {
  border-width: 1px;
  border-color: rgba(36, 33, 29, 0.12);
  box-shadow: 0 18px 42px rgba(31, 28, 24, 0.066);
}

/* Section note cards: avoid a boxed-in feeling. */
.club-note,
.day-hero,
.evidence-overview {
  border-color: rgba(36, 33, 29, 0.085);
  box-shadow:
    0 18px 44px rgba(31, 28, 24, 0.052),
    0 1px 0 rgba(255, 255, 255, 0.64) inset;
}

/* FAQ: lighter closed borders */
details.faq {
  border-color: rgba(36, 33, 29, 0.09);
  box-shadow: 0 10px 26px rgba(31, 28, 24, 0.035);
}

details.faq:hover {
  border-color: rgba(24, 59, 45, 0.16);
  box-shadow: 0 14px 34px rgba(31, 28, 24, 0.055);
}

/* Small chips and tags: keep labels legible with quieter separators. */
.info-chip,
.tag,
.club-tag,
.evidence-stat-label {
  border-color: rgba(36, 33, 29, 0.115);
}

.club-card-dark .club-tag {
  border-color: rgba(255, 253, 248, 0.2);
}

/* Journey cards: let the progress line and depth carry the structure. */
.journey-card.brutal-card {
  gap: 24px;
  padding: 29px;
  border-width: 1px;
  border-color: rgba(36, 33, 29, 0.07);
  background: linear-gradient(180deg, var(--paper), rgba(247, 241, 232, 0.54));
  box-shadow:
    0 18px 42px rgba(31, 28, 24, 0.06),
    0 1px 0 rgba(255, 255, 255, 0.62) inset;
}

.journey-card .tag {
  border-width: 1px;
  border-color: rgba(36, 33, 29, 0.11);
}

.journey-card .card-line {
  height: 3px;
  opacity: 0.78;
}

/* Action pills: keep text and arrow optically centered. */
.row-action,
.program-action {
  min-height: 30px;
  padding: 0 11px;
  align-items: center;
  gap: 5px;
  line-height: 1;
}

.row-action span,
.program-action span {
  display: inline-flex;
  align-items: center;
  line-height: 1;
}

.row-action svg,
.row-action i,
.program-action svg,
.program-action i {
  display: block;
  width: 12px;
  height: 12px;
  flex: 0 0 12px;
  line-height: 1;
  transform: translateY(-0.5px);
}

#clubs .program-card .program-action {
  margin-top: 16px;
}

#clubs .program-card .program-examples {
  margin-top: 14px;
  margin-bottom: 0;
}

#clubs .program-card .program-examples + .program-action {
  margin-top: 12px;
}

/* Mobile: make the softened cards feel flatter and cleaner */
@media (max-width: 640px) {
  .soft-card,
  .brutal-card,
  .club-note,
  .day-hero,
  .evidence-overview,
  details.faq {
    border-color: rgba(36, 33, 29, 0.075);
    box-shadow: 0 10px 24px rgba(31, 28, 24, 0.04);
  }

  .soft-card:hover {
    box-shadow: 0 10px 24px rgba(31, 28, 24, 0.04);
  }

  .info-chip,
  .tag,
  .club-tag,
  .evidence-stat-label {
    border-color: rgba(36, 33, 29, 0.1);
  }

  .club-card-dark .club-tag {
    border-color: rgba(255, 253, 248, 0.18);
  }

  .journey-card.brutal-card {
    gap: 20px;
    padding: 22px;
    border-color: rgba(36, 33, 29, 0.065);
    box-shadow: 0 10px 24px rgba(31, 28, 24, 0.04);
  }

  .journey-card .tag {
    border-color: rgba(36, 33, 29, 0.1);
  }

  .journey-card .card-line {
    height: 2px;
    opacity: 0.74;
  }

  .row-action,
  .program-action {
    min-height: 30px;
    padding: 0 10px;
  }

  #clubs .program-card .program-action {
    margin-top: 14px;
  }

  #clubs .program-card .program-examples + .program-action {
    margin-top: 10px;
  }

  .optional-program-note {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 17px 18px;
  }

  .optional-program-note span,
  .optional-program-note p {
    font-size: 13px;
  }
}

@media (max-width: 430px) {
  .hero {
    max-width: 100vw;
  }

  .hero-grid {
    overflow-x: hidden;
  }

  .poster-card,
  .poster-card-clean {
    width: calc(100% - 6px);
    max-width: 100%;
    margin-right: 6px;
  }
}
