
:root{
  --paper:#f6f1e6; --paper-2:#efe7d6; --ink:#2b241c; --ink-soft:#5c5346;
  --accent:#8a3324; --accent-2:#7a6a34; --rule:#d9cdb2; --card:#fffdf8;
  --overlay:rgba(30,24,14,.45);
}
@media (prefers-color-scheme: dark){
  :root{
    --paper:#1b1712; --paper-2:#221d16; --ink:#ece4d3; --ink-soft:#bcae93;
    --accent:#e2a06a; --accent-2:#cdbf82; --rule:#3a3122; --card:#221d16;
    --overlay:rgba(0,0,0,.6);
  }
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{margin:0;padding:0;}
body{
  background:var(--paper); color:var(--ink);
  font-family:'Noto Serif KR','Nanum Myeongjo',serif;
  line-height:1.85; font-size:17px;
}
.wrap{max-width:800px;margin:0 auto;padding:56px 24px 96px;}
a{color:var(--accent);text-decoration:none;}
a:hover{text-decoration:underline;}
.topnav{
  display:flex;justify-content:space-between;align-items:center;
  max-width:800px;margin:0 auto;padding:20px 24px;
  border-bottom:1px solid var(--rule); font-size:14px;letter-spacing:.02em;
}
.topnav a{color:var(--ink-soft);}
.topnav a:hover{color:var(--accent);}
.eyebrow{
  text-transform:uppercase;letter-spacing:.18em;font-size:12.5px;
  color:var(--accent-2);font-weight:600;margin:0 0 10px;
}
h1{
  font-family:'Nanum Myeongjo',serif;font-weight:800;
  font-size:clamp(28px,4vw,40px);line-height:1.35;margin:0 0 14px;color:var(--ink);
}
h2{
  font-family:'Nanum Myeongjo',serif;font-weight:700;font-size:22px;
  margin:52px 0 18px;padding-top:18px;border-top:1px solid var(--rule);
  color:var(--ink);scroll-margin-top:24px;
}
.subtitle{color:var(--ink-soft);font-size:16px;margin:0 0 40px;}
.meta{color:var(--ink-soft);font-size:14.5px;margin:0 0 6px;}
hr{border:none;border-top:1px solid var(--rule);margin:40px 0;}
.maxim{margin:0 0 40px;scroll-margin-top:24px;}
.maxim .num{
  display:inline-block;font-family:'Nanum Myeongjo',serif;font-weight:800;
  color:var(--accent);font-size:15px;letter-spacing:.04em;margin-bottom:6px;
}
.maxim h3{
  font-family:'Nanum Myeongjo',serif;font-weight:700;font-size:21px;
  margin:0 0 12px;color:var(--ink);line-height:1.5;
}
.maxim p{margin:0;color:var(--ink);}
.maxim.hit{animation:flash 1.6s ease;}
@keyframes flash{
  0%{background:var(--paper-2);} 100%{background:transparent;}
}
.closing{
  margin-top:52px;padding-top:24px;border-top:1px solid var(--rule);
  color:var(--ink-soft);font-style:italic;text-align:center;font-size:15px;
}
table{
  width:100%;border-collapse:collapse;margin:18px 0 8px;
  font-size:15px;background:var(--card);
}
th,td{
  text-align:left;padding:10px 12px;border-bottom:1px solid var(--rule);
  vertical-align:top;
}
th{
  background:var(--paper-2);font-weight:700;color:var(--ink-soft);
  font-size:13px;letter-spacing:.03em;text-transform:uppercase;
  position:sticky;top:0;
}
tr:hover td{background:var(--paper-2);}
.tablewrap{overflow-x:auto;margin:0 0 8px;-webkit-overflow-scrolling:touch;}
p.lead{color:var(--ink-soft);font-size:16px;margin:0 0 28px;}
.footer{
  max-width:800px;margin:0 auto;padding:0 24px 60px;
  color:var(--ink-soft);font-size:13px;text-align:center;
}
/* ---- index page ---- */
.hero{text-align:center;padding:80px 24px 20px;max-width:760px;margin:0 auto;}
.hero .eyebrow{display:block;text-align:center;}
.hero h1{margin-bottom:18px;}
.hero p{color:var(--ink-soft);font-size:16.5px;max-width:560px;margin:0 auto;}
.ornament{
  text-align:center;color:var(--accent-2);font-size:20px;letter-spacing:.4em;
  margin:26px 0 0;
}
.grid{
  max-width:900px;margin:20px auto 0;padding:0 24px 100px;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;
}
.card{
  background:var(--card);border:1px solid var(--rule);border-radius:4px;
  padding:24px 22px;transition:box-shadow .15s ease, transform .15s ease;
}
.card:hover{box-shadow:0 6px 20px rgba(0,0,0,.08);transform:translateY(-2px);}
.card .tag{
  font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent-2);font-weight:700;margin-bottom:8px;
}
.card h3{margin:0 0 10px;font-size:19px;font-family:'Nanum Myeongjo',serif;}
.card p{margin:0;color:var(--ink-soft);font-size:14.5px;line-height:1.65;}
.card a.cardlink{display:block;color:inherit;}
.card a.cardlink:hover{text-decoration:none;}
.section-label{
  max-width:900px;margin:24px auto 0;padding:0 24px;
  font-size:13px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent-2);font-weight:700;
}

