.bgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.bcard{background:hsl(var(--card));border:1px solid hsl(var(--hairline-2));overflow:hidden;display:flex;flex-direction:column;color:inherit;text-decoration:none;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.bcard:hover{transform:translateY(-4px);border-color:hsl(var(--hairline));box-shadow:0 14px 34px hsl(var(--ink-0) / .09)}.bcard[hidden]{display:none}.bcard .bc-img{position:relative;height:196px;border-bottom:1px solid hsl(var(--hairline-2));display:grid;place-items:center;overflow:hidden}.bcard .bc-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.bcard:hover .bc-img img{transform:scale(1.03)}.bcard .bc-img .glyph{font-family:var(--font-display);font-weight:400;font-size:46px;color:hsl(var(--ink-0) / .16)}.bcard .bc-body{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1}.bcard .bc-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font:500 11px/1.4 var(--font-mono);color:hsl(var(--ink-4));margin:0 0 11px}.bcard .bc-meta .sep{color:hsl(var(--primary-600))}.bcard h3{margin:0 0 9px;font-size:17.5px;font-weight:600;letter-spacing:-.012em;line-height:1.3;color:hsl(var(--ink-0));transition:color .16s ease}.bcard:hover h3{color:hsl(var(--primary-700))}.bcard p{margin:0 0 18px;font-size:13.5px;line-height:1.55;color:hsl(var(--ink-4));flex:1}.bcard .bc-read{display:inline-flex;align-items:center;gap:7px;font:700 11.5px/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:hsl(var(--primary-600))}.bcard .bc-read svg{transition:transform .16s ease}.bcard:hover .bc-read{color:hsl(var(--primary-700))}.bcard:hover .bc-read svg{transform:translate(3px)}@media(max-width:1080px){.bgrid{grid-template-columns:1fr 1fr;gap:22px}}@media(max-width:720px){.bgrid{grid-template-columns:1fr}.bcard p{font-size:16px}}.ah{position:relative;overflow:hidden;padding:96px 64px 72px;background:hsl(var(--ink-1))}.ah .ah-img{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover}.ah .ah-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,hsl(var(--ink-0) / .62),hsl(var(--ink-0) / .84))}.ah--plain .ah-shade{background:repeating-linear-gradient(0deg,transparent 0 39px,hsl(var(--paper-2) / .045) 39px 40px),repeating-linear-gradient(90deg,transparent 0 39px,hsl(var(--paper-2) / .045) 39px 40px)}.ah .ah-inner{position:relative;z-index:2;max-width:860px}.ah .ah-meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:18px;font:500 12px/1.4 var(--font-mono);color:hsl(var(--paper-2) / .78)}.ah .ah-meta .sep{color:hsl(var(--primary-300))}.ah h1{font-family:var(--font-display);font-weight:400;letter-spacing:-.022em;line-height:1.06;font-size:clamp(32px,4.2vw,54px);margin:0;color:hsl(var(--paper-2))}.ah .ah-lede{margin:18px 0 0;max-width:720px;font-size:17.5px;line-height:1.6;color:hsl(var(--paper-2) / .82);text-wrap:pretty}.article-body{max-width:792px;margin:0 auto;padding:56px 28px 88px}.prose{font-family:var(--font-sans);font-size:17px;line-height:1.72;color:hsl(var(--ink-2))}.prose>*+*{margin-top:1.15em}.prose h2{font-family:var(--font-display);font-weight:500;letter-spacing:-.018em;line-height:1.12;font-size:27px;color:hsl(var(--ink-0));margin-top:1.9em}.prose h3{font-weight:600;letter-spacing:-.01em;font-size:19px;color:hsl(var(--ink-0));margin-top:1.6em}.prose h2+*,.prose h3+*{margin-top:.7em}.prose a{color:hsl(var(--primary-600));text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}.prose a:hover{color:hsl(var(--primary-700))}.prose strong{font-weight:600;color:hsl(var(--ink-1))}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.4em}.prose li::marker{color:hsl(var(--ink-5))}.prose blockquote{border-left:3px solid hsl(var(--primary-500));padding:2px 0 2px 20px;font-style:italic;color:hsl(var(--ink-3))}.prose img{max-width:100%;height:auto;border:1px solid hsl(var(--hairline));border-radius:var(--radius-sm);box-shadow:0 4px 18px hsl(var(--ink-0) / .07)}.prose hr{border:0;border-top:1px solid hsl(var(--hairline));margin:2em 0}.prose code{font-family:var(--font-mono);font-size:.86em;background:hsl(var(--paper-2));border:1px solid hsl(var(--hairline-2));padding:1px 5px;border-radius:4px}.prose pre{background:hsl(var(--ink-1));color:hsl(var(--paper-2));padding:16px 18px;border-radius:var(--radius-sm);overflow-x:auto;font-size:13.5px;line-height:1.6}.prose pre code{background:none;border:0;padding:0;font-size:inherit;color:inherit}.prose table{width:100%;border-collapse:collapse;font-size:14.5px}.prose th,.prose td{border:1px solid hsl(var(--hairline));padding:8px 12px;text-align:left}.prose th{font:600 12px/1.3 var(--font-mono);letter-spacing:.03em;text-transform:uppercase;background:hsl(var(--paper-2));color:hsl(var(--ink-3))}.callout{border:1px solid hsl(var(--hairline));border-left:4px solid hsl(var(--riso-teal));border-radius:var(--radius-sm);background:hsl(var(--card));padding:16px 20px;box-shadow:0 2px 12px hsl(var(--ink-0) / .05)}.callout__label{margin:0 0 6px;font:600 10.5px/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:hsl(var(--ink-3))}.callout__body>*+*{margin-top:.7em}.callout__body :first-child{margin-top:0}.callout--note{border-left-color:hsl(var(--riso-teal))}.callout--tip{border-left-color:hsl(var(--primary-500))}.callout--tip .callout__label{color:hsl(var(--primary-700))}.callout--warn{border-left-color:#e13e33}.callout--warn .callout__label{color:#c53026}.fig{margin:0}.fig img{display:block;width:100%;height:auto;border:1px solid hsl(var(--hairline));border-radius:var(--radius-lg);box-shadow:0 4px 18px hsl(var(--ink-0) / .08)}.fig figcaption{margin-top:10px;text-align:center;font:500 11.5px/1.4 var(--font-mono);color:hsl(var(--ink-4))}.article-foot{display:flex;align-items:baseline;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;margin:56px -28px 0;padding:28px 0 0;border-top:1px solid hsl(var(--hairline))}.article-back{display:inline-flex;align-items:center;gap:8px;font:700 12px/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:hsl(var(--primary-600));text-decoration:none}.article-back svg{transition:transform .16s ease}.article-back:hover{color:hsl(var(--primary-700))}.article-back:hover svg{transform:translate(-3px)}.article-foot-note{margin:0;font:500 12px/1.4 var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:hsl(var(--ink-4))}.bl-related{border-top:1px solid hsl(var(--hairline-2));padding-top:72px}.blr-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:34px}.blr-head h2.display{font-size:clamp(28px,3vw,38px);margin:0}.blr-all{display:inline-flex;align-items:center;gap:7px;font:700 11.5px/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:hsl(var(--primary-600));text-decoration:none}.blr-all svg{transition:transform .16s ease}.blr-all:hover{color:hsl(var(--primary-700))}.blr-all:hover svg{transform:translate(3px)}@media(max-width:720px){.ah{padding:56px 28px 48px}.ah .ah-lede{font-size:16px}.article-body{padding:40px 28px 64px}.prose{font-size:16px}.prose table{display:block;width:max-content;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.prose th{white-space:nowrap}}
