/* =========================================================
   제1회 로봇 해커톤 — 공유 스타일시트
   모든 (미래) 하위 페이지가 이 파일 하나를 공유한다.
   디자인 토큰만 :root에서 바꾸면 전체 톤이 바뀐다.
   ========================================================= */

:root {
  /* 색 — 방향 1: 절제된 다크 + 단색 포인트 (액센트만 시안 D 팔레트로 정렬) */
  --bg:        #0d1016;
  --bg-elev:   #141925;
  --bg-card:   #161c29;
  --border:    #232c3d;
  --border-soft:#1b2230;
  --text:      #f3f5f9;
  --text-mut:  #aeb9c9;
  --text-dim:  #76849a;
  --accent:    #5b82ff;
  --accent-hi: #7c9cff;
  --accent-dim:#26355a;
  --header-bg: rgba(11,14,21,0.82);
  --cta-grad:  linear-gradient(160deg, #141c33, #11151d);
  color-scheme: dark;

  /* ===== 시안 D 디자인 시스템 토큰 (다크 기본 · body.v2 컴포넌트 전용) ===== */
  --ink:#dfe4ee; --head:#f3f6fc; --sub:#9aa4b8; --dim:#69728a;
  --paper:#0b0e15; --band:#10131d; --card:#161b28; --line:#283040; --line-2:#1d2331;
  --accent-2:#3f66f0; --navy:#1f2a44; --yellow:#f7c948; --green:#2bc48c;
  --r:14px; --r-lg:20px;

  /* 타이포 */
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Apple SD Gothic Neo",
          "Pretendard", "Malgun Gothic", Roboto, sans-serif;
  --mono: ui-monospace, "SF Mono", Menlo, monospace;

  /* 간격 / 형태 */
  --maxw: 1140px;
  --radius: 10px;
  --radius-lg: 16px;
  --gap: 24px;
  --section-y: 96px;
}

/* ---------- 라이트 테마 (data-theme="light") ---------- */
:root[data-theme="light"] {
  --bg:        #f7f9fc;   /* 부드러운 회백색 페이지 (쌩백색 X) */
  --bg-elev:   #eef2f8;   /* 한 단계 더 들어간 섹션 */
  --bg-card:   #ffffff;   /* 카드 */
  --border:    #e4e9f0;
  --border-soft:#eef1f6;
  --text:      #141821;   /* 순흑 대신 부드러운 슬레이트 */
  --text-mut:  #4a5261;
  --text-dim:  #8b94a4;
  --accent:    #3b64f0;
  --accent-hi: #2447c9;
  --accent-dim:#d5e0fb;
  --header-bg: rgba(247,249,252,0.85);
  --cta-grad:  linear-gradient(160deg, #e9eef7, #e0e8f3);
  color-scheme: light;

  /* ===== 시안 D 디자인 시스템 토큰 (라이트 오버라이드) ===== */
  --ink:#141821; --head:#111730; --sub:#4a5261; --dim:#8b94a4;
  --paper:#f7f9fc; --band:#eef2f8; --card:#ffffff; --line:#e4e9f0; --line-2:#eef1f6;
  --accent-2:#2447c9; --navy:#1f2a44; --yellow:#f7c948; --green:#22b07d;
}
:root[data-theme="light"] .card,
:root[data-theme="light"] .stat,
:root[data-theme="light"] .track,
:root[data-theme="light"] .mentor,
:root[data-theme="light"] .tier,
:root[data-theme="light"] .partner-chip { box-shadow: 0 1px 2px rgba(20,30,60,.04); }

/* 테마 전환 부드럽게 */
body, .site-header, .card, .stat, .track, .mentor, .partner-chip,
.cta-band { transition: background-color .25s ease, border-color .25s ease, color .25s ease; }

/* ---------- 리셋 ---------- */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
  word-break: keep-all;          /* 한글 단어 단위 줄바꿈(음절 깨짐 방지) */
  overflow-wrap: break-word;     /* 긴 영문·URL·이메일은 강제 줄바꿈 */
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
ul { list-style: none; }

/* ---------- 레이아웃 유틸 ---------- */
.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }
.section { padding: var(--section-y) 0; }
.section--tight { padding: 64px 0; }
.eyebrow {
  font-size: 12px; letter-spacing: 2px; text-transform: uppercase;
  color: var(--accent-hi); font-weight: 700; margin-bottom: 14px;
}
.section-title {
  font-size: clamp(26px, 4vw, 38px); font-weight: 800;
  letter-spacing: -0.5px; line-height: 1.15; text-wrap: balance;
}
.section-lead {
  color: var(--text-mut); font-size: 17px; margin-top: 16px; max-width: 640px;
  text-wrap: pretty;
}
.accent-bar { width: 54px; height: 3px; background: var(--accent); border-radius: 3px; }

/* ---------- 헤더 (재사용) ---------- */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: var(--header-bg);
  backdrop-filter: saturate(140%) blur(12px);
  border-bottom: 1px solid var(--border-soft);
}
.nav {
  display: flex; align-items: center; justify-content: space-between;
  height: 64px;
}
.brand { display: flex; align-items: center; gap: 10px; font-weight: 800; letter-spacing: -0.3px; flex-shrink: 0; white-space: nowrap; }
.brand .dot { width: 10px; height: 10px; border-radius: 3px; background: var(--accent); }
.brand small { color: var(--text-dim); font-weight: 600; font-size: 12px; }
.nav-links { display: flex; align-items: center; gap: 22px; }
.nav-links a { color: var(--text-mut); font-size: 14px; font-weight: 600; transition: color .15s; white-space: nowrap; }
.nav-links a:hover { color: var(--text); }
.nav-cta {
  background: var(--accent); color: #fff !important; padding: 9px 16px;
  border-radius: 8px; font-size: 13px; font-weight: 700;
  transition: background-color .15s ease, transform .15s ease;
}
.nav-cta:hover { background: var(--accent-hi); }
.nav-cta:active { transform: scale(0.96); }
.nav-toggle { display: none; background: none; border: 0; color: var(--text); cursor: pointer; }

/* ---------- 헤더 컨트롤 (테마 · 언어 토글, JS 주입) ---------- */
.nav-ctrls { display: inline-flex; align-items: center; gap: 6px; margin-left: 8px; }
.nav-ctrl {
  display: inline-flex; align-items: center; justify-content: center;
  height: 34px; min-width: 34px; padding: 0 10px;
  border: 1px solid var(--border); background: var(--bg-card); color: var(--text-mut);
  border-radius: 8px; font-size: 13px; font-weight: 700; line-height: 1;
  cursor: pointer; transition: border-color .15s, color .15s, background-color .15s, transform .15s;
  font-family: inherit;
}
.nav-ctrl:hover { border-color: var(--accent); color: var(--text); }
.nav-ctrl:active { transform: scale(0.96); }
.nav-ctrl .ic { font-size: 15px; }
@media (max-width: 680px){ .nav-ctrls { margin-left: auto; margin-right: 4px; } }

/* ---------- 버튼 ---------- */
.btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 22px; border-radius: 9px; font-weight: 700; font-size: 15px;
  border: 1px solid transparent; cursor: pointer;
  transition-property: background-color, border-color, color, transform;
  transition-duration: .15s; transition-timing-function: ease;
}
.btn:active { transform: scale(0.96); }
.btn-primary { background: var(--accent); color: #fff; }
.btn-primary:hover { background: var(--accent-hi); transform: translateY(-1px); }
.btn-primary:active { transform: scale(0.96); }
.btn-ghost { border-color: var(--border); color: var(--text-mut); }
.btn-ghost:hover { border-color: var(--accent); color: var(--text); }
/* 중간 톤 — primary(꽉 찬 강조)와 ghost(외곽선) 사이. 연한 accent 톤. */
.btn-soft { background: color-mix(in srgb, var(--accent) 14%, transparent); border-color: color-mix(in srgb, var(--accent) 45%, transparent); color: var(--accent); }
.btn-soft:hover { background: color-mix(in srgb, var(--accent) 22%, transparent); border-color: var(--accent); transform: translateY(-1px); }
.btn-soft:active { transform: scale(0.96); }
.btn[aria-disabled="true"] { opacity: .55; cursor: not-allowed; transform: none; }

/* ---------- 히어로 ---------- */
.hero { position: relative; padding: 92px 0 84px; border-bottom: 1px solid var(--border-soft); }
.hero-meta { display: flex; gap: 18px; flex-wrap: wrap; color: var(--text-dim);
  font-size: 13px; font-weight: 600; letter-spacing: .3px; }
.hero h1 {
  font-size: clamp(40px, 8vw, 76px); font-weight: 800; line-height: 1.02;
  letter-spacing: -2px; margin: 28px 0 0;
}
.hero h1 .hl { color: var(--accent); }
.hero-sub { color: var(--text-mut); font-size: clamp(16px,2.2vw,20px);
  margin-top: 22px; max-width: 560px; }
.hero-actions { display: flex; gap: 12px; margin-top: 36px; flex-wrap: wrap; }
.hero-host { margin-top: 40px; display: flex; gap: 10px; align-items: center;
  color: var(--text-dim); font-size: 13px; }
.hero-host .pill { border: 1px solid var(--border); border-radius: 30px;
  padding: 6px 14px; color: var(--text-mut); font-weight: 600; }
/* 반응형 라벨: 데스크톱은 풀네임(.full), 모바일은 짧은 라벨(.abbr) */
.pill .abbr { display: none; }

/* 히어로 브랜드 라인 (레터스페이싱 캡션) */
.hero-brandline { margin-top: 22px; font-size: 13px; font-weight: 700;
  letter-spacing: 1.6px; color: var(--text-dim); }
.hero-brandline .hl { color: var(--accent); }

/* ---------- 통계 (한눈에 보기) ---------- */
.stats { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.stat { background: var(--bg-card); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 22px 18px; }
.stat .num { font-size: clamp(26px, 3.4vw, 34px); font-weight: 800; letter-spacing: -1px; font-variant-numeric: tabular-nums; }
.stat .lbl { color: var(--text-dim); font-size: 13px; margin-top: 6px; }

/* ---------- 차별점 카드 ---------- */
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 40px; }
.card {
  background: var(--bg-card); border: 1px solid var(--border);
  border-radius: var(--radius-lg); padding: 28px 24px; transition: border-color .2s, transform .2s;
}
.card:hover { border-color: var(--accent-dim); transform: translateY(-3px); }
.card .ix { font-size: 13px; font-weight: 800; color: var(--accent); letter-spacing: 1px; }
.card h3 { font-size: 19px; font-weight: 700; margin: 12px 0 10px; }
.card p { color: var(--text-mut); font-size: 15px; }

/* ---------- 타임라인 ---------- */
.timeline { margin-top: 44px; border-left: 2px solid var(--border); padding-left: 28px;
  display: flex; flex-direction: column; gap: 30px; }
.tl-item { position: relative; }
.tl-item::before { content: ""; position: absolute; left: -36px; top: 4px;
  width: 12px; height: 12px; border-radius: 50%; background: var(--bg); border: 2px solid var(--accent); }
.tl-item.is-key::before { background: var(--accent); box-shadow: 0 0 0 5px var(--accent-dim); }
.tl-when { font-size: 13px; font-weight: 700; color: var(--accent-hi); letter-spacing: .5px; }
.tl-what { font-size: 17px; font-weight: 600; margin-top: 4px; }
.tl-desc { color: var(--text-dim); font-size: 14px; margin-top: 3px; }

/* ---------- 커리큘럼 트랙 ---------- */
.tracks { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin-top: 40px; }
.track { background: var(--bg-card); border: 1px solid var(--border);
  border-radius: var(--radius-lg); padding: 26px 24px; }
.track .tag { display: inline-block; font-size: 12px; font-weight: 700; color: var(--text-dim);
  background: var(--bg-elev); border: 1px solid var(--border); border-radius: 30px;
  padding: 4px 12px; margin-bottom: 14px; }
.track h3 { font-size: 18px; font-weight: 700; }
.track p { color: var(--text-mut); font-size: 15px; margin-top: 10px; }

/* ---------- 멘토 / 파트너 ---------- */
.partners-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.partner-chip { background: var(--bg-card); border: 1px solid var(--border);
  border-radius: 10px; padding: 14px 20px; font-weight: 700; font-size: 15px; }
.partner-chip small { display: block; color: var(--text-dim); font-weight: 500; font-size: 12px; margin-top: 3px; }
.mentor-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; margin-top: 32px; }
.mentor { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius);
  padding: 20px 22px; flex: 1 1 210px; max-width: 260px; }
