:root{--bg:#faf8f4;--card:#fff;--ink:#22201c;--sub:#6b665d;--line:#e6e1d7;--accent:#7a4b1e;--accent-soft:#f3e8da;--on:#fff}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#17150f;--card:#211e17;--ink:#eee8dc;--sub:#a49c8c;--line:#38332a;--accent:#e0a868;--accent-soft:#3a2d1d;--on:#17150f}}
:root[data-theme="dark"]{--bg:#17150f;--card:#211e17;--ink:#eee8dc;--sub:#a49c8c;--line:#38332a;--accent:#e0a868;--accent-soft:#3a2d1d;--on:#17150f}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Noto Sans KR",-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;line-height:1.55}
a{color:var(--accent)}
.wrap{max-width:860px;margin:0 auto;padding:0 16px}
header.top{padding:22px 0 6px;display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.brand{font-size:14px;letter-spacing:.06em;color:var(--sub);text-decoration:none}
.brand b{color:var(--ink);letter-spacing:.02em}
nav.menu{display:flex;gap:14px;font-size:14px}
nav.menu a{color:var(--sub);text-decoration:none}
nav.menu a[aria-current]{color:var(--accent);font-weight:600}
h1{font-family:"Noto Serif KR",serif;font-size:28px;margin:0;line-height:1.3}
h2{font-family:"Noto Serif KR",serif;font-size:20px;margin:28px 0 10px}
.meta{color:var(--sub);font-size:14px;margin-top:6px}
.chip{font:inherit;font-size:14px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink);cursor:pointer}
.chip[aria-pressed="true"]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.chip:disabled{opacity:.4;cursor:not-allowed}
.btn{display:inline-block;font:inherit;font-size:14px;padding:9px 14px;border-radius:10px;border:1px solid var(--accent);background:var(--accent);color:var(--on);text-decoration:none}
.btn.ghost{background:var(--card);color:var(--sub);border-color:var(--line);cursor:not-allowed}
input[type=search]{font:inherit;font-size:16px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);width:100%}
footer.foot{color:var(--sub);font-size:13px;border-top:1px solid var(--line);margin-top:36px;padding:16px 0 28px}
footer.foot p{margin:6px 0}
.score{background:#fff;border-radius:10px;padding:8px 10px;border:1px solid var(--line);overflow-x:auto}
.score img{display:block;height:96px;max-width:none}
@media (max-width:560px){h1{font-size:23px}.score img{height:80px}}
