body,html{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}html:root[data-theme=dark]{--bg:#1f2933;--bg-alt:#263140;--surface:#2a3644;--surface-raised:#33404f;--border:#3b4857;--border-strong:#4e5d6e;--ink:#f7f9fb;--heading:#ffffff;--body:#d7dee6;--body-soft:#aab6c2;--on-accent:#14202b;--on-dark:#f7f9fb;--hero-bg:#161e26;--hero-bg-2:#263140;--teal-tint:#14312f;--coral-tint:#33241e;color-scheme:dark}html[data-theme=dark],html[data-theme=dark] body{background-color:#1f2933}html[data-theme=dark] body{min-height:100vh;color:#f7f9fb}html[data-theme=light],html[data-theme=light] body{background-color:#ffffff}html[data-theme=light] body{min-height:100vh}*{box-sizing:border-box}.welcome{min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px}.welcome h1{font-size:clamp(1.75rem,5vw,3rem);font-weight:700;letter-spacing:-.02em;margin:0}:root{--ao-loader-accent:#f7f9fb;--ao-loader-bg:#1f2933}html[data-theme=light]{--ao-loader-accent:#14181d;--ao-loader-bg:#ffffff}html[data-theme=dark]{--ao-loader-accent:#f7f9fb;--ao-loader-bg:#1f2933}.ao-loader{position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:24px;background:color-mix(in srgb,var(--ao-loader-bg) 94%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:aoLoaderIn .2s ease-out both}.ao-loader__rings{position:relative;width:76px;height:76px}.ao-loader__rings span{position:absolute;inset:0;border:1.5px solid var(--ao-loader-accent);border-radius:50%;opacity:0;animation:aoLoaderRipple 2.4s ease-out infinite}.ao-loader__rings span:last-child{animation-delay:1.2s}.ao-loader__word{min-height:32px;display:flex;align-items:center;font-size:20px;font-weight:600;letter-spacing:-.01em;text-align:center;text-wrap:balance;color:var(--ao-loader-accent);animation:aoLoaderWord .28s cubic-bezier(.22,1,.36,1) both}.ao-loader__dots{opacity:.5}@keyframes aoLoaderIn{0%{opacity:0}to{opacity:1}}@keyframes aoLoaderWord{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes aoLoaderRipple{0%{transform:scale(.6);opacity:.4}70%{opacity:.05}to{transform:scale(1.8);opacity:0}}@media (prefers-reduced-motion:reduce){.ao-loader,.ao-loader__rings span,.ao-loader__word{animation:none}.ao-loader__rings span{opacity:.12}}.ao-gate{position:fixed;inset:0;z-index:9998;display:flex;align-items:center;justify-content:center;padding:24px;background:color-mix(in srgb,var(--ao-loader-bg) 96%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:aoLoaderIn .2s ease-out both}.ao-gate__card{max-width:440px;width:100%;padding:32px 28px;border:1px solid color-mix(in srgb,var(--ao-loader-accent) 18%,transparent);border-radius:10px;background:var(--ao-loader-bg);text-align:center}.ao-gate__heading{margin:0 0 10px;font-size:20px;font-weight:700;letter-spacing:-.01em;color:var(--ao-loader-accent)}.ao-gate__body{margin:0 0 22px;font-size:14.5px;line-height:1.55;color:color-mix(in srgb,var(--ao-loader-accent) 72%,transparent)}.ao-gate__actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.ao-gate__button{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;font-size:14px;font-weight:600;padding:9px 18px;border-radius:7px;border:1px solid color-mix(in srgb,var(--ao-loader-accent) 28%,transparent);background:transparent;color:var(--ao-loader-accent);cursor:pointer}.ao-gate__button--primary{background:var(--ao-loader-accent);border-color:var(--ao-loader-accent);color:var(--ao-loader-bg)}@media (prefers-reduced-motion:reduce){.ao-gate{animation:none}}.theme-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex-shrink:0;padding:0;border:1px solid var(--border);border-radius:10px;background:transparent;color:var(--body);cursor:pointer;transition:color .15s ease,border-color .15s ease,background-color .15s ease}.theme-toggle:hover{color:var(--heading);border-color:var(--border-strong);background:var(--bg-alt)}.theme-toggle:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.theme-toggle__sun{display:none}.theme-toggle__moon,html[data-theme=dark] .theme-toggle__sun{display:block}html[data-theme=dark] .theme-toggle__moon{display:none}.article-figure{margin:36px 0 0}.article-figure picture{display:block}.article-figure img{display:block;width:100%;height:auto;border-radius:16px;border:1px solid var(--border);background:var(--bg-alt)}.article-diagram figcaption,.article-figure figcaption{margin-top:12px;font-size:.82rem;line-height:1.45;color:var(--body-soft)}.article-figure--portrait{max-width:420px}.article-diagram{margin:36px 0 0;padding:26px 22px 22px;border-radius:16px;background:var(--surface);border:1px solid var(--border)}.article-diagram svg{display:block;width:100%;min-width:560px;max-width:860px;height:auto;margin:0 auto}.article-diagram{overflow-x:auto}html{scroll-behavior:smooth}main h2[id],main h3[id]{scroll-margin-top:96px}.post-toc{margin:36px 0 0;padding:22px 24px 24px;border-radius:16px;background:var(--surface);border:1px solid var(--border)}.post-toc__title{font-family:Poppins,sans-serif;font-weight:600;font-size:.78rem;letter-spacing:.09em;text-transform:uppercase;color:var(--body-soft)}.post-toc__list{list-style:none;margin:14px 0 0;padding:0;counter-reset:toc;display:grid;grid-gap:2px;gap:2px}.post-toc__item{counter-increment:toc}.post-toc__item a{display:grid;grid-template-columns:26px 1fr;grid-gap:4px;gap:4px;align-items:baseline;padding:7px 8px 7px 0;font-size:.92rem;line-height:1.4;color:var(--body);border-radius:6px;transition:color .15s ease,background-color .15s ease}.post-toc__item a:before{content:counter(toc) ".";font-family:Poppins,sans-serif;font-size:.78rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--body-soft)}.post-toc__item a:hover{color:var(--heading);background:var(--bg-alt)}.post-toc__item--sub{counter-increment:none}.post-toc__item--sub a{grid-template-columns:26px 1fr;padding-left:26px;font-size:.86rem;color:var(--body-soft)}.post-toc__item--sub a:before{content:"–"}@media (max-width:640px){.post-toc{padding:18px 18px 20px}.post-toc__item a{font-size:.88rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}