/* 컨셉 키워드 — 넓은 자리는 1160 본문, 760 아래는 390 지면.
   짝 한 줄을 가리키면 그 짝의 두 단어만 목록에 남고 나머지는 옅어진다. */

:root{
  --ink:#292416;
  --ink-2:#574D3F;
  --mute:#9F9A93;
  --line:#D1CFCB;
  --band:#F2F1EF;
  --card:#F9F9F9;
  --accent:#C8542E;
  --ko:"Noto Sans KR","Apple SD Gothic Neo",system-ui,-apple-system,sans-serif;
  --mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --ease:200ms ease;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{-webkit-text-size-adjust:100%;background:#FFFFFF}
body{
  background:#FFFFFF;
  color:var(--ink);
  font-family:var(--ko);
  font-weight:400;
  word-break:keep-all;
  overflow-wrap:break-word;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{display:block;max-width:none}
h1,h2,h3,p,ol,ul{margin:0;padding:0}
ol,ul{list-style:none}
br.m{display:none}

.page{
  max-width:1208px;
  margin:0 auto;
  padding:64px 24px 96px;
}

/* ---------- 머리 ---------- */
.head{
  display:flex;flex-direction:column;gap:24px;
  padding-bottom:32px;
  border-bottom:1px solid var(--line);
}
.title{display:flex;flex-direction:column;gap:4px}
.title h1{font-size:28px;line-height:36px;font-weight:700;letter-spacing:-0.56px}
.title-ko{font-size:14px;line-height:22px;color:var(--ink-2)}
.lead{display:flex;flex-direction:column;gap:8px}
.lead-1{font-size:22px;line-height:32px;font-weight:700;letter-spacing:-0.22px}
.lead-2{font-size:16px;line-height:27px;color:var(--ink-2)}

/* ---------- 구역 이름 ---------- */
.label{
  display:flex;align-items:baseline;gap:10px;
  font-size:20px;line-height:28px;font-weight:700;letter-spacing:-0.2px;
}
.label span{font-size:14px;font-weight:500;letter-spacing:0;color:var(--ink-2)}
.sec{border-bottom:1px solid var(--line)}

.mono-label{
  font-family:var(--mono);
  font-size:11px;line-height:14px;letter-spacing:0.8px;
  color:var(--ink-2);
}

/* ---------- 단어 ---------- */
.words{padding:32px 0;display:flex;flex-direction:column;gap:24px}
.lists{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.list{display:flex;flex-direction:column;gap:16px}
.list-col{display:flex;flex-direction:column;gap:32px}
.list-head{display:flex;flex-direction:column;gap:4px}
.list-head h3{font-size:16px;line-height:24px;font-weight:500}
.list-sub{font-size:13px;line-height:20px;color:var(--ink-2)}

.chips{display:flex;flex-wrap:wrap;gap:8px 6px;align-items:flex-start}
.chip{
  display:inline-flex;align-items:center;gap:6px;
  padding:5px 12px;
  border:1px solid var(--line);border-radius:999px;
  white-space:nowrap;
  transition:opacity var(--ease),background-color var(--ease),border-color var(--ease);
}
.chip .w{font-size:14px;line-height:20px;color:var(--ink);transition:color var(--ease)}
.chip .e{font-family:var(--mono);font-size:11px;line-height:14px;color:var(--mute);transition:color var(--ease)}

/* 클라이언트가 먼저 준 세 단어 */
.chip.is-on .w{color:#FFFFFF}
.chip.is-on .e{color:rgba(255,255,255,.6)}

.avoid{
  display:flex;flex-direction:column;gap:12px;
  padding-top:24px;
  border-top:1px solid var(--line);
  transition:opacity var(--ease);
}
.avoid-head{display:flex;align-items:baseline;gap:10px}
.avoid-head h3{font-size:14px;line-height:20px;font-weight:500}
.avoid-chips .chip{border:1px dashed var(--mute);opacity:.6}
.avoid-chips .chip .w{color:var(--ink-2)}

/* 짝을 가리키는 동안 */
.words.is-lit .chip{opacity:.28}
.words.is-lit .chip.is-on{opacity:1;background:var(--ink);border-color:var(--ink)}
.words.is-lit .avoid{opacity:.4}
.words.is-lit .avoid-chips .chip{opacity:.6}

/* ---------- 짝 ---------- */
.pairs{padding-top:32px;display:flex;flex-direction:column;gap:20px}
.pair-list{border-top:1px solid var(--line)}
.pair{
  position:relative;
  display:flex;align-items:flex-start;gap:24px;
  padding:12px;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  transition:background-color var(--ease);
}
.pair + .pair{border-top:1px solid var(--line)}
.pair::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:2px;
  background:var(--accent);
  opacity:0;transition:opacity var(--ease);
}
.pair.is-on{background:var(--band)}
.pair.is-on::before{opacity:1}
.pair:focus{outline:none}
.pair:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}
.pair .n{flex:none;width:24px;padding-top:2px;font-family:var(--mono);font-size:12px;line-height:24px;color:var(--ink-2)}
.pc{flex:1 1 0;min-width:0;display:flex;align-items:flex-start;gap:24px}
.pw{flex:none;width:260px;font-size:16px;line-height:24px;font-weight:500}
.kw{flex:none;width:88px;font-family:var(--mono);font-size:11px;line-height:24px;letter-spacing:0.6px;color:var(--ink-2);padding-top:2px}
.ps{flex:1 1 0;min-width:0;font-size:16px;line-height:24px}

/* ---------- 컨셉과 무드 ---------- */
.concepts{padding-top:32px}
.concepts > .label{margin-bottom:20px}
.band{
  display:flex;align-items:flex-start;gap:32px;
  padding:32px 0;
  border-top:1px solid var(--line);
}
.name{flex:none;width:264px;display:flex;flex-direction:column}
.letter{font-size:72px;line-height:80px;font-weight:700;letter-spacing:-1.5px}
.kwd{padding-top:12px;display:flex;flex-direction:column;gap:4px}
.kwd h3{font-size:22px;line-height:32px;font-weight:700;letter-spacing:-0.22px}
.src{font-size:14px;line-height:22px;color:var(--ink-2)}
.note{padding-top:16px;font-size:14px;line-height:22px}
.mood{flex:1 1 0;min-width:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.mood li{display:flex;flex-direction:column;gap:8px;min-width:0}
.mood img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;background:var(--band)}
.mood p,.scenes p{font-size:12px;line-height:16px;color:var(--ink-2)}

/* ---------- 공통 무드 ---------- */
.shared{
  padding:32px 0;
  border-top:1px solid var(--line);
  display:flex;flex-direction:column;gap:24px;
}
.shared-intro{font-size:16px;line-height:27px}
.colors{display:flex;flex-wrap:wrap;gap:24px 48px}
.palette{display:flex;flex-direction:column;gap:10px}
.pal-head,.type-head{display:flex;align-items:baseline;gap:10px}
.pal-sub,.type-sub{font-size:13px;line-height:20px;color:var(--ink-2)}
.swatches{display:flex;gap:12px}
.swatches li{
  display:flex;flex-direction:column;gap:4px;
  width:56px;
  font-size:11px;line-height:14px;color:var(--ink-2);
}
.sw{display:block;width:100%;height:20px}
.sw.line{box-shadow:inset 0 0 0 1px var(--line)}

.types{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.type{
  display:flex;flex-direction:column;gap:6px;
  padding:16px 20px 20px;
  background:var(--card);
}
.type-head{padding-bottom:10px}
.spec-1,.spec-2{white-space:pre;color:var(--ink)}
.grotesque .spec-1{font-family:"Inter",var(--ko);font-weight:600;font-size:34px;line-height:40px}
.grotesque .spec-2{font-family:"Inter",var(--ko);font-weight:500;font-size:22px;line-height:28px}
.mono .spec-1{font-family:var(--mono);font-weight:500;font-size:30px;line-height:40px}
.mono .spec-2{font-family:var(--mono);font-weight:400;font-size:20px;line-height:28px}
.serif .spec-1{font-family:"Noto Serif",Georgia,serif;font-weight:300;font-size:32px;line-height:40px}
.serif .spec-2{font-family:"Noto Serif",Georgia,serif;font-weight:300;font-size:20px;line-height:28px}
.type-note{padding-top:8px;font-size:13px;line-height:20px;color:var(--ink-2)}

.scenes{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.scenes li{display:flex;flex-direction:column;gap:8px;min-width:0}
.scenes img{width:100%;height:auto;aspect-ratio:159 / 200;object-fit:cover;background:var(--band)}

/* ---------- 390 ---------- */
@media (max-width:759px){
  .page{padding:40px 0 64px}
  br.m{display:inline}

  .head{gap:20px;padding:0 16px 24px}
  .lead-1{font-size:20px;line-height:30px;letter-spacing:-0.2px}

  .words{padding:24px 16px}
  .lists{grid-template-columns:minmax(0,1fr);gap:24px}
  .list-col{gap:24px}

  .pairs{padding:24px 16px 0;gap:16px}
  .pair{gap:12px;padding:12px 8px}
  .pair .n{width:20px;padding-top:0}
  .pc{flex-direction:column;align-items:stretch;gap:2px}
  .pw{width:auto}
  .kw{width:auto;padding-top:4px;line-height:16px}
  .ps{font-size:14px;line-height:22px}

  .concepts{padding:24px 16px 0}
  .concepts > .label{margin-bottom:16px}
  .band{flex-direction:column;align-items:stretch;gap:20px;padding:24px 0}
  .name{width:auto}
  .letter{font-size:56px;line-height:64px;letter-spacing:-1px}
  .kwd{padding-top:8px}
  .kwd h3{font-size:20px;line-height:28px;letter-spacing:-0.2px}
  .note{padding-top:12px}
  .mood{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 8px}
  .mood li{gap:6px}

  .shared{padding:24px 16px;gap:20px}
  .colors{flex-direction:column;gap:20px}
  .swatches{display:grid;gap:12px}
  .swatches li{width:auto}
  .base .swatches{grid-template-columns:repeat(3,minmax(0,1fr))}
  .board .swatches{grid-template-columns:repeat(4,minmax(0,1fr))}
  .types{grid-template-columns:minmax(0,1fr);gap:12px}
  .scenes{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px 8px}
  .scenes li{grid-column:span 3}
  .scenes li.tall{grid-column:span 2}
  .scenes li:not(.tall) img{aspect-ratio:1}
  .scenes li.tall img{aspect-ratio:114 / 146}
}

/* 움직임을 줄인 자리: 바뀌는 것은 그대로, 넘어가는 시간만 뺀다 */
@media (prefers-reduced-motion:reduce){
  .chip,.chip .w,.chip .e,.avoid,.pair,.pair::before{transition:none}
}
