@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 700;font-stretch:100%;font-display:swap;src:url(../media/c7f47671e39f7787-s.3wn_q526zaolu.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 700;font-stretch:100%;font-display:swap;src:url(../media/f06bf9da926bae75-s.p.3uuun_-7zsf1g.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans Fallback;src:local(Arial);ascent-override:94.42%;descent-override:24.33%;line-gap-override:0.0%;size-adjust:102.74%}.instrument_sans_dd0ece85-module__hccXaq__className{font-family:Instrument Sans,Instrument Sans Fallback;font-style:normal}.instrument_sans_dd0ece85-module__hccXaq__variable{--font-sans:"Instrument Sans", "Instrument Sans Fallback"}
@font-face{font-family:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/150f724d70372c02-s.2ym9msm88vm4r.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/750c737482d9de2f-s.08jxdyhjmo52g.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/5f402bd2d8eef81a-s.p.23oeb0afa3wba.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader Fallback;src:local(Times New Roman);ascent-override:69.68%;descent-override:25.12%;line-gap-override:0.0%;size-adjust:105.48%}.newsreader_92192df6-module__4sr3aW__className{font-family:Newsreader,Newsreader Fallback;font-style:normal}.newsreader_92192df6-module__4sr3aW__variable{--font-serif:"Newsreader", "Newsreader Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.3bz3aq452sydg.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.2sb9jzhmrh7ny.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.343obqi851wr5.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.40kcwrf1wub16.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.200l3jur7oygh.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.269kn9uafm0ti.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_dc177b0e-module__78ed6G__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_dc177b0e-module__78ed6G__variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--ink:#0b0d0f;--ink-raised:#111417;--ink-sunk:#08090b;--rule:#1f2529;--rule-hi:#333b41;--bone:#ece8e1;--mute:#98a0a6;--faint:#6f777d;--signal:#e2a03f;--signal-hi:#f0b256;--on-signal:#0b0d0f;--signal-dim:#e2a03f24;--signal-wash:#e2a03f0d;--wash:#ffffff06;--bar-bg:#0b0d0fe6;--photo-ground:#15181b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--sans:var(--font-sans), system-ui, -apple-system, "Segoe UI", sans-serif;--serif:var(--font-serif), Georgia, "Times New Roman", serif;--mono:var(--font-mono), ui-monospace, "SF Mono", Menlo, monospace;--gut:40px;--maxw:1180px;--measure:68ch;--bar:56px;--ease:cubic-bezier(.2, .7, .3, 1);--t:.22s}[data-theme=light]{--ink:#f2efe8;--ink-raised:#faf8f2;--ink-sunk:#eae6dc;--rule:#ddd7ca;--rule-hi:#b4ac9c;--bone:#1e2124;--mute:#545b61;--faint:#7d848b;--signal:#a06a12;--signal-hi:#85560b;--on-signal:#fbf9f3;--signal-dim:#a06a1221;--signal-wash:#a06a120f;--wash:#1e212407;--bar-bg:#f2efe8eb;--photo-ground:#e6e1d6;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (max-width:720px){:root{--gut:20px}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{padding-top:var(--bar);background:var(--ink);color:var(--bone);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.65;overflow-x:clip}@media (min-width:900px){body{font-size:17px}}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}h1,h2,h3,h4{letter-spacing:-.017em;text-wrap:balance;margin:0;font-weight:600;line-height:1.16}p{text-wrap:pretty;margin:0 0 1.05em}p:last-child{margin-bottom:0}strong,b{color:var(--bone);font-variant-numeric:tabular-nums;font-weight:600}em{font-style:italic}:focus-visible{outline:2px solid var(--signal);outline-offset:3px;border-radius:2px}::selection{background:var(--signal-dim)}.vh{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{z-index:300;background:var(--signal);color:var(--on-signal);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;transition:top var(--t) var(--ease);padding:12px 18px;font-size:12px;position:absolute;top:-60px;left:8px}.skip:focus{top:8px}.wrap{width:100%;max-width:var(--maxw);padding:0 var(--gut);margin:0 auto}.narrow{max-width:820px}.prose{max-width:var(--measure)}.prose p,.prose li{color:var(--mute)}.prose strong,.prose b{color:var(--bone);font-weight:600}.prose a{color:var(--bone);border-bottom:1px solid var(--rule-hi);transition:color var(--t), border-color var(--t)}.prose a:hover{color:var(--signal);border-color:var(--signal)}.sect{border-top:1px solid var(--rule);padding:78px 0}.sect:first-of-type{border-top:0}@media (min-width:900px){.sect{padding:104px 0}}.shead{justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:40px;display:flex}.shead h2{font-size:clamp(1.45rem,2.7vw,2rem)}.shead .mono{flex:none}.mono{font-family:var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--faint);font-size:12px;font-weight:500}.eyebrow{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--signal);font-size:12px;font-weight:500}.lede{color:var(--bone);text-wrap:pretty;max-width:58ch;font-size:clamp(1.09rem,1.7vw,1.28rem);line-height:1.55}.serif{font-family:var(--serif);font-weight:300}.dim{color:var(--mute)}.fig{color:var(--bone);font-variant-numeric:tabular-nums;font-weight:600}.btn{border:1px solid var(--rule-hi);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--bone);transition:border-color var(--t), color var(--t), background var(--t);align-items:center;gap:10px;padding:12px 20px;font-size:12px;display:inline-flex}.btn:hover{border-color:var(--signal);color:var(--signal);background:var(--signal-dim)}.btn.primary{border-color:var(--signal);background:var(--signal);color:var(--on-signal)}.btn.primary:hover{background:var(--signal-hi);border-color:var(--signal-hi);color:var(--on-signal)}.btn .arw,.go .arw{transition:transform var(--t) var(--ease)}.btn:hover .arw,.go:hover .arw{transform:translate(3px)}.go{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--bone);border-bottom:1px solid var(--rule-hi);transition:color var(--t), border-color var(--t);align-items:center;gap:9px;padding-bottom:4px;font-size:12px;display:inline-flex}.go:hover{color:var(--signal);border-color:var(--signal)}.btnrow{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.topbar{z-index:60;min-height:var(--bar);padding:0 var(--gut);background:var(--bar-bg);-webkit-backdrop-filter:blur(14px)saturate(1.2);backdrop-filter:blur(14px)saturate(1.2);border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:16px;display:flex;position:fixed;inset:0 0 auto}.mark{font-family:var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--bone);white-space:nowrap;transition:color var(--t);font-size:12px;font-weight:500}.mark:hover{color:var(--signal)}.mark .sep,.mark .where{display:none}.mark .sep{color:var(--rule-hi);margin:0 8px}.mark .where{color:var(--signal)}@media (min-width:620px) and (max-width:999px){.mark .sep,.mark .where{display:inline}}.tb-right{align-items:center;gap:14px;display:flex}.mainnav{gap:22px;display:none}.mainnav a{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);transition:color var(--t), border-color var(--t);border-bottom:1px solid #0000;padding:4px 0;font-size:12px}.mainnav a:hover{color:var(--bone)}.mainnav a[aria-current=page]{color:var(--bone);border-bottom-color:var(--signal)}.menubtn{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--bone);border:1px solid var(--rule-hi);transition:border-color var(--t), background var(--t), color var(--t);align-items:center;gap:8px;padding:7px 11px;font-size:12px;display:inline-flex}.menubtn[aria-expanded=true]{border-color:var(--signal);color:var(--signal)}@media (min-width:1000px){.mainnav{display:flex}.menubtn{display:none}}.menubtn .bars{flex-direction:column;gap:3px;width:13px;display:inline-flex}.menubtn .bars i{background:currentColor;height:1px}.topbar a,.topbar button,.menupanel a,.menupanel button,.themepop button{-webkit-tap-highlight-color:transparent}.mark:active{color:var(--signal)}.menubtn:active,.themebtn:active{background:var(--wash);border-color:var(--signal)}.menupanel,.themepop{z-index:70;color:var(--bone);background:var(--ink-raised);border:0;margin:0;padding:0;display:none;position:fixed}:is(.menupanel:popover-open,.themepop:popover-open),.menupanel.is-open,.themepop.is-open{display:block}.menupanel{inset:var(--bar) 0 auto 0;width:100%;max-width:none;height:auto;max-height:calc(100vh - var(--bar));max-height:calc(100dvh - var(--bar));overscroll-behavior:contain;border-bottom:1px solid var(--rule);overflow-y:auto}.menupanel .inner{max-width:var(--maxw);padding:6px var(--gut) 20px;margin:0 auto}.menupanel ul{margin:0;padding:0;list-style:none}.menu-primary a{border-bottom:1px solid var(--rule);min-height:52px;font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--bone);transition:color var(--t);justify-content:space-between;align-items:center;font-size:13px;display:flex}.menu-primary a .arw{color:var(--faint);transition:color var(--t), transform var(--t) var(--ease)}.menu-primary a:hover,.menu-primary a:active,.menu-primary a[aria-current=page]{color:var(--signal)}.menu-primary a:hover .arw,.menu-primary a:active .arw{color:var(--signal);transform:translate(3px)}.menupanel .menu-secondary{flex-wrap:wrap;gap:0 24px;margin-top:8px;display:flex}.menu-secondary a{min-height:44px;font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mute);transition:color var(--t);align-items:center;font-size:12px;display:inline-flex}.menu-secondary a:hover,.menu-secondary a:active,.menu-secondary a[aria-current=page]{color:var(--signal)}.menuclose{border:1px solid var(--rule-hi);width:100%;min-height:46px;font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--bone);transition:border-color var(--t), color var(--t);justify-content:center;align-items:center;margin-top:12px;font-size:12px;display:flex}.menuclose:hover,.menuclose:active{border-color:var(--signal);color:var(--signal)}.themebtn{border:1px solid var(--rule-hi);width:36px;height:36px;color:var(--bone);transition:border-color var(--t), color var(--t), background var(--t);justify-content:center;align-items:center;display:inline-flex}.themebtn:hover,.themebtn[aria-expanded=true]{border-color:var(--signal);color:var(--signal)}.ticon{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}.themebtn .ti{display:none}[data-theme-pref=light] .themebtn .ti-light,[data-theme-pref=dark] .themebtn .ti-dark,[data-theme-pref=system] .themebtn .ti-system{display:inline-flex}.themepop{inset:calc(var(--bar) + 6px) var(--gut) auto auto;border:1px solid var(--rule-hi);width:max-content;min-width:212px;padding:6px;box-shadow:0 14px 34px #00000047}.themeopt{width:100%;min-height:44px;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;text-align:left;color:var(--mute);transition:color var(--t), background var(--t);align-items:center;gap:12px;padding:0 12px;font-size:12px;display:flex}.themeopt:hover,.themeopt:active{color:var(--bone);background:var(--wash)}.themeopt[aria-pressed=true]{color:var(--signal);background:var(--signal-wash)}.hero{padding:68px 0 0}@media (min-width:900px){.hero{padding:100px 0 0}}.hero-grid{align-items:start;gap:48px;display:grid}@media (min-width:940px){.hero-grid{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:64px}}.hero h1{letter-spacing:-.035em;margin:18px 0 0;font-size:clamp(2.5rem,6.4vw,4.4rem);line-height:1.02}.hero .claim{color:var(--bone);max-width:40ch;margin-top:28px;font-size:clamp(1.09rem,1.75vw,1.3rem);line-height:1.55}.hero .claim-sub{color:var(--mute);max-width:44ch;margin-top:16px}.hero .whereami{border-top:1px solid var(--rule);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);flex-wrap:wrap;gap:4px 20px;margin-top:26px;padding-top:18px;font-size:12px;display:flex}.hero .whereami b{color:var(--mute);font-weight:500}.hero .btnrow{margin-top:30px}.themes{background:var(--rule);border:1px solid var(--rule);gap:1px;display:grid}@media (min-width:720px){.themes{grid-template-columns:repeat(2,1fr)}}@media (min-width:1040px){.themes{grid-template-columns:repeat(4,1fr)}}.theme{background:var(--ink);padding:26px 24px 30px}.theme .n{font-family:var(--mono);letter-spacing:.1em;color:var(--signal);font-size:12px}.theme h3{margin:14px 0 10px;font-size:1.14rem}.theme p{color:var(--mute);font-size:.97rem;line-height:1.6}.worklist{gap:0;display:grid}.workrow{border-top:1px solid var(--rule);transition:border-color var(--t);gap:14px;padding:30px 0;display:grid}.workrow:first-child{border-top:0;padding-top:0}@media (min-width:860px){.workrow{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;gap:40px;padding:34px 0}}.workrow h3{letter-spacing:-.022em;font-size:clamp(1.28rem,2.3vw,1.72rem)}.workrow h3 a{transition:color var(--t)}.workrow:hover h3 a{color:var(--signal)}.workrow .tags{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.tag{font-family:var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--faint);border:1px solid var(--rule);padding:3px 8px;font-size:12px}.workrow .prob{color:var(--mute);margin-bottom:.85em}.workrow .out{color:var(--bone)}.workrow .go{margin-top:20px}.otherwork{background:var(--rule);border:1px solid var(--rule);gap:1px;display:grid}@media (min-width:780px){.otherwork{grid-template-columns:repeat(3,1fr)}}.otherwork article{background:var(--ink);padding:24px 22px 26px}.otherwork h3{margin-bottom:10px;font-size:1.06rem}.otherwork p{color:var(--mute);font-size:.96rem}.otherwork a:hover h3{color:var(--signal)}.stackpreview{align-items:center;gap:40px;display:grid}@media (min-width:940px){.stackpreview{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:56px}}.stackgrid{background:var(--rule);border:1px solid var(--rule);gap:1px;display:grid}@media (min-width:660px){.stackgrid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1000px){.stackgrid{grid-template-columns:repeat(3,1fr)}}.stackcard{background:var(--ink);transition:background var(--t);padding:24px 22px 26px;display:block}.stackcard:hover{background:var(--ink-raised)}.stackcard .kind{font-family:var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--faint);font-size:12px}.stackcard.lens .kind{color:var(--signal)}.stackcard h3{margin:12px 0 9px;font-size:1.12rem}.stackcard p{color:var(--mute);font-size:.96rem;line-height:1.58}.stackcard .inside{font-family:var(--mono);letter-spacing:.06em;color:var(--faint);margin-top:13px;font-size:12px}.subview{border-top:1px solid var(--rule);scroll-margin-top:calc(var(--bar) + 20px);margin-top:44px;padding-top:34px}.subview>h3{margin-bottom:8px;font-size:clamp(1.25rem,2.2vw,1.6rem)}.subview .kind{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-bottom:12px;font-size:12px;display:block}.jump{flex-wrap:wrap;gap:8px;margin:26px 0 6px;display:flex}.jump a{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mute);border:1px solid var(--rule);transition:color var(--t), border-color var(--t);padding:7px 12px;font-size:12px}.jump a:hover{color:var(--signal);border-color:var(--signal)}.example{border:1px solid var(--rule);background:var(--wash);margin:26px 0;padding:22px 24px}.example .mono{color:var(--signal);margin-bottom:10px;display:block}.example p{color:var(--mute)}.sourcelinks{flex-wrap:wrap;gap:8px 18px;margin-top:14px;display:flex}.sourcelinks a{font-family:var(--mono);letter-spacing:.06em;color:var(--mute);border-bottom:1px solid var(--rule-hi);padding-bottom:2px;font-size:12px}.sourcelinks a:hover{color:var(--signal);border-color:var(--signal)}.pressure{background:var(--rule);border:1px solid var(--rule);gap:1px;margin:26px 0;display:grid}.pressure>div{background:var(--ink);grid-template-columns:108px 46px minmax(0,1fr);align-items:center;gap:16px;padding:15px 20px;display:grid}@media (max-width:620px){.pressure>div{grid-template-columns:92px 46px minmax(0,1fr);row-gap:8px}.pressure>div p{grid-column:1/-1}}.pressure .dom{font-family:var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--bone);font-size:12px}.pbar{gap:3px;display:flex}.pbar i{background:var(--rule-hi);width:11px;height:5px}.pbar i.on{background:var(--signal)}.pressure p{color:var(--mute);margin:0;font-size:.95rem}.path{margin:26px 0;padding:0 0 0 26px;list-style:none;position:relative}.path:before{content:"";background:var(--rule-hi);width:1px;position:absolute;top:8px;bottom:8px;left:4px}.path li{padding:0 0 24px;position:relative}.path li:before{content:"";border:1px solid var(--rule-hi);background:var(--ink);border-radius:50%;width:9px;height:9px;position:absolute;top:7px;left:-26px}.path li:last-child:before{background:var(--signal);border-color:var(--signal)}.path li:last-child{padding-bottom:0}.path h4{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--bone);margin-bottom:6px;font-size:12px}.path p{color:var(--mute);margin:0}.labgrid{background:var(--rule);border:1px solid var(--rule);gap:1px;display:grid}@media (min-width:800px){.labgrid{grid-template-columns:repeat(2,1fr)}}.labcard{background:var(--ink);flex-direction:column;gap:14px;padding:28px 26px 30px;display:flex}.labcard h3{font-size:1.24rem}.labcard .sub{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin-top:6px;font-size:12px}.labcard p{color:var(--mute);margin:0}.status{font-family:var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--signal);align-items:center;gap:8px;font-size:12px;display:inline-flex}.status:before{content:"";background:var(--signal);border-radius:50%;flex:none;width:7px;height:7px}.labcard .foot{margin-top:auto;padding-top:6px}.phases{background:var(--rule);border:1px solid var(--rule);gap:1px;margin:26px 0;padding:0;list-style:none;display:grid}.phases>li{background:var(--ink);padding:22px 24px}.phases .ph{font-family:var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--faint);align-items:center;gap:10px;margin-bottom:10px;font-size:12px;display:flex}.phases .ph i{border:1px solid var(--rule-hi);border-radius:50%;flex:none;width:8px;height:8px}.phases li.now .ph{color:var(--signal)}.phases li.now .ph i{background:var(--signal);border-color:var(--signal)}.phases h4{margin-bottom:8px;font-size:1.05rem}.phases p{color:var(--mute);margin:0 0 .7em}.quotes{gap:34px;display:grid}@media (min-width:900px){.quotes{grid-template-columns:repeat(3,1fr);gap:40px}}blockquote{font-family:var(--serif);color:var(--bone);margin:0;font-size:1.16rem;font-weight:300;line-height:1.52}.attrib{border-top:1px solid var(--rule);margin-top:16px;padding-top:14px}.attrib .who{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--bone);font-size:12px}.attrib .what{font-family:var(--sans);letter-spacing:0;text-transform:none;color:var(--faint);margin-top:5px;font-size:.93rem;display:block}.vfilter{flex-wrap:wrap;gap:8px;margin:0 0 30px;display:flex}.vchip{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mute);border:1px solid var(--rule);align-items:center;gap:8px;padding:9px 14px;font-size:12px;display:inline-flex}.vchip:hover{color:var(--bone);border-color:var(--rule-hi)}.vchip[aria-pressed=true]{color:var(--on-signal);background:var(--signal);border-color:var(--signal)}.vchip .n{opacity:.65;font-size:12px}.vboard{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:start;gap:40px;display:grid}.vfeature{border-left:2px solid var(--signal);padding-left:28px}.vfeature blockquote{font-family:var(--serif);max-width:var(--measure);text-wrap:pretty;margin:0;font-size:clamp(1.2rem,2.1vw,1.6rem);line-height:1.45}.vfeature figcaption{flex-direction:column;gap:4px;margin-top:22px;display:flex}.vfeature .who{font-weight:500}.vfeature .what{color:var(--mute);font-size:.95rem}.vfeature .rel,.vlist-head{font-family:var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--faint);font-size:12px}.vfeature details{margin-top:24px}.vlist ul{border-top:1px solid var(--rule);margin:10px 0 0;padding:0;list-style:none}.vlist li+li button{border-top:1px solid var(--rule)}.vlist button{text-align:left;width:100%;color:var(--bone);border-left:2px solid #0000;flex-direction:column;gap:3px;padding:13px 14px 13px 12px;display:flex}.vlist button:hover{background:var(--wash);border-left-color:var(--rule-hi)}.vlist button[aria-current=true]{border-left-color:var(--signal);background:var(--signal-wash)}.vlist button[aria-current=true] .who{color:var(--signal)}.vlist .what{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-size:12px}@media (max-width:860px){.vboard{grid-template-columns:1fr;gap:28px}.vfeature{padding-left:18px}}.platwork{margin-top:14px}.platwork .mono{letter-spacing:.08em;text-transform:uppercase;color:var(--signal);margin-bottom:4px;font-size:12px;display:block}figure{margin:0}.ph-frame{background:var(--photo-ground);border:1px solid var(--rule);overflow:hidden}.ph-frame img{width:100%;height:auto}figcaption{font-family:var(--mono);letter-spacing:.05em;color:var(--faint);margin-top:10px;font-size:12px;line-height:1.5}.figrow{gap:22px;margin:34px 0;display:grid}@media (min-width:760px){.figrow.two{grid-template-columns:repeat(2,1fr)}.figrow.three{grid-template-columns:repeat(3,1fr)}}.pair{align-items:start;gap:30px;display:grid}@media (min-width:860px){.pair{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:46px}.pair.wide-img{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}}.deflist{gap:0;margin:0;display:grid}.deflist>div{border-top:1px solid var(--rule);gap:4px 24px;padding:13px 0;display:grid}@media (min-width:660px){.deflist>div{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:baseline}}.deflist dt{color:var(--bone)}.deflist dd{font-family:var(--mono);letter-spacing:.06em;color:var(--faint);margin:0;font-size:12px}.role{border-top:1px solid var(--rule);padding:28px 0}.role .when{font-family:var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--signal);font-size:12px}.role h3{margin:10px 0 4px;font-size:1.18rem}.role .org{color:var(--mute);font-size:.97rem}.role ul{max-width:var(--measure);margin:18px 0 0;padding:0;list-style:none}.role li{color:var(--mute);margin-bottom:11px;padding-left:20px;position:relative}.role li:before{content:"";background:var(--rule-hi);width:7px;height:1px;position:absolute;top:.72em;left:0}.filters{flex-wrap:wrap;gap:8px;margin-bottom:28px;display:flex}.archrow{border-top:1px solid var(--rule);gap:6px 28px;padding:22px 0;display:grid}@media (min-width:820px){.archrow{grid-template-columns:96px minmax(0,1fr) 132px;align-items:baseline}}.archrow .yr,.archrow .dom{font-family:var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--faint);font-size:12px}.archrow h3{margin-bottom:6px;font-size:1.06rem}.archrow p{color:var(--mute);margin:0;font-size:.96rem}footer{background:var(--ink-sunk);border-top:1px solid var(--rule);margin-top:20px;padding:46px 0 40px}footer .cols{gap:30px;margin-bottom:36px;display:grid}@media (min-width:760px){footer .cols{grid-template-columns:repeat(4,1fr)}}footer h4{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-bottom:12px;font-size:12px;font-weight:500}footer nav a,footer .col a{color:var(--mute);transition:color var(--t);padding:5px 0;font-size:.96rem;display:block}footer nav a:hover,footer .col a:hover{color:var(--signal)}footer .base{border-top:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;gap:10px 22px;padding-top:22px;display:flex}.diagram{overscroll-behavior-x:contain;border:1px solid var(--rule);background:var(--wash);padding:22px 20px;overflow-x:auto}.diagram svg{width:100%;min-width:420px;height:auto;display:block}@media (min-width:860px){.only-narrow{display:none}}@media (max-width:859px){.only-wide{display:none}}.pagehead{border-bottom:1px solid var(--rule);margin-bottom:46px;padding:46px 0 34px}@media (min-width:900px){.pagehead{padding:66px 0 40px}}.pagehead h1{letter-spacing:-.03em;max-width:22ch;margin:14px 0 0;font-size:clamp(2rem,4.4vw,3.05rem)}.pagehead .lede{margin-top:20px}.crumbs{font-family:var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--faint);align-items:center;gap:9px;font-size:12px;display:flex}.crumbs a:hover{color:var(--signal)}.nextprev{border-top:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;gap:16px 30px;margin-top:56px;padding-top:30px;display:flex}.casesec{border-top:1px solid var(--rule);gap:10px 40px;margin-top:34px;padding-top:28px;display:grid}@media (min-width:900px){.casesec{grid-template-columns:168px minmax(0,1fr)}}.casesec>h2{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--signal);padding-top:4px;font-size:12px;font-weight:500}.casesec .body{max-width:var(--measure)}.casesec .body p{color:var(--mute)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media print{:root{--ink:#fff;--ink-raised:#fff;--ink-sunk:#fff;--bone:#000;--mute:#222;--faint:#555;--rule:#bbb;--rule-hi:#888;--signal:#000;--wash:transparent}body{color:#000;background:#fff;padding-top:0;font-size:11pt;line-height:1.45}.topbar,.menupanel,.themepop,.skip,footer nav,footer .cols,.nextprev,.jump,.filters,.btnrow,.no-print{display:none!important}a{color:#000;text-decoration:none}.prose a:after,.sourcelinks a:after{content:" (" attr(href) ")";color:#555;word-break:break-all;font-size:8.5pt}.sect,.pagehead{border-color:#bbb;padding:12pt 0}.themes,.stackgrid,.labgrid,.phases,.pressure,.otherwork{background:0 0;border-color:#bbb;gap:0}.theme,.stackcard,.labcard,.phases>li,.pressure>div,.otherwork article{border-bottom:1px solid #ddd}.role,.casesec,.subview,figure,blockquote{break-inside:avoid}h1,h2,h3{break-after:avoid}.print-url{font-family:var(--mono);color:#555;margin-top:6pt;font-size:8.5pt;display:block!important}}.print-url{display:none}
.dg{--dg-t:.28s}.dg-line{stroke:var(--rule);stroke-width:1px;fill:none;transition:stroke var(--dg-t) var(--ease), opacity var(--dg-t) var(--ease)}.dg-line.on{stroke:var(--signal);stroke-width:1.6px}.dg-line.dim{opacity:.45}.dg-dot{fill:var(--rule-hi);transition:fill var(--dg-t) var(--ease), r var(--dg-t) var(--ease), opacity var(--dg-t) var(--ease)}.dg-dot.on{fill:var(--signal)}.dg-dot.dim{opacity:.35}.dg-box{fill:var(--ink-raised);stroke:var(--rule-hi);transition:stroke var(--dg-t) var(--ease), fill var(--dg-t) var(--ease)}.dg-label{fill:var(--mute);font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;transition:fill var(--dg-t) var(--ease), opacity var(--dg-t) var(--ease);font-size:13px}.dg-sub{fill:var(--faint);font-family:var(--mono);letter-spacing:.02em;text-transform:uppercase;transition:fill var(--dg-t) var(--ease), opacity var(--dg-t) var(--ease);font-size:13px}.dg-rail-label{fill:var(--faint);font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;transition:fill var(--dg-t) var(--ease), opacity var(--dg-t) var(--ease);font-size:13px}.dg-node{cursor:pointer;outline:none}.dg-node .dg-hit{fill:#0000;stroke:none}.dg-node:hover .dg-box,.dg-node:focus-visible .dg-box,.dg-node.on .dg-box{stroke:var(--signal)}.dg-node:hover .dg-label,.dg-node:focus-visible .dg-label,.dg-node.on .dg-label{fill:var(--bone)}.dg-node:hover .dg-rail-label,.dg-node:focus-visible .dg-rail-label,.dg-node.on .dg-rail-label{fill:var(--signal)}.dg-node:focus-visible .dg-focus{stroke:var(--signal);stroke-width:2px;fill:none}.dg-focus{stroke:none;fill:none}.dg-node.dim .dg-label,.dg-node.dim .dg-sub,.dg-node.dim .dg-rail-label{opacity:.42}.dg-node.dim .dg-box{opacity:.55}.dg-signal{fill:var(--signal)}.hero-map{border:1px solid var(--rule);background:var(--wash);padding:20px 18px 16px}.hero-map svg{width:100%;height:auto;display:block}.hero-map-foot{border-top:1px solid var(--rule);font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);justify-content:space-between;align-items:baseline;gap:14px;min-height:30px;margin-top:14px;padding-top:12px;font-size:12px;display:flex}.hero-map-foot .cur{color:var(--signal)}.matrix-wrap{gap:26px;max-width:1040px;margin:0 auto;display:grid}@media (min-width:1000px){.matrix-wrap{grid-template-columns:560px minmax(300px,1fr);align-items:start;gap:36px}}.matrix{border:1px solid var(--rule);background:var(--wash);padding:22px 20px 18px}.matrix svg{width:100%;max-width:520px;height:auto;margin:0 auto;display:block}.matrix-read{border:1px solid var(--rule);background:var(--ink-raised);min-height:200px;padding:20px 20px 22px}@media (min-width:1000px){.matrix-read{top:calc(var(--bar) + 20px);position:sticky}}.matrix-read .kind{font-family:var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--signal);font-size:12px}.matrix-read h3{margin:10px 0;font-size:1.14rem}.matrix-read p{color:var(--mute);font-size:.96rem;line-height:1.58}.matrix-read .go{margin-top:16px}.matrix-read .hint{color:var(--faint);font-size:.94rem}@keyframes settleIn{0%{opacity:0;transform:translateY(6px)}}.matrix-read>*{animation:settleIn .3s var(--ease) both}.workviz{width:100%;max-width:260px;margin-top:20px}.workviz svg{width:100%;height:auto;display:block}.wv-line{stroke:var(--rule-hi);fill:none;stroke-width:1px}.wv-sig{stroke:var(--signal);fill:none;stroke-width:1.2px}.wv-node{fill:var(--rule-hi)}.wv-node.sig{fill:var(--signal)}.wv-txt{fill:var(--faint);font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;font-size:12px}.workviz [data-draw]{stroke-dasharray:1;animation:wvDraw .6s var(--ease) both;animation-delay:var(--d,0s)}.workviz [data-pop]{animation:wvPop .4s var(--ease) both;animation-delay:var(--d,0s)}@keyframes wvDraw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes wvPop{0%{opacity:.2}to{opacity:1}}.storagemap{border:1px solid var(--rule);background:var(--wash);margin:26px 0 18px;padding:18px 18px 14px}.storagemap svg{width:100%;max-width:620px;height:auto;margin:0 auto;display:block}@media (max-width:859px){.storagemap svg{display:none}}.sm-edge{stroke:var(--rule);fill:none;stroke-width:1.2px;transition:stroke var(--dg-t,.28s) var(--ease), opacity var(--dg-t,.28s) var(--ease)}.sm-edge.on{stroke:var(--signal);stroke-width:1.8px}.sm-edge.dim{opacity:.4}.storagemap-foot{border-top:1px solid var(--rule);font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);min-height:18px;margin-top:14px;padding-top:12px;font-size:12px}.storagemap-foot .cur{color:var(--signal);text-transform:none;letter-spacing:.02em;font-family:var(--sans);font-size:.94rem}.path li{transition:opacity var(--t) var(--ease)}.path li h4{transition:color var(--t) var(--ease)}.path li:before{transition:background var(--t) var(--ease), border-color var(--t) var(--ease), transform var(--t) var(--ease)}.path:hover li,.path:focus-within li{opacity:.5}.path li:hover,.path li:focus-within,.path:hover li:last-child,.path:focus-within li:last-child{opacity:1}.path li:hover h4,.path li:focus-within h4{color:var(--signal)}.path li:hover:before,.path li:focus-within:before{background:var(--signal);border-color:var(--signal);transform:scale(1.25)}.pressure-switch{flex-wrap:wrap;gap:8px;margin:0 0 20px;display:flex}.pressure-switch button{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mute);border:1px solid var(--rule);transition:color var(--t), border-color var(--t), background var(--t);padding:8px 14px;font-size:12px}.pressure-switch button:hover{color:var(--bone);border-color:var(--rule-hi)}.pressure-switch button[aria-selected=true]{color:var(--on-signal);background:var(--signal);border-color:var(--signal)}.pbar i{transition:background var(--t) var(--ease)}.pressure:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.pressure>div{transition:background var(--t) var(--ease)}html.theming,html.theming *,html.theming :before,html.theming :after{transition:background-color .42s var(--ease), color .42s var(--ease), border-color .42s var(--ease), fill .42s var(--ease), stroke .42s var(--ease)!important}.sweepline{z-index:200;pointer-events:none;opacity:0;background:linear-gradient(90deg, transparent, var(--signal), transparent);height:2px;filter:drop-shadow(0 0 6px var(--signal));position:fixed;top:-4px;left:0;right:0}html.sweeping .sweepline{animation:sweep .6s var(--ease) forwards}@keyframes sweep{0%{opacity:0;top:-4px}12%{opacity:.9}88%{opacity:.9}to{opacity:0;top:100.5%}}@media (prefers-reduced-motion:reduce){.workviz [data-draw]{stroke-dashoffset:0;animation:none}.workviz [data-pop]{opacity:1;animation:none}.matrix-read>*,html.sweeping .sweepline{animation:none}.dg-node:hover .dg-box,.dg-node.on .dg-box{stroke:var(--signal)}}.stackgrid.loose{background:0 0;border:0;gap:14px}.stackgrid.loose .stackcard{border:1px solid var(--rule)}.stackgrid.loose .stackcard:hover{border-color:var(--rule-hi)}@media (min-width:660px){.stackgrid.two-up{grid-template-columns:repeat(2,1fr)}}@media (min-width:1000px){.stackgrid.two-up{grid-template-columns:repeat(2,1fr)}}.workviz{pointer-events:none}@media (max-width:859px){.matrix-wrap{display:none}}.resume-page .pagehead{margin-bottom:30px;padding:34px 0 26px}@media (min-width:900px){.resume-page .pagehead{padding:44px 0 28px}}.resume-page .pagehead h1{letter-spacing:-.026em;max-width:none;font-size:clamp(1.7rem,3vw,2.3rem)}.resume-page .pagehead .lede{max-width:68ch;color:var(--mute);margin-top:14px;font-size:clamp(1rem,1.25vw,1.08rem);line-height:1.55}.resume-page .wrap{max-width:960px}.resume-page .sect{padding:42px 0}.resume-page .sect:first-of-type{padding-top:0}.resume-page .shead{margin-bottom:22px}.resume-page .shead h2{font-size:clamp(1.15rem,1.7vw,1.4rem)}.contactrow{border-top:1px solid var(--rule);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:20px;padding-top:16px;font-size:12px;display:flex}.contactrow>*{align-items:center;display:inline-flex}.contactrow .place{color:var(--mute)}.contactrow a{color:var(--bone);border-bottom:1px solid var(--rule-hi);transition:color var(--t), border-color var(--t);padding-bottom:3px}.contactrow a:hover{color:var(--signal);border-color:var(--signal)}.contactrow .sep{color:var(--rule-hi)}@media (max-width:560px){.contactrow{gap:10px 14px}.contactrow .sep{display:none}.contactrow>*{width:100%}}.role li{padding-left:22px}.role li:before{content:"";background:var(--rule-hi);border-radius:0;width:5px;height:5px;position:absolute;top:.62em;left:0}.role h3{font-size:1.08rem}.role .when{font-size:12px}.awards{gap:34px;display:grid}@media (min-width:780px){.awards{grid-template-columns:repeat(2,1fr);gap:40px}}.awards h3{font-family:var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--signal);border-bottom:1px solid var(--rule);padding-bottom:12px;font-size:12px;font-weight:500}.awardlist{margin:0;padding:0;list-style:none}.awardlist li{border-bottom:1px solid var(--rule);gap:2px 20px;padding:14px 0;display:grid}@media (min-width:500px){.awardlist li{grid-template-columns:minmax(0,1fr) auto;align-items:baseline}}.awardlist .t{color:var(--bone);font-size:1rem;line-height:1.4}.awardlist .o{color:var(--faint);font-size:.92rem}.awardlist .w{font-family:var(--mono);letter-spacing:.06em;color:var(--faint);white-space:nowrap;font-size:12px}.pub{border:1px solid var(--rule-hi);background:var(--wash);transition:border-color var(--t), background var(--t);margin-top:40px;padding:26px 26px 28px;display:block}.pub:hover{border-color:var(--signal)}.pub .k{font-family:var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--signal);font-size:12px}.pub h3{max-width:40ch;margin:12px 0 8px;font-size:clamp(1.05rem,1.8vw,1.32rem)}.pub .where{color:var(--mute);font-size:.96rem}.pub .go{margin-top:18px}.fignote{color:var(--faint);margin-top:4px;display:block}a,button,[role=button],summary{touch-action:manipulation}.tapcard{position:relative}.tapcard .stretch:after{content:"";z-index:1;position:absolute;inset:0}.tapcard a:not(.stretch),.tapcard button{z-index:2;position:relative}@media (pointer:coarse){.go,.mainnav a,.jump a,.filters a,footer nav a,.evidencelist a,.contactrow a,.sourcelinks a{align-items:center;min-height:44px;display:inline-flex}.btn{min-height:48px}.themebtn{width:44px;height:44px}.pressure-switch button,.vchip,.vlist button{min-height:44px}.menubtn,.mark{align-items:center;min-height:44px;display:inline-flex}.path:hover li,.path:focus-within li{opacity:1}}.tapcard{transition:border-color var(--t) var(--ease), background var(--t) var(--ease)}.workrow.tapcard:hover h3 a,.workrow.tapcard:focus-within h3 a{color:var(--signal)}.labcard.tapcard:hover,.labcard.tapcard:focus-within{background:var(--wash)}.labcard.tapcard:hover h3,.labcard.tapcard:focus-within h3{color:var(--signal)}.storagemap .dg-node{cursor:pointer}.stack-page .wrap.narrow{max-width:880px}.rolebox{border-left:2px solid var(--signal);max-width:var(--measure);margin:0 0 30px;padding:2px 0 2px 22px}.rolebox h2{font-family:var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--faint);margin-bottom:8px;font-size:12px;font-weight:500}.rolebox p{color:var(--bone);font-size:1.04rem;line-height:1.6}.subhead{font-family:var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--faint);margin-bottom:16px;font-size:12px;font-weight:500}.cardrow{gap:14px;display:grid}@media (min-width:720px){.cardrow{grid-template-columns:repeat(3,1fr)}}.minicard{border:1px solid var(--rule);padding:20px 18px 22px}.minicard h3{margin-bottom:9px;font-size:1.02rem}.minicard p{color:var(--mute);margin:0;font-size:.95rem;line-height:1.55}.decisionlist{max-width:var(--measure);margin:0;padding:0;list-style:none}.decisionlist li{border-top:1px solid var(--rule);color:var(--mute);padding:12px 0 12px 24px;position:relative}.decisionlist li:last-child{border-bottom:1px solid var(--rule)}.decisionlist li:before{content:"";background:var(--signal);width:8px;height:1px;position:absolute;top:1.28em;left:0}.subview .what{color:var(--bone);margin-bottom:.7em;font-size:1.02rem}.subview .why,.subview .sowhat{color:var(--mute);max-width:var(--measure)}.subview .sowhat{border-left:1px solid var(--rule-hi);margin-top:1.1em;padding-left:18px}.techdetail{border-top:1px solid var(--rule);margin-top:40px;padding-top:20px}.techdetail summary{cursor:pointer;font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mute);transition:color var(--t);padding:8px 0;font-size:12px;list-style:none}.techdetail summary::-webkit-details-marker{display:none}.techdetail summary:before{content:"+ ";color:var(--signal)}.techdetail[open] summary:before{content:"−"}.techdetail summary:hover{color:var(--signal)}.spine{padding-left:26px;position:relative}.spine:before{content:"";background:var(--rule-hi);width:1px;position:absolute;top:10px;bottom:14px;left:4px}.employer{margin-bottom:12px}.employer-head{flex-wrap:wrap;align-items:baseline;gap:6px 14px;padding-top:26px;display:flex;position:relative}.employer:first-child .employer-head{padding-top:0}.employer-head:before{content:"";border:1px solid var(--rule-hi);background:var(--ink);border-radius:50%;width:9px;height:9px;position:absolute;top:32px;left:-26px}.employer:first-child .employer-head:before{top:6px}.employer-head h3{font-size:1.12rem}.employer-head .place{font-family:var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--faint);font-size:12px}.spine .role{border-top:0;padding:18px 0 10px;position:relative}.spine .role:before{content:"";background:var(--rule-hi);width:5px;height:5px;transition:background var(--t) var(--ease), box-shadow var(--t) var(--ease);border-radius:50%;position:absolute;top:26px;left:-26px}.spine .role.in-view:before{background:var(--signal);box-shadow:0 0 0 3px var(--signal-dim)}.spine .role h4{margin:8px 0 0;font-size:1.02rem}.spine .role .when{font-family:var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--signal);font-size:12px}@media (prefers-reduced-motion:reduce){.spine .role:before{transition:none}}.schools{gap:30px;display:grid}@media (min-width:820px){.schools{grid-template-columns:repeat(2,1fr);gap:40px}}.school-head h3{font-size:1.08rem}.school-head .unit,.school-head .place{color:var(--mute);margin:4px 0 0;font-size:.95rem}.school-head .place{font-family:var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--faint);font-size:12px}.school-head .distinction{font-family:var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--signal);border-bottom:1px solid var(--signal-dim);margin-top:10px;padding-bottom:3px;font-size:12px;display:inline-block}.degrees{margin:18px 0 0;padding:0;list-style:none}.degrees li{border-top:1px solid var(--rule);padding:12px 0}.degrees .d-name{color:var(--bone);display:block}.degrees .d-meta{font-family:var(--mono);letter-spacing:.06em;color:var(--faint);margin-top:3px;font-size:12px;display:block}.skillrow{gap:26px;display:grid}@media (min-width:720px){.skillrow{grid-template-columns:repeat(3,1fr);gap:34px}}.skillgroup h3{font-family:var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--signal);border-bottom:1px solid var(--rule);padding-bottom:12px;font-size:12px;font-weight:500}.skillgroup ul{margin:0;padding:0;list-style:none}.skillgroup li{color:var(--mute);border-bottom:1px solid var(--rule);padding:9px 0}.evidencelist{margin:0;padding:0;list-style:none}.evidencelist li{border-top:1px solid var(--rule);gap:4px 24px;padding:14px 0;display:grid}@media (min-width:660px){.evidencelist li{grid-template-columns:minmax(0,260px) minmax(0,1fr);align-items:baseline}}.evidencelist li:last-child{border-bottom:1px solid var(--rule)}.evidencelist .area{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-size:12px}.evidencelist a{color:var(--bone);transition:color var(--t)}.evidencelist a:hover{color:var(--signal)}.evidencelist a .arw{transition:transform var(--t) var(--ease);display:inline-block}.evidencelist a:hover .arw{transform:translate(3px)}.awardlist li{transition:border-color var(--t)}.awardlist .o{display:block}@media print{.spine{padding-left:0}.spine:before,.employer-head:before,.spine .role:before{display:none}}.maptouch{border:1px solid var(--rule);background:var(--wash);padding:14px 12px}.mt-grid{grid-template-columns:minmax(0,1fr) repeat(5,minmax(34px,46px));display:grid}.mt-col{min-height:118px;color:var(--faint);transition:color var(--t);flex-direction:column;justify-content:flex-end;align-items:center;padding:0 0 10px;display:flex}.mt-col span{writing-mode:vertical-rl;font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;font-size:12px;transform:rotate(180deg)}.mt-col.on{color:var(--signal)}.mt-row{border-top:1px solid var(--rule);min-height:48px;font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;text-align:left;color:var(--mute);transition:color var(--t);align-items:center;padding:0 8px 0 12px;font-size:12px;display:flex;position:relative}.mt-row:before{content:"";width:2px;transition:background var(--t);background:0 0;position:absolute;top:12px;bottom:12px;left:0}.mt-row.on{color:var(--bone)}.mt-row.on:before{background:var(--signal)}.mt-cell{border-top:1px solid var(--rule);justify-content:center;align-items:center;display:flex;position:relative}.mt-cell:before,.mt-cell:after{content:"";background:var(--rule);transition:background var(--t);position:absolute}.mt-cell:before{width:1px;top:0;bottom:0;left:50%}.mt-cell:after{height:1px;top:50%;left:0;right:0}.mt-cell.c:before,.mt-cell.r:after{background:var(--signal)}.mt-cell i{z-index:1;background:var(--rule-hi);width:7px;height:7px;transition:background var(--t), transform var(--t) var(--ease), opacity var(--t);border-radius:50%;position:relative}.mt-cell.r i,.mt-cell.c i{background:var(--signal);transform:scale(1.45)}.maptouch.has-sel .mt-cell:not(.r):not(.c) i{opacity:.4}.mt-out{border:1px solid var(--rule-hi);font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase;text-align:center;color:var(--mute);grid-column:2/-1;margin-top:10px;padding:7px 6px;font-size:12px}.mt-read{border-top:1px solid var(--rule);min-height:120px;margin-top:14px;padding-top:12px}.mt-read .kind{font-family:var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--signal);font-size:12px}.mt-read h3{margin:6px 0;font-size:1.06rem}.mt-read p{color:var(--mute);margin:0;font-size:.95rem;line-height:1.55}.mt-read .hint{color:var(--faint)}.mt-read .go{margin-top:8px}.mt-read>div{animation:settleIn .3s var(--ease) both}@media (max-width:859px){.sm-rows{gap:8px;display:grid}}.sm-rowhead{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);justify-content:space-between;padding:0 14px 2px;font-size:12px;display:flex}.sm-row{border:1px solid var(--rule-hi);background:var(--ink-raised);text-align:left;min-height:52px;transition:border-color var(--t), background var(--t), opacity var(--t);grid-template-columns:minmax(0,1fr) auto minmax(0,1.3fr);align-items:center;gap:10px;padding:0 14px;display:grid}.sm-a{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--bone);font-size:13px}.sm-arrow{color:var(--faint)}.sm-p{font-family:var(--mono);letter-spacing:.03em;text-align:right;color:var(--mute);font-size:13px}.sm-row.on{border-color:var(--signal);background:var(--signal-wash)}.sm-row.on .sm-a,.sm-row.on .sm-arrow,.sm-row.on .sm-p{color:var(--signal)}.sm-row.dim{opacity:.5}.pstep{text-align:left;width:100%;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;padding:0;display:block}.pstep:after{content:"";position:absolute;inset:-4px 0 0 -26px}.path.has-sel li{opacity:.5}.path.has-sel li.on{opacity:1}.path li.on h4{color:var(--signal)}.path li.on:before{background:var(--signal);border-color:var(--signal);transform:scale(1.25)}.path.has-sel li:last-child:not(.on){opacity:.5}.path.has-sel li:last-child:not(.on):before{background:var(--ink);border-color:var(--rule-hi)}.mckind{font-family:var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--signal);margin-bottom:8px;font-size:12px;display:block}.mclink{font-family:var(--mono);letter-spacing:.05em;color:var(--mute);border-bottom:1px solid var(--rule-hi);transition:color var(--t), border-color var(--t);align-items:center;margin-top:12px;padding-bottom:2px;font-size:12px;display:inline-flex}.mclink:hover{color:var(--signal);border-color:var(--signal)}.platpair{gap:14px;display:grid}@media (min-width:720px){.platpair{grid-template-columns:repeat(2,minmax(0,1fr))}}.platcard{border:1px solid var(--rule);scroll-margin-top:calc(var(--bar) + 20px);padding:20px 20px 18px}.platcard h3{margin-bottom:9px;font-size:1.02rem}.platcard p{color:var(--mute);margin:0;font-size:.95rem;line-height:1.55}.platcard .sourcelinks{margin-top:12px}.aftermap{max-width:var(--measure);border-left:2px solid var(--signal);color:var(--bone);margin:0;padding-left:18px}@media (pointer:coarse){.mclink{min-height:44px}}.cfg{border:1px solid var(--rule);background:var(--wash);margin:30px 0;padding:20px}.cfg-head{flex-wrap:wrap;justify-content:space-between;gap:6px 16px;margin-bottom:16px;display:flex}.cfg-head .mono{color:var(--signal)}.cfg-note{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-size:12px}.cfg-grid{gap:14px;display:grid}@media (min-width:620px){.cfg-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.cfg-field{gap:6px;display:grid}.cfg-field>span{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-size:12px}.cfg-field select{appearance:none;width:100%;min-height:46px;font:inherit;color:var(--bone);border:1px solid var(--rule-hi);background-color:var(--ink);background-image:linear-gradient(45deg, transparent 50%, var(--mute) 50%), linear-gradient(135deg, var(--mute) 50%, transparent 50%);transition:border-color var(--t);background-position:calc(100% - 19px),calc(100% - 14px);background-repeat:no-repeat;background-size:5px 5px;border-radius:0;padding:0 38px 0 12px;font-size:16px}.cfg-field select:hover{border-color:var(--signal)}.cfg-field select:focus-visible{outline:2px solid var(--signal);outline-offset:2px}.cfg-out{border-top:1px solid var(--rule);gap:10px;margin-top:18px;padding-top:14px;display:grid}.cfg-slots{align-items:center;gap:12px;display:flex}.cfg-slots .mono{color:var(--faint)}.cfg-bars{gap:4px;display:flex}.cfg-bars i{border:1px solid var(--rule-hi);width:24px;height:8px;transition:background var(--t), border-color var(--t)}.cfg-bars i.on{background:var(--signal);border-color:var(--signal)}.cfg-rule{min-height:3.2em;color:var(--mute);margin:0;font-size:.95rem;line-height:1.55}.cfg figcaption{margin-top:14px}.hwcover{align-items:start;padding-bottom:20px}.hwprivacy{max-width:46ch;font-family:var(--mono);letter-spacing:.04em;color:var(--faint);margin-top:18px;font-size:12px;line-height:1.6}.hwsec{border-top:1px solid var(--rule);scroll-margin-top:calc(var(--bar) + 12px);align-items:center;gap:22px;padding:44px 0;display:grid}@media (min-width:860px){.hwsec{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:56px;padding:56px 0}.hwsec.flip{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.hwsec.flip .hwfig{order:2}}.hwcat{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--signal);font-size:12px}.hwtext h2{margin:12px 0;font-size:clamp(1.3rem,2.4vw,1.75rem)}.hwdesc{max-width:46ch;color:var(--bone);font-size:1.06rem;line-height:1.6}.hwdetail{max-width:52ch;font-family:var(--mono);letter-spacing:.04em;color:var(--faint);margin-top:14px;font-size:12px;line-height:1.65}.hwfig{width:100%;margin:0 auto}.hwframe{position:relative}.hwlabels{pointer-events:none;margin:0;padding:0;list-style:none;position:absolute;inset:0}.hwlabels li{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;color:var(--on-signal);background:var(--signal);opacity:0;transition:opacity var(--t) var(--ease);padding:4px 8px;font-size:12px;position:absolute;transform:translate(-50%,-50%)}.hwfig.labels-on .hwlabels li{opacity:1}@media (hover:hover){.hwframe:hover .hwlabels li{opacity:1}}.hwtoggle{min-height:44px;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mute);transition:color var(--t);align-items:center;margin-top:6px;font-size:12px;display:inline-flex}.hwtoggle:before{content:"+";color:var(--signal);margin-right:8px}.hwtoggle[aria-pressed=true]{color:var(--signal)}.hwtoggle[aria-pressed=true]:before{content:"−"}.hwteaser{align-items:center}.figlink{margin-top:8px;display:inline-flex}.hwfig.inspect .hwframe{touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.hwlens{pointer-events:none;transform:translate(var(--lx,50%), var(--ly,50%));mix-blend-mode:screen;opacity:0;transition:opacity .24s var(--ease);position:absolute;inset:0}.hwlens>span{aspect-ratio:1;background:radial-gradient(closest-side,#e2a03f4d,#e2a03f1f 55%,#e2a03f00);border-radius:50%;width:clamp(160px,42%,240px);position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.hwframe[data-inspecting] .hwlens,.hwframe[data-selected] .hwlens{opacity:1}.hwpins{pointer-events:none;margin:0;padding:0;list-style:none;position:absolute;inset:0}.hwpins li{--near:0;width:0;height:0;position:absolute}.hwdot{background:var(--signal);opacity:.9;border-radius:50%;width:8px;height:8px;transition:opacity .18s linear;position:absolute;top:-4px;left:-4px;box-shadow:0 0 0 2px #0b0d0f80}.hwtag{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;color:#f0b256;opacity:0;background:#0b0d0fad;padding:4px 8px;font-size:12px;transition:opacity .14s linear;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.hwtag:after{content:attr(data-label);color:var(--on-signal);background:var(--signal);opacity:var(--near);padding:4px 8px;transition:opacity .14s linear;position:absolute;inset:0}.hwtag:before{content:"";border:1px solid var(--signal);opacity:0;transition:opacity .14s linear;position:absolute;inset:-4px}.hwframe[data-inspecting] .hwdot{opacity:0}.hwframe[data-inspecting] .hwtag{opacity:1}.hwfig.inspect.labels-on .hwdot{opacity:0}.hwfig.inspect.labels-on .hwtag,.hwfig.inspect.labels-on .hwtag:after{opacity:1}.hwfig.inspect.labels-on .hwframe[data-inspecting] .hwtag:before{opacity:calc((var(--near) - .5) * 2)}.hwpins li.sel .hwdot{opacity:0}.hwpins li.sel .hwtag,.hwpins li.sel .hwtag:after,.hwpins li.sel .hwtag:before{opacity:1}.hwcue{display:none}@media (hover:none){.hwcue{font-family:var(--mono);letter-spacing:.04em;color:var(--faint);margin-left:14px;font-size:12px;display:inline-block}}@media print{.hwtoggle,.hwlabels,.hwpins,.hwlens,.hwcue,.cfg-out{display:none}}.hwintro{max-width:52ch;color:var(--mute)}@media (prefers-reduced-motion:no-preference){@keyframes mt-lit{0%{opacity:.25;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes mt-cross{0%{transform:scale(.6)}60%{transform:scale(1.35)}to{transform:scale(1)}}.maptouch .mt-cell.r:after,.maptouch .mt-cell.c:before{animation:mt-lit .24s var(--ease) both}.maptouch .mt-cell.r.c:after{animation:mt-cross .34s var(--ease) .1s both}.maptouch .mt-cell:nth-child(2):after{animation-delay:20ms}.maptouch .mt-cell:nth-child(3):after{animation-delay:60ms}.maptouch .mt-cell:nth-child(4):after{animation-delay:.1s}.maptouch .mt-cell:nth-child(5):after{animation-delay:.14s}.maptouch .mt-cell:nth-child(6):after{animation-delay:.18s}@keyframes sm-draw{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.sm-row.on .sm-arrow{animation:sm-draw .3s var(--ease) both}.sm-row.on .sm-p{animation:sm-draw .34s var(--ease) 60ms both}@keyframes step-lit{0%{transform:scale(1)}45%{transform:scale(1.7)}to{transform:scale(1.25)}}.path li.on:before{animation:step-lit .36s var(--ease) both}@keyframes label-in{0%{opacity:0;scale:.92}to{opacity:1;scale:1}}.hwfig.labels-on .hwlabels li{animation:label-in .26s var(--ease) both}.hwfig.labels-on .hwlabels li:nth-child(2){animation-delay:50ms}.hwfig.labels-on .hwlabels li:nth-child(3){animation-delay:.1s}.hwfig.labels-on .hwlabels li:nth-child(4){animation-delay:.15s}@keyframes pin-in{0%{opacity:0;scale:.92}}.hwfig.inspect.labels-on .hwtag,.hwpins li.sel .hwtag{animation:pin-in .26s var(--ease) backwards}.hwfig.inspect.labels-on .hwpins li:nth-child(2) .hwtag{animation-delay:50ms}.hwfig.inspect.labels-on .hwpins li:nth-child(3) .hwtag{animation-delay:.1s}.hwfig.inspect.labels-on .hwpins li:nth-child(4) .hwtag{animation-delay:.15s}@keyframes voice-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.vfeature blockquote{animation:voice-in .24s var(--ease) both}}