/* ---- floating toolbar ---- */
.toolbar{
  position:fixed;right:22px;bottom:26px;display:flex;flex-direction:column;
  gap:10px;z-index:40;
}
.toolbar button{
  width:46px;height:46px;border-radius:50%;border:1px solid var(--rule);
  background:var(--card);color:var(--ink);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 3px 10px rgba(0,0,0,.12);transition:transform .12s eas%, background .15s ease;
  padding:0;
}
.toolbar button:hover{transform:translateY(-2px);background:var(--paper-2);}
.toolbar button svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;}
.toolbar #btn-top{opacity:0;pointer-events:none;transform:translateY(8px);}
.toolbar #btn-top.show{opacity:1;pointer-events:auto;transform:translateY(0);}

/* ---- TOC drawer ---- */
.drawer-backdrop{
  position:fixed;inset:0;background:var(--overlay);z-index:50;
  opacity:0;pointer-events:none;transition:opacity .18s ease;
}
.drawer-backdrop.open{opacity:1;pointer-events:auto;}
.drawer{
  position:fixed;top:0;right:0;height:100%;width:min(340px,86vw);
  background:var(--paper);border-left:1px solid var(--rule);
  z-index:51;transform:translateX(100%);transition:transform .2s ease;
  display:flex;flex-direction:column;
}
.drawer.open{transform:translateX(0);}
.drawer-head{
  display:flex;justify-content:space-between;align-items:center;
  padding:18px 20px;border-bottom:1px solid var(--rule);
}
.drawer-head h4{margin:0;font-size:15px;letter-spacing:.04em;color:var(--ink-soft);
  text-transform:uppercase;}
.drawer-head button{
  background:none;border:none;cursor:pointer;color:var(--ink-soft);font-size:20px;
  line-height:1;padding:4px;
}
.drawer-list{overflow-y:auto;padding:8px 0;}
.drawer-list a{
  display:block;padding:10px 20px;font-size:14.5px;color:var(--ink);
  border-bottom:1px solid var(--paper-2);
}
.drawer-list a:hover{background:var(--paper-2);text-decoration:none;}
.drawer-list a .n{color:var(--accent);font-weight:700;margin-right:8px;font-size:13px;}

/* ---- search modal ---- */
.search-modal{
  position:fixed;inset:0;background:var(--overlay);z-index:60;
  display:flex;align-items:flex-start;justify-content:center;padding:9vh 20px;
  opacity:0;pointer-events:none;transition:opacity .15s ease;
}
.search-modal.open{opacity:1;pointer-events:auto;}
.search-box{
  width:100%;max-width:560px;background:var(--card);border:1px solid var(--rule);
  border-radius:8px;box-shadow:0 12px 40px rgba(0,0,0,.25);overflow:hidden;
  max-height:74vh;display:flex;flex-direction:column;
}
.search-box input{
  width:100%;border:none;padding:18px 20px;font-size:17px;
  font-family:'Noto Serif KR',serif;background:var(--card);color:var(--ink);
  border-bottom:1px solid var(--rule);outline:none;
}
.search-results{overflow-y:auto;}
.search-results a{
  display:block;padding:12px 20px;
  border-bottom:1px solid var(--paper-2);color:var(--ink);
}
.search-results a:hover{background:var(--paper-2);text-decoration:none;}
.search-results .r-head{display:flex;gap:10px;align-items:baseline;}
.search-results .n{color:var(--accent);font-weight:700;font-size:13px;flex:none;}
.search-results .r-title{font-weight:700;}
.search-results .src{margin-left:auto;color:var(--ink-soft);font-size:12px;flex:none;white-space:nowrap;}
.search-results .r-snippet{margin-top:4px;font-size:13px;color:var(--ink-soft);line-height:1.55;}
.search-results mark{background:rgba(255,204,77,.45);color:inherit;border-radius:2px;}
.search-empty{padding:22px 20px;color:var(--ink-soft);font-size:14.5px;}
kbd{
  border:1px solid var(--rule);border-radius:4px;padding:1px 6px;font-size:12px;
  font-family:inherit;color:var(--ink-soft);
}
.hint{padding:10px 20px;color:var(--ink-soft);font-size:12.5px;border-top:1px solid var(--rule);}
