:root{--ink:#1d252d;--text:#48545e;--muted:#6f7b84;--line:#d9dee2;--blue:#205d99;--paper:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--text);font:400 17px/1.65 Arial,Helvetica,sans-serif}a{color:var(--blue);text-underline-offset:3px}.wrap{width:min(100% - 48px,960px);margin:auto}.mast{height:78px;display:flex;align-items:center;border-bottom:1px solid var(--line)}.brand{color:var(--ink);font-size:18px;font-weight:700;letter-spacing:-.02em;text-decoration:none}.hero{padding:78px 0 72px}.eyebrow{color:var(--muted);font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.hero h1,.project-hero h1{color:var(--ink);font-size:clamp(3rem,6vw,5.4rem);line-height:1;letter-spacing:-.06em;margin:14px 0 22px}.hero p{max-width:720px;font-size:21px;line-height:1.5;margin:0}.section{padding:64px 0;border-top:1px solid var(--line)}.section-head{max-width:720px;margin-bottom:30px}.section-head h2{color:var(--ink);font-size:27px;line-height:1.2;letter-spacing:-.035em;margin:0 0 10px}.section-head p{margin:0}.prose{max-width:720px}.prose p{margin:0 0 18px}.areas{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line)}.areas article{padding:22px;border-right:1px solid var(--line)}.areas article:last-child{border:0}.areas h3{color:var(--ink);font-size:18px;line-height:1.3;margin:0 0 8px}.areas p{color:var(--muted);font-size:14px;line-height:1.6;margin:0}.entry-list{max-width:760px;border-top:1px solid var(--line)}.entry{display:grid;grid-template-columns:1fr 24px;gap:18px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line);text-decoration:none}.entry h3{color:var(--ink);font-size:21px;line-height:1.25;margin:0 0 7px}.entry p{color:var(--muted);font-size:15px;margin:0}.entry .arrow{font-size:20px;color:var(--blue);text-align:right}.open-source-list{max-width:760px;border-top:1px solid var(--line)}.open-source-list article{padding:20px 0;border-bottom:1px solid var(--line)}.open-source-list h3{font-size:20px;margin:0 0 4px}.open-source-list p{color:var(--muted);font-size:15px;margin:0}.links-list{display:flex;gap:24px}.footer{margin-top:32px;padding:48px 0;background:#293641;color:#dbe3e8}.footer .eyebrow{color:#b7c4cc}.footer-grid{display:flex;justify-content:space-between;gap:35px}.footer p{max-width:540px;margin:8px 0 0;font-size:15px}.footer a{display:block;color:#fff;margin:5px 0;font-size:14px}.project-hero{padding:70px 0 36px;max-width:800px}.project-hero .dek{font-size:20px;margin:0}.project-hero .facts{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}.fact{border:1px solid var(--line);padding:6px 9px;color:var(--muted);font-size:12px}.media{width:min(100% - 48px,960px);min-height:360px;margin:20px auto 56px;background:#f3f5f6;border:1px dashed #aeb8be;display:grid;place-items:center;text-align:center;padding:30px;color:var(--muted)}.media.dark{background:#e8edf0}.media strong{display:block;color:var(--ink);margin-bottom:7px}.media span{font-size:14px;max-width:420px}.article{width:min(100% - 48px,700px);margin:auto;padding-bottom:70px}.article h2{color:var(--ink);font-size:27px;line-height:1.3;margin:43px 0 13px}.article p{margin:0 0 18px}.article .aside{border-left:3px solid var(--blue);padding-left:17px;color:var(--muted)}.pair{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:30px 0}.media.small{width:auto;min-height:180px;margin:0}.next{width:min(100% - 48px,700px);margin:auto;border-top:1px solid var(--line);padding:28px 0 60px}.next a{font-size:19px;font-weight:700}@media(max-width:760px){.wrap{width:min(100% - 32px,960px)}.hero{padding:58px 0}.section{padding:52px 0}.areas{grid-template-columns:1fr 1fr}.areas article:nth-child(2){border-right:0}.areas article:nth-child(-n+2){border-bottom:1px solid var(--line)}.footer-grid{display:block}.footer-grid>div+div{margin-top:24px}}@media(max-width:500px){body{font-size:16px}.mast{height:68px}.hero h1{font-size:3.2rem}.hero p{font-size:19px}.areas{grid-template-columns:1fr}.areas article,.areas article:last-child{border-right:0;border-bottom:1px solid var(--line)}.areas article:last-child{border-bottom:0}.pair{grid-template-columns:1fr}.media{width:min(100% - 32px,960px);min-height:250px}.article{width:min(100% - 32px,700px)}}
