.read-prog{position:fixed;top:0;left:0;height:3px;width:0%;z-index:var(--oasr-z-modal);background:var(--oasr-accent);box-shadow:0 0 12px -2px var(--oasr-accent);transition:width 80ms linear}.article{padding:52px 0 0}.article__top{max-width:var(--oasr-container-prose);margin:0 auto;padding-inline:24px}.article__back{display:inline-flex;align-items:center;gap:8px;font-family:var(--oasr-font-mono);font-size:.78rem;color:var(--oasr-text-muted);text-decoration:none;letter-spacing:.02em;transition:color var(--oasr-dur-base)}.article__back:hover{color:var(--oasr-accent)}.article__cat{display:flex;align-items:center;gap:10px;margin:30px 0 18px}.article h1{font-size:clamp(2rem,1.3rem + 3vw,3.1rem);letter-spacing:-.03em;line-height:1.06;margin:0}.article h1 code{font-family:var(--oasr-font-mono);font-size:.78em;color:var(--oasr-brand);background:var(--oasr-brand-bg);border-radius:6px;padding:.04em .28em;letter-spacing:-.01em}.article__dek{font-size:1.28rem;line-height:1.5;color:var(--oasr-text-muted);margin:22px 0 0;max-width:54ch}.byline{display:flex;align-items:center;gap:14px;margin:30px 0 0;padding:22px 0;border-top:1px solid var(--oasr-border-subtle);border-bottom:1px solid var(--oasr-border-subtle)}.byline__meta{display:inline-flex;align-items:center;gap:10px;font-family:var(--oasr-font-mono);font-size:.76rem;color:var(--oasr-text-faint)}.byline__meta b{color:var(--oasr-text-muted);font-weight:500}.byline__meta .dot{width:3px;height:3px;border-radius:50%;background:var(--oasr-text-faint)}.byline__share{display:flex;gap:8px;margin-left:auto}.share-btn{width:36px;height:36px;display:grid;place-items:center;border-radius:var(--oasr-radius-md);border:1px solid var(--oasr-border);background:var(--oasr-bg-elevated);color:var(--oasr-text-muted);cursor:pointer;transition:all var(--oasr-dur-base)}.share-btn:hover,.share-btn.copied{color:var(--oasr-accent);border-color:var(--oasr-accent)}.share-btn svg{width:17px;height:17px}.article__hero{max-width:1040px;margin:40px auto 0;padding-inline:24px}.article__hero figure{margin:0}.article__hero .frame,.inline-fig .frame{border:1px solid var(--oasr-border);overflow:hidden;background:var(--oasr-bg-subtle);display:flex}.article__hero .frame{border-radius:var(--oasr-radius-xl);aspect-ratio:16 / 8}.article__hero figcaption,.inline-fig figcaption{font-family:var(--oasr-font-mono);font-size:.76rem;color:var(--oasr-text-faint);margin-top:12px;text-align:center}.release-visual{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:28px;background:radial-gradient(circle at 50% 20%,var(--oasr-brand-bg),transparent 45%),var(--oasr-surface-terminal)}.stream-card{width:min(520px,100%);border:1px solid rgba(255,255,255,.08);border-radius:var(--oasr-radius-lg);background:#ffffff0a;padding:16px 18px;font-family:var(--oasr-font-mono);font-size:.78rem;color:#9bab9f}.stream-line{display:block;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.05)}.stream-line:last-child{border-bottom:0}.stream-line.active{color:var(--oasr-accent)}.wave-bars{display:flex;align-items:flex-end;gap:5px;height:96px}.wave-bars span{width:6px;border-radius:3px;background:var(--oasr-brand);opacity:.58}.wave-bars span:nth-child(11n+1){background:var(--oasr-accent);opacity:.9}.visual-cap{font-family:var(--oasr-font-mono);font-size:.8rem;color:#9bab9f}.prose{max-width:var(--oasr-container-prose);margin:0 auto;padding:52px 24px 0}.prose>*{max-width:65ch}.prose p{font-size:1.14rem;line-height:1.72;color:var(--oasr-text);margin:0 0 26px}.prose>p:first-of-type:first-letter{float:left;font-size:3.6rem;line-height:.82;font-weight:700;padding:4px 12px 0 0;color:var(--oasr-accent);font-family:var(--oasr-font-sans)}.prose h2{font-size:1.7rem;letter-spacing:-.02em;margin:50px 0 16px;scroll-margin-top:84px}.prose a:not(.oasr-btn){color:var(--oasr-brand);text-decoration:underline;text-underline-offset:3px;text-decoration-color:color-mix(in oklab,var(--oasr-brand) 40%,transparent)}.prose ul{padding-left:24px;margin:0 0 26px}.prose li{font-size:1.1rem;line-height:1.7;margin-bottom:10px}.prose li::marker{color:var(--oasr-accent)}.prose strong{font-weight:600}.prose :not(pre)>code{font-family:var(--oasr-font-mono);font-size:.86em;background:var(--oasr-bg-subtle);border:1px solid var(--oasr-border-subtle);border-radius:5px;padding:.12em .4em;color:var(--oasr-brand)}.prose hr{border:0;border-top:1px solid var(--oasr-border-subtle);margin:44px 0;max-width:none}.pullquote{max-width:none;margin:44px 0;padding:4px 0 4px 28px;border-left:3px solid var(--oasr-accent)}.pullquote p{font-size:1.5rem;line-height:1.32;letter-spacing:-.01em;font-weight:500;margin:0}.pullquote cite{display:block;margin-top:14px;font-style:normal;font-family:var(--oasr-font-mono);font-size:.78rem;color:var(--oasr-text-faint)}.inline-fig{max-width:none;margin:40px 0}.inline-fig .frame{border-radius:var(--oasr-radius-lg);aspect-ratio:16 / 9}.inline-fig .frame--strip{aspect-ratio:auto}.bundle-diagram{flex:1;display:grid;grid-template-columns:1.1fr 1fr 1fr 1.4fr;gap:1px;background:var(--oasr-border-subtle);padding:1px}.bundle-diagram span{display:grid;place-items:center;min-height:0;padding:22px 16px;background:var(--oasr-bg-elevated);color:var(--oasr-text-muted);font-family:var(--oasr-font-mono);font-size:.78rem;text-align:center}.code-block{max-width:none;margin:0 0 30px;border:1px solid var(--oasr-border-strong);border-radius:var(--oasr-radius-lg);overflow:hidden;background:var(--oasr-surface-terminal)}.code-block__bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:9px 14px;background:#ffffff08;border-bottom:1px solid rgba(255,255,255,.06)}.code-block__name{font-family:var(--oasr-font-mono);font-size:.74rem;color:#9bab9f;display:flex;align-items:center;gap:8px;white-space:nowrap}.code-block__name .lang{color:var(--oasr-accent)}.code-block__copy{background:transparent;border:0;color:#9bab9f;cursor:pointer;font-size:.78rem;font-family:var(--oasr-font-mono);display:flex;align-items:center;gap:6px;transition:color var(--oasr-dur-base)}.code-block__copy:hover,.code-block__copy.copied{color:#e9efe9}.code-block pre{margin:0;padding:16px 18px;overflow-x:auto}.code-block code{font-family:var(--oasr-font-mono);font-size:.9rem;line-height:1.75;color:#d7e0d8}.code-block .prompt{color:var(--oasr-accent);user-select:none}.code-block .tok-com{color:var(--oasr-code-comment)}.aside{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:16px 18px;margin:0 0 30px;max-width:none;border-radius:var(--oasr-radius-md);border:1px solid var(--oasr-border);border-left-width:3px;background:var(--oasr-bg-elevated);border-left-color:var(--oasr-success)}.aside__icon{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;margin-top:1px;font-family:var(--oasr-font-mono);font-weight:700;font-size:.8rem;color:#fff;background:var(--oasr-success)}.aside__title{font-weight:600;font-size:.92rem;margin:0 0 4px}.aside__body{font-size:.96rem;color:var(--oasr-text-muted);line-height:1.55}.article__tags{max-width:var(--oasr-container-prose);margin:8px auto 0;padding:44px 24px 0;display:flex;flex-wrap:wrap;gap:10px;align-items:center}.article__tags .lbl{font-family:var(--oasr-font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--oasr-text-faint);margin-right:4px}.tag-pill{font-family:var(--oasr-font-mono);font-size:.76rem;padding:6px 13px;border-radius:var(--oasr-radius-full);border:1px solid var(--oasr-border);background:var(--oasr-bg-elevated);color:var(--oasr-text-muted);text-decoration:none;transition:all var(--oasr-dur-base)}.tag-pill:hover{color:var(--oasr-accent);border-color:var(--oasr-accent)}.related{margin-top:60px}.related__head{max-width:var(--oasr-container);margin:0 auto;padding:0 40px 4px}.related__head h3{font-size:1.4rem;letter-spacing:-.02em}.related__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:var(--oasr-container);margin:22px auto 0;padding:0 40px}@media(max-width:820px){.related__grid{grid-template-columns:1fr}}@media(max-width:720px){.article{padding-top:36px}.article__dek{font-size:1.12rem}.byline{flex-wrap:wrap}.byline__share{margin-left:auto}.article__hero .frame{aspect-ratio:4 / 3}.wave-bars{height:68px;gap:3px}.wave-bars span{width:4px}.prose p{font-size:1.06rem}.bundle-diagram{grid-template-columns:1fr 1fr}.bundle-diagram span{min-height:0}}
