/* ============================================================
   생애·기록 (life/) — 연대기 · 구술 · 장소 · 사료 사진 · 화가 · 전시 기록
   토큰은 site.css 의 :root 만 쓴다.
   ============================================================ */

/* ---- 연도 색인 ---- */
.yearidx{display:flex;flex-wrap:wrap;gap:4px 6px;margin:0 0 28px;font:12px/1 var(--sans)}
.yearidx a{padding:5px 7px;border:1px solid var(--line-2);border-radius:6px;background:var(--paper);color:var(--muted);letter-spacing:.04em}
.yearidx a.dec{border-color:var(--gold);color:var(--gold-2);font-weight:600}
.yearidx a:hover{border-color:var(--gold);color:var(--gold-2)}

/* ---- 작은 분류표 ---- */
.tag{display:inline-block;padding:2px 8px;border-radius:999px;border:1px solid var(--line);background:var(--paper);font:600 10px/1.6 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);vertical-align:middle;white-space:nowrap}
.tag-life,.tag-career{border-color:var(--gold);color:var(--gold-2)}
.tag-exhibition,.tag-kofu,.tag-nitten,.tag-solo{color:var(--sea);border-color:#b9c7cf}
.tag-record{color:var(--ink-2)}
.tag-work{background:var(--gold-2);border-color:var(--gold-2);color:#fff}
.tag-image,.tag-catalogue{background:var(--paper-2)}

/* ---- 연대기 ---- */
.periods{margin-bottom:26px}
.periods .card h3{font-size:20px}
.cy-filters input{margin-left:auto;padding:8px 14px;border:1px solid var(--line);border-radius:999px;font:13px var(--sans);background:var(--paper);min-width:220px}
.timeline.cy .event{padding-bottom:18px}
.timeline.cy .event .year{font-size:13px;font-weight:600;margin:0 0 8px}
.cy-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 12px;align-items:flex-start}
.cy-r{flex:1 1 100%;font-size:15.5px;line-height:1.65;color:var(--ink-2);padding:6px 0;border-top:1px solid var(--line-2)}
.cy-r:first-child{border-top:0}
.cy-r .tag{margin-right:8px}
.cy-r .date{font:11px var(--sans);color:var(--muted);letter-spacing:.06em;margin-right:8px}
.cy-r .txt[lang]{color:var(--muted)}
.cy-r .src{display:block;font:11px var(--sans);color:var(--muted);margin-top:2px}
.cy-r[hidden]{display:none}
/* 도판은 작은 카드로 나란히 */
.cy-image{flex:0 0 auto;width:168px;border-top:0;padding:4px 0}
.plate{margin:0;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-s);overflow:hidden}
.plate a{display:block;background:var(--paper-2)}
.plate img{width:100%;aspect-ratio:4/3;object-fit:contain;background:var(--paper-2)}
.plate .noimg{aspect-ratio:4/3;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted);font:11px/1.4 var(--sans);padding:12px}
.plate .noimg b{display:block;font:600 18px var(--serif);color:var(--gold);margin-bottom:4px}
.plate figcaption{font:12px/1.5 var(--sans);color:var(--muted);padding:8px 10px 10px}
/* 핵심 작품 */
.cy-work{border-top:0;padding:6px 0}
.cy-work .wlink{display:grid;grid-template-columns:120px 1fr;gap:16px;align-items:start;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-s);padding:12px;transition:border-color .15s}
.cy-work .wlink:hover{border-color:var(--gold)}
.cy-work .ph{display:block;aspect-ratio:1/1;background:var(--paper-2);border-radius:6px;overflow:hidden}
.cy-work .ph img{width:100%;height:100%;object-fit:contain}
.cy-work .ph .noimg{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;font:11px var(--sans);color:var(--muted);text-align:center;padding:8px}
.cy-work .ph .noimg b{font:600 20px var(--serif);color:var(--gold)}
.cy-work .wb{display:flex;flex-direction:column;gap:6px;min-width:0;align-items:flex-start}
.cy-work .wb b{font-size:20px;line-height:1.2;color:var(--ink)}
.cy-work .wb .txt{font-size:15px;color:var(--muted)}
.cy-work .go{color:var(--gold);font:600 12px/1 var(--sans);letter-spacing:.04em}
@media (max-width:560px){.cy-work .wlink{grid-template-columns:84px 1fr}}
/* 화신 60점 목록 */
.cy-cat summary{cursor:pointer;list-style:none}
.cy-cat summary::-webkit-details-marker{display:none}
.cy-cat summary .txt{text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px}
.cy-cat[open] summary .txt{color:var(--gold-2)}
.cy-table{overflow-x:auto;margin-top:12px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-s);padding:4px 14px 10px}
.cy-table table{font-size:14px;min-width:560px}
.cy-table td:first-child,.cy-table th:first-child{white-space:nowrap}
/* 필터로 모두 숨겨진 해는 함께 감춘다 */
.cy-year:not(:has(.cy-r:not([hidden]))){display:none}

