@charset "utf-8";
/* ==========================================================================
   프로그램 (program.html)
   ========================================================================== */
.pg { position: relative; isolation: isolate; padding-top: clamp(10px, 0.729vw, 14px); }   /* 시안: 탭 y101 */
.pg > .container { position: relative; z-index: 1; }
/* 상단 포인트 — 시안 좌표(1920 기준) */
.pg__deco { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.pg-plus-open { left:  9.01%; top: clamp(60px, 8.698vw, 167px); width: 1.72%; }
.pg-plus-a    { left: 86.15%; top: clamp(20px, 2.969vw,  57px); width: 1.72%; opacity: 0.2; }
.pg-plus-b    { left: 92.76%; top: clamp(86px, 12.448vw, 239px); width: 1.72%; }
.pg-chev      { left: 18.59%; top: clamp(106px, 15.469vw, 297px); width: 4.95%; opacity: 0.3; }
.pg .container { max-width: calc(1415px + var(--gutter) * 2); }   /* 시안 콘텐츠 1415 (x253~1668) */

/* 3분할 탭 */
/* 시안(10800:1722): 탭 넷이 맞닿아 370x84 로 늘어선다 — 메인 토글과 같은 규격 */
/* 탭 넉 장(1480)이 컨테이너(1415)보다 넓다 — 음수 마진으로 좌우 균등하게 흘려보낸다 */
.daytab--4 {
  --daytab-strip: calc(var(--daytab-w) * 4);
  width: var(--daytab-strip);
  margin-inline: calc((100% - var(--daytab-strip)) / 2);
}
.daytab--4 .daytab__btn { flex: 1 1 0; width: auto; min-width: 0; }

/* ==========================================================================
   기조연설 / 기조강연
   ========================================================================== */
.keynote {
  display: grid;
  grid-template-columns: clamp(180px, 23vw, 440px) 1fr;
  gap: clamp(24px, 6.823vw, 131px);   /* 시안(10943:12043) 카드 오른쪽 693 → 본문 826 = 131 */
  align-items: center;   /* 시안: 본문이 사진 카드 기준 세로 가운데 */
  margin-top: clamp(48px, 5.26vw, 101px);
}
/* 사진이 오른쪽에 오는 쪽은 간격이 다르다 — 시안(10800:1722) 본문 868 · 카드 1227 → 105.
   같은 문장이 우리 렌더링에선 870.5 로 2.5px 넓어 868 이면 한 줄이 접히므로 102 를 준다. */
.keynote--reverse { grid-template-columns: 1fr clamp(180px, 23vw, 440px); gap: clamp(24px, 5.313vw, 102px); }
.keynote--reverse .keynote__media { order: 2; }

.keynote__label {
  font-size: clamp(19px, 1.875vw, 36px);
  font-weight: 700;
  line-height: 1.5;
  color: var(--c-primary);
}
.keynote__title {
  margin-top: clamp(4px, 0.417vw, 8px);
  font-size: clamp(22px, 2.396vw, 46px);
  font-weight: 700;
  line-height: 1.5;
  color: #000;
}
.keynote__desc {
  margin-top: clamp(16px, 1.823vw, 35px);
  font-size: clamp(14px, 1.25vw, 24px);
  font-weight: 500;
  line-height: 1.5;
  color: #000;
}


/* ==========================================================================
   인물 사진 카드 (레트로 창 프레임)
   ========================================================================== */
/* 시안(10943:11838 / 10975:104): 카드 136 = 바 29.31 + 사진 136x136 (정사각).
   이전 라운드의 165x150 에서 줄었다. 이름 텍스트는 x185 에 그대로라 간격이 20 → 49 가 된다. */
.photo {
  position: relative;
  border: 1px solid var(--photo-c, var(--c-primary));
  background: #fff;
  width: clamp(88px, 7.083vw, 136px);
}
.photo--lg { width: 100%; max-width: 440px; }
.photo--cyan { --photo-c: var(--c-primary); }

.photo__bar {
  display: flex;
  align-items: center;
  justify-content: flex-start;   /* ● SPEAKER 는 항상 왼쪽 */
  gap: clamp(4px, 0.417vw, 8px);          /* 시안 실측: ● 오른쪽 438 -> 글자 447 = 8 */
  height: clamp(19px, 1.527vw, 29.31px);   /* 시안 29.31 */
  padding: 0 clamp(8px, 0.794vw, 15.24px);  /* 시안: ● 가 x15.24 에서 시작 */
  background: #fff;
  border-bottom: 1px solid var(--photo-c, var(--c-primary));
  color: var(--photo-c, var(--c-primary));
  font-family: var(--ff-pixel);
  font-size: clamp(8px, 0.729vw, 14px);   /* 시안 14 */
  letter-spacing: 0.06em;
  white-space: nowrap;
  overflow: hidden;
}
/* 시안의 ● 는 9.24 정원 벡터다. 글자 불릿으로 찍으면 베이스라인 때문에
   SPEAKER 텍스트와 세로 중심이 어긋난다("동그라미 간 중앙 정렬" 코멘트). */
.photo__bar::before {
  content: "";
  flex: none;
  width: clamp(5px, 0.481vw, 9.24px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: currentColor;
}
/* 이 픽셀 서체는 ascent 10 / descent 3 인데 SPEAKER 같은 대문자는 descender 가 없어
   줄상자 안에서 잉크가 위로 뜬다(실측 바 중심보다 2.20 위). 시안은 ● 과 글자 잉크가
   정확히 같은 줄(둘 다 y1964~1972)이므로 그만큼 내려 준다. */
.photo__bar > span { position: relative; top: 2px; }

/* 큰 카드(기조연설·기조강연)는 바가 25 로 시안이 다르다 */
.photo--lg .photo__bar { height: clamp(16px, 1.302vw, 25px); }
/* 창 아이콘은 기조연설·기조강연의 큰 카드에만 — 세션 카드에는 없다 */
.photo--lg .photo__bar::after {
  content: "_ ⊡ ×";
  margin-left: auto;
  letter-spacing: 0.18em;
  white-space: nowrap;
}

.photo__img {
  aspect-ratio: 1;                      /* 시안 136x136 */
  background: var(--photo-c, var(--c-primary));
  color: rgba(255, 255, 255, 0.85);
  font-size: clamp(11px, 0.85vw, 16px);
}
/* 연사 사진은 배경을 딴 누끼 컷이라, 트랙 색 위에 그대로 얹힌다.
   (그래서 JPEG 로 굽지 않고 알파를 가진 PNG 로 둔다) */
.photo__img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* 시안(10943:12043): 큰 카드 440 = 바 25 + 사진칸 368 + 시안색 정보칸 158 */
/* 연사 원본은 880x880 정사각이라 440x368 칸에 cover 로 넣으면 위아래로 72 가 잘려
   (가운데 정렬이면 위 36) 머리가 날아간다. 위를 기준으로 붙여 머리를 모두 살린다. */
.photo--lg .photo__img img { object-position: center top; }
.photo--lg .photo__img {
  aspect-ratio: 440 / 368;
  background: linear-gradient(180deg, #eef3f7 0%, #dbe4ea 100%);
  font-size: clamp(14px, 1.15vw, 22px);
}
.photo__info {
  display: grid;
  align-content: center;
  min-height: clamp(96px, 8.229vw, 158px);
  padding: clamp(6px, 0.573vw, 11px) clamp(16px, 1.719vw, 33px);
  background: var(--photo-c, var(--c-primary));
  color: #fff;
  text-align: left;
}
.photo__info .person__name {
  margin: 0;
  font-size: clamp(19px, 1.875vw, 36px);
  font-weight: 700;
  line-height: 1.3;
  color: #fff;
}
.photo__info .person__role {
  margin: -2px 0 0;
  font-size: clamp(13px, 1.042vw, 20px);
  font-weight: 400;
  line-height: 1.2;
  color: #fff;
}
.photo__info--tba {
  place-content: center;
  text-align: center;
  font-size: clamp(19px, 1.875vw, 36px);
  font-weight: 700;
  line-height: 1.3;
}
/* 시안: 배지는 이름·직책 아래에 온다 */
.photo__info .photo__online {
  position: static;
  justify-self: start;
  margin-top: 4px;
  padding: 0;
  background: none;
  font-size: clamp(11px, 0.766vw, 14.7px);
}
/* 시안색 바탕 위라 지구본도 글자와 같은 흰색이다.
   컬러 이모지는 색을 못 바꾸므로 같은 모양을 마스크로 찍어 currentColor 를 입힌다.
   크기와 자리는 "Online" 의 O 에 맞춘다 — 실측(100px 기준) O 는 베이스라인 위로 72,
   아래로 1 이다. 베이스라인 정렬 + 0.73em 이면 원과 O 의 위아래가 같은 선에 온다. */
.photo__info .photo__online { align-items: baseline; }
.photo__info .photo__online::before {
  content: "";
  flex-shrink: 0;
  font-size: 1em;   /* 이모지용 0.9em 을 되돌린다 — 아래 em 이 배지 글자 크기 기준이 되게 */
  width: 0.73em;
  height: 0.73em;
  margin-bottom: -0.01em;
  background: currentColor;
  -webkit-mask: var(--ico-globe) center / contain no-repeat;
  mask: var(--ico-globe) center / contain no-repeat;
}

.photo__online {
  position: absolute;
  left: 6px;
  bottom: 8px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  background: rgba(0, 0, 0, 0.45);
  color: #fff;
  font-size: clamp(9px, 0.62vw, 12px);
  border-radius: 2px;
}
.photo__online::before { content: "🌐"; font-size: 0.9em; }
/* 위 배지가 쓰는 지구본 — 이모지와 같은 모양의 선 아이콘 */
.photo__online { --ico-globe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8'%3E%3Ccircle cx='12' cy='12' r='11.1'/%3E%3Cpath d='M0.9 12h22.2'/%3E%3Cellipse cx='12' cy='12' rx='4.96' ry='11.1'/%3E%3C/svg%3E"); }

.person__name {
  margin-top: clamp(10px, 1vw, 18px);
  font-size: clamp(15px, 1.25vw, 24px);
  font-weight: 700;
  line-height: 1.4;
}
.person__name--sm {
  margin-top: 2px;
  font-size: clamp(13px, 1.042vw, 20px);   /* 시안 20 */
  font-weight: 500;
  line-height: 1.5;
  color: #000;
}
.person__name .bar,
.person__name--sm .bar { color: var(--c-line-dark); }
/* 패널 소속은 이름 아래 줄에서 시작하고, 3줄째부터는 "ㅣ " 폭만큼 들여써서
   첫 글자 아래로 맞춘다(내어쓰기). "ㅣ"+공백 실측 14.41 = 1.108em. */
.person__aff {
  display: block;
  padding-left: 1.108em;
  text-indent: -1.108em;
}
/* 일부 강연자는 모바일에서만 소속을 이름 아래로 내린다 — PC 는 한 줄 그대로 */
@media (min-width: 768px) {
  .person__aff--mo { display: inline; padding-left: 0; text-indent: 0; }
}
.person__role {
  margin-top: 4px;
  font-size: clamp(11px, 0.78vw, 15px);
  color: var(--c-text-mute);
  line-height: 1.5;
}

/* ==========================================================================
   트랙 (Track S / A / F / E)
   ========================================================================== */
.track { margin-top: clamp(48px, 5.26vw, 101px); }
.track--a { --track-c: var(--c-track-a); }
.track--b { --track-c: var(--c-track-b); }

.track__label {
  font-size: clamp(19px, 1.875vw, 36px);
  font-weight: 700;
  line-height: 1.5;
  color: var(--track-c);
}
.track__title {
  margin-top: clamp(4px, 0.417vw, 8px);
  font-size: clamp(22px, 2.396vw, 46px);
  font-weight: 700;
  line-height: 1.5;
  color: #000;
}
.track__desc {
  margin-top: clamp(4px, 0.417vw, 8px);
  font-size: clamp(14px, 1.25vw, 24px);
  font-weight: 500;
  line-height: 1.5;
  color: #000;
}

.track__bar {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: clamp(16px, 1.563vw, 30px);
  min-height: clamp(46px, 4.063vw, 78px);   /* 시안 78 */
  padding-inline: clamp(14px, 1.563vw, 30px);
  gap: clamp(10px, 1.042vw, 20px);
  background: var(--track-c);
  color: #fff;
  font-size: clamp(17px, 1.667vw, 32px);
  font-weight: 700;
  text-align: left;
}
/* 꺾쇠 아이콘 — 전달받은 에셋(흰 원 + 트랙 색 꺾쇠). 위를 향한 한 벌만 두고
   닫힘 상태는 위아래로 뒤집어 쓴다. 시안 원 크기 PC 34 / 모바일 25.        */
.track__bar-ico {
  --ico: clamp(25px, 1.771vw, 34px);
  flex-shrink: 0;
  width: var(--ico); height: var(--ico);
  background: url("../images/acc_up_1.svg") center / 100% 100% no-repeat;
  font-size: 0;                /* HTML 의 ⌄ 글자는 감춘다 */
  line-height: 1;
  transition: transform 0.25s var(--ease);
}
.track--b .track__bar-ico { background-image: url("../images/acc_up_2.svg"); }
/* 닫힘 = 아래를 향한 꺾쇠 */
.track__bar[aria-expanded="false"] .track__bar-ico { transform: scaleY(-1); }

/* 세션 */
.ses {
  display: grid;
  grid-template-columns: clamp(100px, 9.5vw, 136px) 1fr;
  gap: clamp(12px, 1.4vw, 26px);
  padding-block: clamp(14px, 1.302vw, 25px) clamp(12px, 1.042vw, 20px);
  border-bottom: 1px solid #d9d9d9;
}
.ses:first-child { padding-top: clamp(14px, 1.302vw, 25px); }   /* 시안: 바 아래 구분선 → Session 25 */

.ses__no {
  /* 시안(10800:1722 y1800)은 픽셀 서체가 아니라 Pretendard 다.
     크기·굵기는 지정값 32 / 600. */
  font-family: var(--ff-base);
  font-size: clamp(17px, 1.667vw, 32px);
  font-weight: 600;
  white-space: nowrap;
  line-height: 1.5;
  color: var(--track-c);
}
.ses__time {
  margin-top: clamp(4px, 0.729vw, 14px);
  font-size: clamp(11px, 0.885vw, 17px);
  font-weight: 500;
  line-height: 1.5;
  color: #a4a4a4;
}

.ses__title {
  font-size: clamp(17px, 1.667vw, 32px);
  font-weight: 700;
  line-height: 1.5;
  color: #000;
}
.ses__desc {
  margin-top: clamp(10px, 1vw, 18px);
  font-size: clamp(14px, 1.25vw, 24px);
  font-weight: 500;
  line-height: 1.5;
  color: #000;
}
/* 이 문단의 둘째 줄만 칸(1253)보다 8px 길어 접힌다. 글자당 0.24px(24px 기준) 좁혀서
   1261 → 1247 로 넣는다. 다른 문단의 자간은 건드리지 않는다. */
.ses__desc--tight { letter-spacing: -0.01em; }

/* 인물 리스트 */
.persons { margin-top: clamp(16px, 1.7vw, 32px); display: grid; gap: clamp(12px, 1.2vw, 22px); }
.persons--grid { grid-template-columns: repeat(2, 1fr); }
.persons__label {
  margin-top: clamp(18px, 1.9vw, 36px);
  font-size: clamp(13px, 1vw, 19px);
  font-weight: 700;
}

/* 시안: 이름 블록(Frame 48097395)의 세로 중심이 카드 중심과 정확히 같다.
   x185 에서 시작하므로 카드 136 과의 간격은 49. */
.person { display: flex; align-items: center; gap: clamp(20px, 2.552vw, 49px); }
.person .photo { --photo-c: var(--track-c, var(--c-primary)); flex-shrink: 0; }
.person__text { padding-top: 0; }
/* 온라인 배지 — 시안: 사진 위가 아니라 역할 라벨 아래(이름 위)에 온다 */
.person__online {
  position: static;
  display: inline-flex;
  align-items: center;
  gap: clamp(4px, 0.417vw, 8px);
  margin: clamp(2px, 0.208vw, 4px) 0 0;
  padding: 0;
  border-radius: 0;
  background: none;
  color: var(--c-primary);
  font-size: clamp(12px, 1.042vw, 20px);
  line-height: 1.5;
}

.person__tag {
  font-size: clamp(14px, 1.25vw, 24px);   /* 시안 24 */
  font-weight: 700;
  line-height: 1.5;
  color: #000;
  letter-spacing: 0.1em;
}

@media (max-width: 1023px) {
  .persons--grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   EXHIBITION
   ========================================================================== */
.exh { margin-top: clamp(34px, 3.8vw, 72px); text-align: center; }
.exh__eyebrow {
  font-size: clamp(15px, 1.25vw, 24px);
  font-weight: 700;
  color: var(--c-primary);
}
.exh__title {
  margin-top: clamp(10px, 1vw, 20px);
  font-size: clamp(22px, 2.3vw, 44px);
  font-weight: 700;
  line-height: 1.35;
}
.exh__sub {
  margin-top: clamp(8px, 0.8vw, 16px);
  font-size: clamp(13px, 1vw, 19px);
  color: var(--c-text-sub);
}
/* MIND BOOTH 안내문만 시안 실측이 다르다 — 24 / 400 / normal / #000 */
.exh--booth .exh__sub {
  font-size: clamp(13px, 1.25vw, 24px);
  font-weight: 400;
  line-height: normal;
  color: #000;
}

.exh__gallery {
  margin-top: clamp(24px, 2.6vw, 50px);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(14px, 1.5vw, 28px);
}

/* 작품 이미지가 아직 없다 — 시안(10800:25757)의 자리 상자 484x294 · #D9D9D9.
   이미지가 들어오면 .exh__thumb 로 되돌리고 data-lightbox 를 다시 붙인다. */
.exh__tbu {
  display: grid;
  place-items: center;
  aspect-ratio: 484 / 294;
  background: #d9d9d9;
  color: #6e6e6e;
  font-family: var(--ff-pixel);
  font-size: clamp(14px, 1.25vw, 24px);   /* 시안 24 */
  font-weight: 400;
  line-height: 1.15;                      /* 시안 115% */
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.exh__text {
  margin-top: clamp(26px, 2.8vw, 54px);
  /* .exh 가 가운데 정렬이라 본문만 다시 왼쪽으로 돌린다 (시안 10800:25757) */
  text-align: left;
  font-size: clamp(13px, 1vw, 19px);
  line-height: 1.85;
  color: var(--c-text);
}

.exh__quote {
  margin: clamp(26px, 2.8vw, 54px) 0 0;
}
.exh__quote p {
  font-size: clamp(14px, 1.05vw, 20px);
  font-weight: 700;
  line-height: 1.7;
}
.exh__quote footer {
  margin-top: clamp(8px, 0.8vw, 16px);
  font-size: clamp(11px, 0.8vw, 15px);
  color: var(--c-text-mute);
}

/* 참여 부스 */
.exh--booth { margin-top: clamp(50px, 5.6vw, 106px); }
.booth {
  --booth-card: clamp(180px, 20.677vw, 397px);   /* 시안 397 */
  --booth-gap: clamp(10px, 1.406vw, 27px);       /* 시안 27 */
  --booth-w: calc(var(--booth-card) * 4 + var(--booth-gap) * 3);
  margin-top: clamp(24px, 2.6vw, 50px);
  /* 카드 4장 띠는 본문 컨테이너보다 넓다 — 남는 만큼 좌우로 내보내 가운데를 맞춘다 */
  width: var(--booth-w);
  margin-inline: calc((100% - var(--booth-w)) / 2);
  display: grid;
  grid-template-columns: repeat(4, var(--booth-card));
  gap: var(--booth-gap);
}
.booth__card { border: 1px solid var(--c-line); background: #fff; }
.booth__head {
  padding: clamp(10px, 1.1vw, 20px) 12px;
  background: var(--c-primary);
  color: #fff;
  font-size: clamp(14px, 1.875vw, 36px);   /* 시안 36 */
  font-weight: 400;
  line-height: 1.5;                        /* 시안 150% */
  letter-spacing: 0.02em;
}
.booth__desc {
  padding: clamp(16px, 1.7vw, 32px) 15px clamp(22px, 2.2vw, 42px);
  text-align: center;
  font-size: clamp(12px, 1.25vw, 24px);   /* 시안 24 */
  font-weight: 400;
  line-height: normal;
  color: #000;
}

.exh__outro {
  margin-top: clamp(24px, 2.6vw, 50px);
  font-size: clamp(13px, 1vw, 19px);
  line-height: 1.9;
}

@media (max-width: 1023px) {
  .booth { width: auto; margin-inline: 0; grid-template-columns: repeat(2, 1fr); gap: clamp(12px, 1.2vw, 22px); }
}

/* ==========================================================================
   EXHIBITION 탭 배경
   Figma "프로그램"(10800:25757 / 1920x2048)
   · 프레임 채우기 : #ffffff → #e5f8ff 세로 그라디언트
   · 픽셀 필드     : 10943:15501 (114,650 / 1806x1394)
   ========================================================================== */
/* 시안(10800:25757): EXHIBITION 은 탭까지 포함해 화면 전체가 그라디언트 */
.pg:has(#pg-ex:not([hidden])) { background: linear-gradient(180deg, #ffffff 0%, #e5f8ff 100%); }
#pg-ex {
  position: relative;
  isolation: isolate;
}
#pg-ex > .exh { position: relative; z-index: 1; }

/* 픽셀 필드는 아트보드(1920) 기준이라 컨테이너가 아니라 섹션 박스에 건다 —
   오른쪽은 화면 끝, 아래는 섹션 맨 아래(패딩 포함)에 붙는다. EXHIBITION 탭에서만 보인다. */
.pg-ex__deco { display: none; }
.pg:has(#pg-ex:not([hidden])) .pg-ex__deco { display: block; }

.pg-ex__dots {
  left: 5.94%; bottom: 0;
  width: 94.06%; aspect-ratio: 1806 / 1394;
  background-image: url("../images/deco/program-dots.svg");
}

/* ==========================================================================
   MOBILE — 시안 11014:1965 (430x4840) / 11024:16614 / 11014:2291
   --------------------------------------------------------------------------
   · 탭 15,64 400x25 (3등분) · 기조 본문 32,153 · 사진 32,322 366x424
   · 트랙 26,810 378 폭 (컨테이너보다 좌우 6 넓다) · 트랙 바 378x59
   · 세션 제목 20 / 설명 12 / 인물 사진 83x101
   ========================================================================== */
@media (max-width: 767px) {
  .pg { padding-top: 64px; }

  /* 탭 — 시안(11014:1965) 176x40 을 2열 2행으로, 행 사이만 4px 벌린다 */
  .pg .daytab {
    --daytab-h: 40px;
    margin-top: 0;
    margin-inline: calc(35px - var(--gutter));
  }
  .pg .daytab--4 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    row-gap: 4px;
    width: auto;
  }
  .pg .daytab__btn { min-width: 0; flex: 1 1 0; width: auto; }
  .pg .daytab__day { font-size: 16px; letter-spacing: 0.08em; }
  .pg .daytab__date { font-size: 10px; }

  /* ---------- 기조강연 ---------- */
  /* 모바일 시안은 본문이 먼저, 사진이 아래 — PC 의 좌우 배치를 뒤집지 않는다 */
  .keynote,
  .keynote--reverse { grid-template-columns: 1fr; gap: 20px; margin-top: 64px; }
  .keynote--reverse .keynote__media,
  .keynote__media { order: 1; }
  .keynote__body { order: 0; }

  .keynote__label { font-size: clamp(13px, 3.63vw, 15.6px); }
  .keynote__title { margin-top: 3px; font-size: 20px; line-height: 1.5; }
  /* 시안 줄폭 378 — 컨테이너(366)에 맞추려 10.6 으로 */
  .keynote__desc { margin-top: 12px; font-size: clamp(9px, 2.465vw, 10.6px); line-height: 1.5; }

  /* ---------- 사진 카드 ---------- */
  .photo--lg { max-width: none; }                        /* 시안 366x424 */
  .photo--lg .photo__bar { height: 24px; font-size: clamp(9px, 2.7vw, 11.6px); }
  .photo--lg .photo__img { aspect-ratio: 366 / 304; }
  .photo--lg .photo__info { min-height: 96px; padding: 22px 27px 24px; }
  .photo__info .person__name { font-size: 20px; line-height: 1.3; }
  .photo__info .person__role { margin-top: 0; font-size: 11px; line-height: 1.5; }
  .photo__info--tba { font-size: 20px; }

  /* ---------- 트랙 ---------- */
  .track { margin: 64px calc(26px - var(--gutter)) 0; }   /* 시안 26,810 378 */
  .track__label { font-size: 18px; line-height: 1.5; }
  .track__title { margin-top: 8px; font-size: 24px; line-height: 1.5; }
  .track__desc { margin-top: 8px; font-size: 13px; line-height: 1.5; }
  .track__bar {
    margin-top: 20px;
    min-height: 59px;
    padding-inline: 22px;
    gap: 7px;
    font-size: 20px;
  }
  .track__bar-ico {
    --ico: 25px;
    background-image: url("../images/acc_up_3.svg");
  }
  .track--b .track__bar-ico { background-image: url("../images/acc_up_4.svg"); }

  /* ---------- 세션 ---------- */
  .ses,
  .ses:first-child { grid-template-columns: 1fr; gap: 0; padding-block: 26px 24px; }
  .ses__head { display: flex; align-items: baseline; gap: 14px; }
  .ses__no { font-size: 20px; }
  .ses__time { margin-top: 0; font-size: 11px; }
  .ses__title { font-size: 20px; line-height: 1.5; }
  .ses__desc { margin-top: 12px; font-size: 11px; line-height: 1.5; }

  /* ---------- 인물 ---------- */
  .persons { margin-top: 20px; gap: 16px; }
  .persons--grid { grid-template-columns: 1fr; }
  .persons__label { margin-top: 22px; font-size: 13px; }
  /* 모바일도 사진 프레임과 이름을 세로 중앙으로 맞춘다
     (11014:1965 · 11024:16614 코멘트) */
  .person { gap: 18px; align-items: center; }
  .person .photo { width: 83px; }                         /* 시안 83 + 바 18 */
  .person .photo__bar { height: 18px; font-size: clamp(7px, 2.05vw, 8.8px); }
  .person .photo__bar::before { width: 5px; }
  .person .photo__img { aspect-ratio: 1; }
  .person__text { padding-top: 0; }
  .person__tag { font-size: 13px; line-height: 1.5; }
  .person__name--sm { margin-top: 0; font-size: 11px; line-height: 1.5; }
  .person__online { margin-top: 0; font-size: 11px; }
}

/* --------------------------------------------------------------------------
   MOBILE — EXHIBITION 탭 (시안 11014:2291 / 430x2217)
   · 아이브로우 18 / 타이틀 24 / 서브 12 · 작품 366x200 (간격 12)
   · 본문 블록은 컨테이너보다 넓다(15~415) · 부스 카드 373x146 (간격 12)
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
  .exh { margin-top: 64px; }
  .exh__eyebrow { font-size: 18px; line-height: 1.5; }
  .exh__title { margin-top: 12px; font-size: 24px; line-height: 1.5; }
  .exh__sub { margin-top: 4px; font-size: 12px; line-height: 1.25; }

  .exh__gallery { margin-top: 29px; grid-template-columns: 1fr; gap: 12px; }
  .exh__gallery .ph,
  .exh__tbu,
  .exh__thumb img { aspect-ratio: 366 / 200; }
  /* 본문은 PC 만 왼쪽 정렬 — 모바일 시안(11014:2291)은 가운데 정렬이다 */
  .exh__text { text-align: center; }

  .exh__text {
    margin: 20px calc(15px - var(--gutter)) 0;
    font-size: 11px;
    line-height: 1.5;
  }
  .exh__text .mt-24 { margin-top: 12px; }
  .exh__quote { margin-top: 12px; }
  /* 영문 인용만 10, 나머지 설명 텍스트는 11 */
  .exh__quote p { font-size: 10px; line-height: 1.3; }
  .exh__quote footer { margin-top: 5px; font-size: 11px; line-height: 1.5; }

  .exh--booth { margin-top: 64px; }
  .booth {
    width: auto;
    margin: 26px calc(29px - var(--gutter)) 0;
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .booth__head { padding: 12px; font-size: 20px; line-height: 1.5; text-align: center; }
  .booth__desc { padding: 27px 12px 31px; font-size: 14px; line-height: 1.2; text-align: center; }
  .exh__outro { margin-top: 24px; font-size: 11px; line-height: 1.2; }
}

/* --------------------------------------------------------------------------
   작품 이미지 레이어 — 그림을 누르면 크게, 아무 데나 누르면 닫힌다
   -------------------------------------------------------------------------- */
.exh__thumb {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  cursor: zoom-in;
}
.exh__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.lightbox {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: none;
  place-items: center;
  padding: clamp(16px, 4vw, 64px);
  background: rgba(0, 0, 0, 0.82);
  cursor: zoom-out;
}
.lightbox.is-open { display: grid; }
.lightbox img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

/* --------------------------------------------------------------------------
   특별전 — 시안 개정(10800:25757): 작가 카드가 왼쪽, 본문이 오른쪽
   카드 427 · 간격 44 · 본문 1009 (컨테이너 1480 기준)
   -------------------------------------------------------------------------- */
.exh__artist {
  margin-top: clamp(26px, 2.8vw, 54px);
  display: grid;
  grid-template-columns: clamp(180px, 22.24vw, 427px) 1fr;
  gap: clamp(20px, 2.292vw, 44px);
  align-items: start;
}
.exh__artist-card { max-width: none; }
.exh__artist .exh__text { margin-top: 0; }

@media (max-width: 767px) {
  .exh__artist { grid-template-columns: 1fr; gap: 18px; margin-top: 24px; }
  /* 모바일 시안(11014:2291): 작가 카드가 본문 폭을 좌우로 꽉 채운다 */
  .exh__artist-card { max-width: none; margin-inline: 0; }
}
