*,*::before,*::after{box-sizing:border-box}
html[data-theme="dark"]{--bg:#0d0f13;--bg2:#12161d;--card:#171c25;--line:#252d3a;--fg:#e9edf4;--dim:#9aa4b2;--dim2:#69737f;--accent:#6ec9ec}
html[data-theme="light"]{--bg:#f5f6f8;--bg2:#fff;--card:#fff;--line:#e3e6eb;--fg:#151a21;--dim:#5c6572;--dim2:#697280;--accent:#1f7fa6}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.55 Archivo,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--fg)}
h1,h2,h3,h4{letter-spacing:-.015em;text-wrap:balance}
h1{font-size:clamp(28px,4.4vw,42px);margin:0 0 8px;font-weight:700}
.h1-xl{font-size:clamp(34px,6vw,60px);line-height:1.02;margin:0 0 14px;letter-spacing:-.025em;max-width:18ch}
.mono,input,select,button{font-family:'JetBrains Mono',ui-monospace,monospace}
input,select,button{font-size:13px;color:inherit}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.main{padding-top:34px;padding-bottom:80px}
.dim{color:var(--dim)}.dim2{color:var(--dim2)}.accent{color:var(--accent)}.sm{font-size:13.5px}.strong{font-weight:500}
.kicker{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim2)}
.sub{color:var(--dim);max-width:62ch;margin:0 0 26px}
.lede{color:var(--dim);font-size:18px;max-width:62ch;text-wrap:pretty}
.lede.sm{font-size:15px;margin-bottom:4px}
.lede p{margin:0 0 14px}
.hdr{position:sticky;top:0;z-index:20;background:color-mix(in oklab,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.hdr-in{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding-top:14px;padding-bottom:14px}
.brand{display:flex;align-items:center;gap:9px;font-family:'JetBrains Mono',monospace;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg)}
.dot{width:10px;height:10px;border-radius:2px;background:var(--accent)}
.nav{display:flex;column-gap:2px;row-gap:6px;flex-wrap:wrap;flex:1 1 320px}
.navlink{font-family:inherit;font-size:14px;font-weight:500;color:var(--dim);padding:7px 11px;border-radius:7px;white-space:nowrap}
.navlink:hover{color:var(--fg)}
.navlink.on{background:color-mix(in oklab,var(--accent) 16%,transparent);color:var(--accent)}
.tools{display:flex;align-items:center;gap:8px;margin-left:auto}
.tools input{width:190px}
.tools input,.tools select,#themebtn{background:var(--bg2);border:1px solid var(--line);border-radius:7px;padding:7px 10px;outline:none}
#themebtn{width:34px;height:34px;padding:0;cursor:pointer}
.tools input:focus,.tools select:focus{border-color:var(--accent)}
.card{display:block;background:var(--card);border:1px solid var(--line);border-radius:12px;color:inherit}
.card.pad{padding:20px}
.card.soft{background:var(--bg2)}
.grid{display:grid;gap:14px}
.grid.cards{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:26px}
.grid.two{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.grid.three{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.grid.cls-grid{grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:12px}
.stack{display:flex;flex-direction:column;gap:10px}
.stack.lg{gap:22px}
.stack.sm{gap:7px}
.meta{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.feat{padding:18px}
.feat h3{margin:9px 0 7px;font-size:19px;font-weight:600}
.feat p{margin:0;color:var(--dim);font-size:14.5px}
.feat:hover{border-color:var(--accent);color:inherit}
.ch{margin:0 0 14px;font-size:15px;font-weight:600}
.ch.lg{margin:9px 0 4px;font-size:19px}
.note{color:var(--dim);font-size:14px;margin:0 0 16px}
.wk{display:flex;gap:11px;align-items:flex-start}
.wk .n{font-size:12px;color:var(--accent);padding-top:2px}
.wk-t{font-size:15px;font-weight:500}
.wk-n{font-size:13.5px;color:var(--dim)}
.kvs{display:flex;flex-direction:column}
.kv{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.kv span:first-child{color:var(--dim)}
.kv.top{border-bottom:0;border-top:1px solid var(--line);padding:8px 0 0;margin-bottom:8px;align-items:baseline}
.btn{display:inline-block;white-space:nowrap;margin-top:16px;border:1px solid var(--line);border-radius:7px;padding:8px 12px;font-size:14px;font-family:inherit}
.btn:hover{border-color:var(--accent)}
details.card{padding:18px 20px}
summary{display:flex;align-items:center;gap:14px;list-style:none;cursor:pointer}
summary::-webkit-details-marker{display:none}
.sum-kind{min-width:84px}
.sum-t{font-size:19px;font-weight:600;flex:1}
.det{padding-top:14px}
.steps{margin:0;padding-left:18px;display:grid;gap:6px;font-size:14.5px}
h4.kicker{margin:0 0 9px}
.tbl{overflow:hidden}
.tbl-h{padding:15px 20px;border-bottom:1px solid var(--line);display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.tbl-h h2{margin:0;font-size:17px;font-weight:600}
.row{display:grid;gap:8px;padding:12px 20px;border-bottom:1px solid var(--line);font-size:14.5px;align-items:center}
.row.four{grid-template-columns:1.4fr 1fr 1fr 1.2fr}
.row.four.alt{grid-template-columns:.6fr 1fr 1fr 1.4fr}
.row.head{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim2);padding:10px 20px}
.row-card{display:flex;gap:18px;align-items:baseline;flex-wrap:wrap;padding:17px 20px}
.row-card:hover{border-color:var(--accent)}
.pid{font-size:15px;min-width:56px}
.rc-t{font-size:16.5px;font-weight:600;flex:1 1 200px}
.rc-s{flex:1 1 100%;max-width:70ch}
.cls{border-top:3px solid var(--cc);padding:16px 17px;border-radius:10px}
.cls:hover{border-color:var(--cc);color:inherit}
.cls-h{display:flex;align-items:center;gap:9px;font-size:17px;font-weight:600}
.cls-dot{width:9px;height:9px;border-radius:50%;background:var(--cc)}
.cls-specs{display:block;margin-top:7px;font-size:11.5px;color:var(--dim2)}
.cls-hero{border-radius:14px;padding:26px;margin-bottom:22px;background:color-mix(in oklab,var(--cc) 12%,var(--card));border:1px solid color-mix(in oklab,var(--cc) 38%,var(--line))}
.cc{color:color-mix(in oklab,var(--cc) 88%,var(--fg))}
.back{display:inline-block;color:var(--dim);font-size:14px;margin-bottom:18px}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px}
.tab{background:none;border:1px solid var(--line);border-radius:8px;padding:8px 14px;font-family:inherit;font-size:14.5px;font-weight:500;color:var(--dim);cursor:pointer}
.tab.on{background:color-mix(in oklab,var(--cc) 18%,transparent);border-color:color-mix(in oklab,var(--cc) 45%,var(--line));color:color-mix(in oklab,var(--cc) 88%,var(--fg))}
.panel{display:none}
.panel.on{display:block}
.src{background:var(--bg2);border:1px dashed var(--line);border-radius:12px;padding:16px 18px;font-size:12.5px;color:var(--dim2);margin-top:16px}
.ftr{border-top:1px solid var(--line);padding:26px 0}
.ftr-in{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13.5px;color:var(--dim2)}
.ftr-in .mono{font-size:12px;letter-spacing:.1em}
@media (max-width:720px){
  .tools{margin-left:0;width:100%}
  .tools input{flex:1;width:auto}
  .row.four,.row.four.alt{grid-template-columns:1fr 1fr}
  .row.head{display:none}
}
