.thumb-frame{aspect-ratio:1200/460;border-bottom:1px solid var(--line);flex-shrink:0;width:100%;position:relative;overflow:hidden;container-type:inline-size}.thumb-window{transform-origin:0 0;width:1200px;height:460px;transform:scale(calc(100cqi / 1200px));color:var(--text);justify-content:center;align-items:center;font-family:IBM Plex Sans,sans-serif;display:flex;position:absolute;top:0;left:0}.thumb-card{background:var(--surface);flex-direction:column;justify-content:center;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.thumb-body{padding:52px 64px}.thumb-eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:26px;font:500 15px/1 IBM Plex Mono,monospace}.thumb-title{letter-spacing:-.02em;text-wrap:balance;-webkit-line-clamp:4;-webkit-box-orient:vertical;margin:0;font-size:80px;font-weight:700;line-height:1.15;display:-webkit-box;overflow:hidden}.thumb-watermark{color:var(--muted-2);align-items:center;gap:9px;font:500 13px/1 IBM Plex Mono,monospace;display:flex;position:absolute;bottom:20px;right:28px}.thumb-mark{flex-shrink:0;display:block}.thumb-accent{color:var(--accent)}.btn.share-trigger{letter-spacing:.06em;text-transform:uppercase;gap:11px;padding:17px 38px;font-family:IBM Plex Mono,monospace;font-weight:500}.share-trigger svg{width:16px;height:16px}.share-footer{justify-content:center;padding-top:32px;padding-bottom:40px;display:flex}.share-overlay{z-index:var(--z-popup)}.share-card{max-width:540px;padding:30px}.share-heading{letter-spacing:-.02em;margin:0 0 20px;font-size:23px;font-weight:700;line-height:1.2}.share-preview{border:1px solid var(--border);border-radius:10px;margin-bottom:24px;overflow:hidden}.share-tiles{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.share-tile{background:var(--surface-2);border:1px solid var(--border);width:100%;min-height:78px;color:var(--muted);cursor:pointer;transition:color var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out), transform var(--motion-fast) var(--ease-out);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:9px;padding:13px 6px;font-family:IBM Plex Sans,sans-serif;text-decoration:none;display:flex}.share-tile:hover,.share-tile:focus-visible{color:var(--accent);border-color:var(--accent);box-shadow:0 0 0 3px var(--ring);outline:none}.share-tile:active{transform:scale(.97)}.share-icon{justify-content:center;align-items:center;width:22px;height:22px;display:flex}.share-icon svg{width:100%;height:100%}.share-label{text-align:center;font-size:11px;line-height:1.3}@media (width<=480px){.share-overlay{padding:16px}.share-card{padding:24px 18px}.share-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.share-tile{gap:7px;padding:11px 5px}.share-label{font-size:10px}}@media (prefers-reduced-motion:no-preference){.share-overlay{opacity:1;transition:opacity .18s var(--ease-out)}.share-overlay .share-card{transition:transform .22s var(--ease-out), opacity .18s var(--ease-out);transform:translateY(0)scale(1)}@starting-style{.share-overlay{opacity:0}.share-overlay .share-card{opacity:0;transform:translateY(10px)scale(.98)}}}.article-wrap{max-width:860px;margin:0 auto;padding:36px 40px 0}.article-body{min-width:0;padding-top:0;padding-bottom:8px}.back-link{color:var(--muted);font:500 13px/1 IBM Plex Mono,monospace;text-decoration:none}.back-link:hover{color:var(--accent)}.article-meta-row{align-items:center;gap:14px;margin:28px 0 20px;display:flex}.article-topic{letter-spacing:.1em;color:var(--accent);border:1px solid var(--border);border-radius:3px;padding:5px 10px;font:500 11px/1 IBM Plex Mono,monospace}.article-date{color:var(--faint);font:400 13px/1 IBM Plex Mono,monospace}.article-h1{letter-spacing:-.02em;text-wrap:balance;max-width:min(100%,34ch);margin:0 0 20px;font-size:clamp(28px,4.2vw,44px);font-weight:700;line-height:1.14}.article-standfirst{color:var(--text-1);border-bottom:1px solid var(--line);margin:0;padding-bottom:28px;font-size:clamp(17px,2.1vw,20px);line-height:1.6}.back-to-top{z-index:var(--z-nav);background:var(--accent);width:44px;height:44px;color:var(--accent-ink);cursor:pointer;box-shadow:0 8px 24px var(--shadow-lg);border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex;position:fixed;bottom:24px;right:24px}.back-to-top[hidden]{display:none}.back-to-top svg{width:18px;height:18px}@media (width<=600px){.back-to-top{bottom:16px;right:16px}}.article-byline-meta{color:var(--faint);margin-top:8px;font:400 13px/1.5 IBM Plex Mono,monospace}.disclosure{background:var(--surface-2);border:1px solid var(--border-2);border-radius:9px;flex-wrap:wrap;align-items:baseline;gap:12px;margin-top:24px;padding:14px 18px;display:flex}.disclosure-tag{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);flex-shrink:0;font:600 10px/1 IBM Plex Mono,monospace}.disclosure-text{color:var(--text-1);margin:0;font-size:13px;line-height:1.55}.article-layout{grid-template-columns:minmax(0,1fr);max-width:1440px;margin:0 auto;padding:36px 20px 0;display:grid}.article-column{width:100%;min-width:0;max-width:860px;margin-inline:auto}.toc-rail-wrap{display:none}.prose.article-body>:is(p,h2,h3,ul,ol,blockquote){max-width:780px;margin-inline:auto}.article-body :where(h2){text-wrap:balance;line-height:1.2}.article-body :where(h3){text-wrap:balance;line-height:1.3}.article-body>:is(ul,ol){padding-left:24px}.article-body :is(ul,ol) :is(ul,ol){margin:8px 0 4px;padding-left:20px}.article-body :not(pre)>code,.article-body a{overflow-wrap:anywhere}.prose.article-body table{width:fit-content;max-width:100%;margin-inline:auto}@media (width>=1360px){.article-layout{grid-template-columns:minmax(190px,210px) minmax(0,860px) minmax(190px,210px);justify-content:center;column-gap:40px}.toc-rail-wrap{grid-area:1/1;display:block}.article-column{grid-area:1/2;margin-inline:0}.toc--inline{display:none}}.toc-title{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin:0 0 14px;font:600 11px/1 IBM Plex Mono,monospace}.toc--rail{border-left:1px solid var(--line);max-height:calc(100dvh - 128px);padding-left:18px;padding-right:8px;position:sticky;top:96px;overflow-y:auto}.toc--inline{background:var(--surface);border:1px solid var(--border);border-radius:10px;max-width:780px;margin:0 auto 32px;padding:4px 20px}.toc-summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:16px 0;list-style:none;display:flex}.toc-summary::-webkit-details-marker{display:none}.toc-summary .toc-title{margin:0}.toc-chevron{width:18px;height:18px;color:var(--muted);flex-shrink:0;transition:transform .2s}.toc--inline[open] .toc-chevron{transform:rotate(180deg)}@media (prefers-reduced-motion:reduce){.toc-chevron{transition:none}}.toc--inline .toc-list{padding-bottom:18px}.toc-list,.toc-sublist{margin:0;padding:0;list-style:none}.toc-list>li{margin:0}.toc-list>li+li{margin-top:10px}.toc-list>li>a{color:var(--text-1);border-bottom:none;font-size:14px;line-height:1.4;text-decoration:none;display:block}.toc-sublist{margin:8px 0 4px;padding-left:30px}.toc-sublist li+li{margin-top:6px}.toc-sublist a{color:var(--muted);border-bottom:none;font-size:13px;line-height:1.4;text-decoration:none}.toc-list a:hover,.toc-sublist a:hover,.toc a:focus-visible{color:var(--accent)}.toc a[aria-current=true]{color:var(--accent);font-weight:600}.keep-reading-wrap{max-width:1180px;margin:0 auto;padding:56px 40px 64px}.keep-reading-label{letter-spacing:.1em;text-transform:uppercase;width:fit-content;color:var(--muted);border-bottom:1px solid var(--line);margin-bottom:24px;padding-bottom:14px;font:600 13px/1 IBM Plex Mono,monospace}.keep-reading-grid{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px;display:grid}.keep-reading-card{color:inherit;border-bottom:1px solid var(--line);transition:color var(--motion-fast) var(--ease-out), background-color var(--motion-fast) var(--ease-out);background:0 0;padding:24px 8px 28px;text-decoration:none;display:block;position:relative}.keep-reading-card:after{content:"↗";color:var(--faint);font:400 17px/1 IBM Plex Mono,monospace;position:absolute;top:23px;right:8px}.keep-reading-card:hover,.keep-reading-card:focus-visible{background:color-mix(in srgb, var(--surface-2) 55%, transparent);outline:none}.keep-reading-card:focus-visible{box-shadow:inset 0 0 0 2px var(--ring)}.keep-reading-card:hover .kr-title,.keep-reading-card:focus-visible .kr-title{color:var(--accent)}.kr-topic{color:var(--accent);margin:0 32px 12px 0;font:500 11px/1 IBM Plex Mono,monospace;display:block}.kr-title{letter-spacing:-.01em;text-wrap:balance;transition:color var(--motion-fast) var(--ease-out);margin:0 0 9px;font-size:20px;font-weight:600;line-height:1.32;display:block}.kr-excerpt{color:var(--muted-2);margin:0;font-size:15px;line-height:1.6;display:block}@media (prefers-reduced-motion:no-preference){.keep-reading-card:after{transition:transform var(--motion-ui) var(--ease-out)}.keep-reading-card:hover:after{transform:translate(2px,-2px)}}@media (width<=860px){.article-wrap,.article-layout{padding-left:22px;padding-right:22px}.keep-reading-grid{grid-template-columns:1fr}.keep-reading-wrap{padding-left:22px;padding-right:22px}.keep-reading-grid{gap:0}}.code-wrap{min-width:0;max-width:100%;margin:0 0 28px;position:relative}.code-wrap .prose pre,.code-wrap pre{margin:0}.code-bar{z-index:1;align-items:center;gap:10px;display:flex;position:absolute;top:10px;right:12px}.code-lang{letter-spacing:.08em;text-transform:uppercase;color:var(--code-muted);font:500 11px/1 IBM Plex Mono,monospace}.code-copy{letter-spacing:.06em;text-transform:uppercase;color:var(--code-text);background:var(--code-surface);border:1px solid var(--code-border-strong);cursor:pointer;border-radius:6px;padding:7px 11px;font:500 11px/1 IBM Plex Mono,monospace;transition:color .15s,border-color .15s}.code-copy:hover{color:var(--accent);border-color:var(--accent)}.code-copy:focus-visible{color:var(--accent);border-color:var(--accent);box-shadow:0 0 0 3px var(--ring);outline:none}@media (prefers-reduced-motion:reduce){.code-copy{transition:none}}.back-to-top-sentinel{height:1px;display:block}@media (width<=520px){.code-lang{display:none}}
