/* ─────────────────────────────────────────────
   테마 5 · 오버프린트 (Print Poster)
   색: 인쇄 용지 웜 그레이 + 잉크 + 마젠타 1도.
        마젠타 규칙 — 숫자(번호·수치·날짜)와 CTA에만 쓴다. 라벨·설명문에는 쓰지 않는다.
   서체: 송명(초대형 전통 명조) / 고운돋움(본문) / IBM Plex Mono(숫자·영문 캡션)
        한글은 Plex Mono에 글립이 없으므로 고운돋움으로 떨어지게 스택을 짠다(시스템 폰트 폴백 금지).
   리듬: 포스터 조판. 번호 박힌 전폭 괘선이 섹션을 끊고, 본문은 74rem 타입 컬럼에 정렬.
   모션: 인쇄 미스레지스터 — 마젠타 판이 어긋난 채 들어와 정합되고, 잔상 3px만 남긴다.
        mix-blend-mode는 쓰지 않는다(대형 블렌드 레이어가 스크롤 리페인트를 붙잡는다).
   ───────────────────────────────────────────── */

:root {
  --paper:   #E9E5DE;
  --paper-2: #F2EFE9;
  --ink:     #1C1A1B;
  --ink-2:   #56504F;
  --ink-3:   #6B6460;   /* 11~13px 캡션용 — 용지 위 4.5:1 확보 */
  --rule:    #C6C0B7;
  --mag:     #C42A63;   /* 24px 이상 수치·면·CTA 전용 */
  --mag-2:   #9C1F4D;   /* 작은 글자용 마젠타 — 용지 위 6:1 */
  --mag-3:   #E0568B;   /* 먹판 위에서 쓰는 마젠타 — 잉크 위 4.9:1 */

  --display: "Song Myung", serif;
  --sans: "Gowun Dodum", sans-serif;
  --mono: "IBM Plex Mono", "Gowun Dodum", ui-monospace, monospace;
  --ease: cubic-bezier(.16, .9, .28, 1);
  --snap: cubic-bezier(.2, .8, .2, 1);

  --col: 74rem;
  /* 전폭 괘선의 내용을 타입 컬럼에 맞추는 거터 */
  --gutter: calc(24px + max(0px, (100% - var(--col)) / 2));
  --hdr: 64px;
}

body {
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.78;
}
.wrap { max-width: var(--col); margin: 0 auto; padding: 0 24px; }
.skip { background: var(--ink); color: var(--paper-2); font-family: var(--mono); font-size: 13px; }

/* 앵커 이동 시 고정 헤더에 가려지지 않도록 */
section[id] { scroll-margin-top: calc(var(--hdr) + 8px); }

/* 링크: 밑줄은 항상 보이고, 올리면 마젠타 1도가 아래에서 밀려 올라온다 */
.link { position: relative; display: inline-block; z-index: 0; }
.link::after {
  content: ""; position: absolute; left: -2px; right: -2px; bottom: 0; height: 1px;
  background: var(--ink); transition: height .26s var(--snap), background .26s var(--snap);
  z-index: -1;
}
.link:hover::after,
.link:focus-visible::after { height: calc(100% - 2px); background: var(--mag); }
.link:hover, .link:focus-visible { color: var(--paper-2); }
.link:focus-visible { outline-color: var(--mag); }
.sheet--ink .link::after, .colophon .link::after { background: var(--paper); }
.sheet--ink .link:hover::after, .colophon .link:hover::after,
.sheet--ink .link:focus-visible::after, .colophon .link:focus-visible::after { background: var(--mag); }

/* 확인 대기 표시 — 내용이 아니라 메모이므로 면이 아닌 테두리로 */
.badge {
  display: inline-block; font-family: var(--mono); font-size: 11px; letter-spacing: .02em;
  padding: 0 6px; color: var(--mag-2); border: 1px solid var(--mag);
  white-space: nowrap; line-height: 1.6; vertical-align: .12em;
}
.badge--mini { font-size: 10.5px; }
.pending { font-family: var(--mono); font-size: 13px; color: var(--mag-2); }

