@charset "UTF-8";
:root{color-scheme:light dark;--bg:#faf9f6;--panel:#ffffff;--text:#202c38;--muted:#596775;--accent:#245c85;--line:#d8dee2;--font:Arial,Helvetica,sans-serif;--heading:Georgia,"Times New Roman",serif;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;--secondary:#4c5b68;--prose:#303e4a;--soft:#f1f4f6;--tint:#e8eef3;--hover:#edf2f6;--border-strong:#cbd6df;--connector:#a5b8c7;--diagram-text:#334f65;--section-bg:#f0f3f5;--header-bg:rgba(250,249,246,.96);--accent-hover:#1c496b;--button-text:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:1rem;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px}::selection{background:var(--accent);color:var(--button-text)}p,h1,h2,h3,h4{margin:0}h1,h2,h3,h4{font-weight:500}ul{margin:0;padding:0}code{font-family:var(--mono);font-size:.875em;overflow-wrap:anywhere}.shell{max-width:1240px;padding-left:48px;padding-right:48px;margin:0 auto}.eyebrow,.small-label,.timeline-label{font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;font-weight:400}.eyebrow{color:var(--muted)}.small-label{color:var(--muted)}.skip{position:fixed;top:-100px;left:20px;z-index:10;background:var(--text);color:var(--bg);padding:12px 20px}.skip:focus{top:12px}.header{position:sticky;top:0;z-index:5;border-bottom:1px solid var(--line);background:var(--header-bg)}.header-inner{height:84px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:14px}.monogram{font-size:1.55rem;font-weight:700;letter-spacing:-.07em}.monogram span{color:var(--accent)}.brand-name{font-size:.875rem;font-weight:500}nav{display:flex;gap:34px;font-size:.875rem}nav a{color:var(--secondary);transition:color .2s}nav a:hover,nav a[aria-current="location"],nav a[aria-current="page"]{color:var(--text)}nav a[aria-current="location"],nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:8px;text-decoration-color:var(--accent)}nav a:last-child span{color:var(--accent);padding-left:7px}.hero{padding-top:44px}.hero-kicker{display:flex;justify-content:space-between;align-items:center;gap:16px}.location{font-size:.75rem;font-family:var(--mono);color:var(--muted)}.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:74px;padding:52px 0 58px}h1{font-size:clamp(3.7rem,7.2vw,6.05rem);line-height:1.025;letter-spacing:-.065em;font-weight:500}h1>span{color:var(--muted)}.intro{max-width:520px;font-size:1.125rem;line-height:1.65;color:var(--secondary);margin-top:30px}.primary-link{display:inline-flex;align-items:center;gap:44px;font-size:.875rem;font-weight:600;background:var(--accent);color:var(--button-text);padding:13px 19px;margin-top:30px;transition:background .2s,transform .2s}.primary-link:hover{background:var(--accent-hover);transform:translateY(-2px)}.primary-link span{font-size:1.3rem}.hero-note{padding-top:12px;align-self:end;padding-bottom:4px}.note-label{display:flex;align-items:center;gap:10px;color:var(--muted);font-family:var(--mono);text-transform:uppercase;letter-spacing:.09em;font-size:.75rem}.red-rule{display:block;width:24px;height:2px;background:var(--accent)}.target-company{font-size:2.5rem;line-height:1.25;letter-spacing:-.05em;margin-top:20px}.target-role{font-size:.875rem;line-height:1.7;color:var(--muted);margin-top:9px}.note-divider{height:1px;background:var(--line);margin:28px 0}.note-copy{font-size:1.05rem;line-height:1.6}.focus-list{list-style:none;margin-top:20px;font-size:.875rem;color:var(--muted)}.focus-list li{padding:5px 0}.evidence-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:28px 0}.evidence-strip>div{min-width:0;padding:0 24px;border-left:1px solid var(--line)}.evidence-strip>div:first-child{padding-left:0;border:0}.evidence-strip>div:last-child{padding-right:0}.evidence-strip strong{display:block;white-space:nowrap;font-size:clamp(1.4rem,2.3vw,1.8rem);font-weight:500;letter-spacing:-.045em;line-height:1.3}.evidence-strip strong span{font-size:1.125rem;color:var(--muted);letter-spacing:-.025em}.evidence-strip strong .metric-arrow{color:var(--accent);padding:0 8px;font-size:1.6rem}.evidence-strip p{font-size:.8125rem;color:var(--muted);margin-top:9px}.section{padding-top:102px;padding-bottom:100px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:52px;margin-bottom:46px}.section-heading .eyebrow{margin-bottom:24px;color:var(--accent)}h2{font-size:clamp(2.15rem,3.5vw,3rem);letter-spacing:-.047em;line-height:1.12}.section-intro{max-width:300px;font-size:1rem;color:var(--muted);line-height:1.7}.project{border:1px solid var(--line);margin-top:26px;background:var(--panel)}.project-featured{border-top:2px solid var(--accent)}.project-topline{display:flex;align-items:center;gap:16px;margin:0 36px;padding:22px 0;border-bottom:1px solid var(--line)}.project-number{color:var(--accent);font-family:var(--mono);font-size:.8125rem}.project-topline .eyebrow{font-size:.75rem}.project-label{margin-left:auto;color:var(--muted);font-family:var(--mono);font-size:.75rem}.status-tag{font-family:var(--mono);font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--accent);color:var(--accent);padding:2px 8px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:46px;padding:40px 36px}.project-copy h3{font-size:2.25rem;line-height:1.14;letter-spacing:-.045em;margin-bottom:22px}.project-featured h3{font-size:3.5rem;margin-bottom:16px}.project-subtitle{font-size:1.3rem!important;color:var(--text)!important;line-height:1.45!important;margin-bottom:22px}.project-copy>p{font-size:1rem;color:var(--secondary);line-height:1.7;margin-top:13px}.project-copy a{text-decoration:underline;text-decoration-color:var(--connector);text-underline-offset:5px}.project-copy a:hover{text-decoration-color:var(--accent)}.contribution{margin-top:24px}.contribution p{font-size:.875rem;color:var(--secondary);margin-top:6px;line-height:1.65}.architecture{align-self:center;border:1px solid var(--line);background:var(--soft);padding:23px 22px 20px}.diagram-caption{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.75rem;color:var(--muted)}.diagram-index{color:var(--muted)}.channel-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin-top:37px}.channel-grid>span{text-align:center;background:var(--tint);border:1px solid var(--border-strong);padding:9px 2px;font-size:.75rem;color:var(--diagram-text);overflow-wrap:anywhere}.diagram-connectors{height:50px;background:linear-gradient(var(--connector),var(--connector)) 50% 100%/1px 20px no-repeat;position:relative}.diagram-connectors:before{content:"";position:absolute;left:9%;right:9%;top:0;height:30px;border:1px solid var(--connector);border-top:0}.diagram-connectors:after{content:"";position:absolute;left:50%;height:30px;border-left:1px solid var(--connector)}.agentix-node{border:1px solid var(--connector);padding:20px 16px;display:flex;align-items:center;gap:14px;background:var(--tint)}.node-mark{font-family:var(--mono);font-size:1.8rem;letter-spacing:-.1em;color:var(--accent)}.node-mark>span{color:var(--accent)}.agentix-node>div{display:flex;flex-direction:column}.agentix-node strong{font-size:1.25rem;line-height:1.4;letter-spacing:-.02em;font-weight:500}.agentix-node>div>span{font-size:.75rem;color:var(--secondary)}.node-chip{font-family:var(--mono);font-size:.75rem;margin-left:auto;color:var(--secondary)}.diagram-foot{font-size:.75rem;text-align:center;color:var(--muted);margin-top:20px}.project-result{padding:20px 36px;display:grid;grid-template-columns:80px 1fr;gap:22px;border-top:1px solid var(--line)}.project-result>.small-label{padding-top:3px;color:var(--accent)}.project-result p{font-size:1rem;line-height:1.6}.case-detail{border-top:1px solid var(--line)}.case-detail summary{display:flex;align-items:center;justify-content:space-between;list-style:none;cursor:pointer;font-size:.875rem;padding:19px 36px;color:var(--secondary)}.case-detail summary::-webkit-details-marker{display:none}.case-detail summary:hover{color:var(--text);background:var(--hover)}.expand-icon{width:12px;height:12px;position:relative;flex-shrink:0}.expand-icon:before,.expand-icon:after{content:"";position:absolute;background:currentColor;top:5px;left:0;width:12px;height:1px}.expand-icon:after{transform:rotate(90deg)}details[open] .expand-icon:after{transform:rotate(0)}.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;padding:10px 36px 30px}.detail-grid h4{font-size:1rem;color:var(--text);margin-bottom:9px}.detail-grid p{font-size:1rem;line-height:1.7;color:var(--muted)}.voice-panel{align-self:center;padding:26px 28px;background:var(--soft);border:1px solid var(--line)}.integration-list{list-style:none;margin-top:13px}.integration-list li{display:flex;flex-direction:column;gap:2px;padding:12px 0;border-bottom:1px solid var(--line)}.integration-list li:last-child{border-bottom:0}.integration-list span{font-size:.75rem;color:var(--muted)}.integration-list strong{font-size:1rem;font-weight:400;color:var(--text)}.panel-note{font-size:.8125rem;line-height:1.6;color:var(--muted);margin-top:20px}.outcome-panel{align-self:center;background:var(--soft);border:1px solid var(--border-strong);padding:26px 30px}.before{margin-top:20px;display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--border-strong);padding-bottom:13px;color:var(--muted)}.before span,.after>span{font-size:.8125rem}.before strong{font-size:1.45rem;font-weight:400;letter-spacing:-.04em}.after{margin-top:15px}.after>span{color:var(--secondary)}.after strong{display:flex;justify-content:space-between;align-items:center;color:var(--accent);font-size:4.4rem;line-height:1.25;letter-spacing:-.06em;font-weight:400}.after strong span{font-size:3rem;color:var(--accent)}.work-note{font-size:.8125rem;color:var(--muted);margin-top:24px;max-width:690px}.experience-section{background:var(--section-bg);color:var(--text);}.experience-section .section{padding-bottom:85px}.experience-layout{display:grid;grid-template-columns:1fr 2fr;gap:80px;border-top:1px solid var(--line);padding-top:38px}.large-number{font-size:7rem;letter-spacing:-.08em;line-height:1.05;font-weight:400}.large-number span{font-size:3.5rem;color:var(--muted);vertical-align:top;line-height:1.2}.experience-years{font-size:1rem;margin-top:8px}.experience-aside{max-width:235px;font-size:1rem;line-height:1.7;color:var(--muted);margin-top:22px}.timeline article{padding:0 0 29px 28px;border-left:1px solid var(--connector);position:relative}.timeline article:before{content:"";position:absolute;left:-4px;top:6px;width:7px;height:7px;background:var(--accent)}.timeline article+article{padding-top:24px;border-top:1px solid var(--line)}.timeline article+article:before{top:30px}.timeline article:last-child{padding-bottom:0}.timeline-label{font-size:.75rem;color:var(--muted);margin-bottom:8px}.timeline h3{font-size:1.4rem;line-height:1.35;letter-spacing:-.025em}.timeline-subtitle{font-size:.875rem;color:var(--muted);margin-top:5px;margin-bottom:15px}.timeline ul{padding-left:18px}.timeline li,.timeline article>p:not(.timeline-subtitle){font-size:1rem;color:var(--secondary);line-height:1.7}.timeline li+li{margin-top:8px}.fit-table{width:100%;border-collapse:collapse;text-align:left;table-layout:fixed}.fit-table th,.fit-table td{padding:23px 18px 23px 0;border-bottom:1px solid var(--line);vertical-align:top}.fit-table thead th{font-family:var(--mono);font-size:.75rem;font-weight:400;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding-top:0;padding-bottom:17px}.fit-table th:first-child{width:30%}.fit-table th:nth-child(2){width:48%}.fit-table th:nth-child(3){width:22%}.fit-table tbody th{font-weight:400;font-size:1rem;line-height:1.65}.fit-table tbody td{font-size:1rem;color:var(--muted);line-height:1.65}.fit-table td:last-child{padding-right:0}.fit-table a{font-size:.875rem;color:var(--accent);text-decoration:underline;text-decoration-color:var(--connector);text-underline-offset:5px}.fit-table a:hover{text-decoration-color:var(--accent)}.fit-table a span{padding-left:5px;color:var(--accent)}.fit-group{font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)!important;padding-top:34px!important}.skills-line{display:grid;grid-template-columns:230px 1fr;gap:30px;padding:36px 0}.skills-line .small-label{padding-top:6px}.skills-line ul{display:flex;list-style:none;gap:9px;flex-wrap:wrap}.skills-line li{font-size:.8125rem;color:var(--secondary);border:1px solid var(--border-strong);padding:4px 11px}.closing{margin-top:58px;border-top:1px solid var(--line);padding-top:45px;display:flex;justify-content:space-between;gap:50px}.closing-mark{font-size:6rem;font-weight:600;letter-spacing:-.095em;line-height:1;color:var(--connector)}.closing .eyebrow{margin-bottom:23px}.closing>div>p:last-child{font-size:clamp(1.6rem,3vw,2.5rem);letter-spacing:-.045em;line-height:1.35}.closing>div>p:last-child span{color:var(--muted)}.footer{border-top:1px solid var(--line)}.footer-inner{display:flex;align-items:center;justify-content:space-between;padding-top:28px;padding-bottom:30px;gap:30px;font-size:.875rem;flex-wrap:wrap}.footer p>span{display:block;font-size:.75rem;color:var(--muted);margin-top:3px}.footer-links{display:flex;gap:22px;flex-wrap:wrap}.footer a{font-size:.8125rem;color:var(--muted)}.footer a:hover{color:var(--text)}.footer a span{padding-left:10px;color:var(--text)}
@media(min-width:1500px){.shell{max-width:1360px}.hero-grid{gap:100px;grid-template-columns:minmax(0,1fr) 300px}h1{font-size:6.7rem}.hero{padding-top:55px}.hero-grid{padding-top:64px;padding-bottom:70px}}
@media(max-width:1000px){.shell{padding-left:32px;padding-right:32px}.hero-grid{gap:40px;grid-template-columns:minmax(0,1fr) 220px}h1{font-size:4.7rem}.evidence-strip{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:24px}.evidence-strip>div{padding:0 20px}.evidence-strip>div:nth-child(odd){padding-left:0;border-left:0}.evidence-strip>div:nth-child(even){padding-right:0}.evidence-strip>div:nth-child(n+3){border-top:1px solid var(--line);padding-top:20px}.evidence-strip strong{font-size:1.5rem}.evidence-strip strong span{font-size:1rem}.section-heading{gap:30px}.section-intro{max-width:270px}.project-grid{gap:26px;padding:30px 26px}.project-topline{margin:0 26px}.project-copy h3{font-size:1.95rem}.project-featured h3{font-size:3rem}.project-subtitle{font-size:1.2rem!important}.architecture{padding:20px 14px}.agentix-node{gap:10px;padding:16px 12px;flex-wrap:wrap}.node-chip{margin-left:0;width:100%;padding-left:47px}.project-result{padding-left:26px;padding-right:26px}.case-detail summary{padding-left:26px;padding-right:26px}.detail-grid{padding-left:26px;padding-right:26px;gap:22px}.experience-layout{gap:45px}.skills-line{grid-template-columns:190px 1fr}.outcome-panel{padding:22px}.voice-panel{padding:22px}}
@media(max-width:760px){html{scroll-padding-top:110px}.shell{padding-left:24px;padding-right:24px}.header-inner{height:auto;min-height:78px;padding-top:15px;padding-bottom:15px;gap:12px;flex-wrap:wrap}.brand-name{display:none}nav{gap:22px;font-size:.8125rem}.hero{padding-top:30px}.hero-kicker{align-items:flex-start}.hero-kicker .location{max-width:125px;text-align:right;font-size:.75rem}.hero-kicker .eyebrow{font-size:.75rem}.hero-grid{grid-template-columns:1fr;gap:35px;padding-top:35px;padding-bottom:35px}h1{font-size:clamp(3.3rem,9vw,4.9rem)}.intro{max-width:480px;margin-top:25px;font-size:1.0625rem}.hero-note{border-top:1px solid var(--line);padding-top:25px;display:grid;grid-template-columns:1fr 1fr;column-gap:30px;align-items:start}.note-label{grid-column:1/-1;margin-bottom:8px}.target-company{margin-top:5px;font-size:2rem}.target-role{margin-top:7px;font-size:.8125rem}.note-divider,.note-copy{display:none}.focus-list{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:5px 20px;margin-top:15px;font-size:.8125rem}.evidence-strip{grid-template-columns:1fr 1fr;padding:23px 0}.evidence-strip strong{font-size:1.5rem}.evidence-strip strong span{font-size:1rem}.evidence-strip p{font-size:.75rem}.section{padding-top:68px;padding-bottom:68px}.section-heading{display:block;margin-bottom:30px}.section-heading .eyebrow{margin-bottom:20px}h2{font-size:2.3rem}.section-intro{margin-top:20px;max-width:480px}.project-topline{margin:0 22px;flex-wrap:wrap;gap:10px;padding:19px 0}.project-label{margin-left:auto;font-size:.75rem}.project-topline .eyebrow{font-size:.75rem}.project-grid{grid-template-columns:1fr;gap:28px;padding:28px 22px}.project-copy h3{font-size:2.1rem}.project-featured h3{font-size:3rem}.project-subtitle{font-size:1.3rem!important}.contribution{margin-top:20px}.architecture{padding:23px 18px}.agentix-node{flex-wrap:nowrap}.node-chip{margin-left:auto;width:auto;padding-left:0}.project-result{grid-template-columns:1fr;gap:7px;padding:20px 22px}.project-result p{font-size:1rem}.case-detail summary{padding:18px 22px}.detail-grid{grid-template-columns:1fr;gap:22px;padding:7px 22px 26px}.voice-panel{padding:23px}.integration-list li{flex-direction:row;align-items:baseline;justify-content:space-between;gap:20px}.integration-list span{max-width:110px}.integration-list strong{text-align:right}.outcome-panel{padding:24px}.after strong{font-size:4.5rem}.experience-section .section{padding-bottom:68px}.experience-layout{grid-template-columns:1fr;gap:35px;padding-top:30px}.experience-intro{display:grid;grid-template-columns:110px 1fr;column-gap:22px;align-items:center}.large-number{font-size:4.5rem;grid-row:1/3}.large-number span{font-size:2.5rem}.experience-years{font-size:1rem;max-width:180px;margin:0}.experience-aside{grid-column:2;margin:8px 0 0;font-size:.875rem;max-width:none}.timeline article{padding-left:22px}.fit-table{table-layout:auto}.fit-table th:first-child{width:40%}.fit-table th:nth-child(2){width:60%}.fit-table th:nth-child(3),.fit-table td:nth-child(3){display:none}.fit-table th,.fit-table td{padding:20px 16px 20px 0}.fit-table td:nth-child(2){padding-right:0}.fit-table tbody td,.fit-table tbody th{font-size:1rem}.fit-table thead th{font-size:.75rem}.skills-line{grid-template-columns:1fr;gap:15px;padding-top:26px}.skills-line li{font-size:.75rem}.closing{margin-top:28px;padding-top:35px;gap:24px}.closing-mark{font-size:3rem}.closing>div{max-width:300px}.closing .eyebrow{font-size:.75rem}.closing>div>p:last-child{font-size:1.65rem}.footer-inner{padding-top:24px;padding-bottom:24px}.footer p>span{max-width:175px}.work-note{font-size:.75rem}}
@media(max-width:600px){.evidence-strip{grid-template-columns:1fr;row-gap:18px}.evidence-strip>div{padding:0;border-left:0}.evidence-strip>div:nth-child(n+2){border-top:1px solid var(--line);padding-top:18px}.evidence-strip strong{font-size:1.7rem}}
@media(max-width:380px){.shell{padding-left:18px;padding-right:18px}nav{gap:16px;font-size:.75rem}h1{font-size:3rem}.project-topline{margin:0 18px}.project-label{width:100%;padding-left:26px}.project-grid{padding-left:18px;padding-right:18px}.architecture{padding:20px 12px}.node-chip{font-size:.75rem}.agentix-node{gap:10px}.node-mark{font-size:1.5rem}.agentix-node>div>span{font-size:.75rem}.channel-grid>span{font-size:.75rem}.closing-mark{display:none}.closing>div{max-width:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media print{html{scroll-padding-top:0}.header,.skip,.primary-link,.case-detail{display:none}body{background:white;color:#111;font-size:10pt}.shell{max-width:none;padding:0}.hero{padding:0}.hero-grid{padding:20px 0;grid-template-columns:1fr 200px;gap:30px}h1{font-size:40pt}h1>span,.intro,.eyebrow,.small-label,.location,.target-role,.note-copy,.focus-list,.evidence-strip p,.project-copy>p,.contribution p,.section-intro,.work-note,.fit-table td,.skills-line li{color:#444!important}.section{padding:30px 0}.section-heading{margin-bottom:20px}h2{font-size:26pt}.project{background:white;border:1px solid #aaa;break-inside:avoid}.project-grid{padding:20px;gap:25px}.project-topline{margin:0 20px}.project-copy h3{font-size:24pt}.project-result{padding:15px 20px}.architecture,.voice-panel,.outcome-panel{color:#111;background:#f2f4f0}.agentix-node{background:#e2e8db}.agentix-node strong,.agentix-node>div>span,.node-chip,.node-mark,.diagram-foot,.diagram-caption,.integration-list strong,.panel-note,.after strong,.before,.after>span{color:#333}.channel-grid>span{background:var(--section-bg);color:#333}.experience-section{background:white}.experience-layout{gap:30px}.fit-table a{color:#111}.closing{margin-top:20px}.closing-mark{color:#666}.closing>div>p:last-child span{color:#444}.footer{margin-top:20px}.footer p>span,.footer a{color:#444}}

/* Keep enlarged text and long labels within their containers. */
h1,h2,h3,.fit-table th,.fit-table td{overflow-wrap:anywhere}nav{flex-wrap:wrap;row-gap:8px}.hero-grid>*{min-width:0}

/* Home page additions */
.writing-list{list-style:none;border-top:1px solid var(--line)}
.writing-list li{border-bottom:1px solid var(--line)}
.writing-list a{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:baseline;padding:26px 0;transition:color .2s}
.writing-list a:hover h3{color:var(--accent)}
.writing-list h3{font-size:1.5rem;line-height:1.3;letter-spacing:-.03em;transition:color .2s}
.writing-list p{color:var(--muted);margin-top:6px;font-size:1rem;max-width:640px}
.writing-meta{font-family:var(--mono);font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
.contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.contact-grid a{padding:30px 28px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:8px;transition:background .2s}
.contact-grid a:first-child{border-left:0;padding-left:0}
.contact-grid a:hover{background:var(--panel)}
.contact-grid strong{font-size:1.5rem;font-weight:500;letter-spacing:-.03em}
.contact-grid span{font-family:var(--mono);font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.contact-grid strong em{font-style:normal;color:var(--accent);padding-left:8px}
@media(max-width:760px){.writing-list a{grid-template-columns:1fr;gap:8px}.writing-list h3{font-size:1.3rem}.contact-grid{grid-template-columns:1fr}.contact-grid a{border-left:0;border-top:1px solid var(--line);padding:22px 0}.contact-grid a:first-child{border-top:0}}

/* ---------- Writing: list and article pages ---------- */
.page-title{font-size:clamp(2.6rem,5vw,4rem);letter-spacing:-.055em;line-height:1.05}
.section-intro a,.article-header .eyebrow a{color:inherit}
.article{max-width:760px;padding-top:72px;padding-bottom:40px}
.article-header{border-bottom:1px solid var(--line);padding-bottom:34px;margin-bottom:40px}
.article-header .eyebrow a{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--line)}
.article-header h1{font-size:clamp(2.3rem,5vw,3.6rem);line-height:1.08;letter-spacing:-.05em;margin-top:22px}
.article-dek{font-size:1.2rem;line-height:1.6;color:var(--secondary);margin-top:20px}
.prose{font-size:1.125rem;line-height:1.8;color:var(--prose)}
.prose>*+*{margin-top:1.25em}
.prose h2{font-size:1.75rem;letter-spacing:-.035em;line-height:1.25;margin-top:2.2em;color:var(--text)}
.prose h3{font-size:1.3rem;letter-spacing:-.02em;line-height:1.35;margin-top:1.8em;color:var(--text)}
.prose h2+*,.prose h3+*{margin-top:.7em}
.prose a{color:var(--text);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:4px}
.prose strong{color:var(--text);font-weight:600}
.prose ul,.prose ol{padding-left:1.4em}
.prose li+li{margin-top:.4em}
.prose blockquote{margin-left:0;margin-right:0;padding:4px 0 4px 22px;border-left:2px solid var(--accent);color:var(--secondary)}
.prose :not(pre)>code{background:var(--hover);border:1px solid var(--line);padding:1px 6px;font-size:.88em}
.prose pre{padding:20px 22px;overflow-x:auto;border:1px solid var(--line);font-size:.88rem;line-height:1.6;max-width:100%}
.prose pre code{font-family:var(--mono)}
.article-header h1 code,.prose h2 code,.prose h3 code{font-size:.82em;letter-spacing:-.02em;background:none;border:0;padding:0}
.prose .highlight{max-width:100%}
.prose img{max-width:100%;height:auto;display:block}
.prose figure{margin-left:0;margin-right:0}
.prose figcaption{font-size:.875rem;color:var(--muted);margin-top:8px}
.prose table{width:100%;border-collapse:collapse;font-size:1rem;display:block;overflow-x:auto}
.prose th,.prose td{border-bottom:1px solid var(--line);padding:10px 14px 10px 0;text-align:left;vertical-align:top}
.prose th{font-family:var(--mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:400}
.prose hr{border:0;border-top:1px solid var(--line);margin:2.5em 0}
.article-footer{margin-top:56px;padding-top:28px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:18px}
.tag-list{list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.tag-list a{font-family:var(--mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--line);padding:4px 10px;color:var(--secondary)}
.tag-list a:hover{border-color:var(--accent);color:var(--text)}
.article-byline{color:var(--muted);font-size:.95rem}
.article-byline a{color:var(--text);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--line)}
@media(max-width:760px){.article{padding-top:44px}.prose{font-size:1.0625rem}.prose .highlight{margin-left:-24px;margin-right:-24px;max-width:none}.prose .highlight pre{border-left:0;border-right:0}}

/* Personal-site typography. Company pages own their embedded styles. */
h1,h2{font-family:var(--heading);font-weight:400;letter-spacing:-.035em}
.hero h1{font-size:clamp(3.2rem,6.2vw,5.5rem);line-height:1.08}
.article{max-width:840px}
.article-header h1{font-size:clamp(2.35rem,5vw,3.5rem);line-height:1.15;letter-spacing:-.035em}
.prose{font-family:Georgia,"Times New Roman",serif;font-size:1.1875rem;line-height:1.85}
.prose h2,.prose h3{font-family:var(--font);font-weight:600;letter-spacing:-.025em}
.prose a{color:var(--accent)}
.prose img{border:1px solid var(--line);border-radius:6px}
.project-copy h3,.project-featured h3{font-size:2rem;line-height:1.2}
.contact-grid strong{font-size:clamp(1rem,1.7vw,1.4rem);overflow-wrap:anywhere}
@media(max-width:760px){.hero h1{font-size:clamp(2.7rem,8vw,4rem)}.prose{font-size:1.125rem}.article{padding-top:44px}}
@media print{.hero h1{font-size:40pt}.prose{font-size:11pt}}

/* Follow the visitor's system preference; company pages are independent. */
@media(prefers-color-scheme:dark){
  :root{
    --bg:#141b22;--panel:#1b242e;--text:#e8edf2;--muted:#a6b4c2;
    --accent:#91bfe3;--line:#354351;--secondary:#bac7d3;--prose:#d3dde6;
    --soft:#1b2631;--tint:#243545;--hover:#263747;--border-strong:#455c70;
    --connector:#64829b;--diagram-text:#d0dfec;--section-bg:#18222c;
    --header-bg:rgba(20,27,34,.96);--accent-hover:#b4d5ee;--button-text:#142331;
  }
}
