*{box-sizing:border-box}
body{margin:0;font-family:'Manrope',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;color:oklch(24% 0.02 262);background:oklch(98.2% 0.004 255);-webkit-font-smoothing:antialiased;line-height:1.6}
html{scroll-behavior:smooth}
::selection{background:oklch(54% 0.15 264 / .25)}
a{color:oklch(46% 0.15 264)}
.wrap{max-width:820px;margin:0 auto;padding:0 24px}

/* nav */
.nav{position:sticky;top:0;z-index:50;background:oklch(18.5% 0.03 264 / .94);backdrop-filter:blur(8px);border-bottom:1px solid oklch(40% 0.04 264 / .35)}
.nav-in{max-width:1180px;margin:0 auto;padding:0 24px;height:64px;display:flex;align-items:center;gap:20px}
.nav img{height:24px;width:auto;filter:brightness(0) invert(1)}
.nav a{color:oklch(80% 0.02 264);font-size:13.5px;font-weight:500;text-decoration:none}
.nav a:hover{color:#fff}
.nav .sp{flex:1}

/* head */
.head{padding:52px 0 26px;border-bottom:1px solid oklch(91% 0.006 255)}
.eyebrow{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:oklch(54% 0.15 264)}
h1{font-size:clamp(28px,4.4vw,40px);font-weight:800;letter-spacing:-.025em;line-height:1.15;margin:12px 0 0;color:oklch(20% 0.02 262)}
.lede{font-size:16px;line-height:1.65;color:oklch(45% 0.015 262);margin:14px 0 0}
.meta{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11.5px;color:oklch(58% 0.012 262);margin:18px 0 0}

/* toc */
.toc{margin:30px 0 8px;padding:20px 22px;background:#fff;border:1px solid oklch(91% 0.006 255);border-radius:14px}
.toc-t{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:10.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:oklch(58% 0.012 262)}
.toc ol{margin:12px 0 0;padding:0 0 0 20px;columns:2;column-gap:28px}
.toc li{font-size:14px;margin:0 0 7px;break-inside:avoid}
.toc a{text-decoration:none}
.toc a:hover{text-decoration:underline}
@media(max-width:620px){.toc ol{columns:1}}

/* sections */
section{padding:34px 0 0;scroll-margin-top:84px}
h2{font-size:21px;font-weight:800;letter-spacing:-.02em;color:oklch(20% 0.02 262);margin:0 0 12px;display:flex;gap:11px;align-items:baseline}
h2 .n{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:13px;font-weight:600;color:oklch(54% 0.15 264);flex:none}
h3{font-size:15.5px;font-weight:700;color:oklch(26% 0.02 262);margin:22px 0 8px}
p{font-size:15px;color:oklch(35% 0.015 262);margin:0 0 12px}
ul,ol.body{margin:0 0 12px;padding-left:21px}
li{font-size:15px;color:oklch(35% 0.015 262);margin:0 0 8px}
strong{color:oklch(22% 0.02 262);font-weight:700}
.note{margin:16px 0;padding:15px 18px;background:oklch(96.5% 0.012 264);border-left:3px solid oklch(54% 0.15 264);border-radius:0 10px 10px 0}
.note p:last-child{margin:0}
.note-t{font-weight:700;font-size:14px;color:oklch(30% 0.04 264);margin:0 0 5px}
.warn{background:oklch(96.5% 0.03 80);border-left-color:oklch(62% 0.13 80)}
.warn .note-t{color:oklch(38% 0.09 62)}
.card{margin:16px 0;padding:18px 20px;background:#fff;border:1px solid oklch(91% 0.006 255);border-radius:13px}
.card p:last-child,.card ul:last-child{margin-bottom:0}
table{width:100%;border-collapse:collapse;margin:14px 0;font-size:14.5px}
th,td{text-align:left;padding:11px 12px;border-bottom:1px solid oklch(91% 0.006 255);vertical-align:top;color:oklch(35% 0.015 262)}
th{font-size:11px;font-family:'IBM Plex Mono',ui-monospace,monospace;letter-spacing:.07em;text-transform:uppercase;color:oklch(52% 0.012 262);font-weight:600}
.tw{overflow-x:auto}
code{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:13px;background:oklch(95% 0.008 262);padding:1px 6px;border-radius:5px}

/* footer */
footer{margin-top:56px;background:oklch(15% 0.025 264);padding:34px 0}
.f-in{max-width:1180px;margin:0 auto;padding:0 24px;display:flex;flex-wrap:wrap;align-items:center;gap:16px}
footer img{height:22px;width:auto;filter:brightness(0) invert(1);opacity:.92}
footer a{color:oklch(78% 0.02 264);font-size:12.5px;text-decoration:none}
footer a:hover{color:#fff}
.f-sp{flex:1}
.f-c{font-size:12px;color:oklch(52% 0.02 264)}

/* mobile */
@media(max-width:600px){
  .nav-in{height:auto;min-height:58px;padding:11px 18px;gap:14px}
  .nav img{height:21px}
  .nav a{font-size:12px}
  .head{padding:38px 0 22px}
  section{padding:28px 0 0}
  h2{font-size:19px}
  th,td{padding:9px 10px;font-size:13.5px}
  .f-in{gap:12px}
  footer a{font-size:12px}
}