/* ── 등장: 인쇄판이 어긋나 들어와 자리를 잡는다(순수 Y 페이드업 아님) ── */
[data-reveal] {
  opacity: 0; transform: translate3d(5px, 11px, 0);
  transition: opacity .5s var(--snap), transform .5s var(--snap);
}
[data-reveal].is-in { opacity: 1; transform: none; }
/* 행 요소는 잉크가 왼쪽부터 얹히듯 괘선이 뻗어나간다 */
.inked { position: relative; }
.inked::after {
  content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 1px;
  background: var(--mag); transform: scaleX(0); transform-origin: left;
  transition: transform .62s var(--ease) .12s;
}
.inked.is-in::after { transform: scaleX(1); }

/* ── 상단 바 ──────────────────────────── */
.topbar { border-bottom: 1px solid var(--ink); background: var(--paper); position: sticky; top: 0; z-index: 40; }
.topbar__in {
  display: flex; align-items: center; column-gap: 18px; row-gap: 8px; flex-wrap: wrap;
  padding-top: 10px; padding-bottom: 10px;
}
.brand { display: flex; align-items: center; gap: 10px; color: var(--mag); }
.brand__mark svg { overflow: visible; }
.brand__text { font-family: var(--display); font-size: 19px; color: var(--ink); letter-spacing: .01em; }

/* 목차 — 인쇄물 색인처럼 번호를 달고, 좁은 화면에서는 가로로 밀어 본다 */
.topnav {
  order: 3; width: 100%; display: flex; gap: 4px;
  overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch;
  margin: 0 -24px; padding: 4px 24px 2px;
  font-family: var(--mono); font-size: 11.5px; color: var(--ink-2);
  border-top: 1px solid var(--rule);
  -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 34px), transparent);
  mask-image: linear-gradient(90deg, #000 calc(100% - 34px), transparent);
}
.topnav::-webkit-scrollbar { display: none; }
.topnav a {
  position: relative; z-index: 0; display: inline-flex; align-items: baseline; gap: 5px;
  padding: 4px 8px; white-space: nowrap;
}
.topnav a b { font-weight: 400; color: var(--mag-2); font-size: 10.5px; letter-spacing: .04em; }
.topnav a::before {
  content: ""; position: absolute; inset: 0; background: var(--mag);
  transform: scaleY(0); transform-origin: bottom; z-index: -1;
  transition: transform .24s var(--snap);
}
.topnav a:hover, .topnav a:focus-visible { color: var(--paper-2); }
.topnav a:hover b, .topnav a:focus-visible b { color: var(--paper-2); }
.topnav a:hover::before, .topnav a:focus-visible::before { transform: scaleY(1); }
@media (min-width: 1080px) {
  .topnav {
    order: 0; width: auto; margin: 0 0 0 auto; padding: 0; border-top: 0; overflow: visible; gap: 2px;
    -webkit-mask-image: none; mask-image: none;
  }
}
.dday { margin-left: auto; display: flex; align-items: baseline; gap: 8px; min-width: 0; flex-wrap: wrap; row-gap: 2px; }
@media (min-width: 1080px) { .dday { margin-left: 0; } }
.dday__label { font-family: var(--mono); font-size: 11px; color: var(--ink-3); white-space: nowrap; }
.dday__num { font-family: var(--display); font-size: 20px; color: var(--mag-2); letter-spacing: .01em; }
/* 좁은 화면에서 헤더가 3단으로 불어나지 않도록 D-day 표기를 줄인다 */
@media (max-width: 820px) { .dday .badge--mini { display: none; } }
@media (max-width: 520px) {
  .dday__yr { display: none; }
  .brand__text { font-size: 17px; }
  .topbar__in { column-gap: 12px; }
}

/* ── 히어로 ───────────────────────────── */
.hero { position: relative; padding: 58px 0 0; overflow: hidden; }
.hero__margin {
  display: none;
  position: absolute; right: 20px; top: 128px;
  writing-mode: vertical-rl; white-space: nowrap;
  font-family: var(--mono); font-size: 11px; letter-spacing: .22em; color: var(--ink-3);
}
@media (min-width: 1180px) { .hero__margin { display: block; } }

.hero__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.eyebrow {
  display: inline-flex; align-items: center; gap: 9px;
  font-family: var(--mono); font-size: 11.5px; letter-spacing: .12em; color: var(--ink-2);
}
.eyebrow::before { content: ""; width: 9px; height: 9px; background: var(--mag); flex: none; }