.mentor h4 { font-size: 16px; font-weight: 700; }
.mentor .school { display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: .4px;
  padding: 2px 9px; border-radius: 20px; margin-bottom: 9px;
  background: color-mix(in srgb, var(--accent) 14%, transparent); color: var(--accent); }
.mentor .school.school-audit { background: color-mix(in srgb, var(--text-dim) 16%, transparent); color: var(--text-dim); }
.mentor-grid-audit { margin-top: 16px; }
.mentor .role { color: var(--accent-hi); font-size: 13px; font-weight: 600; margin-top: 3px; }
.mentor p { color: var(--text-mut); font-size: 14px; margin-top: 8px; }
.note { color: var(--text-dim); font-size: 13px; margin-top: 18px; font-style: italic; }

/* ---------- 운영진 카드 (/team) ---------- */
.team-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 8px; }
@media (max-width: 860px){ .team-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px){ .team-grid { grid-template-columns: 1fr; } }
.member-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-lg);
  padding: 26px 24px; text-align: center; transition: border-color .25s ease, transform .25s ease; }
.member-card:hover { border-color: var(--accent-dim); transform: translateY(-3px); }
.member-photo { width: 96px; height: 96px; margin: 0 auto 16px; border-radius: 50%;
  background: linear-gradient(150deg, var(--accent), var(--accent-dim));
  display: flex; align-items: center; justify-content: center; overflow: hidden;
  border: 1px solid var(--border); }
.member-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.member-initial { font-size: 34px; font-weight: 800; color: #fff; letter-spacing: -1px;
  font-family: var(--font); user-select: none; }
.role-badge { display: inline-block; font-size: 11px; font-weight: 800; letter-spacing: .5px;
  padding: 3px 11px; border-radius: 20px; margin-bottom: 10px; text-transform: uppercase; }
.role-badge.role-chair { background: color-mix(in srgb, var(--accent) 20%, transparent); color: var(--accent-hi); }
.role-badge.role-vice { background: color-mix(in srgb, var(--accent) 12%, transparent); color: var(--accent); }
.role-badge.role-member { background: color-mix(in srgb, var(--text-dim) 16%, transparent); color: var(--text-dim); }
.member-name { font-size: 20px; font-weight: 700; }
.member-school { color: var(--text-mut); font-size: 14px; font-weight: 600; margin-top: 4px; }
.member-term { color: var(--text-dim); font-size: 12px; margin-top: 8px; }
.member-bio { color: var(--text-mut); font-size: 14px; margin-top: 12px; line-height: 1.6; text-align: left; }

/* ---------- 문의 / CTA 밴드 ---------- */
.cta-band { background: var(--cta-grad);
  border: 1px solid var(--border); border-radius: var(--radius-lg);
  padding: 48px 40px; text-align: center; margin-top: 8px; }
.cta-band h2 { font-size: clamp(24px,3.5vw,32px); font-weight: 800; letter-spacing: -.5px; text-wrap: balance; }
.cta-band p { color: var(--text-mut); margin: 14px auto 28px; max-width: 520px; text-wrap: pretty; }
.cta-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* ---------- 푸터 (재사용) ---------- */
.site-footer { border-top: 1px solid var(--border-soft); padding: 48px 0 60px;
  color: var(--text-dim); font-size: 14px; }
.footer-grid { display: flex; justify-content: space-between; gap: 30px; flex-wrap: wrap; }
.footer-grid a { color: var(--text-mut); }
.footer-grid a:hover { color: var(--text); }
.footer-col h5 { color: var(--text); font-size: 14px; margin-bottom: 12px; }
.footer-col ul { display: flex; flex-direction: column; gap: 8px; }
.footer-bottom { margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--border-soft);
  display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 13px; }

/* ---------- 푸터 소셜 (script.js 주입) ---------- */
.footer-social { display: flex; gap: 10px; margin-top: 16px; }
.soc-btn { display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border: 1px solid var(--border); border-radius: 10px;
  color: var(--text-mut); background: var(--bg-card);
  transition: border-color .15s, color .15s, transform .15s; }
.soc-btn svg { width: 18px; height: 18px; fill: currentColor; }
.soc-btn:not([aria-disabled="true"]):hover { border-color: var(--accent); color: var(--text); }
.soc-btn:not([aria-disabled="true"]):active { transform: scale(0.96); }
.soc-btn[aria-disabled="true"] { opacity: .42; cursor: not-allowed; }

/* ---------- 관리자 진입 톱니 (script.js 주입, 라벨 없음) ---------- */
.admin-cog { display: inline-flex; align-items: center; margin-left: 10px;
  color: var(--text-dim); opacity: .5; vertical-align: middle;
  transition: opacity .15s, color .15s; }
.admin-cog svg { width: 15px; height: 15px; fill: currentColor; }
.admin-cog:hover { opacity: 1; color: var(--accent); }

/* ---------- 최신 소식 (공지) ---------- */
.news { margin-top: 28px; background: var(--bg-card);
  border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; }
.news-item { display: flex; gap: 16px; align-items: baseline; padding: 16px 20px; }
.news-item + .news-item { border-top: 1px solid var(--border-soft); }
.news-when { flex: none; min-width: 76px; font-size: 12px; font-weight: 700;
  color: var(--accent-hi); letter-spacing: .5px; }
.news-text { color: var(--text-mut); font-size: 15px; }

/* ---------- 시상·혜택 (TBA 플레이스홀더) ---------- */
.tba { margin-top: 36px; background: var(--bg-card); border: 1px dashed var(--border);
  border-radius: var(--radius-lg); padding: 44px 28px; text-align: center; }
.tba .tag-soon { display: inline-block; margin-bottom: 16px; padding: 6px 14px;
  font-size: 12px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase;
  color: var(--text-dim); background: var(--bg-elev);
  border: 1px solid var(--border); border-radius: 30px; }
.tba p { max-width: 540px; margin: 0 auto; color: var(--text-mut); font-size: 16px; }

/* ---------- 참가 페이지: 2단 그리드 ---------- */
.grid-4 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin-top: 40px; }
.page-hero { padding: 80px 0 56px; border-bottom: 1px solid var(--border-soft); }
.page-hero h1 { font-size: clamp(34px,6vw,58px); font-weight: 800; letter-spacing: -1.5px; line-height: 1.05; margin-top: 22px; text-wrap: balance; }
.page-hero h1 .hl { color: var(--accent); }
.breadcrumb { font-size: 13px; color: var(--text-dim); }
.breadcrumb a { color: var(--text-mut); }
.breadcrumb a:hover { color: var(--text); }

/* ---------- 스크롤 등장 애니메이션 ---------- */
.reveal { opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease; }
.reveal.in { opacity: 1; transform: none; }

/* ---------- 반응형 ---------- */
@media (max-width: 900px) {
  .stats { grid-template-columns: repeat(2, 1fr); }
  .grid-3 { grid-template-columns: 1fr; }
  .tracks, .mentor-grid { grid-template-columns: 1fr; }
  .grid-4 { grid-template-columns: repeat(2,1fr); }
}
/* 가로 내비가 한 줄에 안 들어오는 폭에서는 햄버거 메뉴로 전환.
   영어는 글자가 길어(예: "Mentors & partners") 더 넓은 폭까지 햄버거를 유지한다. */
