.article-page{color-scheme:dark;--bg:var(--color-bg);--panel:var(--color-bg-raised-2);--text:var(--color-text);--muted:var(--color-text-muted);--faint:var(--color-text-faint);--line:#ffffff1c;--line-strong:#ffffff30;--accent:var(--color-accent);--red:#ff5353;--green:#4ddd73;--blue:#5f80ff;--amber:#ffad32;--lime:#b9f056;--white:#f5f1db;--warm:#ffbd70;--cool:#b9ddff;--max:1180px;--radius:18px;--shadow:0 22px 70px #00000052;color:var(--text);font-family:var(--font-sans);text-rendering:optimizelegibility;font-size:17px;line-height:1.72}.article-page *{box-sizing:border-box}.article-page a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}.article-page a:hover{color:#a8f4dd}.article-page a:focus-visible,.article-page summary:focus-visible,.article-page .table-wrap:focus-visible{outline-offset:4px;border-radius:4px;outline:3px solid #77e0c280}.article-page img,.article-page svg{max-width:100%}.article-page .article-breadcrumb-row{width:min(calc(100% - 2rem), var(--max));margin:0 auto;padding-top:1.5rem}.article-page .hero{width:min(calc(100% - 2rem), var(--max));margin:0 auto;padding:clamp(4.2rem,8vw,7.8rem) 0 clamp(3.5rem,7vw,6rem)}.article-page .eyebrow,.article-page .section-kicker{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;margin:0 0 1rem;font-size:.78rem;font-weight:700}.article-page h1,.article-page h2,.article-page h3{text-wrap:balance;line-height:1.12}.article-page h1{max-width:var(--title-max,780px);letter-spacing:-.035em;margin:0;font-size:clamp(2.8rem,7vw,6.25rem);font-weight:700}.article-page h1 .soft{color:var(--muted);font-weight:620}.article-page h1 .accent{color:var(--accent)}.article-page .dek{color:#c8cacd;max-width:700px;margin:1.65rem 0 0;font-size:clamp(1.08rem,1.8vw,1.32rem);line-height:1.6}.article-page .meta{color:var(--faint);flex-wrap:wrap;gap:.55rem 1.2rem;margin-top:1.7rem;font-size:.84rem;display:flex}.article-page .meta span{align-items:center;gap:.42rem;display:inline-flex}.article-page .meta span:before{content:"";aspect-ratio:1;background:var(--accent);border-radius:50%;width:.38rem;box-shadow:0 0 12px #77e0c2b3}.article-page .meta a{color:inherit;text-decoration-color:#a7aaaf73}.article-page .meta a:hover{color:var(--text)}.article-page .facts{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:2.3rem 0 0;display:grid}.article-page .fact{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,#ffffff0b,#ffffff05);padding:1.2rem 1.35rem}.article-page .fact dt{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:700}.article-page .fact dd{margin:.45rem 0 0;font-size:1.1rem;font-weight:700;line-height:1.35}.article-page .sponsor-credits{border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;background:linear-gradient(110deg,#77e0c217,#ffffff06);gap:.5rem;margin:1.5rem 0 0;padding:1.2rem 1.45rem;display:grid}.article-page .sponsor-credits p{color:#d2d4d8;margin:0;font-size:1.05rem;line-height:1.6}.article-page .sponsor-credits a{font-weight:700}.article-page .contents{border-block:1px solid var(--line);background:#ffffff05}.article-page .contents__inner{width:min(calc(100% - 2rem), var(--max));scrollbar-width:thin;align-items:center;gap:1.35rem;margin:0 auto;padding:1rem 0;display:flex;overflow-x:auto}.article-page .contents strong{color:var(--faint);letter-spacing:.12em;text-transform:uppercase;flex:none;font-size:.72rem}.article-page .contents a{color:var(--muted);flex:none;font-size:.85rem;text-decoration:none}.article-page .contents a:hover{color:var(--text)}.article-page .article{width:min(calc(100% - 2rem), var(--max));margin:0 auto;padding:clamp(4rem,8vw,7rem) 0 7rem}.article-page .diagram-hint{color:var(--faint);margin:0 0 2.5rem;font-size:.8rem}.article-page .section{margin-top:clamp(5rem,9vw,8.5rem)}.article-page .section:first-child,.article-page .diagram-hint+.section{margin-top:0}.article-page .section-heading{margin-bottom:2.5rem}.article-page .section-number{color:var(--faint);letter-spacing:.13em;text-transform:uppercase;margin-bottom:.65rem;font-size:.78rem;font-weight:700;display:block}.article-page h2{letter-spacing:-.02em;margin:0;font-size:clamp(2rem,4.5vw,3.65rem);font-weight:650}.article-page h3{letter-spacing:-.015em;margin:2.8rem 0 .75rem;font-size:clamp(1.25rem,2.5vw,1.72rem)}.article-page .prose{width:100%}.article-page .prose p,.article-page .prose ul,.article-page .prose ol{margin-block:1.05rem}.article-page .prose li+li{margin-top:.55rem}.article-page .lead{color:#d9dbde;font-size:clamp(1.12rem,2vw,1.3rem);line-height:1.62}.article-page .lede:first-letter{float:left;color:var(--accent);margin:.11em .14em 0 0;font-size:4.6rem;font-weight:700;line-height:.78}.article-page .note,.article-page .verdict,.article-page .warning{border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;color:#d2d4d8;background:linear-gradient(110deg,#77e0c217,#ffffff06);width:100%;margin:2rem 0;padding:1.35rem 1.45rem}.article-page .warning{border-left-color:var(--amber);background:linear-gradient(110deg,#ffad321a,#ffffff06)}.article-page .verdict{border-left-color:var(--lime);background:linear-gradient(110deg,#b9f0561a,#ffffff06);font-size:1.06rem}.article-page .note strong,.article-page .verdict strong,.article-page .warning strong{color:var(--text)}.article-page .quick-grid{grid-template-columns:repeat(3,1fr);gap:1rem;margin:2.3rem 0 0;display:grid}.article-page .quick-card{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,#ffffff0b,#ffffff05);min-height:190px;padding:1.35rem}.article-page .quick-card__index{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:700}.article-page .quick-card h3{margin:.8rem 0 .55rem;font-size:1.15rem}.article-page .quick-card p{color:var(--muted);margin:0;font-size:.94rem;line-height:1.55}.article-page .table-wrap{border:1px solid var(--line);border-radius:var(--radius);width:100%;box-shadow:var(--shadow);background:#ffffff05;margin:2.3rem 0;overflow-x:auto}.article-page table{width:100%;min-width:var(--table-min,860px);border-collapse:collapse;font-size:.91rem;line-height:1.5}.article-page caption{color:var(--muted);text-align:left;border-bottom:1px solid var(--line);padding:1rem 1.05rem;font-size:.82rem}.article-page th,.article-page td{vertical-align:top;border-bottom:1px solid var(--line);text-align:left;padding:1rem 1.05rem}.article-page thead th{color:var(--faint);letter-spacing:.11em;text-transform:uppercase;background:#ffffff06;font-size:.69rem;font-weight:700}.article-page tbody th,.article-page td:first-child{color:var(--text);white-space:nowrap;font-weight:700}.article-page tbody tr:last-child th,.article-page tbody tr:last-child td{border-bottom:0}.article-page tbody tr:hover{background:#ffffff06}.article-page .families{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:2.4rem;display:grid}.article-page .family{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:clamp(1.35rem,3vw,2rem)}.article-page .family h3{justify-content:space-between;align-items:center;gap:1rem;margin-top:0;display:flex}.article-page .family p{color:var(--muted);font-size:.96rem}.article-page .family p:last-child{margin-bottom:0}.article-page .tag{border:1px solid var(--line);color:var(--faint);letter-spacing:.09em;text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:.22rem .52rem;font-size:.64rem;font-weight:700}.article-page .uses{border:1px solid var(--line);border-radius:var(--radius);background:var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.article-page .use{background:var(--panel);padding:1.5rem}.article-page .use__icon{aspect-ratio:1;border:1px solid var(--line);width:2.4rem;color:var(--accent);background:#77e0c20f;border-radius:10px;place-items:center;font-size:.76rem;font-weight:700;display:grid}.article-page .use h3{margin:1.1rem 0 .65rem;font-size:1.05rem}.article-page .use p{color:var(--muted);margin:0;font-size:.9rem;line-height:1.55}.article-page .model{grid-template-columns:1fr auto 1fr auto 1fr;align-items:stretch;gap:.8rem;margin:2.6rem 0;display:grid}.article-page .model__box{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);flex-direction:column;justify-content:space-between;min-height:170px;padding:1.25rem;display:flex}.article-page .model__box small{color:var(--faint);letter-spacing:.1em;text-transform:uppercase;font-size:.68rem;font-weight:700}.article-page .model__box strong{font-size:1.2rem;line-height:1.25}.article-page .model__box span{color:var(--muted);font-size:.84rem;line-height:1.45}.article-page .model__arrow{color:var(--faint);align-self:center;font-size:1.45rem}.article-page .routes{counter-reset:routes;margin:2.4rem 0 0}.article-page .route{counter-increment:routes;border-top:1px solid var(--line);grid-template-columns:4rem minmax(0,1fr) minmax(190px,.34fr);gap:1.25rem;padding:1.6rem 0;display:grid}.article-page .route:last-child{border-bottom:1px solid var(--line)}.article-page .route:before{content:"0" counter(routes);color:var(--accent);letter-spacing:.09em;font-size:.75rem;font-weight:700}.article-page .route h3{margin:0 0 .55rem;font-size:1.2rem}.article-page .route p{color:var(--muted);margin:0;font-size:.94rem}.article-page .route__fit{border:1px solid var(--line);color:var(--muted);background:#ffffff06;border-radius:12px;align-self:start;padding:.85rem;font-size:.8rem;line-height:1.45}.article-page .route__fit strong{color:var(--text);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.2rem;font-size:.7rem;display:block}.article-page .equation{border:1px solid var(--line);border-radius:var(--radius);color:#d2d4d8;font:600 clamp(.8rem, 2vw, 1rem)/1.7 var(--font-mono);text-align:center;white-space:nowrap;background:#0b0c0e;margin:2rem 0;padding:1.35rem;overflow-x:auto}.article-page .technical-figure{border:1px solid var(--line);border-radius:var(--radius);background:radial-gradient(circle at 52% 42%, #b9f0560d, transparent 34%), var(--panel);width:min(100%,880px);box-shadow:var(--shadow);margin:2.5rem auto;overflow:hidden}.article-page .technical-figure--wide{width:100%}.article-page .hero-figure{margin-top:2.6rem}.article-page .technical-figure svg{width:100%;height:auto;color:var(--text);padding:clamp(.8rem,3vw,1.8rem);display:block}.article-page .technical-figure>a{display:block}.article-page .technical-figure img{width:100%;height:auto;display:block}.article-page .technical-figure>a:hover img{opacity:.92}.article-page .technical-figure figcaption{border-top:1px solid var(--line);color:var(--muted);padding:1.1rem 1.35rem 1.3rem;font-size:.84rem;line-height:1.55}.article-page .technical-figure figcaption strong{color:var(--text)}.article-page .architecture{border:1px solid var(--line);border-radius:var(--radius);background:radial-gradient(circle at 12% 50%, #77e0c212, transparent 30%), var(--panel);margin:2.5rem 0;padding:clamp(1.2rem,3vw,2rem)}.article-page .architecture__flow{grid-template-columns:repeat(4,1fr);gap:1.6rem;display:grid;position:relative}.article-page .architecture__flow:before{content:"";background:linear-gradient(90deg, var(--accent), var(--blue), var(--amber), var(--lime));opacity:.6;height:1px;position:absolute;top:1.35rem;left:10%;right:10%}.article-page .architecture__item{z-index:1;text-align:center;position:relative}.article-page .architecture__node{aspect-ratio:1;border:1px solid var(--line-strong);background:var(--bg);width:2.7rem;color:var(--accent);border-radius:50%;place-items:center;margin:0 auto .8rem;font-size:.68rem;font-weight:700;display:grid;box-shadow:0 0 24px #77e0c21a}.article-page .architecture__item strong{font-size:.88rem;display:block}.article-page .architecture__item span{color:var(--faint);margin-top:.25rem;font-size:.74rem;line-height:1.35;display:block}.article-page .checklist{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin-top:2rem;display:grid}.article-page .check{border:1px solid var(--line);color:var(--muted);background:#ffffff06;border-radius:14px;padding:1rem 1rem 1rem 2.85rem;font-size:.91rem;line-height:1.5;position:relative}.article-page .check:before{content:"✓";aspect-ratio:1;width:1.2rem;color:var(--accent);background:#77e0c21c;border-radius:50%;place-items:center;font-size:.72rem;font-weight:700;display:grid;position:absolute;top:1rem;left:1rem}.article-page details{border:1px solid var(--line);border-radius:var(--radius);background:#ffffff06;width:100%;margin:1.5rem 0}.article-page summary{cursor:pointer;color:var(--text);padding:1rem 1.2rem;font-weight:700}.article-page .summary-count{color:var(--faint);white-space:nowrap;margin-left:.5rem;font-size:.75rem;font-weight:600}.article-page details[open] summary{border-bottom:1px solid var(--line)}.article-page .details-body{color:var(--muted);padding:1.2rem}.article-page .details-body--list{padding:.4rem 1.2rem .8rem}.article-page pre{border:1px solid var(--line);color:#c8f4e6;font:.79rem/1.6 var(--font-mono);background:#08090a;border-radius:12px;margin:1rem 0 0;padding:1.1rem;overflow-x:auto}.article-page code{font-family:var(--font-mono)}.article-page :not(pre)>code{border:1px solid var(--line);color:#dfe1e4;background:#ffffff0a;border-radius:5px;padding:.13rem .32rem;font-size:.88em}.article-page .related-videos{margin:0;padding:0;list-style:none}.article-page .related-videos li a{border-bottom:1px solid var(--line);color:#d2d4d8;gap:1rem;padding:.85rem 0;font-size:.94rem;text-decoration:none;display:flex}.article-page .related-videos li:last-child a{border-bottom:0}.article-page .related-videos li a:hover{color:var(--accent)}.article-page .related-videos span{color:var(--accent);font-family:var(--font-mono);flex:0 0 3rem;font-size:.82rem;font-weight:600;line-height:1.75}.article-page .test-plan{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:2rem;display:grid}.article-page .test{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:1.3rem}.article-page .test strong{margin-bottom:.55rem;font-size:.94rem;display:block}.article-page .test span{color:var(--muted);font-size:.84rem;line-height:1.48;display:block}.article-page .sources{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:clamp(1.5rem,4vw,2.5rem)}.article-page .sources h2{font-size:clamp(1.6rem,3vw,2.35rem)}.article-page .sources ol{columns:2;column-gap:3rem;margin:1.7rem 0 0;padding-left:1.4rem}.article-page .sources li{break-inside:avoid;color:var(--muted);margin:0 0 1rem;padding-left:.3rem;font-size:.83rem;line-height:1.5}.article-page .sources a{color:#cbcdd1}.article-page .source-note{border-top:1px solid var(--line);color:var(--faint);margin:1.5rem 0 0;padding-top:1.2rem;font-size:.78rem}.article-page sup a{color:var(--accent);margin-left:.12rem;font-size:.72em;font-weight:700;text-decoration:none}@media (width<=980px){.article-page .quick-grid,.article-page .test-plan{grid-template-columns:1fr}.article-page .facts{grid-template-columns:repeat(2,minmax(0,1fr))}.article-page .uses{grid-template-columns:repeat(2,1fr)}.article-page .model{grid-template-columns:1fr}.article-page .model__arrow{justify-self:center;transform:rotate(90deg)}.article-page .route{grid-template-columns:3rem minmax(0,1fr)}.article-page .route__fit{grid-column:2}}@media (width<=720px){.article-page .hero{padding-top:3.5rem}.article-page h1{font-size:clamp(2.75rem,15vw,4.7rem)}.article-page .families,.article-page .uses,.article-page .checklist{grid-template-columns:1fr}.article-page .architecture__flow{grid-template-columns:1fr;gap:1.2rem}.article-page .architecture__flow:before{width:1px;height:auto;inset:8% auto 8% 50%}.article-page .architecture__item{text-align:left;grid-template-rows:auto auto;grid-template-columns:3rem 1fr;column-gap:.8rem;display:grid}.article-page .architecture__node{grid-row:1/3;margin:0}.article-page .sources ol{columns:1}}@media (width<=420px){.article-page .facts{grid-template-columns:1fr}}.article-page .contents-progress{display:none}.article-page .section{scroll-margin-top:1.5rem}@media (width<=960px){.article-page .section{scroll-margin-top:5.5rem}}@media (width>=1280px){.article-page:has(>.contents+.article){--side-contents:14rem;grid-template-columns:[full-start] minmax(1rem, 1fr) [main-start] minmax(0, calc(var(--max) - var(--side-contents) - 3.5rem)) [main-end] 3.5rem [side-start] var(--side-contents) [side-end] minmax(1rem, 1fr) [full-end];grid-auto-flow:dense;display:grid}.article-page:has(>.contents+.article)>*{grid-column:full}.article-page:has(>.contents+.article)>.article{grid-column:main;width:auto;margin:0}.article-page>.contents:has(+.article){scrollbar-width:none;background:0 0;border:0;grid-column:side;align-self:start;max-height:calc(100vh - 4rem);margin-top:clamp(4rem,8vw,7rem);position:sticky;top:2rem;overflow-y:auto}.article-page>.contents:has(+.article) .contents__inner{flex-direction:column;align-items:stretch;gap:0;width:auto;padding:0;overflow:visible}.article-page>.contents:has(+.article) strong{margin-bottom:.8rem}.article-page>.contents:has(+.article) a{border-left:1px solid var(--line);color:var(--faint);padding:.36rem 0 .36rem .95rem;font-size:.84rem;line-height:1.35;transition:color .15s}.article-page>.contents:has(+.article) a:hover{color:var(--text)}.article-page>.contents:has(+.article) a[aria-current=true]{border-left:2px solid var(--accent);color:var(--text);padding-left:calc(.95rem - 1px)}.article-page>.contents:has(+.article) .contents-progress{margin-top:1.2rem;display:block}}.article-page .contents-bar{background:var(--line);border-radius:3px;height:3px;overflow:hidden}.article-page .contents-bar span{background:var(--accent);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.article-page .contents-progress p{color:var(--faint);margin:.55rem 0 0;font-size:.76rem}.article-page .heading-link{color:var(--faint);vertical-align:.18em;opacity:0;margin-left:.35em;font-size:.6em;font-weight:500;text-decoration:none;transition:opacity .15s,color .15s;position:relative}.article-page h2:hover .heading-link,.article-page .heading-link:focus-visible,.article-page .heading-link[data-copied]{opacity:1}.article-page .heading-link:hover{color:var(--accent)}.article-page .heading-link[data-copied]:after{content:"Link copied";background:var(--accent);color:var(--color-accent-ink);letter-spacing:0;white-space:nowrap;border-radius:6px;padding:.3rem .55rem;font-size:.72rem;font-weight:600;line-height:1;position:absolute;top:50%;left:calc(100% + .6rem);transform:translateY(-50%)}.article-page .technical-figure:has(.diagram-expand){position:relative}.article-page .technical-figure:has(.diagram-expand)>a,.article-page .technical-figure:has(.diagram-expand)>svg,.article-page .technical-figure:has(.diagram-expand)>img{cursor:zoom-in}.article-page .diagram-expand{z-index:2;color:var(--text);font:600 .72rem/1 var(--font-sans);backdrop-filter:blur(6px);cursor:pointer;opacity:.85;background:#0a0b0db8;border:1px solid #ffffff29;border-radius:999px;align-items:center;gap:.4rem;padding:.4rem .7rem;transition:opacity .15s,border-color .15s;display:inline-flex;position:absolute;top:.75rem;right:.75rem}.article-page .technical-figure .diagram-expand svg{width:13px;height:13px;padding:0;display:block}.article-page .technical-figure:hover .diagram-expand,.article-page .diagram-expand:focus-visible{border-color:var(--accent);opacity:1}.article-page .diagram-viewer{width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--text);backdrop-filter:blur(10px);background:#060708f7;border:0;margin:0;padding:0}.article-page .diagram-viewer:focus{outline:none}.article-page .diagram-viewer[open]{grid-template-rows:auto minmax(0,1fr) auto;display:grid}.article-page .diagram-viewer::backdrop{background:0 0}html:has(.diagram-viewer[open]){overflow:hidden}.article-page .viewer-bar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.article-page .viewer-hint{color:var(--faint);margin:0;font-size:.8rem}.article-page .viewer-actions{gap:.4rem;display:flex}.article-page .viewer-actions button,.article-page .viewer-actions a{border:1px solid var(--line-strong);color:var(--text);font:500 .8rem/1.2 var(--font-sans);white-space:nowrap;cursor:pointer;background:0 0;border-radius:999px;padding:.42rem .85rem;text-decoration:none}.article-page .viewer-actions button:hover,.article-page .viewer-actions a:hover{border-color:var(--accent);color:var(--text)}.article-page .viewer-actions [hidden]{display:none}.article-page .viewer-stage{overscroll-behavior:contain;cursor:zoom-in;padding:1.5rem;display:flex;overflow:auto}.article-page .viewer-stage>*{user-select:none;border-radius:12px;flex-shrink:0;max-width:none;margin:auto}.article-page .viewer-stage>svg{background:var(--panel);color:var(--text);padding:clamp(.8rem,2vw,1.5rem)}.article-page .viewer-stage.is-zoomed{cursor:grab}.article-page .viewer-stage.is-dragging{cursor:grabbing}.article-page .viewer-caption{width:min(100%,60rem);color:var(--muted);text-align:center;margin:0 auto;padding:.75rem 1.25rem 1rem;font-size:.84rem;line-height:1.5}@media (width<=720px){.article-page .viewer-hint{display:none}.article-page .viewer-bar{justify-content:flex-end}.article-page .viewer-stage{padding:.75rem}}@media (hover:none){.article-page .heading-link{display:none}}@media print{.article-page{--text:#111;--muted:#333;--faint:#555;--line:#ccc;--line-strong:#999;--accent:#0a6b50;--panel:#fff;--shadow:none;font-size:10.5pt;line-height:1.55}.article-page .contents,.article-page .heading-link,.article-page .diagram-expand,.article-page .diagram-viewer,.article-page .diagram-hint{display:none!important}.article-page .hero{padding:0 0 1.5rem}.article-page h1{font-size:30pt}.article-page h2{font-size:19pt}.article-page .article{padding:1rem 0 0}.article-page .section{margin-top:2.2rem}.article-page .section-heading{margin-bottom:1rem}.article-page .technical-figure{break-inside:avoid;border-color:#ccc;width:100%;margin:1.2rem 0}.article-page .technical-figure img[src$=\.svg]{filter:invert()hue-rotate(180deg)}.article-page .prose a[href^=http]:after{content:" (" attr(href) ")";word-break:break-all;font-size:.85em}}
