@charset "UTF-8";
:root{--paper:#f6f4ed;--white:#fffef9;--ink:#163a34;--body:#42534d;--muted:#69766e;--line:#d5dacf;--accent:#d75b3f;--soft:#e8ecdf;--dark:#153c36;--serif:"Iowan Old Style","Palatino Linotype","Book Antiqua",Georgia,serif;--sans:Inter,"Helvetica Neue",Arial,sans-serif;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:36px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%;display:block}p{line-height:1.75}h1,h2,h3,h4,p{margin-top:0}h1,h2{font-weight:500;letter-spacing:-.055em}h1 em,h2 em{font-family:var(--serif);font-weight:400;letter-spacing:-.05em}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:5px}::selection{background:#d5e0bd;color:var(--ink)}.container{width:min(1280px,calc(100% - 112px));margin-inline:auto}.skip-link{position:absolute;top:-100px;left:20px;padding:14px;background:var(--ink);color:white;z-index:10}.skip-link:focus{top:10px}.site-header{border-bottom:1px solid var(--line)}.header-inner{height:110px;display:flex;align-items:center;justify-content:space-between;gap:30px}.wordmark{display:flex;align-items:center;gap:15px}.monogram{font-size:36px;letter-spacing:-.1em;font-weight:800;padding-right:4px}.monogram span,.footer-name span{color:var(--accent)}.wordmark-name{font-size:14px;font-weight:600;line-height:1.35}.wordmark-name>span{display:block;font-size:14px;font-weight:400;color:var(--muted);margin-top:4px}.site-header nav{display:flex;gap:35px;font-size:14px}.site-header nav a{padding:15px 0}.site-header nav a:hover,.text-link:hover,.footer-links a:hover{text-decoration:underline;text-underline-offset:5px}.header-contact{font-size:14px;padding:13px 0 13px 18px;border-left:1px solid var(--line)}.header-contact>span{margin-left:22px}.hero{display:grid;grid-template-columns:1.3fr .8fr;gap:7%;align-items:center;padding-top:85px;padding-bottom:70px}.eyebrow{font-family:var(--mono);font-size:14px;letter-spacing:.13em;text-transform:uppercase;line-height:1.7;font-weight:500;margin-bottom:26px}.small-line{display:inline-block;width:22px;height:2px;background:var(--accent);vertical-align:middle;margin-right:10px}.hero h1{font-size:clamp(54px,5.9vw,86px);line-height:1.02;margin-bottom:29px}.hero h1 em{color:#677455}.hero-intro{font-size:17px;line-height:1.8;max-width:560px;color:var(--body);margin-bottom:30px}.hero-intro strong{color:var(--ink);font-weight:600}.hero-actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;padding:19px 23px;border:1px solid var(--ink);font-size:14px;line-height:1.3;min-height:54px}.button-dark{background:var(--dark);color:var(--paper);transition:background .2s,transform .2s}.button-dark:hover{background:#255349;transform:translateY(-2px)}.text-link{font-size:14px;font-weight:500;display:inline-flex;align-items:center;gap:20px;min-height:32px}.hero-location{font-family:var(--mono);font-size:14px;color:var(--muted);margin-top:47px;margin-bottom:0;line-height:1.8}.location-icon{font-size:20px;vertical-align:-2px;margin-right:5px}.hero-dot{margin:0 10px;color:#a8b1a2}.hero-visual{max-width:407px;width:100%;justify-self:end}.portrait-label{display:flex;justify-content:space-between;font-family:var(--mono);font-size:14px;letter-spacing:.08em;margin-bottom:12px;color:var(--muted);gap:10px}.portrait-frame{position:relative;padding:17px;background:#e6e8db;border:1px solid #d4d9c8}.portrait-frame>img{width:100%;aspect-ratio:1;object-fit:cover;filter:contrast(.97)}.portrait-caption{position:absolute;bottom:32px;left:-30px;display:flex;align-items:center;gap:16px;padding:17px 23px;background:var(--dark);color:var(--paper);box-shadow:0 10px 25px #153c3612}.caption-mark{color:#cdd4aa;font-size:30px;line-height:1}.portrait-caption>div{font-size:14px;font-weight:500}.portrait-caption small{display:block;font-family:var(--mono);font-size:14px;font-weight:400;color:#c5cfb9;margin-top:6px}.hero-note{display:flex;align-items:center;justify-content:flex-end;gap:18px;margin-top:22px;padding-right:16px}.hero-note p{font-family:var(--mono);font-size:14px;color:var(--muted);line-height:1.6;margin:0}.note-bracket{font-family:var(--serif);font-size:51px;font-weight:300;color:#aab59b}.expertise-strip{border-block:1px solid var(--line)}.expertise-inner{display:flex;align-items:center;gap:32px;min-height:73px}.strip-label{font-family:var(--mono);font-size:14px;letter-spacing:.1em;white-space:nowrap;color:var(--muted)}.expertise-inner>div{display:flex;gap:30px;justify-content:space-between;flex:1;flex-wrap:wrap;padding:22px 0}.expertise-inner>div span{font-size:14px;font-weight:500;white-space:nowrap}.section{padding-top:100px;padding-bottom:95px}.section-heading{display:grid;grid-template-columns:1fr .55fr;align-items:end;gap:10%;margin-bottom:45px}.section-heading h2,.policy-copy h2{font-size:clamp(39px,4.2vw,58px);line-height:1.07;margin:0}.section-heading>p{color:var(--body);font-size:14px;line-height:1.8;margin:0 0 4px;max-width:350px}.section-heading .eyebrow{margin-bottom:18px}.practice-grid{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--line)}.practice-item{position:relative;padding:33px 30px 28px 0}.practice-item+article{border-left:1px solid var(--line);padding-left:30px}.practice-icon{display:block;font-size:34px;font-family:var(--mono);line-height:1;margin-bottom:45px;color:#6d7956}.practice-index{position:absolute;right:29px;top:38px;font-family:var(--mono);font-size:14px;color:var(--muted)}.practice-item h3{font-size:21px;letter-spacing:-.04em;font-weight:500;margin-bottom:16px}.practice-item p{color:var(--body);font-size:14px;line-height:1.85;max-width:330px;margin-bottom:24px}.practice-tech{font-family:var(--mono);font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.project-heading{display:flex;align-items:center;justify-content:space-between;margin-top:50px;margin-bottom:20px;gap:20px}.project-heading h3{font-size:15px;font-weight:500;margin:0}.project-heading .text-link{font-size:14px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.project-card{background:var(--soft);padding:28px 29px 25px;border:1px solid transparent;transition:border .2s,transform .2s}.project-card:hover{border-color:#aab59b;transform:translateY(-3px)}.project-kicker{display:flex;justify-content:space-between;font-family:var(--mono);font-size:14px;letter-spacing:.08em;color:var(--muted);margin-bottom:27px}.project-kicker span{font-family:var(--sans);font-size:20px;line-height:1}.project-card h4{font-size:28px;letter-spacing:-.045em;font-weight:500;margin-bottom:12px}.project-card p{font-size:14px;line-height:1.8;color:var(--body);max-width:440px;margin-bottom:24px}.project-stack{font-family:var(--mono);font-size:14px;color:#64714f}.source-note{font-size:14px;line-height:1.8;color:var(--muted);margin-top:14px;max-width:630px}.policy-section{background:var(--dark);color:var(--paper);padding:80px 0}.policy-grid{display:grid;grid-template-columns:.85fr 1fr;gap:12%;align-items:center}.policy-copy .eyebrow{color:#becda9;margin-bottom:20px}.policy-copy h2{margin-bottom:26px}.policy-copy h2 em{color:#cad3ad}.policy-copy p:not(.eyebrow){font-size:14px;color:#d0d8c9;line-height:1.8;max-width:410px}.policy-copy code{font-family:var(--mono);font-size:14px;color:#f0f0d4}.policy-copy .text-link{margin-top:12px}.policy-console{background:#102e29;border:1px solid #517066;box-shadow:12px 12px 0 #0f302a}.console-top{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid #35534a;color:#a2b5a9;font-family:var(--mono);font-size:14px;letter-spacing:.02em}.console-top>span:first-child{display:flex;gap:6px}.console-top i{width:5px;height:5px;border-radius:50%;background:#779580;display:block}.policy-tabs{display:flex;border-bottom:1px solid #35534a;padding:0 12px;gap:8px}.policy-tabs button{background:none;border:0;border-bottom:2px solid transparent;color:#aabcac;font-family:var(--mono);font-size:14px;padding:17px 10px;cursor:pointer;min-height:46px}.policy-tabs button.active{color:#f5f3df;border-color:#ced7a4}.policy-tabs button:hover{color:white}.console-content{padding:27px 24px 16px}.console-label{font-family:var(--mono);font-size:14px;letter-spacing:.12em;color:#8fa69a}.console-identity{font-family:var(--mono);font-size:14px;overflow-wrap:anywhere;color:#d2ddc7;margin:9px 0 23px}.console-content pre{font-family:var(--mono);font-size:14px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;color:#e4e9d4;margin:10px 0 25px}.policy-result{display:flex;align-items:flex-start;gap:18px;min-height:62px;padding-top:18px;border-top:1px dashed #476052}.policy-result>span{font-family:var(--mono);font-size:20px;line-height:1.4}.status-allowed{color:#d2df9e}.status-denied{color:#f2a28a}.policy-result>p{font-size:14px;line-height:1.7;color:#b5c7b9;margin:2px 0 0;max-width:290px}.console-footnote{font-family:var(--mono);font-size:14px;color:#8da194;margin:0;padding:9px 24px 17px}.writing-heading{margin-bottom:38px}.articles-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.article-card{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);padding:26px 25px 21px;transition:transform .2s,border-color .2s}.article-card:hover{transform:translateY(-3px);border-color:#98a78a}.article-card-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:39px}.article-number{font-family:var(--mono);font-size:14px;color:var(--muted)}.tag{border:1px solid #d9dfd0;font-family:var(--mono);font-size:14px;letter-spacing:.04em;padding:6px 8px;text-transform:uppercase;color:#5d6b50;max-width:85%;line-height:1.4}.article-card h3{font-size:24px;font-weight:500;letter-spacing:-.045em;line-height:1.23;margin-bottom:17px}.article-card h3 a:hover{text-decoration:underline;text-underline-offset:4px}.article-card>p{font-size:14px;line-height:1.8;color:var(--body);margin-bottom:30px}.article-card-bottom{margin-top:auto;border-top:1px solid var(--line);padding-top:19px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px}.article-card-bottom>span{color:var(--muted);font-family:var(--mono);font-size:14px}.article-card-bottom>a{display:flex;gap:13px;align-items:center}.article-card-bottom>a:hover{text-decoration:underline}.article-card-bottom>a>span{font-size:18px}.about-section{background:#e8ecdf;border-block:1px solid #d5dbc9;padding:85px 0}.about-grid{display:grid;grid-template-columns:.7fr 1fr;gap:15%}.about-grid h2{font-size:clamp(44px,4.7vw,64px);line-height:1.03;margin-bottom:32px}.about-grid h2 em{color:#6b7858}.about-copy{padding-top:3px}.about-copy p{color:var(--body);font-size:14px;line-height:1.8}.about-copy .about-lead{font-size:21px;color:var(--ink);line-height:1.5;letter-spacing:-.02em;margin-bottom:20px}.career-list{border-top:1px solid #cbd2bd;margin-top:29px}.career-list>div{display:grid;grid-template-columns:115px 1fr;gap:20px;border-bottom:1px solid #cbd2bd;padding:17px 0}.career-list>div>span{font-family:var(--mono);font-size:14px;color:#69735d;margin-top:3px;line-height:1.8}.career-list p{font-size:14px;margin:0;line-height:1.6}.career-list strong{font-weight:500;color:var(--ink)}.career-list small{display:block;font-size:14px;color:#5b6756;margin-top:3px}.about-copy .source-note{font-size:14px}.contact-section{text-align:center;padding-top:91px;padding-bottom:91px}.contact-section h2{font-size:clamp(42px,5.1vw,68px);line-height:1.05;margin-bottom:30px}.contact-section .eyebrow{margin-bottom:21px}.site-footer{background:#112f2b;color:var(--paper);padding-top:50px}.footer-top{display:flex;justify-content:space-between;gap:30px;padding-bottom:45px}.footer-name{font-size:28px;letter-spacing:-.05em}.footer-top p{font-size:14px;color:#b4c5b6;margin:15px 0 0;line-height:1.8}.footer-links{display:flex;gap:34px;font-size:14px;align-items:flex-start;padding-top:8px}.footer-links a{display:flex;gap:18px;align-items:center}.footer-bottom{border-top:1px solid #345047;display:flex;justify-content:space-between;gap:20px;padding-top:21px;padding-bottom:23px;font-family:var(--mono);font-size:14px;color:#aabdad}.footer-bottom a{color:#d6e0ce}.article-back{padding-top:40px}.article-back .text-link{font-size:14px;color:var(--muted)}.article-header{max-width:1010px;padding-top:37px;padding-bottom:48px}.article-header .eyebrow{color:#65734e;margin-bottom:22px}.article-header h1{font-size:clamp(43px,5.2vw,69px);line-height:1.04;max-width:950px;margin-bottom:26px}.article-dek{font-size:19px;line-height:1.65;color:var(--body);max-width:800px;margin-bottom:26px}.article-byline{display:flex;gap:13px;align-items:center}.article-byline img{border-radius:50%;object-fit:cover}.article-byline strong{font-size:14px;font-weight:500;display:block;margin-bottom:5px}.article-byline>div>span{font-size:14px;color:var(--muted)}.article-layout{display:grid;grid-template-columns:230px minmax(0,780px);gap:75px;justify-content:center;border-top:1px solid var(--line);padding-top:45px}.article-aside{align-self:start;position:sticky;top:30px}.article-aside .eyebrow{font-size:14px;margin-bottom:18px}.article-aside ol{padding-left:17px;font-size:14px;line-height:1.6;margin:0;color:var(--muted)}.article-aside li{padding-left:6px;margin-bottom:15px}.article-aside a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:4px}.aside-source{font-size:14px;display:block;margin-top:28px;border-top:1px solid var(--line);padding-top:20px}.article-body{min-width:0;padding-bottom:25px;color:#34463e}.article-body>p:first-child{font-size:18px;line-height:1.8;color:var(--ink)}.article-body p,.article-body li{font-size:16px;line-height:1.85}.article-body h2{font-family:var(--sans);font-size:28px;line-height:1.25;letter-spacing:-.04em;font-weight:500;color:var(--ink);margin-top:44px;margin-bottom:18px;scroll-margin-top:30px}.article-body h3{font-size:20px;font-weight:500;margin-top:30px}.article-body a{color:#2b6b59;text-decoration:underline;text-decoration-color:#a6b796;text-underline-offset:4px;overflow-wrap:anywhere}.article-body a:hover{text-decoration-color:var(--ink)}.article-body ul,.article-body ol{padding-left:24px}.article-body li{padding-left:4px;margin-bottom:10px}.article-body :not(pre)>code{font-family:var(--mono);font-size:.82em;padding:2px 5px;background:#e6e9dd;border-radius:3px;overflow-wrap:anywhere;color:#1a4b3e}.article-body pre{background:#173a32;color:#e4ebd6;padding:26px;overflow-x:auto;font-family:var(--mono);font-size:14px;line-height:1.85;border-left:3px solid #97a77a;margin:25px 0;tab-size:2}.article-body pre code{font:inherit;white-space:pre}.article-body blockquote{border-left:2px solid var(--accent);padding:3px 0 3px 24px;margin:25px 0;color:#667057}.article-sources{margin-top:40px;border-top:1px solid var(--line);padding-top:5px}.article-sources h2{font-size:23px;margin-top:28px}.article-sources p,.article-sources li{font-size:14px;line-height:1.9}.author-note{margin-top:36px;background:#e6eadc;padding:25px;display:flex;gap:18px}.author-note img{width:64px;height:64px;object-fit:cover;border-radius:50%}.author-note>div{flex:1}.author-note strong{font-weight:500;font-size:14px}.author-note p{font-size:14px;margin:7px 0;line-height:1.7}.author-note a{font-size:14px}.more-notes{padding-top:50px;padding-bottom:90px;border-top:1px solid var(--line);margin-top:35px}.more-notes-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;max-width:900px;margin-left:auto}.more-notes>.eyebrow{max-width:900px;margin-left:auto}.more-notes .article-card h3{max-width:340px}.more-notes .article-card-top{margin-bottom:25px}
@media(min-width:1600px){.hero{padding-top:105px;padding-bottom:90px}.hero h1{font-size:90px}}
@media(max-width:1100px){.container{width:calc(100% - 72px)}.hero{gap:6%;grid-template-columns:1.2fr .8fr}.hero h1{font-size:62px}.hero-intro{font-size:15px}.hero-actions{gap:20px}.hero-actions .text-link{font-size:14px}.hero-visual{max-width:350px}.portrait-caption{left:-15px}.expertise-inner{gap:22px}.expertise-inner>div{justify-content:flex-start;gap:18px 25px}.section-heading{grid-template-columns:1fr .7fr;gap:8%}.policy-grid{gap:7%;grid-template-columns:.8fr 1fr}.policy-tabs{gap:0;padding:0 8px}.policy-tabs button{font-size:14px;padding-inline:8px}.article-card{padding:23px 20px 20px}.article-card h3{font-size:21px}.article-card-bottom{font-size:14px;flex-wrap:wrap}.about-grid{gap:10%}.article-layout{grid-template-columns:185px minmax(0,1fr);gap:45px}.article-header{max-width:900px}.footer-links{gap:25px}}
@media(max-width:780px){.container{width:calc(100% - 40px)}.header-inner{height:85px;gap:20px}.wordmark-name{display:none}.monogram{font-size:32px}.site-header nav{gap:22px;font-size:14px}.header-contact{font-size:14px;padding-left:13px}.header-contact>span{margin-left:12px}.hero{grid-template-columns:1fr 1fr;align-items:start;gap:25px;padding-top:52px;padding-bottom:47px}.hero h1{font-size:49px}.hero .eyebrow{font-size:14px;margin-bottom:20px}.hero-intro{font-size:14px;line-height:1.85}.hero-actions .button{font-size:14px;padding:16px 17px;gap:20px}.hero-actions{gap:16px}.hero-location{font-size:14px;margin-top:28px}.hero-dot{margin:0 5px}.portrait-frame{padding:10px;margin-top:4px}.portrait-label{font-size:14px;line-height:1.6}.portrait-caption{bottom:23px;left:-13px;padding:12px 15px;gap:10px}.portrait-caption>div{font-size:14px}.portrait-caption small{font-size:14px}.caption-mark{font-size:25px}.hero-note{gap:10px;padding-right:0}.hero-note p{font-size:14px}.note-bracket{font-size:42px}.expertise-inner{align-items:flex-start;gap:15px;padding-top:20px;padding-bottom:20px}.strip-label{font-size:14px;padding-top:3px}.expertise-inner>div{padding:0;gap:13px 19px}.expertise-inner>div span{font-size:14px}.section{padding-top:65px;padding-bottom:65px}.section-heading{grid-template-columns:1fr;gap:20px;margin-bottom:30px}.section-heading h2,.policy-copy h2{font-size:43px}.section-heading>p{max-width:470px;font-size:14px}.practice-item{padding:25px 20px 24px 0}.practice-item+article{padding-left:20px}.practice-icon{font-size:28px;margin-bottom:32px}.practice-index{top:30px;right:16px;font-size:14px}.practice-item h3{font-size:17px}.practice-item p{font-size:14px}.practice-tech{font-size:14px;line-height:1.7;display:block}.project-heading{margin-top:34px}.project-heading h3{font-size:14px}.project-heading .text-link{font-size:14px;gap:10px}.project-card{padding:22px}.project-card h4{font-size:24px}.project-kicker{font-size:14px;margin-bottom:22px}.project-card p{font-size:14px}.project-stack{font-size:14px}.policy-section{padding:60px 0}.policy-grid{gap:35px;grid-template-columns:1fr}.policy-copy>p:not(.eyebrow){font-size:14px;max-width:550px}.policy-copy .text-link{font-size:14px}.policy-console{max-width:600px;width:100%}.console-top{font-size:14px}.policy-tabs{gap:15px;padding-inline:15px}.policy-tabs button{font-size:14px}.console-content{padding:25px}.console-identity{font-size:14px}.console-content pre{font-size:14px}.console-label{font-size:14px}.policy-result>p{font-size:14px;max-width:none}.articles-grid{gap:14px}.article-card{padding:20px 17px}.article-card h3{font-size:20px}.article-card>p{font-size:14px}.article-card-top{gap:8px;margin-bottom:26px;align-items:flex-start}.tag{font-size:14px;padding:5px}.article-number{font-size:14px;padding-top:5px}.article-card-bottom>a{font-size:14px;gap:9px}.about-section{padding:60px 0}.about-grid{grid-template-columns:1fr;gap:30px}.about-grid h2{font-size:52px;margin-bottom:24px}.about-copy .about-lead{font-size:20px}.about-copy p{font-size:14px}.career-list>div{grid-template-columns:110px 1fr;gap:20px}.contact-section{padding-block:65px}.contact-section h2{font-size:49px}.footer-top{padding-bottom:35px}.footer-links{gap:20px;font-size:14px}.footer-links a{gap:10px}.footer-bottom{font-size:14px;gap:15px;flex-wrap:wrap}.article-header{padding-top:25px;padding-bottom:35px}.article-header h1{font-size:49px}.article-dek{font-size:16px}.article-layout{grid-template-columns:1fr;gap:28px;padding-top:30px}.article-aside{position:static;border-bottom:1px solid var(--line);padding-bottom:14px}.article-aside ol{display:flex;flex-wrap:wrap;gap:10px 28px;font-size:14px}.article-aside li{margin-bottom:5px;padding-left:0}.article-aside .eyebrow{margin-bottom:12px}.aside-source{display:none}.article-body p,.article-body li{font-size:15px}.article-body>p:first-child{font-size:17px}.article-body pre{font-size:14px;padding:21px}.more-notes{padding-bottom:60px}.more-notes-grid{max-width:none}}
@media(max-width:540px){.header-inner{height:77px;gap:15px}.site-header nav{gap:19px;font-size:14px}.header-contact{font-size:14px}.header-contact>span{margin-left:8px}.hero{grid-template-columns:1fr;padding-top:42px;gap:35px}.hero h1{font-size:59px;line-height:1.01;margin-bottom:25px}.hero .eyebrow{font-size:14px}.hero-intro{font-size:14px;line-height:1.8;max-width:100%}.hero-actions{gap:24px}.hero-actions .button{font-size:14px;padding:17px 19px}.hero-actions .text-link{font-size:14px;gap:10px}.hero-location{font-size:14px;margin-top:27px}.hero-visual{justify-self:start;max-width:none;width:100%;display:grid;grid-template-columns:1fr .44fr;gap:18px;align-items:center}.portrait-label{display:none}.portrait-frame{margin:0;padding:8px;min-width:0}.portrait-caption{bottom:20px;left:14px;padding:10px 12px;gap:8px}.portrait-caption>div{font-size:14px}.portrait-caption small{font-size:14px}.caption-mark{font-size:20px}.hero-note{margin:0;justify-content:center;gap:7px;align-items:stretch}.hero-note p{font-size:14px;line-height:1.9;writing-mode:horizontal-tb}.note-bracket{font-size:39px;line-height:1.4}.hero-note .note-bracket:last-child{display:none}.expertise-inner{display:block;padding-block:18px}.strip-label{display:block;margin-bottom:13px}.expertise-inner>div{gap:12px 22px}.expertise-inner>div span{font-size:14px}.section-heading h2,.policy-copy h2{font-size:42px}.eyebrow{font-size:14px}.practice-grid{grid-template-columns:1fr}.practice-item,.practice-item+article{padding:27px 0 24px;border-left:0}.practice-item+article{border-top:1px solid var(--line)}.practice-icon{font-size:30px;margin-bottom:22px}.practice-index{right:3px;top:32px;font-size:14px}.practice-item h3{font-size:22px;margin-bottom:13px}.practice-item p{font-size:14px;max-width:none;margin-bottom:17px}.practice-tech{font-size:14px}.project-heading{align-items:flex-start;gap:10px}.project-heading h3{font-size:14px;max-width:160px;line-height:1.6}.project-heading .text-link{font-size:14px;line-height:1.7;min-height:0;max-width:130px;gap:7px}.project-grid{grid-template-columns:1fr;gap:14px}.project-card{padding:25px}.project-kicker{font-size:14px}.project-card h4{font-size:28px}.project-card p{font-size:14px}.project-stack{font-size:14px}.source-note{font-size:14px}.policy-console{box-shadow:7px 7px 0 #0f302a}.policy-tabs{padding-inline:9px;gap:1px;justify-content:space-between}.policy-tabs button{font-size:14px;padding-inline:7px}.console-content{padding:22px 18px 12px}.console-top{font-size:14px;padding:15px}.console-identity,.console-content pre{font-size:14px}.policy-result{gap:13px}.policy-result>p{font-size:14px}.console-footnote{font-size:14px;padding-inline:18px}.articles-grid{grid-template-columns:1fr;gap:16px}.article-card{padding:25px}.article-card h3{font-size:27px;max-width:320px}.article-card>p{font-size:14px;margin-bottom:25px}.article-card-top{margin-bottom:29px}.tag{font-size:14px;padding:6px 8px}.article-number{font-size:14px}.article-card-bottom{flex-wrap:nowrap;font-size:14px}.article-card-bottom>a{font-size:14px}.article-card-bottom>span{font-size:14px}.about-grid h2{font-size:51px}.career-list>div{grid-template-columns:93px 1fr;gap:15px}.career-list>div>span{font-size:14px}.career-list p{font-size:14px}.career-list small{font-size:14px}.contact-section h2{font-size:43px}.contact-section .eyebrow{font-size:14px}.footer-top{display:block}.footer-name{font-size:28px}.footer-links{margin-top:30px;gap:30px}.footer-links a{font-size:14px}.footer-bottom{gap:15px 20px;line-height:1.7;font-size:14px}.footer-bottom>a{margin-left:auto}.article-back{padding-top:27px}.article-header h1{font-size:40px;line-height:1.08}.article-header .eyebrow{font-size:14px}.article-dek{font-size:15px}.article-aside ol{display:block;font-size:14px}.article-aside li{margin-bottom:9px}.article-body h2{font-size:25px}.article-body p,.article-body li{font-size:14px}.article-body pre{font-size:14px;padding:18px}.article-body .article-sources li{font-size:14px}.author-note{padding:20px;gap:14px}.author-note img{width:44px;height:44px}.author-note p{font-size:14px}.more-notes-grid{grid-template-columns:1fr}.more-notes .article-card h3{font-size:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* Reading sizes stay consistent across viewport sizes. Supporting labels have a 14px floor. */
.community-section { background:#edf1ec; border-block:1px solid #d4ded4; scroll-margin-top:30px; }
.community-grid { display:grid; grid-template-columns:.7fr 1.3fr; gap:65px; align-items:start; }
.community-profile { padding-top:10px; }
.community-tenure { font-family:var(--serif); font-size:5.5rem; line-height:1; letter-spacing:-.05em; display:block; }
.community-tenure > span { display:block; font-family:var(--sans); font-size:1.1875rem; letter-spacing:0; line-height:1.6; margin-top:15px; }
.community-since { font-size:1rem; color:#506255; margin:10px 0 25px; }
.community-profile > p:not(.community-since):not(.community-handle) { font-size:1.125rem; line-height:1.8; color:var(--body); max-width:350px; margin-bottom:25px; }
.community-handle { font-size:.875rem; line-height:1.7; color:#536858; margin:14px 0 0; }
.community-handle strong { font-weight:500; }
.community-answer { background:var(--white); border:1px solid #c4d0c2; padding:35px; box-shadow:0 10px 25px #163a3406; }
.community-answer-top { display:flex; gap:15px; flex-wrap:wrap; justify-content:space-between; align-items:center; }
.community-answer-top .eyebrow { margin:0; }
.community-answer h3 { font-family:var(--serif); font-weight:400; font-size:2.125rem; letter-spacing:-.035em; line-height:1.2; margin:25px 0 18px; }
.community-answer h3 a:hover { text-decoration:underline; text-underline-offset:5px; }
.community-answer > p, .community-response p { font-size:1.125rem; line-height:1.8; color:var(--body); margin:0 0 22px; }
.community-response { padding-top:22px; border-top:1px solid var(--line); }
.community-response h4 { font-size:1.125rem; line-height:1.5; font-weight:600; margin:0 0 9px; }
.community-outcome { display:flex; gap:22px; align-items:center; flex-wrap:wrap; padding:18px 20px; background:#edf3e7; margin:3px 0 24px; font-size:1rem; line-height:1.6; }
.community-outcome strong { font-family:var(--mono); font-size:1.25rem; color:var(--ink); margin-right:6px; }
@media(max-width:900px) {
  .community-grid { grid-template-columns:1fr; gap:35px; }
  .community-profile > p:not(.community-since):not(.community-handle) { max-width:650px; }
}
@media(max-width:540px) {
  .community-tenure { font-size:4.5rem; }
  .community-answer { padding:25px 22px; }
  .community-answer h3 { font-size:1.875rem; }
  .community-answer-top { align-items:flex-start; flex-direction:column; }
  .community-outcome { gap:12px; padding:16px; }
}
.case-heading { margin-top:75px; scroll-margin-top:115px; gap:35px; }
body .case-heading h3 { font-family:var(--serif); font-size:2rem; line-height:1.25; margin:14px 0 0; }
.case-intro { max-width:430px; font-size:1.0625rem; line-height:1.75; color:var(--muted); margin:0; }
.case-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px; margin:28px 0 65px; }
.case-card { padding:32px; border:1px solid #bacabb; border-top:3px solid #59785b; background:#f0f3e9; display:flex; flex-direction:column; align-items:flex-start; }
.case-card-top { display:flex; gap:15px; justify-content:space-between; align-items:center; width:100%; flex-wrap:wrap; }
.case-card-top .eyebrow { margin:0; }
.case-card h4 { font-family:var(--serif); font-size:2.125rem; line-height:1.2; font-weight:400; margin:27px 0 18px; letter-spacing:-.035em; }
.case-card h4 a:hover { text-decoration:underline; text-underline-offset:5px; }
.case-card > p { font-size:1.125rem; line-height:1.75; margin:0 0 22px; color:var(--body); }
.case-stack { display:flex; gap:8px; flex-wrap:wrap; list-style:none; margin:0 0 25px; padding:0; }
.case-stack li { font-size:.875rem; line-height:1.5; background:#fbfcf7; border:1px solid #c7d2c2; padding:6px 10px; border-radius:4px; color:#395444; }
.case-card > .text-link { margin-top:auto; }
.case-header { padding-bottom:35px; }
.case-header .case-stack { justify-content:center; margin:28px 0 16px; }
.case-credit { font-size:1rem; color:var(--muted); line-height:1.7; }
.case-diagram-wrap { margin-bottom:65px; }
.case-figure .diagram-canvas img { min-width:1050px; }
@media(max-width:780px) {
  .case-grid { grid-template-columns:1fr; }
  .case-card { padding:27px 24px; }
  .case-card h4 { font-size:1.875rem; }
  .case-heading { align-items:flex-start; flex-direction:column; }
  .case-diagram-wrap { margin-bottom:40px; }
  .case-header .case-stack { justify-content:flex-start; }
}
:root { --muted:#55665a; }
body { font-size:1.125rem; }
body .wordmark-name { font-size:1rem; }
body .wordmark-name > span { font-size:.875rem; }
body .site-header nav { font-size:1rem; gap:26px; }
body .header-contact { font-size:1rem; }
body .eyebrow, body .hero .eyebrow, body .article-header .eyebrow { font-size:.875rem; letter-spacing:.075em; }
body .hero-intro { font-size:1.1875rem; line-height:1.75; }
body .button, body .hero-actions .button { font-size:1rem; min-height:56px; }
body .text-link, body .hero-actions .text-link, body .project-heading .text-link { font-size:1rem; line-height:1.6; }
body .hero-location { font-size:.875rem; line-height:1.8; }
body .portrait-label { font-size:.875rem; letter-spacing:.025em; flex-wrap:wrap; }
body .portrait-caption > div { font-size:1.125rem; }
body .portrait-caption small { font-size:.875rem; line-height:1.5; max-width:230px; }
body .hero-note p { font-size:1rem; line-height:1.7; }
body .hero-note { gap:15px; }
body .strip-label { font-size:.875rem; }
body .expertise-inner { gap:26px; }
body .expertise-inner > div { justify-content:flex-start; gap:18px 26px; }
body .expertise-inner > div span { font-size:1rem; }
body .section-heading { grid-template-columns:1fr .78fr; gap:8%; }
body .section-heading > p { font-size:1.125rem; line-height:1.75; max-width:440px; }
body .practice-item p, body .project-card p, body .article-card > p, body .policy-copy p:not(.eyebrow), body .about-copy p { font-size:1.125rem; line-height:1.75; }
body .practice-item h3 { font-size:1.5rem; }
body .practice-tech, body .project-stack { font-size:.875rem; line-height:1.6; letter-spacing:.025em; }
body .practice-index { font-size:.875rem; }
body .project-heading h3 { font-size:1.1875rem; line-height:1.5; }
body .project-heading { align-items:center; }
body .project-kicker { font-size:.875rem; letter-spacing:.025em; line-height:1.5; }
body .project-card h4 { font-size:2rem; }
body .source-note, body .about-copy .source-note { font-size:.875rem; line-height:1.75; }
body .policy-copy code { font-size:1rem; }
body .policy-grid { grid-template-columns:.8fr 1fr; gap:7%; }
body .console-top { font-size:.875rem; line-height:1.5; gap:12px; }
body .policy-tabs { gap:0; padding:0 10px; display:grid; grid-template-columns:1fr 1fr 1.25fr; }
body .policy-tabs button { font-size:.9375rem; line-height:1.45; padding:16px 9px; min-height:60px; }
body .console-label, body .console-footnote { font-size:.875rem; line-height:1.6; }
body .console-identity { font-size:.9375rem; line-height:1.75; }
body .console-content pre { font-size:.9375rem; line-height:1.8; }
body .policy-result > p { font-size:1rem; line-height:1.65; }
body .policy-result { min-height:100px; }
body .policy-result > span { font-size:1.5rem; }
body .article-number, body .tag { font-size:.875rem; }
body .tag { letter-spacing:0; padding:6px 8px; }
body .article-card-top { align-items:flex-start; }
body .article-card h3 { font-size:1.75rem; }
body .article-card-bottom, body .article-card-bottom > a { font-size:1rem; line-height:1.5; }
body .article-card-bottom > span { font-size:.875rem; }
body .article-card-bottom { flex-wrap:wrap; }
body .career-list > div { grid-template-columns:120px 1fr; }
body .career-list > div > span { font-size:.875rem; line-height:1.7; }
body .career-list p { font-size:1.0625rem; }
body .career-list small { font-size:1rem; }
body .about-copy .about-lead { font-size:1.5rem; }
body .footer-top p, body .footer-links a { font-size:1rem; }
body .footer-bottom { font-size:.875rem; line-height:1.65; flex-wrap:wrap; }
body .article-back .text-link { font-size:1rem; }
body .article-byline strong { font-size:1rem; }
body .article-byline > div > span { font-size:.875rem; line-height:1.6; }
body .article-layout { grid-template-columns:220px minmax(0,800px); gap:55px; }
body .article-aside .eyebrow { font-size:.875rem; }
body .article-aside ol, body .aside-source { font-size:1rem; line-height:1.65; }
body .article-body p, body .article-body li { font-size:1.1875rem; line-height:1.8; }
body .article-body > p:first-child { font-size:1.25rem; }
body .article-body pre { font-size:1rem; line-height:1.75; }
body .article-body :not(pre) > code { font-size:.875em; }
body .article-body .article-sources p, body .article-body .article-sources li { font-size:1rem; }
body .author-note strong, body .author-note a, body .author-note p { font-size:1rem; line-height:1.7; }
.menu-toggle { display:none; }
.architecture-section { background:#edf1ec; border-block:1px solid #d4ded4; }
.architecture-intro { font-size:1.125rem; color:var(--body); line-height:1.7; margin:-12px 0 27px; }
.architecture-tabs { display:flex; gap:8px; border-bottom:1px solid #bdcec3; }
.architecture-tabs button { background:transparent; border:0; border-bottom:3px solid transparent; padding:18px 22px; font-size:1rem; font-weight:500; color:#53685c; cursor:pointer; min-height:60px; }
.architecture-tabs button[aria-selected=true] { color:var(--ink); background:#fbfcf8; border-bottom-color:var(--accent); }
.architecture-tabs button:hover { color:var(--ink); background:#f5f8f1; }
.architecture-panel { padding-top:25px; }
.architecture-panel[hidden] { display:none; }
.architecture-figure { margin:0; background:#fff; border:1px solid #d0dbd3; border-radius:9px; overflow:hidden; box-shadow:0 12px 28px #193c2e05; }
.diagram-canvas { overflow-x:auto; overscroll-behavior-x:contain; background:#f9fbfd; }
.diagram-canvas img { width:100%; min-width:1080px; max-width:none; height:auto; }
.architecture-figure figcaption { padding:20px 25px 0; color:#425b4e; font-size:1rem; line-height:1.7; }
.diagram-open { display:inline-flex; align-items:center; gap:18px; font-size:1rem; font-weight:500; margin:14px 25px 22px; text-decoration:underline; text-underline-offset:4px; }
.diagram-open:hover { color:#39724c; }
.diagram-mobile { display:none; }
.architecture-decisions { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:32px; }
.architecture-decisions > div { border-top:1px solid #bfcfc2; padding-top:20px; }
.decision-number { color:#5e745f; font-family:var(--mono); font-size:.875rem; }
.architecture-decisions h3 { font-size:1.25rem; line-height:1.4; font-weight:500; margin:12px 0 10px; letter-spacing:-.025em; }
.architecture-decisions p { font-size:1.0625rem; line-height:1.75; color:#495d50; margin:0; }
.article-diagram { margin:32px 0 40px; }
.article-diagram > .eyebrow { font-size:.875rem; margin-bottom:16px; }
.diagram-article .diagram-canvas { display:none; }
.diagram-article .diagram-mobile { display:grid; }
body .article-body .diagram-mobile p { font-size:1.0625rem; line-height:1.7; margin:8px 0 0; }
body .article-body .diagram-mobile li { font-size:1.125rem; line-height:1.5; }
.diagram-mobile { list-style:none; margin:0; padding:28px; gap:27px; counter-reset:flow; background:linear-gradient(135deg,#f5f9ff,#f8fbf5); }
.diagram-mobile li { position:relative; counter-increment:flow; border:1px solid #c8d7df; border-left:4px solid #5288b3; border-radius:8px; background:#fff; padding:19px 20px 19px 60px; margin:0; box-shadow:0 5px 15px #204c6810; }
.diagram-mobile li::before { content:counter(flow); position:absolute; left:18px; top:20px; font-size:1rem; font-family:var(--mono); font-weight:600; color:#467297; }
.diagram-mobile li:not(:last-child)::after { content:'↓'; position:absolute; bottom:-27px; left:32px; height:26px; line-height:26px; font-size:22px; color:#7393a0; }
.diagram-mobile strong { font-size:1.125rem; line-height:1.5; font-weight:600; color:#244553; }
.diagram-mobile p { font-size:1.0625rem; line-height:1.7; margin:8px 0 0; color:#465e66; }
@media(max-width:1100px) {
  body .article-layout { grid-template-columns:190px minmax(0,1fr); gap:35px; }
  body .article-card { padding:25px 20px; }
  body .article-card h3 { font-size:1.625rem; }
  body .hero-actions { gap:20px; }
  body .footer-links { gap:25px; flex-wrap:wrap; }
}
@media(max-width:900px) {
  body .section-heading, body .policy-grid { grid-template-columns:1fr; gap:25px; }
  body .section-heading > p { max-width:650px; }
  body .articles-grid { grid-template-columns:1fr; }
  body .article-card h3, body .article-card > p { max-width:none; }
  body .article-card h3 { font-size:1.875rem; }
  body .article-card-bottom { flex-wrap:nowrap; }
  body .article-card-top { margin-bottom:25px; }
  body .hero { grid-template-columns:1fr .78fr; gap:32px; }
  body .hero-actions { align-items:flex-start; flex-direction:column; gap:15px; }
  body .hero-location { margin-top:25px; }
  body .hero-note { padding:0; gap:10px; }
  body .hero-note p { font-size:.875rem; }
  body .portrait-caption { padding:14px; left:-12px; right:20px; gap:10px; }
  body .portrait-caption small { font-size:.875rem; }
  body .portrait-caption > div { font-size:1rem; }
  .diagram-canvas { display:none; }
  .diagram-mobile { display:grid; }
  .architecture-decisions { gap:20px; }
  body .article-layout { grid-template-columns:1fr; }
  body .article-aside { position:static; border-bottom:1px solid var(--line); padding-bottom:20px; }
  body .article-aside ol { display:block; }
  body .article-aside li { margin-bottom:12px; }
  body .aside-source { display:none; }
}
@media(max-width:780px) {
  body .header-inner { min-height:85px; height:auto; position:relative; flex-wrap:wrap; padding-block:20px; }
  body .site-header nav { gap:18px; font-size:1rem; }
  .js .menu-toggle { display:inline-flex; align-items:center; justify-content:space-between; gap:14px; background:none; color:var(--ink); border:1px solid #c3cdbd; padding:10px 13px; min-height:46px; font-size:1rem; cursor:pointer; margin-left:auto; }
  .js .site-header nav { position:absolute; top:100%; left:-20px; right:-20px; background:var(--paper); padding:15px 24px 22px; border-bottom:1px solid #bdcbb8; box-shadow:0 12px 18px #153c3612; z-index:5; flex-direction:column; gap:0; }
  .js .site-header nav:not(.is-open) { display:none; }
  .js .site-header nav a { padding:13px 0; font-size:1.125rem; }
  body .header-contact { border-left:0; padding:10px 0; font-size:1rem; }
  body .header-contact > span { margin-left:9px; }
  body .practice-grid { grid-template-columns:1fr; }
  body .practice-item, body .practice-item + article { padding:28px 0; border-left:0; }
  body .practice-item + article { border-top:1px solid var(--line); }
  body .practice-item p { max-width:none; }
  body .practice-item h3 { font-size:1.625rem; }
  body .project-grid { grid-template-columns:1fr; }
  body .project-heading { align-items:flex-start; }
  body .project-heading .text-link { min-height:0; line-height:1.6; max-width:none; }
  body .project-kicker { font-size:.875rem; }
  body .project-stack { font-size:.875rem; }
  body .console-top { font-size:.875rem; }
  body .console-content pre, body .console-identity { font-size:.9375rem; }
  body .policy-result > p { font-size:1rem; }
  body .footer-links { gap:25px; }
  body .footer-bottom { font-size:.875rem; gap:18px; }
  body .article-dek { font-size:1.1875rem; }
  body .article-body p, body .article-body li { font-size:1.125rem; line-height:1.8; }
  body .article-body pre { font-size:.9375rem; }
}
@media(max-width:540px) {
  body .hero { grid-template-columns:1fr; }
  body .hero h1 { font-size:clamp(2.8rem,12vw,3.5rem); }
  body .hero-intro { font-size:1.125rem; }
  body .hero-actions { flex-direction:column; align-items:flex-start; gap:18px; }
  body .hero-visual { display:block; }
  body .portrait-caption { left:16px; right:16px; padding:14px 17px; gap:14px; bottom:24px; }
  body .portrait-caption > div { font-size:1.125rem; }
  body .portrait-caption small { font-size:.875rem; max-width:none; }
  body .hero-note { margin-top:20px; justify-content:flex-start; align-items:center; gap:18px; }
  body .hero-note p { font-size:1rem; line-height:1.7; }
  body .hero-note .note-bracket:last-child { display:inline; }
  body .hero-location, body .strip-label { font-size:.875rem; }
  body .expertise-inner > div { gap:16px 23px; }
  body .expertise-inner > div span { font-size:1rem; }
  body .section-heading h2, body .policy-copy h2 { font-size:2.5rem; }
  body .project-heading { flex-direction:column; gap:12px; }
  body .project-heading h3, body .project-heading .text-link { max-width:none; font-size:1.125rem; }
  body .project-card { padding:25px; }
  body .project-card p { font-size:1.125rem; }
  body .policy-tabs button { font-size:.875rem; padding:15px 6px; }
  body .console-footnote { font-size:.875rem; }
  body .article-card h3 { font-size:1.75rem; }
  body .article-card > p { font-size:1.125rem; }
  body .article-card-bottom > a { font-size:1rem; }
  body .career-list > div { grid-template-columns:1fr; gap:8px; }
  body .career-list > div > span { font-size:.875rem; }
  body .career-list p { font-size:1.125rem; }
  body .career-list small { font-size:1rem; }
  body .contact-section .eyebrow { font-size:.875rem; }
  body .footer-links { flex-direction:column; gap:21px; }
  body .footer-links a { font-size:1rem; }
  body .footer-bottom { flex-direction:column; align-items:flex-start; gap:15px; }
  body .footer-bottom > a { margin-left:0; }
  body .article-header h1 { font-size:2.5rem; }
  body .article-body h2 { font-size:1.75rem; }
  body .article-body .article-sources li, body .author-note p { font-size:1rem; }
  .architecture-tabs { gap:0; display:grid; grid-template-columns:1fr 1fr 1fr; }
  .architecture-tabs button { padding:15px 8px; font-size:.9375rem; line-height:1.45; min-height:70px; }
  .architecture-intro { font-size:1.125rem; margin-top:-5px; }
  .diagram-mobile { padding:20px 16px; gap:27px; }
  .diagram-mobile li { padding:17px 15px 17px 48px; }
  .diagram-mobile li::before { left:14px; top:19px; }
  .diagram-mobile strong { font-size:1.0625rem; }
  .diagram-mobile p { font-size:1.0625rem; }
  .architecture-figure figcaption { padding:19px 20px 0; font-size:1rem; }
  .diagram-open { margin:13px 20px 21px; font-size:1rem; gap:12px; }
  .architecture-decisions { grid-template-columns:1fr; gap:22px; }
  .architecture-decisions p { font-size:1.125rem; }
}

/* A quiet navy canvas, blue surfaces, and readable text throughout the site. */
:root {
  color-scheme:dark;
  --paper:#081322;
  --white:#102139;
  --ink:#eaf2ff;
  --body:#bdcfe5;
  --muted:#9eb3cd;
  --line:#2b425e;
  --accent:#86bdff;
  --soft:#11253e;
  --dark:#0c1e34;
}
html { background:var(--paper); scrollbar-color:#496785 #0b182a; }
body { background:radial-gradient(ellipse 800px 650px at 88% 0%,#16366088,transparent 75%),var(--paper); color:var(--ink); }
::selection { background:#335b86; color:#fff; }
a:focus-visible, button:focus-visible, pre:focus-visible { outline-color:#a7d4ff; }
.skip-link { background:#b6d7ff; color:#081322; }
.site-header { background:#091729; border-color:var(--line); }
.site-header nav a, .header-contact { color:#c3d5ed; }
.site-header nav a:hover, .header-contact:hover { color:#fff; }
.eyebrow { color:#a4c8f1; }
.hero h1 em, .about-grid h2 em { color:#9cc9ff; }
.hero-dot { color:#718da9; }
.button-dark { background:#96c5ff; border-color:#96c5ff; color:#09172b; font-weight:600; box-shadow:0 7px 24px #0002; }
.button-dark:hover { background:#b6d8ff; border-color:#b6d8ff; }
.text-link { color:#a6d0ff; }
.text-link:hover { color:#d9ebff; }
.portrait-frame { background:linear-gradient(145deg,#243c5b,#102239); border-color:#3b5675; box-shadow:0 20px 65px #0003; }
.portrait-caption { background:#102741; color:#edf5ff; border:1px solid #466581; box-shadow:0 12px 35px #0005; }
body .portrait-frame .portrait-caption {
  position:static;
  inset:auto;
  width:100%;
  margin-top:16px;
  padding:17px 10px 4px;
  border:0;
  border-top:1px solid #466581;
  background:transparent;
  box-shadow:none;
}
.caption-mark { color:#94cdff; }
.portrait-caption small { color:#c0d4ed; }
.note-bracket { color:#6f94bb; }
.expertise-strip { background:#0c1b2e; border-color:var(--line); }
.expertise-inner > div span { color:#c1d6ee; }
.practice-icon { color:#85baff; }
.project-card { border-color:#284562; border-radius:8px; background:#10243c; }
.project-card:hover { border-color:#719ec7; background:#142c48; }
.project-stack { color:#a8c9ee; }
.case-card { border-color:#2f4d6b; border-top-color:#79b4ff; border-radius:8px; background:linear-gradient(145deg,#142a45,#102137); }
.case-stack li { color:#bad7f7; border-color:#36516e; background:#0b1d32; }
.tag { color:#b4d2f3; border-color:#46607d; background:#12273f; }
.article-card { background:#102239; border-color:#2d4663; border-radius:8px; }
.article-card:hover { border-color:#6d97bf; }
.architecture-section, .community-section { background:#0b1b2e; border-color:#2a435e; }
.architecture-tabs { border-color:#3b5571; }
.architecture-tabs button { color:#a8c1de; border-bottom-color:transparent; }
.architecture-tabs button[aria-selected=true] { background:#142c49; color:#eef6ff; border-bottom-color:#8ec5ff; }
.architecture-tabs button:hover { background:#112842; color:#edf6ff; }
.architecture-figure { background:#102239; border-color:#385471; box-shadow:0 14px 34px #0002; }
.diagram-canvas { background:#0b1528; }
.architecture-figure figcaption { color:#b7cce4; }
.diagram-open { color:#a9d2ff; }
.diagram-open:hover { color:#dceeff; }
.architecture-decisions > div { border-color:#34516e; }
.decision-number { color:#9bc5f4; }
.architecture-decisions p { color:#b2c8e1; }
.diagram-mobile { background:linear-gradient(135deg,#0d1c31,#10253b); }
.diagram-mobile li { background:#142940; border-color:#3b5978; border-left-color:#82bbf6; box-shadow:0 5px 15px #0002; }
.diagram-mobile li::before { color:#abd4ff; }
.diagram-mobile li:not(:last-child)::after { color:#8db5df; }
.diagram-mobile strong { color:#e1eeff; }
.diagram-mobile p { color:#bbcee4; }
.policy-section { background:linear-gradient(130deg,#0e213a,#09182a); color:#eaf2ff; border-block:1px solid #2b4564; }
.policy-copy .eyebrow { color:#a9c9ef; }
.policy-copy h2 em { color:#99c7ff; }
.policy-copy p:not(.eyebrow) { color:#bed1e8; }
.policy-copy code { color:#c0dfff; }
.policy-console { background:#071322; border-color:#3c5977; border-radius:9px; box-shadow:12px 12px 0 #06101d; overflow:hidden; }
.console-top { color:#a9bfd9; border-color:#2d465f; background:#0d1f34; }
.console-top i { background:#7b9fc5; }
.policy-tabs { border-color:#304a65; }
.policy-tabs button { color:#a7bed9; }
.policy-tabs button.active { color:#deefff; border-color:#94c7ff; background:#102840; }
.policy-tabs button:hover { color:#fff; }
.console-label, .console-footnote { color:#9cb4d0; }
.console-identity { color:#b9d8fb; }
.console-content pre { color:#e2efff; }
.policy-result { border-color:#3f5b78; }
.status-allowed { color:#a1e8c1; }
.status-denied { color:#ffb69e; }
.policy-result > p { color:#b9cce3; }
.community-since, .community-handle { color:#a8bfdc; }
.community-answer { background:#10233b; border-color:#35516d; border-radius:9px; box-shadow:0 12px 32px #0002; }
.community-outcome { background:#142e49; color:#c6dbf4; border:1px solid #395775; border-radius:6px; }
.community-outcome strong { color:#b7dbff; }
.about-section { background:#0e2036; border-color:#304862; }
.career-list, .career-list > div { border-color:#324b67; }
.career-list > div > span { color:#a4bbd5; }
.career-list small { color:#b2c8e3; }
.site-footer { background:#06101e; color:#e3efff; border-top:1px solid #2d425c; }
.footer-top p { color:#adc3de; }
.footer-bottom { color:#a0b7d2; border-color:#2a415b; }
.footer-bottom a { color:#c9dff7; }
.footer-links a { color:#bcd6f5; }
.article-header .eyebrow { color:#a0c4ee; }
.article-body { color:#c1d1e6; }
.article-body a { color:#a4d0ff; text-decoration-color:#517eab; }
.article-body a:hover { color:#d7eaff; text-decoration-color:#b7daff; }
.article-body :not(pre) > code { background:#142c46; color:#b0d8ff; border:1px solid #2f4e6c; padding:2px 6px; }
.article-body pre { background:#071020; color:#e6f0ff; border-color:#6fa8e8; }
.article-body blockquote { color:#b1c8e4; border-color:#83baff; }
.author-note { background:#112840; border:1px solid #35506e; border-radius:7px; }
.author-note p { color:#b9cde6; }
.article-aside a:hover { color:#e7f3ff; }
@media(max-width:780px) {
  .js .menu-toggle { background:#10243b; color:#d9eaff; border-color:#4b6581; }
  .js .site-header nav { background:#0d1e33; border-color:#395572; box-shadow:0 12px 25px #0005; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .button, .project-card, .article-card { transition:none; }
}

.code-block {
  margin:28px 0;
  overflow:hidden;
  border:1px solid #34516f;
  border-radius:12px;
  background:#071020;
  box-shadow:0 16px 35px #02071426;
  color-scheme:dark;
}
.code-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:13px 22px;
  border-bottom:1px solid #34516f;
  background:#0d1c32;
  color:#b4c7df;
  font-family:var(--mono);
  font-size:14px;
  line-height:1.6;
}
.code-language { color:#a5d5ff; font-weight:600; }
.code-scroll-hint { color:#9eb4cd; }
body .article-body .code-block pre {
  margin:0;
  padding:23px 24px 26px;
  border:0;
  background:#071020;
  color:#e6f0ff;
  font-family:var(--mono);
  font-size:16px;
  line-height:1.8;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scrollbar-color:#4a6a8c #0d1c32;
  tab-size:2;
}
body .article-body .code-block pre:focus-visible {
  outline:3px solid #82c8ff;
  outline-offset:-4px;
}
body .article-body .code-block pre code { font:inherit; color:inherit; white-space:pre; }
.code-block .code-comment { color:#9eb4cd; }
.code-block .code-string { color:#9fe1c2; }
.code-block .code-variable { color:#8ccfff; }
.code-block .code-key { color:#c5b3ff; }
.code-block .code-literal { color:#ffd29a; }
.code-block .code-command { color:#8ccfff; font-weight:600; }
@media(max-width:780px) {
  .code-toolbar { padding:12px 18px; }
  body .article-body .code-block pre { padding:20px 18px 23px; font-size:15px; }
}

.public-project-heading { margin-top:65px; scroll-margin-top:35px; align-items:flex-end; }
body .public-project-heading h3 { font-family:var(--serif); font-size:2rem; line-height:1.25; margin-top:14px; }
.public-project-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin-top:28px; }
.public-project-card { display:flex; flex-direction:column; align-items:flex-start; min-width:0; padding:30px; }
.public-project-top { display:flex; justify-content:space-between; align-items:flex-start; gap:15px; width:100%; flex-wrap:wrap; margin-bottom:25px; }
.public-project-top .project-kicker { margin:0; font-size:.875rem; line-height:1.6; max-width:240px; }
.public-project-top .tag { text-transform:none; max-width:none; }
body .public-project-card h4 { font-size:1.875rem; line-height:1.25; margin-bottom:17px; }
.public-project-card h4 a:hover { text-decoration:underline; text-underline-offset:5px; }
body .public-project-card p { max-width:none; font-size:1.125rem; line-height:1.8; margin-bottom:22px; }
.project-technologies { display:flex; gap:8px; flex-wrap:wrap; list-style:none; padding:0; margin:0 0 25px; }
.project-technologies li { font-size:.875rem; color:#bed8f5; background:#0b1c30; border:1px solid #365370; padding:5px 9px; border-radius:4px; line-height:1.6; }
.project-repository { display:flex; gap:20px; justify-content:space-between; align-items:center; width:100%; padding-top:18px; border-top:1px solid #34506d; margin-top:auto; font-size:1rem; line-height:1.65; color:#b5d8ff; }
.project-repository > span:first-child { overflow-wrap:anywhere; }
.project-repository:hover { color:#e1efff; text-decoration:underline; text-underline-offset:4px; }
.architecture-tabs { flex-wrap:wrap; }
.architecture-tabs button { flex:1 1 auto; padding-inline:18px; }
.architecture-references { display:flex; flex-wrap:wrap; align-items:center; gap:12px 25px; margin-top:28px; padding-top:22px; border-top:1px solid #34516e; }
.architecture-references > span { font-size:.875rem; color:#a9bfd9; }
.architecture-references a { color:#acd1ff; text-decoration:underline; text-underline-offset:4px; font-size:1rem; line-height:1.65; }
.architecture-references a:hover { color:#e3f0ff; }
@media(max-width:780px) {
  .public-project-grid { grid-template-columns:1fr; }
  .public-project-card { padding:25px; }
  .public-project-heading { align-items:flex-start; }
}
@media(max-width:540px) {
  body .public-project-heading h3 { font-size:1.875rem; }
  .architecture-tabs button { padding:14px 7px; min-height:70px; font-size:.9375rem; }
  .architecture-references { flex-direction:column; align-items:flex-start; gap:16px; }
}

.documentation-section { display:grid; grid-template-columns:.85fr 1.15fr; gap:55px; margin-top:70px; padding-top:65px; border-top:1px solid var(--line); scroll-margin-top:35px; }
.documentation-copy > .eyebrow { margin-bottom:20px; }
.documentation-copy h3 { font-size:2.25rem; line-height:1.2; font-weight:500; letter-spacing:-.04em; margin:0 0 23px; }
.documentation-copy h3 em { font-family:var(--serif); font-weight:400; color:#9cc9ff; }
.documentation-intro { font-size:1.125rem; line-height:1.8; color:var(--body); margin-bottom:30px; }
.documentation-practices { list-style:none; padding:0; margin:0; }
.documentation-practices li { padding:18px 0; border-top:1px solid #2f4864; }
.documentation-practices strong { font-size:1.125rem; line-height:1.6; font-weight:500; color:#e1eeff; }
.documentation-practices p { font-size:1.125rem; line-height:1.75; color:#b8cce5; margin:7px 0 0; }
.documentation-example { min-width:0; border:1px solid #3b5674; border-radius:10px; padding:30px; background:linear-gradient(145deg,#142b46,#102137); box-shadow:0 15px 35px #0002; }
.documentation-example-top { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:26px; }
.documentation-filename { font-family:var(--mono); font-size:.875rem; line-height:1.7; color:#b6d6fc; }
.documentation-example-top .tag { text-transform:none; max-width:none; }
.documentation-example h4 { font-family:var(--serif); font-size:1.875rem; line-height:1.25; font-weight:400; letter-spacing:-.03em; margin:0 0 18px; }
.documentation-example h4 a:hover { text-decoration:underline; text-underline-offset:5px; }
.documentation-example > p { font-size:1.125rem; line-height:1.8; color:#bed1e9; margin-bottom:23px; }
.documentation-steps { list-style:none; padding:0; margin:0; counter-reset:doc-step; }
.documentation-steps li { position:relative; counter-increment:doc-step; border-top:1px solid #35516e; padding:19px 0 19px 37px; }
.documentation-steps li::before { content:counter(doc-step); position:absolute; top:22px; left:0; font-family:var(--mono); font-size:.875rem; color:#a4ccfb; }
.documentation-steps strong { font-size:1.125rem; font-weight:500; line-height:1.6; }
.documentation-steps p { font-size:1.125rem; color:#b8cce5; line-height:1.75; margin:7px 0 0; }
.documentation-example > .documentation-command-label { font-size:.875rem; line-height:1.7; margin:14px 0 0; color:#a9bfd9; }
.documentation-example .code-block { margin:13px 0 25px; }
.documentation-example .code-block pre { margin:0; border:0; background:#071020; color:#e6f0ff; font-family:var(--mono); font-size:16px; line-height:1.8; padding:20px; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-color:#4a6a8c #0d1c32; }
.documentation-example .code-block pre code { font:inherit; color:inherit; white-space:pre; }
.documentation-example .code-block pre:focus-visible { outline:3px solid #82c8ff; outline-offset:-4px; }
.documentation-links { display:flex; align-items:flex-start; flex-direction:column; gap:10px; }
@media(max-width:1100px) {
  .documentation-section { gap:35px; grid-template-columns:.8fr 1.2fr; }
}
@media(max-width:900px) {
  .documentation-section { grid-template-columns:1fr; gap:35px; }
  .documentation-copy { max-width:720px; }
}
@media(max-width:540px) {
  .documentation-section { margin-top:50px; padding-top:45px; }
  .documentation-copy h3 { font-size:1.875rem; }
  .documentation-example { padding:24px 20px; }
  .documentation-example h4 { font-size:1.75rem; }
  .documentation-example .code-block pre { font-size:15px; padding:18px; }
}