/* ---- 구술 지도 ---- */
.timeline.oral .event{padding-bottom:34px}
.timeline.oral .event p{max-width:760px}
.timeline.oral .chips{margin-top:12px}
.excerpt{max-width:860px;margin-top:22px;padding:22px 24px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r)}
.excerpt h4{font-size:22px;margin:0 0 14px}
.excerpt .eyebrow{margin-bottom:6px}
blockquote.voice{margin:0 0 18px;padding:0 0 0 18px;border-left:2px solid var(--gold);font-style:normal;color:var(--ink);font-size:17px;line-height:1.9}
blockquote.voice p{margin:0}
blockquote.voice strong{color:var(--gold-2);font-weight:600}
blockquote.voice em{color:var(--muted);font-style:italic}
.commentary{font-size:15.5px;line-height:1.85;color:var(--ink-2)}
.commentary p{margin:0 0 .6em}
.commentary .eyebrow{margin-bottom:8px}
.excerpt.big{margin-top:36px;padding:0;background:transparent;border:0}
.excerpt.big h3{font-size:clamp(24px,2.6vw,34px);margin:4px 0 18px}
.excerpt.big blockquote.voice{font-size:18px;line-height:2.0}
.excerpt.big .commentary{margin-top:18px;padding-top:18px;border-top:1px solid var(--line-2)}
.oral-table td:nth-child(3){font-weight:600;color:var(--ink)}
.oral-table td[lang]{color:var(--muted)}

/* ---- 삶의 장소 ---- */
.places{list-style:none;margin:0;padding:0}
.place{display:grid;grid-template-columns:64px 1fr 220px;gap:20px;align-items:start;padding:22px 0;border-top:1px solid var(--line-2)}
.place:first-child{border-top:0}
.place .pn{font:600 34px/1 var(--serif);color:var(--gold);letter-spacing:-.03em;padding-top:4px}
.place .pb h3{font-size:clamp(20px,2vw,26px);margin:2px 0 8px}
.place .pb p{margin:0 0 6px;color:var(--ink-2)}
.place .pb .eyebrow{margin-bottom:4px}
.place .addr{font:14px/1.6 var(--sans);color:var(--muted)}
.place .addr .k{font-weight:600;letter-spacing:.08em;color:var(--gold);font-size:11px;text-transform:uppercase;margin-right:6px}
.place .maplink{margin-top:10px}
.place .maplink .chip{text-decoration:none}
.place-ph{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-s);overflow:hidden;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center}
.place-ph img{width:100%;height:100%;object-fit:cover}
.place-ph .noimg{text-align:center;font:11px/1.4 var(--sans);color:var(--muted);padding:10px}
.place-ph .noimg b{display:block;font:600 20px var(--serif);color:var(--gold);margin-bottom:4px}
.place:not(:has(.place-ph)){grid-template-columns:64px 1fr}
@media (max-width:760px){.place{grid-template-columns:48px 1fr}.place .place-ph{grid-column:2}.place .pn{font-size:26px}}
.spaces .card .place-ph{margin:-6px -6px 14px;aspect-ratio:3/2}
.spaces .card .addr{margin:0 0 12px}
.spaces .card .go{margin-top:auto}

/* ---- 사료 사진 ---- */
.plates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;margin-bottom:12px}
.plates-grid .plate img{aspect-ratio:1/1}
.plates-grid .plate .noimg{aspect-ratio:1/1}

/* ---- 전시 기록 ---- */
.exh td.y{white-space:nowrap;font:600 14px var(--sans);color:var(--gold-2);width:70px}
.exh td.y .rep{color:var(--line);font-weight:400}
.exh td.y a:hover{text-decoration:underline}
.exh tbody.yr tr:first-child td{border-top:1px solid var(--line)}
.exh td span[lang]{color:var(--muted)}
.exh .date,.exh .src{font:11px var(--sans);color:var(--muted);margin-left:6px}
.exh tr[hidden]{display:none}
.exh tbody.yr:not(:has(tr:not([hidden]))){display:none}
.exh .tag{min-width:64px;text-align:center}
/* 좁은 화면: 전시·구술 표는 줄바꿈으로 맞추고, 화신 60점 표만 가로로 민다 */
.cy-table .exh,.cy-table .oral-table{min-width:0}
@media (max-width:600px){.cy-table{padding:0 10px 6px}.cy-table table{font-size:13px}.exh td.y{width:52px}.exh .tag{min-width:0}}
