/* lab 공통 — 색·타입·네비 */
:root{
  --bg:#0E0F12; --fg:#E8E6E1; --dim:#8A8A82; --line:#26272B;
  --hot:#E0674F; --ok:#6FA88A;
  --mono:"JetBrains Mono",Consolas,"D2Coding",monospace;
  --sans:"Pretendard","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;
}
*{box-sizing:border-box}
body{
  margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);
  line-height:1.75;word-break:keep-all;
}
a{color:var(--hot);text-decoration:none;border-bottom:1px solid transparent}
a:hover{border-bottom-color:var(--hot)}
a:focus-visible{outline:2px solid var(--hot);outline-offset:3px}

/* ── 네비 ── */
.nav{
  position:sticky;top:0;z-index:10;
  background:rgba(14,15,18,.92);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.nav-in{
  max-width:720px;margin:0 auto;padding:.9rem 24px;
  display:flex;align-items:baseline;gap:1.6rem;flex-wrap:wrap;
}
.nav .brand{
  font-family:var(--mono);font-weight:600;font-size:1rem;letter-spacing:-.03em;
  color:var(--fg);border:0;
}
.nav .brand .dot{color:var(--hot)}
.nav a.item{
  font-family:var(--mono);font-size:.82rem;color:var(--dim);border:0;
  padding-bottom:2px;border-bottom:1px solid transparent;
}
.nav a.item:hover{color:var(--fg)}
.nav a.item[aria-current="page"]{color:var(--fg);border-bottom-color:var(--hot)}
.nav .out{margin-left:auto;font-family:var(--mono);font-size:.76rem;color:var(--dim)}
.nav .out a{color:var(--dim);border:0}
.nav .out a:hover{color:var(--hot)}
@media (max-width:560px){
  .nav-in{gap:1rem;padding:.8rem 18px}
  .nav .out{margin-left:0;width:100%}
}

/* ── 본문 틀 ── */
.wrap{max-width:720px;margin:0 auto;padding:5vh 24px 12vh}
@media (max-width:560px){ .wrap{padding:4vh 18px 10vh} }