/* 등록 표시(돔보) — 마젠타 판이 어긋나 있다가 검정 판에 맞물린다 */
.regmark { flex: none; line-height: 0; }
.regmark svg { overflow: visible; }
.regmark__m { transform: translate(7px, -6px); transition: transform 1s var(--ease) .35s; }
.is-registered .regmark__m, .regmark.is-registered .regmark__m { transform: translate(0, 0); }
.regmark__cap { display: block; margin-top: 5px; font-family: var(--mono); font-size: 9.5px; letter-spacing: .16em; color: var(--ink-3); text-align: center; }

.hero__h1 {
  font-family: var(--display); font-weight: 400;
  font-size: clamp(2.35rem, 9.2vw, 6.4rem);
  line-height: 1.14; letter-spacing: -.025em; word-spacing: -.04em;
  text-wrap: balance;
}
.hero__h1 .w { display: inline-block; }
.hero__h1 .br { display: none; }
@media (min-width: 900px) { .hero__h1 .br { display: block; height: 0; } }
.hero__h1 .over { position: relative; z-index: 0; color: var(--ink); }
.hero__h1 .over::before {
  content: ""; position: absolute; left: -.05em; right: -.05em; top: .17em; bottom: .15em;
  background: var(--mag); z-index: -1;
  transform: scaleX(0); transform-origin: left;
}
/* 잉크가 얹히고(0~55%) 그다음 판이 제자리로 맞물린다(55~100%) */
.hero__h1 .over.is-in::before { animation: overprint 1s var(--ease) .34s both; }
@keyframes overprint {
  0%   { transform: translate(9px, -7px) scaleX(0); }
  55%  { transform: translate(9px, -7px) scaleX(1); }
  100% { transform: translate(0, 0) scaleX(1); }
}

.hero__foot { margin-top: 38px; max-width: 42rem; }
.hero__src { font-family: var(--mono); font-size: 11.5px; color: var(--ink-3); letter-spacing: .01em; }
.cta { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 10px; }
.btn {
  display: inline-flex; align-items: center; font-family: var(--mono); font-size: 13.5px; letter-spacing: .01em;
  padding: 13px 22px; border: 1px solid var(--ink);
  transition: background .22s var(--snap), color .22s var(--snap),
              box-shadow .22s var(--snap), transform .22s var(--snap);
}
.btn--solid { background: var(--ink); color: var(--paper-2); box-shadow: 0 0 0 var(--mag); }
.btn--solid:hover, .btn--solid:focus-visible {
  background: var(--mag); border-color: var(--mag); color: var(--paper-2);
  box-shadow: 7px 7px 0 var(--ink); transform: translate(-2px, -2px);
}
.btn--solid:active { box-shadow: 2px 2px 0 var(--ink); transform: translate(0, 0); }
.btn--ghost { border-style: dashed; border-color: var(--rule); color: var(--ink-3); cursor: not-allowed; }
.cta__note { font-family: var(--mono); font-size: 11.5px; color: var(--ink-3); }

/* ── 색판(plate): 미스레지스터 → 정합, 잔상 3px ── */
.plate { position: relative; margin-top: 46px; }
.plate--hero { margin-top: 58px; padding: 0 24px; max-width: var(--col); margin-left: auto; margin-right: auto; }
/* 같은 도판을 마젠타로 한 번 더 찍은 판. 면이 아니라 판면(테두리+해칭)을 복제한다. */
.plate__ink {
  position: absolute; inset: 0; pointer-events: none; z-index: 2;
  border: 1px solid var(--mag);
  background-image: repeating-linear-gradient(-45deg, transparent 0 10px, rgba(196, 42, 99, .42) 10px 11px);
  opacity: .95;
  transform: translate(13px, 12px);
  transition: transform .85s var(--ease), opacity .85s var(--ease);
}
.plate--hero .plate__ink { left: 24px; right: 24px; }
.plate.is-registered .plate__ink { transform: translate(3px, 3px); opacity: .38; }
.photo__ph {
  position: relative; z-index: 1;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
  min-height: clamp(220px, 32vw, 380px);
  border: 1px solid var(--ink);
  background-color: var(--paper-2);
  background-image: repeating-linear-gradient(-45deg, transparent 0 10px, var(--rule) 10px 11px);
}
.photo__tag { font-family: var(--mono); font-size: 11px; letter-spacing: .08em; background: var(--ink); color: var(--paper-2); padding: 3px 10px; }
.photo__desc { font-family: var(--mono); font-size: 11.5px; color: var(--ink-2); background: var(--paper-2); padding: 2px 8px; text-align: center; }

