:root{
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
  --bg:#EEF2F5; --panel:#FFFFFF; --ink:#16212B; --mute:#5C6B78; --line:#D3DCE3; --accent:#0E6B73;
  --serif:"Noto Serif KR","Nanum Myeongjo",Batang,serif;
  --sans:"IBM Plex Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
}
@media (prefers-color-scheme:dark){:root{--bg:#0F1820;--panel:#16232D;--ink:#E6EDF2;--mute:#93A3B0;--line:#2B3C49;--accent:#4FB8C0}}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.8 var(--sans);word-break:keep-all}
a{color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.wrap{max-width:760px;margin:0 auto;padding:0 20px}
header.top{display:flex;justify-content:space-between;align-items:baseline;padding:20px 0;border-bottom:1px solid var(--line)}
.logo{font:700 20px var(--serif);letter-spacing:-.02em;text-decoration:none}
.logo span{color:var(--accent)}
nav a{margin-left:18px;text-decoration:none;color:var(--mute);font-size:14px}
nav a:hover,nav a.on{color:var(--accent)}
h1{font:700 clamp(26px,4.5vw,36px)/1.3 var(--serif);letter-spacing:-.03em;margin:40px 0 10px}
.lead{color:var(--mute);margin:0 0 28px}
.tag{display:inline-block;font-size:13px;color:var(--accent);border:1px solid var(--accent);border-radius:3px;padding:0 8px;margin-top:36px}
.tag+h1{margin-top:12px}
.list a.post{display:block;text-decoration:none;padding:18px 0;border-bottom:1px solid var(--line)}
.list a.post h2{font:700 20px var(--serif);margin:0 0 4px}
.list a.post p{margin:0;color:var(--mute);font-size:15px}
.list a.post:hover h2{color:var(--accent)}
article h2{font:700 21px var(--serif);margin:34px 0 8px;letter-spacing:-.02em}
article p{margin:0 0 16px}
article ul{margin:0 0 16px;padding-left:22px}
article li{margin-bottom:6px}
.note{margin:36px 0 0;padding:14px 16px;background:var(--panel);border:1px solid var(--line);color:var(--mute);font-size:14px}
.nav-bottom{display:flex;justify-content:space-between;gap:12px;margin:28px 0 0;font-weight:600}
.nav-bottom a{color:var(--accent);text-decoration:none}
footer{margin-top:56px;padding:22px 0 30px;border-top:1px solid var(--line);color:var(--mute);font-size:13px}
