:root{color-scheme:light;--paper:#f6f5ef;--card:#fffef9;--ink:#172d2b;--muted:#536460;--line:#d3ddd5;--accent:#176755;--wash:#e8efe7;--amber:#805015;--mono:ui-monospace,SFMono-Regular,Consolas,monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:var(--accent);text-underline-offset:4px}a:hover{text-decoration-thickness:2px}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #b9692e;outline-offset:5px;border-radius:3px}button{font:inherit;cursor:pointer}img,svg{max-width:100%;height:auto}button,a{touch-action:manipulation}.wrap{max-width:1160px;margin:auto;padding:0 32px}.skip{position:absolute;left:16px;top:-100px;background:var(--ink);color:white;padding:12px;z-index:10}.skip:focus{top:12px}.site-header{border-bottom:1px solid var(--line)}.header-row{display:flex;justify-content:space-between;align-items:center;gap:22px;min-height:92px}.brand{font-size:23px;font-weight:780;letter-spacing:-.8px;color:var(--ink);text-decoration:none}.brand-mark{display:inline-block;width:12px;height:12px;border:3px solid var(--accent);margin-right:10px;transform:rotate(45deg)}nav{display:flex;gap:8px 22px;flex-wrap:wrap;font-size:14px}nav a{padding:9px 0;color:var(--ink);text-decoration:none}nav a[aria-current]{text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:8px}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:12px;font-weight:750;color:var(--accent);margin:0 0 16px}.intro{padding:76px 0 52px;max-width:860px}h1,h2,h3{line-height:1.15;letter-spacing:-.045em}h1{font-size:clamp(38px,5.5vw,68px);font-weight:730;margin:0 0 24px}h2{font-size:clamp(29px,3.2vw,40px);margin:0 0 20px}h3{font-size:23px;margin:0 0 14px}p{margin:0 0 18px}.lede{font-size:21px;line-height:1.55;color:var(--muted);max-width:740px}.intro .lede{margin-bottom:26px}.button{display:inline-block;padding:12px 18px;border:1px solid var(--accent);border-radius:5px;font-size:15px;font-weight:650;text-decoration:none;background:var(--accent);color:white}.button.secondary{background:transparent;color:var(--accent)}.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.feature{display:grid;grid-template-columns:1.08fr 1fr;gap:48px;align-items:center;background:var(--wash);border:1px solid var(--line);border-radius:12px;padding:44px;margin-bottom:72px}.feature h2{font-size:clamp(35px,4vw,49px)}.feature .text{max-width:510px}.feature figure{margin:0}.device{background:#273632;border-radius:13px;padding:19px 25px 24px;box-shadow:0 14px 25px #172d2b16}.device-label{font:11px var(--mono);letter-spacing:.12em;color:#d8e0d8;margin-bottom:13px;display:flex;justify-content:space-between}.device img{display:block;width:100%;background:white;image-rendering:pixelated}.caption,figcaption{font-size:13px;line-height:1.5;color:var(--muted);margin-top:15px}.media-toggle{background:transparent;border:1px solid var(--line);border-radius:4px;font-size:13px;min-height:42px;padding:8px 12px;margin-top:12px;color:var(--ink)}.section{margin-bottom:72px}.section-heading{max-width:700px;margin-bottom:26px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:27px;display:flex;flex-direction:column;align-items:flex-start}.card p{color:var(--muted);font-size:16px}.card>a:last-child{margin-top:auto;min-height:40px;padding-top:8px;font-size:15px;font-weight:650}.number{font:13px var(--mono);color:var(--accent);margin-bottom:20px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 34px}.project-row{padding:25px 0;border-top:1px solid var(--line)}.project-row h3{font-size:23px;margin-bottom:9px}.project-row p{font-size:15px;color:var(--muted);margin-bottom:10px}.project-row .role{font:11px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin-bottom:10px}.small-link{font-size:14px}.related{border-top:1px solid var(--line);padding-top:30px}.related p{max-width:850px;color:var(--muted)}.site-footer{border-top:1px solid var(--line);margin-top:74px;padding:28px 0 38px;color:var(--muted);font-size:13px}.footer-row{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}.article{max-width:850px;margin:0 auto;padding-top:60px}.article h1{font-size:clamp(37px,5vw,56px)}.article h2{font-size:30px;margin-top:44px}.article h3{margin-top:30px}.article ul,.article ol{padding-left:24px}.article li{margin:9px 0}.article figure{margin:32px 0}.article img.product-image{border:1px solid var(--line);border-radius:8px;width:100%}.article code{font: .88em var(--mono);overflow-wrap:anywhere}.article pre{background:#e9ede6;border:1px solid var(--line);padding:19px;overflow:auto;border-radius:6px}.article pre code{overflow-wrap:normal}.article blockquote{border-left:3px solid var(--accent);padding:5px 20px;margin:25px 0;color:var(--muted)}.table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:6px;margin:24px 0}.table-scroll:focus-visible{outline:3px solid #b9692e;outline-offset:3px}table{border-collapse:collapse;width:100%;font-size:15px}th,td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}thead{background:var(--wash)}tr:last-child td{border-bottom:0}.page-links{display:flex;gap:10px 24px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:24px;margin-top:36px;font-size:15px}.illustration{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:25px;margin:28px 0}.illustration h3{margin-top:0}.controls{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.controls button{background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:5px;padding:10px 13px;font-size:14px;min-height:44px}.controls button[aria-pressed=true]{background:var(--accent);color:white;border-color:var(--accent)}.flow{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:22px 0}.flow span{padding:9px 12px;border:1px solid var(--line);border-radius:4px;font:13px var(--mono);background:var(--wash)}.flow b{font-weight:400;color:var(--accent)}.flow .optional{border-style:dashed}.status{border-left:3px solid var(--accent);padding-left:15px;min-height:100px;font-size:15px}.status[data-kind=partial]{border-color:var(--amber)}.legend{font-size:13px;color:var(--muted)}.source-note{font-size:13px;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:17px;margin-bottom:30px}.route-list{font-family:var(--mono);font-size:14px;padding:16px;background:var(--wash);border-radius:5px}.provenance{font-size:14px;color:var(--muted)}[hidden]{display:none!important}
@media(max-width:850px){.feature{gap:30px;padding:30px}.cards{grid-template-columns:1fr}.header-row{align-items:flex-start;flex-direction:column;justify-content:center;padding:20px 0;gap:8px}.intro{padding-top:50px}.card{padding:24px}.status{min-height:0}}
@media(max-width:650px){.wrap{padding:0 20px}.feature{grid-template-columns:1fr;padding:25px;gap:30px;margin-bottom:50px}.project-grid{grid-template-columns:1fr}.intro{padding:42px 0 30px}.lede{font-size:19px}.section{margin-bottom:50px}.article{padding-top:38px}.device{padding:16px}.illustration{padding:20px}.footer-row{flex-direction:column}nav{gap:4px 19px}.button{padding:11px 15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}

.article .device{max-width:580px;margin:0 auto}.article figure .media-toggle{display:block;margin-left:auto;margin-right:auto}.article .actions{margin:24px 0 32px}
.diagram-scroll{display:block;overflow-x:auto;border:1px solid var(--line);border-radius:8px;margin:28px 0}.diagram-scroll:focus-visible{outline:3px solid #b9692e;outline-offset:3px}.diagram-scroll img{display:block;min-width:760px;width:100%}