/* ── 시트(섹션) ───────────────────────── */
.sheet { padding: 0 0 84px; }
.sheet--ink { background: var(--ink); color: var(--paper); padding-bottom: 96px; }
.sheet--ink .sheet__lead, .sheet--ink .sheet__foot { color: #A9A29E; }
.sheet--last { padding-bottom: 96px; }
.sheet__rule {
  display: flex; align-items: baseline; gap: 14px;
  padding: 11px var(--gutter) 12px;
  border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink);
  font-family: var(--mono); font-size: 11.5px; letter-spacing: .16em;
  margin-bottom: 52px;
}
.sheet--ink .sheet__rule { border-color: var(--paper); margin-bottom: 60px; }
.sheet__rule b { font-family: var(--display); font-size: 25px; font-weight: 400; letter-spacing: 0; color: var(--mag); }
.sheet--ink .sheet__rule b { color: var(--mag-3); }
.sheet--ink .sheet__rule span { color: #A9A29E; }
.sheet__rule span { color: var(--ink-2); }
.sheet__head { max-width: 44rem; margin-bottom: 38px; }
.sheet__h2 { font-family: var(--display); font-weight: 400; font-size: clamp(1.8rem, 4.6vw, 3rem); line-height: 1.26; letter-spacing: -.025em; text-wrap: balance; }
.sheet__lead { margin-top: 13px; font-size: 14.5px; line-height: 1.8; color: var(--ink-2); }
.sheet__foot { margin-top: 20px; font-family: var(--mono); font-size: 11.5px; color: var(--ink-3); }

/* ── 01 항목 ──────────────────────────── */
.items { display: grid; gap: 0; }
.item { padding: 24px 0 28px; border-top: 1px solid var(--rule); }
.item:last-child { border-bottom: 1px solid var(--rule); }
@media (min-width: 880px) {
  .item { display: grid; grid-template-columns: 92px minmax(0, 1fr) 190px; column-gap: 32px; }
  .item__no { grid-row: span 2; }
  .item__src { grid-column: 3; grid-row: 1 / span 2; margin-top: 6px; text-align: right; }
}
.item__no { font-family: var(--display); font-size: 2.5rem; line-height: 1; color: var(--mag); }
.item__name { font-family: var(--display); font-size: 1.65rem; font-weight: 400; letter-spacing: -.025em; line-height: 1.35; }
.item__desc { margin-top: 8px; color: var(--ink-2); max-width: 34rem; }
.item__src { margin-top: 8px; font-family: var(--mono); font-size: 11.5px; line-height: 1.7; color: var(--ink-3); }
.item--pending .item__no { color: var(--ink-3); }
.item--pending .item__name { color: var(--ink-2); }

/* ── 02 두 축 ─────────────────────────── */
.pair { display: grid; gap: 0; position: relative; border: 1px solid var(--paper); overflow: hidden; }
@media (min-width: 880px) { .pair { grid-template-columns: 1fr auto 1fr; } }
.pair__col { padding: 30px 28px 34px; transition: transform .8s var(--ease); }
.pair__col--a { transform: translateX(-9px); }
.pair__col--b { background: var(--paper); color: var(--ink); transform: translateX(9px); }
.pair.is-registered .pair__col { transform: translateX(0); }
.pair__kind { font-family: var(--mono); font-size: 11px; letter-spacing: .14em; color: #A9A29E; margin-bottom: 8px; }
.pair__col--b .pair__kind { color: var(--ink-3); }
.pair__name { font-family: var(--display); font-weight: 400; font-size: 1.95rem; letter-spacing: -.025em; margin-bottom: 18px; }
.pair__dl > div { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 12px; padding: 10px 0; border-top: 1px solid currentColor; }
.pair__dl dt { font-family: var(--mono); font-size: 11px; letter-spacing: .04em; opacity: .72; padding-top: 3px; }
.pair__dl dd { font-size: 14.5px; line-height: 1.7; }
.pair__hinge {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  background: var(--mag); color: var(--paper-2);
  font-family: var(--mono); font-size: 11.5px; letter-spacing: .06em; padding: 11px 14px;
  white-space: nowrap;
}
@media (min-width: 880px) { .pair__hinge { writing-mode: vertical-rl; padding: 16px 12px; } }

/* ── 03 원장 ──────────────────────────── */
.teacher { display: grid; gap: 38px; }
@media (min-width: 920px) { .teacher { grid-template-columns: 320px minmax(0, 1fr); gap: 56px; align-items: start; } .teacher .plate { margin-top: 0; } }
.teacher .photo__ph { min-height: 320px; }
.teacher__role { font-family: var(--mono); font-size: 11.5px; letter-spacing: .14em; color: var(--ink-3); }
.teacher__name { font-family: var(--display); font-weight: 400; font-size: 2.5rem; letter-spacing: -.025em; line-height: 1.2; margin-bottom: 22px; }
.quote { padding: 20px 0; border-top: 3px solid var(--ink); border-bottom: 1px solid var(--ink); margin-bottom: 26px; }
.quote p { font-family: var(--display); font-size: clamp(1.3rem, 3.2vw, 1.95rem); line-height: 1.48; letter-spacing: -.025em; }
.quote cite { display: block; margin-top: 12px; font-family: var(--mono); font-size: 11.5px; font-style: normal; color: var(--ink-3); }
.spec { margin-bottom: 22px; max-width: 34rem; }
.spec > div { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--rule); }
.spec > div:first-child { border-top: 1px solid var(--rule); }
.spec dt { font-family: var(--mono); font-size: 11.5px; letter-spacing: .04em; color: var(--ink-3); padding-top: 2px; }
.spec--wide > div { grid-template-columns: 66px minmax(0, 1fr); }
.teacher__note { font-size: 14.5px; line-height: 1.8; color: var(--ink-2); margin-bottom: 12px; max-width: 38rem; }
.teacher__flag { font-size: 13.5px; line-height: 1.75; color: var(--ink-2); max-width: 38rem; }
.quote { max-width: 38rem; }

/* ── 04 수치 ──────────────────────────── */
.figures { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--rule); border: 1px solid var(--rule); }
@media (min-width: 860px) { .figures { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.fig { background: var(--paper); padding: 24px 20px 22px; display: flex; flex-direction: column; }
/* 대표 지표 하나를 크게 세워 위계를 준다(대성학원식 2단 구성) */
.fig--lead { grid-column: span 2; background: var(--paper-2); padding: 30px 24px 26px; }
.fig--lead .fig__num { font-size: clamp(3.6rem, 11vw, 5.6rem); }
.fig--lead .fig__label { font-size: 14.5px; color: var(--ink); }
.fig__num { font-family: var(--display); font-size: clamp(2.5rem, 6.4vw, 3.6rem); line-height: 1; color: var(--mag); letter-spacing: -.02em; }
.fig__num em { font-style: normal; font-size: .42em; letter-spacing: 0; }
.fig__unit { font-family: var(--mono); font-size: 11.5px; letter-spacing: .06em; color: var(--ink-3); margin-top: 7px; }
.fig__label { font-size: 13.5px; line-height: 1.6; color: var(--ink-2); margin-top: auto; padding-top: 12px; }
.stats__src { margin-top: 14px; font-family: var(--mono); font-size: 11.5px; color: var(--ink-3); }
.tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.tags li { font-family: var(--mono); font-size: 12px; padding: 5px 12px; border: 1px solid var(--rule); color: var(--ink-2); background: var(--paper-2); }
.slot { margin-top: 30px; padding: 24px 22px; border: 1px solid var(--mag); position: relative; }
.slot::before { content: ""; position: absolute; inset: 6px; border: 1px dashed var(--rule); pointer-events: none; }
.slot__title { font-family: var(--display); font-size: 1.25rem; }
.slot__desc { margin-top: 8px; font-size: 13.5px; line-height: 1.75; color: var(--ink-2); }

/* ── 05 표 ────────────────────────────── */
.tablewrap { overflow-x: auto; }
.fee { min-width: 460px; font-size: 15px; }
.fee th, .fee td { padding: 13px 14px; text-align: left; border-bottom: 1px solid var(--rule); }
.fee thead th { font-family: var(--mono); font-size: 11px; letter-spacing: .08em; color: var(--ink-3); font-weight: 400; border-bottom: 1px solid var(--ink); }
.fee tbody th { font-weight: 400; }
.fee tbody td { text-align: right; font-family: var(--mono); font-size: 13.5px; color: var(--ink-2); }
.fee tbody td:last-child { font-family: var(--display); font-size: 1.25rem; color: var(--mag-2); letter-spacing: -.01em; }
.fee tbody tr { transition: background .18s var(--snap); }
.fee tbody tr:hover { background: var(--paper-2); }
.fee tbody tr:hover th { box-shadow: inset 3px 0 0 var(--mag); }

/* ── 06 소식 ──────────────────────────── */
.news { border-top: 1px solid var(--ink); }
.news__item { padding: 22px 0; border-bottom: 1px solid var(--rule); }
@media (min-width: 820px) {
  .news__item { display: grid; grid-template-columns: 122px minmax(0, 1fr) 180px; column-gap: 28px; }
  .news__date { grid-row: span 2; }
  .news__from { grid-column: 3; grid-row: 1; margin-top: 5px; text-align: right; }
}
.news__date { font-family: var(--mono); font-size: 11.5px; letter-spacing: .02em; color: var(--mag-2); padding-top: 5px; }
.news__title { font-family: var(--display); font-weight: 400; font-size: 1.22rem; line-height: 1.6; letter-spacing: -.025em; }
.news__from { font-family: var(--mono); font-size: 11.5px; color: var(--ink-3); margin-top: 4px; }
.news__item--slot { border-bottom-style: dashed; }
.news__item--slot .news__date { color: var(--ink-3); }
.news__item--slot .news__title { color: var(--ink-3); }

/* ── 07 오시는 길 ─────────────────────── */
.visit { display: grid; gap: 34px; }
@media (min-width: 920px) { .visit { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 50px; align-items: start; } .visit .plate { margin-top: 0; } }
.visit__aside { margin-top: 26px; padding-top: 18px; border-top: 1px solid var(--rule); }

/* ── 판권(콜로폰) ─────────────────────── */
.colophon { background: var(--ink); color: var(--paper); padding: 0 0 56px; }
.colophon .badge { color: #E58AAC; border-color: #E58AAC; }
/* 인쇄 컬러바 — 판을 확인하는 용지 여백의 잉크 패치 */
.inkbar { display: flex; gap: 2px; height: 10px; background: var(--ink); }
.inkbar span { flex: 1; }
.colophon__grid { display: grid; gap: 26px; padding-top: 40px; }
@media (min-width: 780px) { .colophon__grid { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1fr); gap: 36px; } }
.colophon__brand { font-family: var(--display); font-size: 1.5rem; line-height: 1.35; }
.colophon dt { font-family: var(--mono); font-size: 10.5px; letter-spacing: .16em; color: #8E8783; margin-bottom: 8px; }
.colophon dd { font-size: 13.5px; line-height: 1.8; color: #CFC9C3; }
.foot__links { display: flex; flex-wrap: wrap; gap: 16px; font-family: var(--mono); font-size: 12.5px; }
.colophon__note {
  margin-top: 34px; padding-top: 18px; border-top: 1px solid #3A3637;
  font-size: 12.5px; line-height: 1.8; color: #A9A29E; max-width: 52rem;
}
.colophon__theme { margin-top: 12px; font-family: var(--mono); font-size: 11.5px; color: #8E8783; }

/* ── 모션 최소화 대응 ─────────────────── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
  [data-reveal] { opacity: 1; transform: none; }
  .inked::after { transform: scaleX(1); }
  .plate__ink { transform: translate(3px, 3px); opacity: .38; }
  .pair__col { transform: none !important; }
  .regmark__m { transform: none; }
  .hero__h1 .over::before { transform: none !important; }
}
.reduce-motion .plate__ink { transform: translate(3px, 3px); opacity: .38; }
.reduce-motion .pair__col { transform: none; }
