:root { color-scheme: light; --paper:#f7f6f2; --paper-2:#eeede7; --ink:#30372e; --muted:#61675e; --soft:#666d63; --rule:#dcded4; --accent:#ac472d; --accent-tint:#f4e5db; --link:#496544; --sans:'Geist','Noto Sans KR',sans-serif; --serif:'Instrument Serif','Noto Serif KR',serif; --mono:'Geist Mono',monospace; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); -webkit-font-smoothing:antialiased; }
a { color:var(--link); text-underline-offset:3px; }
:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.shell { width:min(1120px, calc(100% - 80px)); margin:auto; }
.skip { position:absolute; top:-80px; left:16px; z-index:5; padding:12px; background:var(--ink); color:white; }
.skip:focus { top:12px; }
.site-header { min-height:84px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 24px; border-bottom:1px solid var(--rule); padding:12px 0; }
.brand { display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink); }
.brand svg { width:24px; height:24px; color:var(--accent); }
.wordmark { font-size:28px; font-weight:600; letter-spacing:-1px; }
.site-nav { display:flex; flex-wrap:wrap; gap:4px 18px; font-size:13px; }
.site-nav a { color:var(--muted); text-decoration:none; padding:6px 0; }
.site-nav a:hover, .site-nav a[aria-current="page"] { color:var(--ink); text-decoration:underline; }
.page { display:grid; grid-template-columns:220px minmax(0, 720px); gap:48px; padding:40px 0 56px; }
.page-side { font-size:12px; color:var(--soft); line-height:1.8; }
.page-side .label { font:10px var(--mono); letter-spacing:1.6px; text-transform:uppercase; color:var(--muted); display:block; margin-bottom:8px; }
.page-side ol, .page-side ul { margin:0; padding-left:18px; }
.page-side a { color:var(--muted); }
.article h1 { font-size:30px; line-height:1.4; letter-spacing:-1px; margin:0 0 14px; word-break:keep-all; }
.article .lead { font-size:15px; line-height:1.9; color:var(--muted); margin:0 0 28px; padding-bottom:24px; border-bottom:1px solid var(--rule); word-break:keep-all; }
.article h2 { font-size:20px; letter-spacing:-.5px; margin:36px 0 12px; word-break:keep-all; }
.article h3 { font-size:16px; margin:24px 0 8px; word-break:keep-all; }
.article p, .article li { font-size:15px; line-height:1.9; word-break:keep-all; }
.article p { margin:0 0 14px; }
.article ul, .article ol { margin:0 0 16px; padding-left:22px; }
.article li { margin-bottom:6px; }
.article table { width:100%; border-collapse:collapse; margin:8px 0 20px; font-size:14px; background:#fdfdfa; }
.article th, .article td { border:1px solid var(--rule); padding:9px 12px; text-align:left; vertical-align:top; line-height:1.7; word-break:keep-all; }
.article th { background:var(--paper-2); font-weight:600; }
.callout { margin:20px 0; padding:16px 18px; border:1px solid var(--rule); border-left:3px solid var(--accent); border-radius:6px; background:#fdfdfa; font-size:14px; line-height:1.85; color:var(--muted); }
.callout strong { color:var(--ink); }
.meta-line { font:11px var(--mono); color:var(--soft); margin:0 0 10px; }
.guide-list { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px; margin:20px 0; padding:0; list-style:none; }
.guide-list li { margin:0; }
.guide-list a { display:block; height:100%; padding:20px; border:1px solid var(--rule); border-radius:8px; background:#fdfdfa; color:var(--ink); text-decoration:none; }
.guide-list a:hover { border-color:#8c9585; }
.guide-list strong { display:block; font-size:17px; margin-bottom:6px; }
.guide-list span { display:block; font-size:13px; line-height:1.8; color:var(--muted); }
.cta { display:inline-block; margin:6px 0 18px; padding:10px 16px; border-radius:6px; background:var(--ink); color:var(--paper); text-decoration:none; font-size:14px; }
.cta:hover { background:#1f251d; }
.site-footer { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px 20px; padding:24px 0 32px; border-top:1px solid var(--rule); color:var(--muted); font:11px/1.9 var(--mono); }
.site-footer nav { display:flex; flex-wrap:wrap; gap:4px 14px; }
.site-footer a { color:var(--muted); }
.footer-star { color:var(--accent); padding-right:6px; }
@media(max-width:860px) {
  .shell { width:calc(100% - 40px); }
  .page { grid-template-columns:1fr; gap:20px; padding-top:28px; }
  .page-side { order:2; border-top:1px solid var(--rule); padding-top:20px; }
  .article h1 { font-size:25px; }
  .guide-list { grid-template-columns:1fr; }
}
@media print { .site-nav, .page-side, .skip { display:none; } .page { display:block; } .shell { width:100%; } }
