:root{--graphite:#26292c;--graphite-2:#1b1d20;--ink:#17191b;--paper:#e9e8e4;--paper-2:#f3f2ee;--wrap:#f0531c;--wrap-deep:#cf4413;--rule:#c7c4bc;--rule-dark:#3a3e42;--muted:#6c6f71;--muted-light:#9fa0a0;--display:"Archivo",system-ui,sans-serif;--serif:"Source Serif 4",Georgia,serif;--mono:"IBM Plex Mono",ui-monospace,monospace}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:18px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit}.wrap-w{max-width:1200px;margin:0 auto;padding:0 28px}.label{font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.btn{font-family:var(--mono);font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;padding:12px 20px;display:inline-block;background:var(--wrap);color:#fff}:focus-visible{outline:3px solid var(--wrap);outline-offset:2px}header.bar{border-bottom:1px solid var(--rule);background:var(--paper);position:sticky;top:0;z-index:50}.bar .wrap-w{display:flex;align-items:center;justify-content:space-between;height:62px}.brand{font-family:var(--display);font-weight:900;letter-spacing:-.02em;font-size:1.18rem;text-transform:uppercase;text-decoration:none}.brand b{color:var(--wrap)}nav.main{display:flex;gap:26px;font-family:var(--mono);font-size:.78rem;letter-spacing:.04em;text-transform:uppercase}nav.main a{text-decoration:none;opacity:.78}nav.main a:hover,nav.main a[aria-current]{opacity:1}nav.main a[aria-current]{color:var(--wrap-deep)}.barcta{font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;background:var(--ink);color:var(--paper);padding:9px 14px}@media (max-width:820px){nav.main{display:none}}.art-head{background:var(--graphite);color:var(--paper);padding:56px 0 44px;position:relative;overflow:hidden}.art-head:after{content:"";position:absolute;top:0;right:0;height:6px;width:38%;background:var(--wrap)}.crumbs{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-light)}.crumbs a{color:var(--wrap);text-decoration:none}.art-head h1{font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.02em;line-height:.98;font-size:clamp(2rem,5vw,3.4rem);margin:18px 0 0;max-width:20ch}.byline{margin-top:22px;font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-light)}.byline b{color:var(--paper);font-weight:500}.art-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:56px;padding:56px 0 72px}@media (max-width:960px){.art-grid{grid-template-columns:1fr}}article{max-width:70ch}.tldr{background:var(--paper-2);border-left:4px solid var(--wrap);padding:22px 24px;margin-bottom:38px}.tldr .label{color:var(--wrap-deep);margin-bottom:8px;display:block}.tldr p{font-size:1.06rem}article h2{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:-.01em;font-size:1.45rem;margin:46px 0 16px;padding-top:18px;border-top:1px solid var(--rule)}article h3{font-family:var(--display);font-weight:700;font-size:1.08rem;margin:28px 0 10px;text-transform:uppercase}article p{margin:0 0 18px}article a{color:var(--wrap-deep)}article ul,article ol{margin:0 0 18px 22px}article li{margin-bottom:8px}article img{max-width:100%;height:auto}article table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:.85rem;margin:22px 0 30px;border:1px solid var(--rule)}article th{background:var(--graphite);color:var(--paper);text-align:left;padding:10px 12px;font-weight:500;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}article td{padding:10px 12px;border-top:1px solid var(--rule);background:var(--paper-2);vertical-align:top}article td:first-child{font-weight:600}.cta-band{background:var(--graphite);color:var(--paper);padding:26px 28px;margin:36px 0;position:relative}.cta-band:before{content:"";position:absolute;top:8px;left:8px;width:8px;height:8px;border:1px solid var(--muted-light);border-right:0;border-bottom:0}.cta-band .label{color:var(--wrap)}.cta-band h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:1.25rem;margin:10px 0 8px}.cta-band p{color:#d7d5cf;font-size:.98rem;margin-bottom:16px}details{border:1px solid var(--rule);background:var(--paper-2);margin-bottom:10px}summary{cursor:pointer;padding:16px 18px;font-family:var(--display);font-weight:700;font-size:1rem;list-style:none;display:flex;justify-content:space-between;align-items:center}summary:after{content:"+";font-family:var(--mono);color:var(--wrap-deep);font-size:1.2rem}details[open] summary:after{content:"–"}details .a{padding:0 18px 16px;color:#3c3f41}.rail{position:sticky;top:86px;align-self:start}@media (max-width:960px){.rail{position:static}}.rail .box{border:1px solid var(--rule);background:var(--paper-2);padding:20px;margin-bottom:18px}.rail h4{font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}.rail a{display:block;text-decoration:none;font-family:var(--display);font-weight:600;font-size:.95rem;padding:7px 0;border-bottom:1px solid var(--rule)}.rail a:last-child{border-bottom:0}.rail a:hover{color:var(--wrap-deep)}.rail .box.dark{background:var(--graphite);color:var(--paper);border-color:var(--graphite)}.rail .box.dark h4{color:var(--wrap)}.rail .box.dark p{font-size:.9rem;color:#d7d5cf;margin-bottom:14px}footer.site{background:var(--graphite-2);color:var(--muted-light);padding:36px 0;border-top:3px solid var(--wrap);font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;text-align:center}.tag{font-family:var(--mono);font-size:.6rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;padding:2px 6px;border:1px solid var(--rule-dark);color:var(--muted);margin-left:8px;white-space:nowrap;vertical-align:middle;display:inline-block}.tag.br{background:var(--wrap);border-color:var(--wrap);color:#fff}.changelog{border:1px solid var(--rule);background:var(--paper-2)}.changelog .entry{display:flex;gap:16px;padding:14px 18px;border-top:1px solid var(--rule)}.changelog .entry:first-child{border-top:0}.changelog time{font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;color:var(--wrap-deep);white-space:nowrap;min-width:92px;padding-top:2px}.changelog .entry p{margin:0;font-size:.95rem}
