:root{--bg:#fff;--fg:#1a1d23;--mut:#5b6472;--acc:#0b63ce;--soft:#f3f6fa;--line:#e3e8ef;--max:72rem}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;font:17px/1.65 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--fg);background:var(--bg)}
a{color:var(--acc)}img{max-width:100%;height:auto}
.wrap{max-width:var(--max);margin:0 auto;padding:0 1.1rem}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem}
.site-header{border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:5}
.bar{display:flex;align-items:center;justify-content:space-between;min-height:3.6rem;gap:1rem}
.logo{font-weight:800;font-size:1.75rem;text-decoration:none;color:var(--fg)}.logo span{color:var(--acc)}
.menu summary{cursor:pointer;list-style:none;padding:.4rem .8rem;border:1px solid var(--line);border-radius:.5rem}
.menu summary::-webkit-details-marker{display:none}
.menu ul{list-style:none;margin:0;padding:.5rem 0}
.menu nav{position:absolute;right:1rem;top:3.4rem;background:#fff;border:1px solid var(--line);border-radius:.6rem;padding:.3rem 1rem;box-shadow:0 8px 24px #0002}
.menu li a{display:block;padding:.45rem 0;text-decoration:none;color:var(--fg)}
.nav-desktop{display:none}.nav-desktop ul{list-style:none;margin:0;padding:0;display:flex;gap:1.4rem}.nav-desktop a{text-decoration:none;color:var(--fg);font-weight:500}.nav-desktop a:hover{color:var(--accent,#0a58ca)}
@media(min-width:900px){.nav-desktop{display:block}.menu{display:none}}
main{padding:1.5rem 1.1rem 3rem}
.prose{max-width:46rem;margin:0 auto}.prose h1{font-size:clamp(1.8rem,4vw,2.5rem);line-height:1.2;margin:.4rem 0}
.prose h2{margin-top:2.2rem;line-height:1.3}.prose h3{margin-top:1.6rem}
.prose pre{background:#0f172a;color:#e2e8f0;padding:1rem;border-radius:.6rem;overflow:auto;font-size:.88rem;white-space:pre-wrap}
.prose code{font-size:.9em}.prose :not(pre)>code{background:var(--soft);padding:.1rem .3rem;border-radius:.3rem}
.prose table{border-collapse:collapse;width:100%;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--line);padding:.5rem;text-align:left;vertical-align:top}
.prose blockquote{margin:1.2rem 0;padding:.8rem 1rem;background:#fff8e6;border-left:4px solid #f0b429}
.meta{color:var(--mut);font-size:.9rem}.badge{margin-left:.6rem;background:#fde68a;color:#7c5800;padding:.1rem .5rem;border-radius:1rem;font-size:.8rem}
.disclose{background:var(--soft);border:1px solid var(--line);padding:.7rem 1rem;border-radius:.5rem;font-size:.92rem}
.crumbs{max-width:46rem;margin:0 auto;font-size:.88rem;color:var(--mut)}
.hero{padding:2.5rem 0 1.5rem;text-align:center}.hero h1{font-size:clamp(2rem,5vw,3.1rem);line-height:1.15;margin:0 0 .8rem}
.hero p{font-size:1.15rem;color:var(--mut);max-width:42rem;margin:0 auto 1.4rem}
.btn{display:inline-block;background:var(--acc);color:#fff;padding:.75rem 1.2rem;border-radius:.55rem;text-decoration:none;font-weight:600;margin:.25rem}
.btn.alt{background:#fff;color:var(--acc);border:1px solid var(--acc)}
.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}
.card{border:1px solid var(--line);border-radius:.8rem;padding:1.1rem;background:#fff}.card h3{margin:.1rem 0 .4rem;font-size:1.1rem}
.card p{margin:0;color:var(--mut);font-size:.95rem}
section.block{padding:1.8rem 0;border-top:1px solid var(--line)}section.block>h2{margin-top:0}
.home-copy{max-width:46rem}
.site-footer{background:var(--soft);border-top:1px solid var(--line);padding:2rem 0 1rem;font-size:.93rem}
.cols{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr))}.cols ul{list-style:none;padding:0;margin:0}.cols li{margin:.3rem 0}
.small{color:var(--mut);font-size:.85rem}
form.stack label{display:block;font-weight:600;margin-top:1rem}
form.stack input,form.stack textarea,form.stack select{width:100%;padding:.6rem;border:1px solid #c9d2de;border-radius:.45rem;font:inherit}
form.stack button,.pb button{margin-top:1rem;background:var(--acc);color:#fff;border:0;padding:.7rem 1.1rem;border-radius:.5rem;font:inherit;font-weight:600;cursor:pointer}
.pb .out{white-space:pre-wrap;background:var(--soft);border:1px solid var(--line);padding:1rem;border-radius:.5rem;min-height:6rem;font-family:ui-monospace,monospace;font-size:.9rem}
.pb button.sec{background:#fff;color:var(--acc);border:1px solid var(--acc)}