.nav-links.open {
  display: flex; flex-direction: column; align-items: stretch; gap: 0;
  position: absolute; top: 64px; left: 0; right: 0;
  background: var(--bg-elev); border-bottom: 1px solid var(--border);
  box-shadow: 0 24px 48px -16px rgba(0,0,0,.45);
  padding: 6px 20px 18px; z-index: 60;
}
@media (max-width: 1000px) {
  .nav-links { display: none; }
  .nav-toggle { display: block; font-size: 22px; padding: 4px 6px; }
  .nav-links.open a { display: block; width: 100%; padding: 15px 4px; font-size: 16px;
    text-align: left; color: var(--text); border-bottom: 1px solid var(--border-soft); }
  .nav-links.open a:hover { color: var(--accent); }
  .nav-links.open .nav-cta { margin-top: 14px; padding: 15px; font-size: 15px;
    text-align: center; border-bottom: 0; color: #fff; }
}
/* EN 라벨이 길어도 1001px 이상에선 데스크톱 나브 유지 — 간격·폰트만 약간 좁혀 한 줄에 담는다. */
@media (min-width: 1001px) and (max-width: 1240px) {
  html[lang="en"] .nav-links { gap: 15px; }
  html[lang="en"] .nav-links a { font-size: 13px; }
  html[lang="en"] .nav-cta { padding: 8px 13px; }
}
/* 데스크톱 폭에서 리사이즈 잔상(.open)으로 세로 메뉴가 남지 않도록 복구 (KO/EN 공통) */
@media (min-width: 1001px) {
  .nav-links.open { position: static; flex-direction: row; padding: 0;
    background: none; border: 0; }
}
@media (max-width: 680px) {
  :root { --section-y: 64px; }
  .wrap { padding: 0 16px; }
  .grid-4 { grid-template-columns: 1fr; }
  .hero-meta { gap: 10px 16px; }
  .hero-host { gap: 8px; flex-wrap: wrap; }
  .hero-host .pill { padding: 5px 11px; font-size: 13px; }
  .pill .full { display: none; }
  .pill .abbr { display: inline; }
  .hero-actions { gap: 8px; margin-top: 24px; }
  .hero-actions .btn { padding: 10px 15px; font-size: 14px; }
  .partner-chip { padding: 11px 14px; font-size: 14px; }
  .cta-band { padding: 36px 20px; }
  .footer-grid { gap: 28px; }
  .footer-bottom { flex-direction: column; gap: 8px; align-items: flex-start; }
}
@media (max-width: 440px) {
  .stats { grid-template-columns: 1fr; }
  .section-title { letter-spacing: -.3px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
}

/* ---------- 로고 사람 점 — 라이트 모드 명도 보정 ---------- */
:root[data-theme="light"] .mark-dot-h { fill: #f0a800; }

/* =========================================================
   시안 D 디자인 시스템 (body.v2 전용 · Phase 1: 홈·소개·운영위원회)
   모든 규칙을 .v2 로 스코프 → 미이관(Phase 2/3) 페이지에 영향 0.
   토큰(paper/band/card/line/ink/head/sub/dim/accent) 기반 → 다크/라이트 자동.
   ========================================================= */
.v2{ --sd:rgba(24,39,75,.28); }
:root[data-theme="dark"] .v2{ --sd:rgba(0,0,0,.5); }

.v2 .wrap{ max-width:var(--maxw); }
.v2 main{ background:var(--paper); }

/* 버튼 (D: 조금 더 큰 히트영역) */
.v2 .btn{ padding:14px 26px; border-radius:12px; font-size:15px; }
.v2 .btn-fill{ background:var(--accent); color:#fff; box-shadow:0 8px 20px -8px color-mix(in srgb, var(--accent) 55%, transparent); }
.v2 .btn-fill:hover{ background:var(--accent-2); transform:translateY(-1px); }
.v2 .btn-out{ border-color:var(--line); background:var(--card); color:var(--ink); }
.v2 .btn-out:hover{ border-color:var(--accent); color:var(--accent); }

/* 섹션 스캐폴드 */
.v2 .sec{ padding:104px 0; }
.v2 .sec.band{ background:var(--band); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.v2 .k{ display:inline-block; font-size:11.5px; font-weight:800; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); }
.v2 .sec h2{ font-size:clamp(30px,4.4vw,52px); font-weight:800; letter-spacing:-.035em; line-height:1.1; margin-top:14px; text-wrap:balance; color:var(--head); }
.v2 .sec .lead{ color:var(--sub); font-size:17.5px; max-width:70ch; margin-top:18px; text-wrap:pretty; }
.v2 .sec .lead b{ color:var(--head); font-weight:700; }
.v2 .headrow{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.v2 .crumb{ font-size:13px; color:var(--dim); }
.v2 .crumb a{ color:var(--sub); font-weight:600; }

/* 히어로 (거대·중앙 타이포) */
.v2 .hero{ padding:100px 0 84px; text-align:center; }
.v2 .hero .eye{ display:inline-flex; align-items:center; gap:9px; color:var(--accent); font-size:12.5px; font-weight:800; letter-spacing:.12em; }
.v2 .hero .eye .dot{ width:6px; height:6px; border-radius:50%; background:var(--accent); }
.v2 .hero h1{ font-size:clamp(42px,7.4vw,90px); font-weight:800; letter-spacing:-.046em; line-height:1.02; margin:26px auto 0; max-width:15ch; text-wrap:balance; color:var(--head); }
.v2 .hero h1 .hl{ color:var(--accent); }
.v2 .hero .sub{ color:var(--sub); font-size:clamp(17px,2vw,21px); margin:28px auto 0; max-width:40ch; text-wrap:pretty; }
.v2 .hero .brandline{ margin-top:22px; font-size:13px; font-weight:700; letter-spacing:.1em; color:var(--dim); }
.v2 .hero .brandline .hl{ color:var(--accent); }
.v2 .actions{ display:flex; gap:12px; justify-content:center; margin-top:40px; flex-wrap:wrap; }
.v2 .hosts{ margin-top:50px; display:flex; gap:9px; justify-content:center; flex-wrap:wrap; align-items:center; }
.v2 .hosts .h-lbl{ color:var(--dim); font-size:12.5px; margin-right:4px; }
.v2 .chip{ border:1px solid var(--line); background:var(--card); border-radius:999px; padding:7px 15px; color:var(--sub); font-size:12.5px; font-weight:600; }

/* 스탯 스트립 (카드 없이 구분선만) */
.v2 .strip{ background:var(--card); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.v2 .strip-in{ display:grid; grid-template-columns:repeat(5,1fr); }
.v2 .strip .stat{ padding:36px 18px; text-align:center; border-left:1px solid var(--line-2); background:none; border-top:none; border-right:none; border-bottom:none; border-radius:0; }
.v2 .strip .stat:first-child{ border-left:none; }
.v2 .strip .stat .n{ font-size:clamp(26px,3.4vw,40px); font-weight:800; letter-spacing:-.035em; color:var(--head); font-variant-numeric:tabular-nums; line-height:1; }
.v2 .strip .stat .n .u{ font-size:.55em; font-weight:700; color:var(--sub); letter-spacing:0; margin-left:2px; }
.v2 .strip .stat .l{ color:var(--dim); font-size:12.5px; margin-top:10px; }

/* 큰 문장 */
.v2 .state{ background:var(--card); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.v2 .state .in{ padding:100px 0; text-align:center; }
.v2 .state p{ font-size:clamp(24px,3.7vw,42px); font-weight:700; letter-spacing:-.032em; line-height:1.26; max-width:26ch; margin:0 auto; text-wrap:balance; color:var(--head); }
.v2 .state p .hl{ color:var(--accent); }
.v2 .state .by{ margin-top:26px; color:var(--dim); font-size:13.5px; letter-spacing:.02em; font-family:var(--mono); }

/* 넘버 필러 */
.v2 .pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px 44px; margin-top:60px; }
.v2 .pillar{ padding-top:22px; border-top:2px solid color-mix(in srgb, var(--accent) 40%, transparent); }
.v2 .pillar .no{ font-size:44px; font-weight:800; color:var(--accent); letter-spacing:-.03em; line-height:1; font-variant-numeric:tabular-nums; }
.v2 .pillar h3{ font-size:21px; font-weight:800; letter-spacing:-.02em; margin:16px 0 10px; color:var(--head); }
.v2 .pillar p{ color:var(--sub); font-size:15px; }

/* 진행 행사 = 단일 링크 카드 */
.v2 .eventcard{ display:grid; grid-template-columns:1.3fr .9fr; gap:0; margin-top:52px; background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; box-shadow:0 24px 60px -30px var(--sd); transition:transform .2s, box-shadow .2s, border-color .2s; }
.v2 .eventcard:hover{ transform:translateY(-2px); box-shadow:0 30px 70px -30px var(--sd); border-color:color-mix(in srgb, var(--accent) 40%, transparent); }
.v2 .ec-l{ padding:40px 40px 36px; }
.v2 .ec-badge{ display:inline-flex; align-items:center; gap:7px; background:rgba(34,176,125,.12); color:#12855c; font-size:12px; font-weight:800; border-radius:999px; padding:5px 13px; letter-spacing:.02em; }
.v2 .ec-badge .dot{ width:6px; height:6px; border-radius:50%; background:var(--green); }
.v2 .ec-l h3{ font-size:clamp(24px,3vw,34px); font-weight:800; letter-spacing:-.03em; margin:16px 0 10px; color:var(--head); }
.v2 .ec-l p{ color:var(--sub); font-size:15px; max-width:38ch; }
.v2 .ec-meta{ display:flex; gap:26px; margin-top:24px; flex-wrap:wrap; }
.v2 .ec-meta .m .mk{ font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--dim); }
.v2 .ec-meta .m .mv{ font-size:16px; font-weight:700; color:var(--head); margin-top:5px; font-variant-numeric:tabular-nums; }
.v2 .ec-go{ margin-top:26px; display:inline-flex; align-items:center; gap:8px; color:var(--accent); font-weight:700; font-size:15px; }
.v2 .ec-r{ background:linear-gradient(150deg,#3b64f0,#1f2a44); position:relative; display:flex; align-items:flex-end; padding:28px; overflow:hidden; }
.v2 .ec-r::before{ content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px); background-size:26px 26px; }
.v2 .ec-r .big{ position:relative; color:#fff; }
.v2 .ec-r .big .num{ font-size:clamp(44px,6vw,68px); font-weight:800; letter-spacing:-.04em; line-height:.95; font-variant-numeric:tabular-nums; }
.v2 .ec-r .big .cap{ font-size:13px; opacity:.85; margin-top:8px; letter-spacing:.02em; }

/* 자문단 (4:3 그리드) */
.v2 .adv-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:52px; }
.v2 .adv{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:22px 20px; transition:transform .18s, box-shadow .18s, border-color .18s; }
.v2 .adv:hover{ box-shadow:0 12px 30px -18px var(--sd); transform:translateY(-2px); border-color:color-mix(in srgb, var(--accent) 35%, transparent); }
.v2 .adv .school{ display:inline-block; font-size:11px; font-weight:800; letter-spacing:.06em; color:var(--accent); background:color-mix(in srgb, var(--accent) 10%, transparent); border-radius:999px; padding:3px 10px; }
.v2 .adv .school.audit{ color:#b06a00; background:rgba(247,201,72,.2); }
.v2 .adv h4{ font-size:19px; font-weight:800; letter-spacing:-.02em; margin:14px 0 5px; color:var(--head); }
.v2 .adv .aff{ font-size:13px; color:var(--dim); }
.v2 .adv .adv-bio{ margin-top:12px; padding-top:12px; border-top:1px solid var(--line-2); font-size:12.5px; line-height:1.55; color:var(--sub); }
.v2 .adv-note{ margin-top:22px; font-size:13px; color:var(--dim); }
.v2 .adv-note a{ color:var(--accent); font-weight:600; }
.v2 .morelink{ margin-top:26px; display:inline-flex; align-items:center; gap:7px; color:var(--accent); font-weight:700; font-size:15px; }

/* 스폰서 (실제 로고 · 규격 통일 · 다크 화이트 스와프) */
.v2 .sp-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:52px; }
.v2 .sp{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:24px 22px; display:flex; flex-direction:column; gap:20px; min-height:150px; justify-content:space-between; transition:transform .18s, box-shadow .18s, border-color .18s; }
.v2 .sp:hover{ border-color:color-mix(in srgb, var(--accent) 40%, transparent); transform:translateY(-2px); box-shadow:0 14px 34px -20px var(--sd); }
.v2 .sp.top{ border-color:var(--accent); box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 30%, transparent) inset; }
.v2 .sp .lockup{ height:52px; display:flex; align-items:center; }
.v2 .sp .lockup img{ max-height:40px; max-width:80%; width:auto; object-fit:contain; }
.v2 .sp .lockup img.lc{ display:block; } .v2 .sp .lockup img.ld{ display:none; }
:root[data-theme="dark"] .v2 .sp.logo-swap .lockup img.lc{ display:none; }
:root[data-theme="dark"] .v2 .sp.logo-swap .lockup img.ld{ display:block; }
.v2 .sp .lockup img.onlight{ background:#fff; border-radius:9px; padding:7px 12px; max-height:52px; outline:1px solid rgba(0,0,0,.08); }
.v2 .sp .lc{ display:block; } .v2 .sp .ld{ display:none; }
:root[data-theme="dark"] .v2 .sp.logo-swap .lc{ display:none; }
:root[data-theme="dark"] .v2 .sp.logo-swap .ld{ display:block; }
.v2 .sp .meta{ display:flex; justify-content:space-between; align-items:center; font-size:12px; border-top:1px solid var(--line-2); padding-top:14px; }
.v2 .sp .tier{ font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.v2 .t-plat{ color:#5f76a8; } .v2 .t-gold{ color:#bd9226; } .v2 .t-bronze{ color:#a9713f; }
.v2 .sp .role{ color:var(--dim); font-weight:600; text-align:right; }

/* ===== 후원 로고 등급 위계 (sponsors 전용) ===== */
.v2 .sp-hier{ margin-top:52px; display:flex; flex-direction:column; gap:16px; }
.v2 .sp-hier .sp-row{ display:grid; gap:14px; }
.v2 .sp-hier .row-plat{ grid-template-columns:1fr; }
.v2 .sp-hier .row-gold{ grid-template-columns:1fr; }
.v2 .sp-hier .row-bronze{ grid-template-columns:repeat(4,1fr); }
/* Platinum = 대형 */
.v2 .sp-hier .sz-plat{ min-height:212px; padding:36px 32px; }
.v2 .sp-hier .sz-plat .lockup{ height:92px; }
.v2 .sp-hier .sz-plat .lockup img{ max-height:74px; max-width:66%; }
.v2 .sp-hier .sz-plat .meta{ font-size:13px; }
/* Gold = 중형 */
.v2 .sp-hier .sz-gold{ min-height:150px; padding:26px 24px; }
.v2 .sp-hier .sz-gold .lockup{ height:56px; }
.v2 .sp-hier .sz-gold .lockup img{ max-height:44px; }
/* Bronze = 소형(한 줄에 여러 개) */
.v2 .sp-hier .sz-bronze{ min-height:106px; padding:16px 16px; gap:12px; }
.v2 .sp-hier .sz-bronze .lockup{ height:38px; }
.v2 .sp-hier .sz-bronze .lockup img{ max-height:30px; max-width:88%; }
.v2 .sp-hier .sz-bronze .meta{ font-size:11px; padding-top:11px; }
@media(max-width:640px){ .v2 .sp-hier .row-bronze{ grid-template-columns:1fr 1fr; } }
@media(max-width:420px){ .v2 .sp-hier .row-bronze{ grid-template-columns:1fr; } }
/* /sponsors 카드 회사 소개 한 줄 — 빈 공간을 채운다 */
.v2 .sp-hier .sp-desc{ margin:0; color:var(--sub); font-size:12.5px; line-height:1.55; }
.v2 .sp-hier .sz-plat .sp-desc{ font-size:14px; max-width:560px; }
.v2 .sp-hier .sz-gold .sp-desc{ font-size:13px; }
.v2 .sp-hier .sz-bronze{ min-height:auto; }
.v2 .sp-hier .sz-bronze .sp-desc{ font-size:11.5px; line-height:1.5; }

/* ===== 홈 전용 스폰서 파트너십 위계 (해커톤 .sp-grid 불변 — 별도 클래스) ===== */
.v2 .sp-home-hier{ margin-top:48px; display:flex; flex-direction:column; gap:16px; }
.v2 .sp-home-hier .shp-row{ display:grid; gap:16px; }
.v2 .sp-home-hier .shp-plat{ grid-template-columns:1fr; }
.v2 .sp-home-hier .shp-gold{ grid-template-columns:1fr; }
.v2 .sp-home-hier .shp-bronze{ grid-template-columns:repeat(4,1fr); }
/* Platinum — 전폭 대표 파트너: 로고 | 등급·역할 가로 배치 */
.v2 .sp-home-hier .sz-plat{ flex-direction:row; align-items:center; justify-content:center; gap:48px; min-height:0; padding:46px 48px; }
.v2 .sp-home-hier .sz-plat .lockup{ height:112px; flex:1 1 auto; justify-content:center; }
.v2 .sp-home-hier .sz-plat .lockup img{ max-height:94px; max-width:100%; }
.v2 .sp-home-hier .sz-plat .meta{ flex:none; flex-direction:column; align-items:flex-start; gap:7px; min-width:172px; border-top:none; border-left:1px solid var(--line-2); padding:6px 0 6px 48px; font-size:13px; }
.v2 .sp-home-hier .sz-plat .role{ text-align:left; }
/* Gold — 중형 */
.v2 .sp-home-hier .sz-gold{ min-height:150px; padding:30px 30px; }
.v2 .sp-home-hier .sz-gold .lockup{ height:62px; }
.v2 .sp-home-hier .sz-gold .lockup img{ max-height:48px; }
/* Bronze — 소형 4열 */
.v2 .sp-home-hier .sz-bronze{ min-height:114px; padding:18px 18px; gap:14px; }
.v2 .sp-home-hier .sz-bronze .lockup{ height:40px; }
.v2 .sp-home-hier .sz-bronze .lockup img{ max-height:32px; max-width:88%; }
.v2 .sp-home-hier .sz-bronze .meta{ font-size:11px; padding-top:12px; }
@media(max-width:720px){
  .v2 .sp-home-hier .sz-plat{ flex-direction:column; gap:26px; padding:36px 26px; }
  .v2 .sp-home-hier .sz-plat .lockup{ height:88px; }
  .v2 .sp-home-hier .sz-plat .lockup img{ max-height:72px; }
  .v2 .sp-home-hier .sz-plat .meta{ width:100%; align-items:center; text-align:center; border-left:none; border-top:1px solid var(--line-2); padding:16px 0 0; }
  .v2 .sp-home-hier .sz-plat .role{ text-align:center; }
  .v2 .sp-home-hier .shp-bronze{ grid-template-columns:1fr 1fr; }
}
@media(max-width:440px){ .v2 .sp-home-hier .shp-bronze{ grid-template-columns:1fr; } }

/* 공지 리스트 */
.v2 .notice{ margin-top:44px; border-top:2px solid var(--head); }
.v2 .n-head{ display:flex; justify-content:space-between; padding:12px 6px; font-size:12px; font-weight:700; color:var(--dim); border-bottom:1px solid var(--line); }
.v2 .n-row{ display:flex; align-items:center; gap:14px; padding:18px 6px; border-bottom:1px solid var(--line); transition:background-color .15s; }
.v2 .n-row:hover{ background:color-mix(in srgb, var(--accent) 4%, transparent); }
.v2 .n-badge{ flex:none; font-size:11px; font-weight:800; color:#fff; background:var(--accent); border-radius:6px; padding:3px 8px; }
.v2 .n-title{ flex:1; font-size:15.5px; font-weight:600; color:var(--head); letter-spacing:-.01em; }
.v2 .n-date{ flex:none; font-size:13.5px; color:var(--dim); font-variant-numeric:tabular-nums; }
.v2 .n-more{ margin-top:22px; display:inline-flex; align-items:center; gap:7px; color:var(--accent); font-weight:700; font-size:14px; }

/* 커뮤니티 축소 행 */
.v2 .commrow{ display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-top:34px; padding:22px 26px; background:var(--card); border:1px solid var(--line); border-radius:var(--r); }
.v2 .commrow .cl{ font-size:14px; color:var(--sub); font-weight:600; }
.v2 .commlinks{ display:flex; gap:10px; flex-wrap:wrap; }
.v2 .commlinks a{ display:inline-flex; align-items:center; gap:7px; font-size:13.5px; font-weight:700; color:var(--head); border:1px solid var(--line); border-radius:999px; padding:8px 15px; transition:border-color .15s, color .15s; }
.v2 .commlinks a:hover{ border-color:var(--accent); color:var(--accent); }
.v2 .commlinks a .tbd{ font-size:11px; font-weight:700; color:var(--dim); }

/* CTA · 워드마크 밴드 */
.v2 .cta{ background:linear-gradient(135deg,#3b64f0,#2447c9); color:#fff; border-radius:24px; padding:66px 40px; text-align:center; position:relative; overflow:hidden; }
.v2 .cta::after{ content:""; position:absolute; inset:0; pointer-events:none; background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px); background-size:28px 28px; }
.v2 .cta h2{ font-size:clamp(27px,3.6vw,42px); font-weight:800; letter-spacing:-.035em; position:relative; text-wrap:balance; color:#fff; margin-top:0; }
.v2 .cta p{ font-size:17px; margin:18px auto 32px; max-width:48ch; opacity:.92; position:relative; text-wrap:pretty; }
.v2 .cta .actions{ margin-top:0; position:relative; }
.v2 .cta .btn-fill{ background:#fff; color:var(--accent-2); box-shadow:0 8px 20px rgba(0,0,0,.18); }
.v2 .cta .btn-fill:hover{ background:#eef2ff; }
.v2 .cta .btn-out{ background:transparent; border-color:rgba(255,255,255,.55); color:#fff; }
.v2 .cta .btn-out:hover{ border-color:#fff; }
.v2 .wordband{ background:linear-gradient(100deg,#3b64f0,#1f2a44); color:#fff; text-align:center; padding:54px 24px; }
.v2 .wordband .wm{ display:inline-flex; align-items:center; gap:12px; font-size:clamp(30px,5vw,48px); font-weight:800; letter-spacing:-.035em; }
.v2 .wordband .sub{ margin-top:12px; font-size:13.5px; opacity:.85; letter-spacing:.04em; }

/* ===== /about 전용 블록 ===== */
.v2 .ah{ padding:74px 0 66px; }
.v2 .ah .eye{ display:inline-flex; align-items:center; gap:8px; background:color-mix(in srgb, var(--accent) 9%, transparent); color:var(--accent); font-size:12.5px; font-weight:700; border-radius:999px; padding:7px 16px; margin-top:20px; }
.v2 .ah .eye .dot{ width:6px; height:6px; border-radius:50%; background:var(--accent); }
.v2 .problem{ margin-top:30px; max-width:62ch; border-left:3px solid var(--line); padding-left:24px; }
.v2 .problem p{ font-size:clamp(18px,2.1vw,23px); font-weight:600; letter-spacing:-.02em; line-height:1.55; color:var(--sub); text-wrap:pretty; }
.v2 .problem .src{ margin-top:12px; font-size:12.5px; color:var(--dim); font-family:var(--mono); letter-spacing:.02em; }
.v2 .ah h1{ font-size:clamp(38px,6.4vw,76px); font-weight:800; letter-spacing:-.046em; line-height:1.04; margin-top:40px; max-width:16ch; text-wrap:balance; color:var(--head); }
.v2 .ah h1 .hl{ color:var(--accent); }
.v2 .ah .brandline{ margin-top:30px; display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; }
.v2 .ah .brandline .bl{ font-size:14px; font-weight:800; letter-spacing:.06em; color:var(--head); }
.v2 .ah .brandline .bl .hl{ color:var(--accent); }
.v2 .ah .brandline .ety{ font-size:13.5px; color:var(--dim); }
.v2 .ah .brandline .ety code{ font-family:var(--mono); color:var(--sub); font-weight:600; }
.v2 .ah .actions{ display:flex; gap:12px; margin-top:38px; flex-wrap:wrap; justify-content:flex-start; }

/* 운영위 "왜" 섹션 */
.v2 .why-list{ margin-top:52px; display:flex; flex-direction:column; gap:16px; }
.v2 .wperson{ display:grid; grid-template-columns:230px 1fr; gap:0; background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; transition:box-shadow .18s, border-color .18s; }
.v2 .wperson:hover{ box-shadow:0 18px 44px -26px var(--sd); border-color:color-mix(in srgb, var(--accent) 32%, transparent); }
.v2 .wp-id{ padding:26px 24px; border-right:1px solid var(--line-2); display:flex; flex-direction:column; align-items:flex-start; gap:14px; background:var(--band); }
.v2 .wp-photo{ width:74px; height:74px; border-radius:16px; display:flex; align-items:center; justify-content:center; font-size:27px; font-weight:800; color:#fff; letter-spacing:-.02em; background:linear-gradient(135deg,#3b64f0,#5b7cf5); overflow:hidden; }
.v2 .wp-photo img{ width:100%; height:100%; object-fit:cover; }
.v2 .wp-photo.y{ background:linear-gradient(135deg,#e0a200,#f7c948); }
.v2 .wp-photo.n{ background:linear-gradient(135deg,#1f2a44,#3a4a6e); }
.v2 .wp-rb{ display:inline-block; font-size:11px; font-weight:800; color:var(--accent); background:color-mix(in srgb, var(--accent) 9%, transparent); border-radius:999px; padding:3px 10px; letter-spacing:.02em; }
.v2 .wp-rb.chair{ color:#fff; background:var(--accent); }
.v2 .wp-nm{ font-size:20px; font-weight:800; color:var(--head); letter-spacing:-.01em; }
.v2 .wp-sc{ font-size:13px; color:var(--dim); margin-top:-8px; }
.v2 .wp-quote{ padding:30px 34px; display:flex; flex-direction:column; justify-content:center; }
.v2 .qslot .qmark{ font-family:Georgia,serif; font-size:46px; line-height:1; color:var(--line); }
.v2 .qslot .qline{ height:15px; border-bottom:1.5px dashed var(--line); }
.v2 .qslot .qline+.qline{ margin-top:9px; }
.v2 .qslot .qline.short{ width:58%; }
.v2 .qslot .qhint{ display:block; margin-top:16px; font-size:12px; color:var(--dim); font-style:italic; letter-spacing:.02em; }
.v2 .qslot .qbody{ font-size:16.5px; line-height:1.62; color:var(--ink); }
.v2 .qslot .qbody+.qbody{ margin-top:13px; }

/* 걸어온 길 타임라인 */
.v2 .tl{ margin-top:52px; display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:2px solid var(--head); }
.v2 .tstep{ padding:26px 22px 30px; border-left:1px solid var(--line); position:relative; }
.v2 .tstep:first-child{ border-left:none; }
.v2 .tstep::before{ content:""; position:absolute; top:-7px; left:22px; width:12px; height:12px; border-radius:50%; background:var(--card); border:2px solid var(--accent); }
.v2 .tstep.done::before{ background:var(--accent); }
.v2 .tstep .date{ font-size:14px; font-weight:800; color:var(--accent); letter-spacing:-.01em; font-variant-numeric:tabular-nums; }
.v2 .tstep .ev{ font-size:15.5px; font-weight:700; color:var(--head); margin-top:10px; letter-spacing:-.01em; }
.v2 .tstep .de{ font-size:13px; color:var(--dim); margin-top:6px; }
.v2 .tstep .up{ display:inline-block; margin-top:12px; font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--green); background:rgba(34,176,125,.12); border-radius:999px; padding:3px 10px; }

/* 다음 회차 행 */
.v2 .nextrow{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; margin-top:44px; padding:26px 30px; background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); border-left:4px solid var(--accent); }
.v2 .nextrow .nb{ font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--dim); border:1px solid var(--line); border-radius:999px; padding:5px 12px; }
.v2 .nextrow .nt{ font-size:18px; font-weight:800; color:var(--head); letter-spacing:-.01em; }
.v2 .nextrow .nd{ font-size:14px; color:var(--sub); }
.v2 .nextrow .nw{ margin-left:auto; font-size:13px; color:var(--dim); font-variant-numeric:tabular-nums; }

/* ===== /team 운영위원 카드 (D 리프레시 · 사진·약력 슬롯 유지) ===== */
.v2 .steer{ display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin-top:14px; }
.v2 .member-card{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); padding:26px 22px; text-align:center; transition:box-shadow .2s, transform .2s, border-color .2s; }
.v2 .member-card:hover{ border-color:color-mix(in srgb, var(--accent) 32%, transparent); transform:translateY(-3px); box-shadow:0 16px 40px -26px var(--sd); }
.v2 .member-photo{ width:112px; height:112px; margin:0 auto 18px; border-radius:24px; background:linear-gradient(135deg,#3b64f0,#5b7cf5); display:flex; align-items:center; justify-content:center; overflow:hidden; border:none; }
.v2 .member-photo.y{ background:linear-gradient(135deg,#e0a200,#f7c948); }
.v2 .member-photo.n{ background:linear-gradient(135deg,#1f2a44,#3a4a6e); }
.v2 .member-photo img{ width:100%; height:100%; object-fit:cover; }
.v2 .member-initial{ font-size:42px; font-weight:800; color:#fff; letter-spacing:-.02em; }
.v2 .role-badge{ display:inline-block; font-size:11px; font-weight:800; letter-spacing:.02em; padding:3px 11px; border-radius:999px; margin-bottom:10px; text-transform:none; }
.v2 .role-badge.role-chair{ background:var(--accent); color:#fff; }
.v2 .role-badge.role-vice{ background:color-mix(in srgb, var(--accent) 12%, transparent); color:var(--accent); }
.v2 .role-badge.role-member{ background:color-mix(in srgb, var(--dim) 16%, transparent); color:var(--dim); }
.v2 .member-name{ font-size:18px; font-weight:800; color:var(--head); letter-spacing:-.01em; }
.v2 .member-school{ color:var(--dim); font-size:13px; font-weight:600; margin-top:5px; }
.v2 .member-term{ color:var(--dim); font-size:12px; margin-top:8px; font-variant-numeric:tabular-nums; }
.v2 .member-bio{ color:var(--sub); font-size:13.5px; margin-top:12px; line-height:1.6; text-align:left; }
ul.member-bio{ list-style:none; padding:0; display:flex; flex-direction:column; gap:6px; }
ul.member-bio li{ position:relative; padding-left:13px; font-size:12.5px; color:var(--sub); line-height:1.5; }
ul.member-bio li::before{ content:""; position:absolute; left:0; top:8px; width:4px; height:4px; border-radius:50%; background:var(--accent); }
.v2 .note{ color:var(--dim); font-size:13px; margin-top:22px; font-style:normal; }

/* ===== 행사 운영진 블록(Phase 2 이관 대비 · #ops) ===== */
.v2 .team-block{ background:var(--band); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.v2 .mcard{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:24px 20px; text-align:center; }
.v2 .mcard .ava{ width:60px; height:60px; border-radius:14px; margin:0 auto 14px; display:flex; align-items:center; justify-content:center; font-size:23px; font-weight:800; color:#fff; background:linear-gradient(135deg,#3b64f0,#5b7cf5); }
.v2 .mcard .ava.y{ background:linear-gradient(135deg,#e0a200,#f7c948); }
.v2 .mcard .ava.n{ background:linear-gradient(135deg,#1f2a44,#3a4a6e); }
.v2 .mcard .rb{ display:inline-block; font-size:11px; font-weight:800; color:var(--accent); background:color-mix(in srgb, var(--accent) 9%, transparent); border-radius:999px; padding:3px 10px; }
.v2 .mcard .rb.chair{ color:#fff; background:var(--accent); }
.v2 .mcard .nm{ font-size:17px; font-weight:800; color:var(--head); margin:11px 0 5px; }
.v2 .mcard .sc{ font-size:13px; color:var(--dim); }

/* footer(D) — v2 페이지 공유 푸터 위 워드마크 밴드와 연속 */
.v2 .site-footer{ background:var(--paper); }

/* ===== 다크 오버라이드 (토큰 밖 하드코딩 표면) ===== */
:root[data-theme="dark"] .v2 .adv .school.audit{ color:#e6b24d; background:rgba(247,201,72,.16); }
:root[data-theme="dark"] .v2 .t-plat{ color:#93a8dc; }
:root[data-theme="dark"] .v2 .t-gold{ color:#d8b45c; }
:root[data-theme="dark"] .v2 .t-bronze{ color:#cf9366; }
:root[data-theme="dark"] .v2 .ec-badge{ background:rgba(43,196,140,.16); color:#37d89b; }
:root[data-theme="dark"] .v2 .sp .lockup img.onlight{ outline:none; }

/* ===== 반응형 (D 컴포넌트) ===== */
@media(max-width:900px){
  .v2 .steer{ grid-template-columns:repeat(3,1fr); }
}
@media(max-width:820px){
  .v2 .pillars{ grid-template-columns:1fr; gap:0; } .v2 .pillar{ margin-top:26px; }
  .v2 .adv-grid{ grid-template-columns:repeat(2,1fr); }
  .v2 .sp-grid{ grid-template-columns:1fr 1fr; }
  .v2 .tl{ grid-template-columns:1fr; border-top:none; }
  .v2 .tstep{ border-left:2px solid var(--line); border-top:none; padding-left:26px; }
  .v2 .tstep::before{ left:-7px; top:26px; }
}
@media(max-width:760px){
  .v2 .strip-in{ grid-template-columns:repeat(2,1fr); }
  .v2 .strip .stat{ border-top:1px solid var(--line-2); }
  .v2 .strip .stat:nth-child(-n+2){ border-top:none; }
  .v2 .strip .stat:nth-child(odd){ border-left:none; }
  .v2 .eventcard{ grid-template-columns:1fr; } .v2 .ec-r{ min-height:150px; }
}
@media(max-width:720px){
  .v2 .wperson{ grid-template-columns:1fr; }
  .v2 .wp-id{ flex-direction:row; align-items:center; border-right:none; border-bottom:1px solid var(--line-2); flex-wrap:wrap; }
  .v2 .wp-nm{ font-size:18px; }
}
@media(max-width:640px){
  .v2 .steer{ grid-template-columns:repeat(2,1fr); }
}
@media(max-width:560px){
  .v2 .sec{ padding:70px 0; }
  .v2 .state .in{ padding:64px 0; }
}
@media(max-width:520px){
  .v2 .sp-grid{ grid-template-columns:1fr; }
  .v2 .adv-grid{ grid-template-columns:1fr; }
}
@media(max-width:460px){
  .v2 .strip-in{ grid-template-columns:1fr; }
  .v2 .strip .stat{ border-left:none; }
  .v2 .strip .stat:nth-child(n){ border-top:1px solid var(--line-2); }
  .v2 .strip .stat:first-child{ border-top:none; }
}

/* 스탯 스트립 4열 변형 (/about 핵심 숫자) */
.v2 .strip-in.c4{ grid-template-columns:repeat(4,1fr); }
@media(max-width:760px){ .v2 .strip-in.c4{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:460px){ .v2 .strip-in.c4{ grid-template-columns:1fr; } }

/* =========================================================================
   시안 D 디자인 시스템 — Phase 2 (행사 클러스터: /events 허브·제1회 상세·컨퍼런스)
   전부 body.v2 스코프 → 미이관 페이지 무회귀. Phase 1 컴포넌트와 공존.
   ========================================================================= */

/* 버튼 별칭·상태 (기존 마크업 클래스 호환 + 비활성 표시) */
.v2 .btn-ghost{ background:transparent; border-color:transparent; color:var(--accent); }
.v2 .btn-ghost:hover{ color:var(--accent-2); }
.v2 .btn-primary{ background:var(--accent); color:#fff; box-shadow:0 8px 20px -8px color-mix(in srgb, var(--accent) 55%, transparent); }
.v2 .btn-primary:hover{ background:var(--accent-2); transform:translateY(-1px); }
.v2 .btn-soft{ border:1px solid var(--line); background:var(--card); color:var(--ink); }
.v2 .btn-soft:hover{ border-color:var(--accent); color:var(--accent); }
.v2 .btn[aria-disabled="true"]{ opacity:.5; cursor:not-allowed; box-shadow:none; transform:none; }

/* 좌측 정렬 히어로 (행사 상세·컨퍼런스 공용) */
.v2 .lhero{ padding:84px 0 70px; position:relative; }
.v2 .lhero .eye{ display:inline-flex; align-items:center; gap:8px; background:color-mix(in srgb, var(--accent) 9%, transparent); color:var(--accent); font-size:12.5px; font-weight:700; border-radius:999px; padding:7px 16px; }
.v2 .lhero .eye .dot{ width:6px; height:6px; border-radius:50%; background:var(--accent); }
.v2 .lhero h1{ font-size:clamp(38px,6.4vw,76px); font-weight:800; letter-spacing:-.045em; line-height:1.03; margin:22px 0 0; max-width:18ch; text-wrap:balance; color:var(--head); }
.v2 .lhero h1 .hl{ color:var(--accent); }
.v2 .lhero .sub{ color:var(--sub); font-size:clamp(16px,1.9vw,19px); margin-top:22px; max-width:66ch; text-wrap:pretty; }
.v2 .lhero .hmeta{ margin-top:20px; color:var(--dim); font-size:13px; display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.v2 .lhero .actions{ justify-content:flex-start; margin-top:34px; }
.v2 .lhero .hosts{ justify-content:flex-start; margin-top:26px; }
.v2 .openpill{ display:inline-flex; align-items:center; gap:8px; margin-top:22px; color:var(--sub); font-size:13.5px; font-weight:600; }
.v2 .openpill .dot{ width:7px; height:7px; border-radius:50%; background:var(--green); }

/* 스펙/사실 카드 (개요·히어로 팩트) */
.v2 .facts{ display:flex; gap:12px; margin-top:34px; flex-wrap:wrap; }
.v2 .fact{ display:flex; flex-direction:column; gap:5px; background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:16px 20px; min-width:150px; }
.v2 .fact .fk{ font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--dim); }
.v2 .fact .fv{ font-size:17px; font-weight:800; color:var(--head); letter-spacing:-.01em; font-variant-numeric:tabular-nums; }
.v2 .fact .fs{ font-size:12.5px; color:var(--dim); }

/* 카드 그리드 (미션·차별점·개요·참가비) */
.v2 .cardgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:44px; }
.v2 .cardgrid.c4{ grid-template-columns:repeat(4,1fr); }
.v2 .gcard{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:26px 24px; transition:box-shadow .18s, transform .18s, border-color .18s; }
.v2 .gcard:hover{ border-color:color-mix(in srgb, var(--accent) 32%, transparent); transform:translateY(-2px); box-shadow:0 14px 34px -22px var(--sd); }
.v2 .gcard .ix{ font-size:12px; font-weight:800; letter-spacing:.04em; color:var(--accent); }
.v2 .gcard h3{ font-size:19px; font-weight:800; letter-spacing:-.02em; color:var(--head); margin:12px 0 10px; }
.v2 .gcard p{ font-size:14.5px; color:var(--sub); }
.v2 .gcard p strong{ color:var(--head); font-weight:700; }

/* 세로 일정 타임라인 */
.v2 .vtl{ margin-top:44px; border-top:1px solid var(--line); }
.v2 .vtl .row{ display:grid; grid-template-columns:200px 1fr; gap:24px; padding:22px 4px; border-bottom:1px solid var(--line); align-items:start; }
.v2 .vtl .when{ font-size:14px; font-weight:800; color:var(--accent); font-variant-numeric:tabular-nums; letter-spacing:-.01em; }
.v2 .vtl .row.key .when::before{ content:"● "; font-size:9px; vertical-align:middle; }
.v2 .vtl .what{ font-size:16px; font-weight:800; color:var(--head); letter-spacing:-.01em; }
.v2 .vtl .desc{ font-size:14px; color:var(--sub); margin-top:5px; }

/* 교육 트랙 */
.v2 .trackgrid{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:44px; }
.v2 .trk{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:26px 24px; }
.v2 .trk .tag{ display:inline-block; font-size:11px; font-weight:800; letter-spacing:.04em; color:var(--accent); background:color-mix(in srgb, var(--accent) 10%, transparent); border-radius:999px; padding:4px 12px; }
.v2 .trk h3{ font-size:18px; font-weight:800; letter-spacing:-.02em; color:var(--head); margin:14px 0 8px; }
.v2 .trk p{ font-size:14px; color:var(--sub); }

/* TBA 박스 (시상) */
.v2 .tbabox{ margin-top:40px; border:1px dashed var(--line); border-radius:var(--r-lg); padding:34px 30px; background:var(--band); }
.v2 .tbabox .soon{ display:inline-block; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--dim); border:1px solid var(--line); border-radius:999px; padding:4px 12px; }
.v2 .tbabox p{ margin-top:14px; color:var(--sub); font-size:15px; max-width:54ch; }

/* 후원 등급 그리드 */
.v2 .tiergrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:44px; }
.v2 .tier{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:26px 22px; }
.v2 .tier.top{ border-color:var(--accent); box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 30%, transparent) inset; }
.v2 .tier .grade{ font-size:15px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--head); }
.v2 .tier .amt{ font-size:14px; font-weight:700; color:var(--accent); margin-top:6px; font-variant-numeric:tabular-nums; }
.v2 .tier ul{ list-style:none; margin-top:16px; padding:0; display:flex; flex-direction:column; gap:8px; }
.v2 .tier li{ font-size:13.5px; color:var(--sub); padding-left:15px; position:relative; }
.v2 .tier li::before{ content:"·"; position:absolute; left:4px; color:var(--accent); font-weight:800; }

/* 파트너 칩·소제목 */
.v2 .subhead{ font-size:13px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--dim); margin-top:40px; }
.v2 .chiprow{ display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.v2 .pchip{ display:inline-flex; flex-direction:column; gap:2px; background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:12px 16px; }
.v2 .pchip b{ font-size:14px; font-weight:700; color:var(--head); }
.v2 .pchip small{ font-size:11.5px; color:var(--dim); }

/* 행사 운영진 — 동아리별 슬롯 (#ops · steer/mcard는 Phase 1 CSS 재사용) */
.v2 .clubs{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:18px; }
.v2 .club{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:22px 20px; }
.v2 .club .ch{ display:flex; align-items:center; gap:9px; }
.v2 .club .ctag{ font-size:11px; font-weight:800; letter-spacing:.05em; color:#fff; border-radius:6px; padding:3px 9px; }
.v2 .club .cn{ font-size:16px; font-weight:800; color:var(--head); letter-spacing:-.01em; }
.v2 .club .cs{ font-size:12px; color:var(--dim); margin-top:2px; }
.v2 .club .cslots{ margin-top:16px; display:flex; flex-direction:column; gap:10px; }
.v2 .cslot{ display:flex; align-items:center; gap:12px; }
.v2 .cslot .ph{ width:34px; height:34px; border-radius:9px; border:1px dashed var(--line); display:flex; align-items:center; justify-content:center; color:var(--dim); font-size:15px; flex:none; }
.v2 .cslot em{ font-style:italic; color:var(--dim); font-size:13px; }

/* 컨퍼런스 — 프로그램 타임라인 */
.v2 .prog{ margin-top:48px; border-top:1px solid var(--line); }
.v2 .pslot{ display:grid; grid-template-columns:130px 1fr; gap:24px; padding:24px 4px; border-bottom:1px solid var(--line); align-items:start; }
.v2 .pslot .ptime{ font-size:15px; font-weight:800; color:var(--accent); font-variant-numeric:tabular-nums; }
.v2 .pslot .ptime .dur{ display:block; font-size:12px; color:var(--dim); margin-top:4px; font-weight:600; }
.v2 .pslot .pbody h3{ font-size:18px; font-weight:800; letter-spacing:-.02em; color:var(--head); }
.v2 .pslot .pbody p{ font-size:14px; color:var(--sub); margin-top:6px; max-width:58ch; }
.v2 .tbaline{ margin-top:12px; font-size:13px; color:var(--dim); font-style:italic; letter-spacing:.01em; }
.v2 .pslot.brk .pbody h3{ color:var(--dim); font-weight:700; font-size:15px; }
.v2 .pslot.feature{ background:linear-gradient(120deg, color-mix(in srgb, var(--accent) 6%, transparent), color-mix(in srgb, var(--green) 6%, transparent)); border-radius:var(--r); }
.v2 .pslot.feature .fbadge{ display:inline-block; font-size:11px; font-weight:800; letter-spacing:.04em; color:#12855c; background:rgba(34,176,125,.14); border-radius:999px; padding:4px 11px; margin-bottom:8px; }
:root[data-theme="dark"] .v2 .pslot.feature .fbadge{ color:#37d89b; background:rgba(43,196,140,.16); }

/* 컨퍼런스 — 장소/청강 카드 + 청중 */
.v2 .info{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:48px; }
.v2 .icard{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); padding:32px 30px; }
.v2 .icard .ico{ width:44px; height:44px; border-radius:12px; background:color-mix(in srgb, var(--accent) 10%, transparent); color:var(--accent); display:flex; align-items:center; justify-content:center; font-size:20px; }
.v2 .icard h3{ font-size:20px; font-weight:800; letter-spacing:-.02em; color:var(--head); margin:18px 0 12px; }
.v2 .icard .kv{ display:flex; justify-content:space-between; gap:16px; padding:11px 0; border-top:1px solid var(--line-2); font-size:14.5px; }
.v2 .icard .kv:first-of-type{ border-top:none; }
.v2 .icard .kv .k2{ color:var(--dim); font-weight:600; }
.v2 .icard .kv .v2v{ color:var(--head); font-weight:700; text-align:right; }
.v2 .icard .price{ font-size:30px; font-weight:800; color:var(--head); letter-spacing:-.03em; font-variant-numeric:tabular-nums; }
.v2 .icard .price .won{ font-size:15px; font-weight:700; color:var(--sub); }
.v2 .icard .cnote{ font-size:13px; color:var(--dim); margin-top:14px; }
.v2 .icard .btn{ margin-top:22px; width:100%; justify-content:center; }
.v2 .audience{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:44px; }
.v2 .aud{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:24px 22px; }
.v2 .aud .no{ font-size:13px; font-weight:800; color:var(--accent); }
.v2 .aud h4{ font-size:16px; font-weight:800; letter-spacing:-.01em; color:var(--head); margin:8px 0 6px; }
.v2 .aud p{ font-size:14px; color:var(--sub); }

/* Phase 2 반응형 */
@media(max-width:900px){
  .v2 .clubs{ grid-template-columns:1fr 1fr; }
  .v2 .tiergrid{ grid-template-columns:1fr 1fr; }
}
@media(max-width:820px){
  .v2 .cardgrid, .v2 .cardgrid.c4{ grid-template-columns:1fr 1fr; }
  .v2 .trackgrid{ grid-template-columns:1fr; }
}
@media(max-width:720px){
  .v2 .info{ grid-template-columns:1fr; }
}
@media(max-width:640px){
  .v2 .vtl .row{ grid-template-columns:1fr; gap:6px; }
  .v2 .pslot{ grid-template-columns:1fr; gap:8px; }
  .v2 .audience{ grid-template-columns:1fr; }
}
@media(max-width:560px){
  .v2 .cardgrid, .v2 .cardgrid.c4{ grid-template-columns:1fr; }
  .v2 .clubs{ grid-template-columns:1fr; }
  .v2 .tiergrid{ grid-template-columns:1fr; }
}

/* =========================================================================
   시안 D 디자인 시스템 — Phase 3 (후원·거버넌스·문서 페이지)
   sponsors/faq/resources 이관용 소량 컴포넌트. governance/proposal/ir/ir-deck
   은 자체 문서 스킨(토큰만 공통 팔레트로 통일)이라 여기 CSS 불필요.
   ========================================================================= */

/* 데이터 테이블 (후원 예산 개요) */
.v2 .gtable{ width:100%; border-collapse:collapse; margin-top:34px; font-size:14.5px; }
.v2 .gtable thead th{ text-align:left; color:var(--dim); font-weight:800; font-size:11px; letter-spacing:.08em; text-transform:uppercase; padding:12px 14px; border-bottom:2px solid var(--head); }
.v2 .gtable th.r, .v2 .gtable td.r{ text-align:right; font-variant-numeric:tabular-nums; }
.v2 .gtable td{ padding:14px; border-bottom:1px solid var(--line); color:var(--sub); vertical-align:top; }
.v2 .gtable td.kind{ color:var(--dim); font-size:12.5px; white-space:nowrap; }
.v2 .gtable td.amt{ color:var(--head); font-weight:700; white-space:nowrap; }
.v2 .gtable tbody tr:hover td{ background:color-mix(in srgb, var(--accent) 3%, transparent); }
.v2 .gtable-wrap{ overflow-x:auto; }

/* FAQ 아코디언 (details/summary) */
.v2 .faqgroup{ margin-top:40px; }
.v2 .faqgroup .gh{ font-size:12px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--accent); margin-bottom:14px; }
.v2 details.faq{ border:1px solid var(--line); border-radius:var(--r); background:var(--card); margin-bottom:12px; overflow:hidden; transition:border-color .15s; }
.v2 details.faq[open]{ border-color:color-mix(in srgb, var(--accent) 32%, transparent); }
.v2 details.faq > summary{ list-style:none; cursor:pointer; padding:18px 22px; font-weight:700; font-size:16px; color:var(--head); display:flex; justify-content:space-between; align-items:center; gap:16px; }
.v2 details.faq > summary::-webkit-details-marker{ display:none; }
.v2 details.faq > summary::after{ content:"+"; color:var(--accent); font-size:24px; font-weight:400; transition:transform .2s ease; line-height:1; flex:none; }
.v2 details.faq[open] > summary::after{ transform:rotate(45deg); }
.v2 details.faq > summary:hover{ color:var(--accent); }
.v2 details.faq .a{ padding:0 22px 20px; color:var(--sub); line-height:1.72; font-size:15px; }
.v2 details.faq .a a{ color:var(--accent); font-weight:600; }
.v2 details.faq .a strong{ color:var(--head); font-weight:700; }

/* 자료 리스트 (resources) */
.v2 .reslist{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:44px; }
.v2 .rescard{ display:flex; flex-direction:column; gap:8px; background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:26px 24px; transition:box-shadow .18s, transform .18s, border-color .18s; }
.v2 a.rescard:hover{ border-color:color-mix(in srgb, var(--accent) 32%, transparent); transform:translateY(-2px); box-shadow:0 14px 34px -22px var(--sd); }
.v2 .rescard .rk{ font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--accent); }
.v2 .rescard h3{ font-size:19px; font-weight:800; letter-spacing:-.02em; color:var(--head); }
.v2 .rescard p{ font-size:14px; color:var(--sub); }
.v2 .rescard .go{ margin-top:auto; padding-top:10px; color:var(--accent); font-weight:700; font-size:14px; }
@media(max-width:640px){ .v2 .reslist{ grid-template-columns:1fr; } }

/* ── 0712 회장 피드백: 행사 운영진 역할 그리드(#ops) · 기수 헤더(/team) · 소개의 말 빈자리(/about) ── */
.v2 .oproles{ display:flex; flex-wrap:wrap; gap:14px; margin-top:14px; }
.v2 .oprole{ flex:1 1 240px; background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:24px 22px; display:flex; flex-direction:column; align-items:flex-start; }
.v2 .oprole.is-lead{ border-color:color-mix(in srgb, var(--accent) 40%, transparent); box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 22%, transparent) inset; }
.v2 .oprole .orl{ display:inline-block; font-size:11px; font-weight:800; letter-spacing:.04em; color:var(--accent); background:color-mix(in srgb, var(--accent) 10%, transparent); border-radius:999px; padding:3px 11px; }
.v2 .oprole .orl.lead{ color:#fff; background:var(--accent); }
.v2 .oprole .orn{ font-size:18px; font-weight:800; color:var(--head); margin-top:12px; letter-spacing:-.01em; }
.v2 .oprole .orn.tbd{ color:var(--dim); font-weight:600; font-style:italic; font-size:14px; }
.v2 .oprole .ors{ font-size:12.5px; color:var(--dim); margin-top:4px; }
.v2 .oprole .opava{ width:100px; height:100px; border-radius:20px; margin-bottom:16px; display:flex; align-items:center; justify-content:center; overflow:hidden; background:linear-gradient(135deg,#3b64f0,#5b7cf5); color:#fff; font-size:36px; font-weight:800; }
.v2 .oprole .opava.n{ background:linear-gradient(135deg,#1f2a44,#3a4a6e); }
.v2 .oprole .opava.tbd{ background:var(--band); color:var(--dim); border:1px dashed var(--line); }
.v2 .oprole .opava img{ width:100%; height:100%; object-fit:cover; }
@media(max-width:460px){ .v2 .oprole{ flex-basis:100%; } }

/* 행사 운영진 · 동아리별 담당 그룹 */
.v2 .opclubs{ margin-top:14px; display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:start; }
.v2 .opclub{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:20px 20px 22px; }
.v2 .opclub-h{ display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; padding-bottom:13px; margin-bottom:15px; border-bottom:1px solid var(--line-2); }
.v2 .opclub-h .oc-nm{ font-size:13px; font-weight:800; color:var(--accent); letter-spacing:.02em; }
.v2 .opclub-h .oc-sc{ font-size:12px; color:var(--dim); }
.v2 .opclub-p{ display:flex; flex-direction:column; gap:12px; }
.v2 .opp{ display:flex; align-items:center; gap:11px; }
.v2 .opp-av{ width:66px; height:66px; flex:none; border-radius:15px; display:flex; align-items:center; justify-content:center; overflow:hidden; font-size:24px; font-weight:800; color:#fff; background:linear-gradient(135deg,#3b64f0,#5b7cf5); }
.v2 .opp-av.y{ background:linear-gradient(135deg,#e0a200,#f7c948); }
.v2 .opp-av img{ width:100%; height:100%; object-fit:cover; }
.v2 .opp-nm{ font-size:15.5px; font-weight:700; color:var(--head); letter-spacing:-.01em; }
@media(max-width:560px){ .v2 .opclubs{ grid-template-columns:1fr; } }

/* ===== 참가팀 그리드(#teams · 행사 후 결과물 확장) ===== */
.v2 .teamgrid{ margin-top:20px; display:grid; grid-template-columns:repeat(3,1fr); gap:14px; align-items:start; }
.v2 .tmcard{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); padding:22px 22px 24px; transition:box-shadow .2s, transform .2s, border-color .2s; }
.v2 .tmcard:hover{ border-color:color-mix(in srgb, var(--accent) 28%, transparent); transform:translateY(-3px); box-shadow:0 16px 40px -26px var(--sd); }
.v2 .tmcard .tm-h{ display:flex; flex-direction:column; gap:8px; }
.v2 .tmcard .tm-org{ align-self:flex-start; font-size:11px; font-weight:800; letter-spacing:.03em; padding:3px 10px; border-radius:999px; color:var(--accent); background:color-mix(in srgb, var(--accent) 10%, transparent); }
.v2 .tmcard .tm-org.tm-snu{ color:#0f9d6b; background:rgba(34,176,125,.12); }
.v2 .tmcard .tm-nm{ font-size:18px; font-weight:800; color:var(--head); letter-spacing:-.01em; }
.v2 .tmcard .tm-tbd{ font-size:11px; font-weight:700; font-style:italic; color:var(--dim); margin-left:4px; }
.v2 .tmcard .tm-mem{ margin-top:14px; font-size:13.5px; color:var(--sub); line-height:1.6; }
.v2 .tmcard .tm-mem .tm-mk{ display:block; font-size:11px; font-weight:800; letter-spacing:.04em; color:var(--dim); text-transform:uppercase; margin-bottom:3px; }
.v2 .tmcard .tm-soon{ margin-top:16px; padding-top:15px; border-top:1px dashed var(--line); font-size:12.5px; color:var(--dim); font-style:italic; }
.v2 .tmcard .tm-shots{ margin-top:16px; display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
.v2 .tmcard .tm-shot{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:10px; border:1px solid var(--line); }
.v2 .tmcard .tm-rt{ margin-top:15px; font-size:15px; font-weight:800; color:var(--head); letter-spacing:-.01em; }
.v2 .tmcard .tm-rd{ margin-top:6px; font-size:13px; color:var(--sub); line-height:1.6; }
:root[data-theme="dark"] .v2 .tmcard .tm-org.tm-snu{ color:#37d89b; background:rgba(43,196,140,.16); }
@media(max-width:820px){ .v2 .teamgrid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:520px){ .v2 .teamgrid{ grid-template-columns:1fr; } }

.v2 .era{ display:flex; align-items:baseline; flex-wrap:wrap; gap:12px; margin:6px 0 22px; padding-bottom:14px; border-bottom:1px solid var(--line); }
.v2 .era .eno{ font-size:20px; font-weight:800; color:var(--head); letter-spacing:-.02em; }
.v2 .era .ewhen{ font-size:13px; font-weight:700; color:var(--accent); background:color-mix(in srgb, var(--accent) 10%, transparent); border-radius:999px; padding:3px 11px; }
.v2 .era .enote{ font-size:12.5px; color:var(--dim); margin-left:auto; }
@media(max-width:520px){ .v2 .era .enote{ margin-left:0; flex-basis:100%; } }

.v2 .introword{ margin-top:20px; border:1px dashed var(--line); border-radius:var(--r-lg); padding:40px 32px; text-align:center; background:var(--card); }
.v2 .introword .qm{ font-family:Georgia,serif; font-size:44px; line-height:1; color:var(--line); }
.v2 .introword p{ margin-top:4px; font-size:14px; color:var(--dim); font-style:italic; }

/* 상세 연혁 목록 (/about #history) */
.v2 .histlist{ margin-top:26px; border-top:1px solid var(--line); }
.v2 .histlist .hrow{ display:grid; grid-template-columns:120px 1fr; gap:16px; padding:14px 2px; border-bottom:1px solid var(--line); }
.v2 .histlist .hd{ font-size:13px; font-weight:800; color:var(--accent); font-variant-numeric:tabular-nums; }
.v2 .histlist .ht{ font-size:14.5px; color:var(--sub); }
@media(max-width:520px){ .v2 .histlist .hrow{ grid-template-columns:1fr; gap:3px; } }

/* =====================================================================
   2026-07-15 대개편 — 공동창립 락업 · About 3단(사람들) · 해커톤 키프레이즈 · Platinum 히어로 노출
   ===================================================================== */

/* 홈 히어로 — 3행 세로 배치(공동 창립 / 함께하는 동아리 / 파트너). 각 행 = 라벨(좌) + 내용 + 주석(우).
   ⚠️ 학교 로고 공식 파일 게이트 → 텍스트 락업(파일 확보 시 <img> 교체) */
.v2 .hero-orgs{ margin:44px auto 0; display:flex; flex-direction:column; max-width:660px; border:1px solid var(--line); border-radius:var(--r-lg); background:var(--card); overflow:hidden; text-align:left; }
.v2 .ho-cell{ display:flex; align-items:center; gap:18px 26px; flex-wrap:wrap; padding:30px 28px; border-top:1px solid var(--line-2); }
.v2 .ho-cell:first-child{ border-top:none; }
.v2 .ho-lbl{ flex:0 0 82px; font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); }
.v2 .ho-schools{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.v2 .fd-school{ font-size:clamp(19px,2.4vw,26px); font-weight:800; letter-spacing:-.02em; color:var(--head); line-height:1; }
.v2 .fd-x{ font-size:clamp(14px,1.8vw,18px); font-weight:400; color:var(--dim); }
.v2 .ho-clubs{ display:flex; align-items:center; gap:26px; flex-wrap:wrap; }
.v2 .fd-club{ display:inline-flex; align-items:center; font-size:19px; font-weight:800; letter-spacing:.01em; color:var(--head); }
.v2 .ho-note{ margin-left:auto; font-size:11.5px; font-weight:700; letter-spacing:.06em; color:var(--dim); }
.v2 .ho-cell .pl-logo{ display:inline-flex; align-items:center; height:60px; }
.v2 .ho-cell .pl-logo img{ max-height:56px; max-width:260px; width:auto; object-fit:contain; }
.v2 .pl-logo img.lc{ display:block; } .v2 .pl-logo img.ld{ display:none; }
:root[data-theme="dark"] .v2 .pl-logo.logo-swap img.lc{ display:none; }
:root[data-theme="dark"] .v2 .pl-logo.logo-swap img.ld{ display:block; }
@media(max-width:560px){
  .v2 .ho-cell{ align-items:flex-start; }
  .v2 .ho-lbl{ flex-basis:100%; }
  .v2 .ho-note{ margin-left:0; }
}

/* About 대문 — 3구획 벽(대형, 홈과 동일 논리) */
.v2 .foundwall{ margin-top:32px; display:grid; grid-template-columns:1.8fr 1fr 1fr; border:1px solid var(--line); border-radius:var(--r-lg); background:var(--card); overflow:hidden; }
.v2 .fw-seg{ padding:44px 30px; display:flex; flex-direction:column; align-items:flex-start; gap:20px; border-left:1px solid var(--line-2); }
.v2 .fw-seg:first-child{ border-left:none; }
/* 3열 그리드일 때만(1040px 초과) 공동창립 열이 로고 폭 때문에 눌려 줄바꿈되지 않도록 최소폭 보장.
   1040px 이하는 아래에서 1fr 단일열로 전환되므로 이 min-width를 주면 모바일에서 overflow:hidden에 잘려 위험 — 반드시 스코프 유지. */
@media(min-width:1041px){
  .v2 .fw-seg:first-child{ min-width:400px; }
}
.v2 .fw-lbl{ font-size:11.5px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--dim); }
.v2 .foundwall .fw-schools{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.v2 .foundwall .fw-school{ font-size:clamp(26px,3.8vw,44px); font-weight:800; letter-spacing:-.025em; color:var(--head); line-height:1; }
.v2 .foundwall .fw-x{ font-size:clamp(18px,2.6vw,28px); color:var(--dim); }
.v2 .foundwall .fw-clubs{ display:flex; align-items:center; gap:32px; flex-wrap:wrap; }
.v2 .foundwall .fw-club{ display:inline-flex; align-items:center; font-size:23px; font-weight:800; letter-spacing:.01em; color:var(--head); }
.v2 .fw-note{ font-size:12px; font-weight:700; letter-spacing:.06em; color:var(--dim); margin-top:auto; }
.v2 .fw-seg .pl-logo{ display:inline-flex; align-items:center; height:74px; }
.v2 .fw-seg .pl-logo img{ max-height:68px; max-width:200px; width:auto; object-fit:contain; }
/* 1040px: 확대된 로고(2026-07-16) 기준 3열이 편히 들어가는 최소폭 — 760px면 720~1040px 구간에서 클리핑 사각지대 발생 */
@media(max-width:1040px){
  .v2 .foundwall{ grid-template-columns:1fr; }
  .v2 .fw-seg{ border-left:none; border-top:1px solid var(--line-2); }
  .v2 .fw-seg:first-child{ border-top:none; }
}

/* About 3단(사람들) — 소제목 · 설명 · 크루 명단 */
.v2 .ppl-sub{ font-size:clamp(20px,2.6vw,26px); font-weight:800; letter-spacing:-.02em; color:var(--head); margin:52px 0 6px; padding-top:24px; border-top:1px solid var(--line); }
.v2 .ppl-desc{ color:var(--sub); font-size:15.5px; margin:0 0 12px; max-width:72ch; }
.v2 .ppl-desc b{ color:var(--head); font-weight:700; }
.v2 .crewlist{ margin-top:16px; }
.v2 .crew-ed + .crew-ed{ margin-top:22px; }
.v2 .crew-ed-h{ display:flex; align-items:baseline; gap:10px; margin-bottom:14px; }
.v2 .crew-ed-h .crew-no{ font-size:16px; font-weight:800; color:var(--head); letter-spacing:-.01em; }
.v2 .crew-ed-h .crew-yr{ font-size:12px; font-weight:700; color:var(--accent); background:color-mix(in srgb, var(--accent) 10%, transparent); border-radius:999px; padding:3px 11px; font-variant-numeric:tabular-nums; }
.v2 .crew-names{ display:flex; flex-wrap:wrap; gap:8px; }
.v2 .crew-nm{ border:1px solid var(--line); background:var(--card); border-radius:999px; padding:6px 14px; font-size:13px; font-weight:600; color:var(--sub); }

/* About 소개의 말 — 사진 없는 인물 이니셜 */
.v2 .wp-photo .wp-init{ display:flex; align-items:center; justify-content:center; width:100%; height:100%; font-size:28px; font-weight:800; color:#fff; }

/* 해커톤 — 도발적 키프레이즈 훅 · 10팀·100시간 강조 */
.v2 .kf-sec{ background:var(--band); border-top:1px solid var(--line); border-bottom:1px solid var(--line); text-align:center; }
.v2 .keyphrase{ font-size:clamp(24px,3.7vw,42px); font-weight:800; letter-spacing:-.032em; line-height:1.2; color:var(--head); max-width:24ch; margin:0 auto; text-wrap:balance; }
.v2 .keyphrase .hl{ color:var(--accent); }
.v2 .hbig{ margin-top:32px; display:inline-flex; align-items:baseline; gap:20px; }
.v2 .hbig .hb{ display:inline-flex; align-items:baseline; gap:8px; }
.v2 .hbig .hb b{ font-size:clamp(44px,7vw,78px); font-weight:800; letter-spacing:-.04em; color:var(--accent); font-variant-numeric:tabular-nums; line-height:1; }
.v2 .hbig .hb small{ font-size:clamp(15px,2vw,20px); font-weight:700; color:var(--sub); }
.v2 .hbig .hb-x{ font-size:clamp(28px,4vw,44px); color:var(--dim); font-weight:400; }
.v2 .kf-note{ margin-top:24px; font-size:13px; font-weight:700; letter-spacing:.08em; color:var(--dim); }
@media(max-width:560px){
  .v2 .hbig{ gap:14px; }
}

/* =====================================================================
   2026-07-15 (2차 대개편) — About 1인칭·야망 · Robs 팀 그룹 · 참가 동아리 로고 슬롯 · 컨퍼런스 연결
   ===================================================================== */

/* About 히어로 서브 — 시원한 폭·1인칭 톤 */
.v2 .ah .sub{ color:var(--sub); font-size:clamp(17px,2vw,21px); margin-top:24px; max-width:44ch; text-wrap:pretty; }

/* Robs(크루) — 회차별 팀 그룹(팀명 + 팀원 칩) */
.v2 .crew-teams{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.v2 .crew-team{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:18px 20px 20px; }
.v2 .crew-tnm{ display:flex; align-items:center; gap:9px; flex-wrap:wrap; margin-bottom:13px; font-size:15.5px; font-weight:800; color:var(--head); letter-spacing:-.01em; }
.v2 .crew-tnm .ctorg{ font-size:10.5px; font-weight:800; letter-spacing:.04em; padding:2px 9px; border-radius:999px; color:var(--accent); background:color-mix(in srgb, var(--accent) 10%, transparent); }
.v2 .crew-tnm .ctorg.snu{ color:#0f9d6b; background:rgba(34,176,125,.12); }
:root[data-theme="dark"] .v2 .crew-tnm .ctorg.snu{ color:#37d89b; background:rgba(43,196,140,.16); }
@media(max-width:640px){ .v2 .crew-teams{ grid-template-columns:1fr; } }

/* 참가 동아리 로고 슬롯 칩(해커톤) — 파일(/founders/<slug>.png) 있으면 로고, 없으면 텍스트만 */
.v2 .chip.fclub{ display:inline-flex; align-items:center; gap:10px; padding:0; margin-right:12px; border:none; background:none; border-radius:0; }
.v2 .fclub-logo{ height:38px; width:auto; max-width:230px; object-fit:contain; flex:none; }

/* =====================================================================
   2026-07-16 — 학교·동아리 로고 이미지 적용(홈 히어로 밴드 · About 공동창립 벽 · 해커톤 칩)
   원본 로고 색 유지, 다크는 화이트판 스와프(MR은 로열블루라 양쪽 공용).
   ===================================================================== */

/* 학교 로고 락업 — 워드마크(KAIST)와 엠블럼(서울대) 시각 높이 균형 */
.v2 .fd-logo, .v2 .fw-logo{ display:inline-flex; align-items:center; }
.v2 .fd-logo img, .v2 .fw-logo img{ width:auto; object-fit:contain; display:block; }
/* 홈 히어로 밴드(작게) */
.v2 .ho-schools .fd-logo.is-word img{ height:42px; }
.v2 .ho-schools .fd-logo.is-emblem img{ height:60px; }
/* About 대문(크게) */
.v2 .fw-schools .fw-logo.is-word img{ height:58px; }
.v2 .fw-schools .fw-logo.is-emblem img{ height:82px; }
/* 학교 로고 라이트/다크 스와프 */
.v2 .fd-logo img.ld, .v2 .fw-logo img.ld{ display:none; }
:root[data-theme="dark"] .v2 .fd-logo.logo-swap img.lc,
:root[data-theme="dark"] .v2 .fw-logo.logo-swap img.lc{ display:none; }
:root[data-theme="dark"] .v2 .fd-logo.logo-swap img.ld,
:root[data-theme="dark"] .v2 .fw-logo.logo-swap img.ld{ display:block; }

/* 함께하는 동아리 로고(홈·About) — 박스 없이 로고만 나열(간격은 gap), 파일 없으면 워드마크풍 텍스트 폴백(MERO) */
.v2 .fd-club .cl, .v2 .fw-club .cl{ width:auto; object-fit:contain; flex:none; display:block; }
.v2 .ho-clubs .fd-club .cl{ height:40px; max-width:270px; }
.v2 .foundwall .fw-clubs .fw-club .cl{ height:50px; max-width:330px; }
.v2 .fd-club .cl-txt, .v2 .fw-club .cl-txt{ display:none; }
.v2 .fd-club.noimg .cl-txt, .v2 .fw-club.noimg .cl-txt{ display:inline; }
.v2 .fd-club.noimg .cl, .v2 .fw-club.noimg .cl{ display:none; }
/* 동아리 로고 라이트/다크 스와프(SHAPE·SIGMA는 화이트판 보유, MR·MERO는 단일 이미지) */
.v2 .fd-club img.ld, .v2 .fw-club img.ld, .v2 .chip.fclub img.ld{ display:none; }
:root[data-theme="dark"] .v2 .fd-club.logo-swap img.lc,
:root[data-theme="dark"] .v2 .fw-club.logo-swap img.lc,
:root[data-theme="dark"] .v2 .chip.fclub.logo-swap img.lc{ display:none; }
:root[data-theme="dark"] .v2 .fd-club.logo-swap img.ld,
:root[data-theme="dark"] .v2 .fw-club.logo-swap img.ld,
:root[data-theme="dark"] .v2 .chip.fclub.logo-swap img.ld{ display:block; }

@media(max-width:640px){
  .v2 .ho-schools .fd-logo.is-word img{ height:34px; }
  .v2 .ho-schools .fd-logo.is-emblem img{ height:48px; }
  .v2 .fw-schools .fw-logo.is-word img{ height:44px; }
  .v2 .fw-schools .fw-logo.is-emblem img{ height:64px; }
  .v2 .ho-cell{ padding:22px 20px; }
  .v2 .ho-cell .pl-logo{ height:46px; }
  .v2 .ho-cell .pl-logo img{ max-height:42px; max-width:220px; }
  .v2 .fw-seg .pl-logo{ height:56px; }
  .v2 .fw-seg .pl-logo img{ max-height:50px; max-width:250px; }
  .v2 .ho-clubs{ gap:18px; }
  .v2 .foundwall .fw-clubs{ gap:20px; }
  .v2 .ho-clubs .fd-club .cl{ height:32px; max-width:220px; }
  .v2 .foundwall .fw-clubs .fw-club .cl{ height:38px; max-width:250px; }
  .v2 .ho-clubs .fd-club, .v2 .ho-clubs .fd-club .cl-txt{ font-size:16px; }
  .v2 .foundwall .fw-clubs .fw-club, .v2 .foundwall .fw-clubs .fw-club .cl-txt{ font-size:18px; }
  .v2 .chip.fclub{ margin-right:9px; }
  .v2 .fclub-logo{ height:32px; max-width:190px; }
}

/* 컨퍼런스 연결 카드 — nextrow 링크화(일정 흐름 안, "마지막 날" 서사) */
.v2 a.nextrow{ text-decoration:none; transition:border-color .18s, box-shadow .18s, transform .18s; }
.v2 a.nextrow:hover{ border-color:color-mix(in srgb, var(--accent) 42%, transparent); box-shadow:0 16px 40px -26px var(--sd); transform:translateY(-2px); }
.v2 a.nextrow .nw{ color:var(--accent); font-weight:700; }
