:root{color-scheme:light;--ink: #111820;--ink-soft: #515a63;--cream: #f3efe5;--paper: #fbf9f3;--blue: #164fd6;--blue-dark: #0c3497;--red: #f05236;--night: #0d151e;--night-soft: #18232e;--line: #c8c2b5;--night-line: #33404b;--shell: min(1240px, calc(100% - 4rem) );--header-height: 5.25rem;--display: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;--sans: "Avenir Next", Avenir, "Segoe UI", Helvetica, Arial, sans-serif;--mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;font-family:var(--sans);font-synthesis:none;background:var(--cream)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--cream);font-size:16px;line-height:1.6}a{color:inherit;text-underline-offset:.2em}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,[tabindex="-1"]:focus-visible{outline:3px solid var(--red);outline-offset:4px}.page-shell{width:var(--shell);margin:0 auto}.skip-link{position:fixed;top:.75rem;left:.75rem;z-index:100;padding:.65rem .85rem;color:#fff;font-weight:800;text-decoration:none;background:var(--blue);transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.site-header{position:sticky;top:0;z-index:30;display:flex;min-height:var(--header-height);align-items:center;justify-content:space-between;gap:2rem;padding:.85rem max(2rem,calc((100vw - 1240px)/2));background:#f3efe5f0;border-bottom:1px solid var(--ink);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:.85rem;min-width:max-content;text-decoration:none}.brand-mark{display:grid;width:2.45rem;height:2.45rem;place-items:center;color:#fff;font:700 .82rem/1 var(--mono);letter-spacing:.06em;background:var(--blue)}.brand-copy{display:grid;line-height:1.15}.brand-copy strong{font-size:.86rem;letter-spacing:.02em}.brand-copy small{margin-top:.22rem;color:var(--ink-soft);font:500 .68rem/1.2 var(--mono);text-transform:uppercase}nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem 1.5rem}nav a{position:relative;font:650 .72rem/1 var(--mono);letter-spacing:.04em;text-decoration:none;text-transform:uppercase}nav a:after{position:absolute;right:0;bottom:-.45rem;left:0;height:2px;content:"";background:var(--red);transform:scaleX(0);transform-origin:right;transition:transform .18s ease}nav a:hover:after{transform:scaleX(1);transform-origin:left}#work,#capabilities,#experience,#resume,#contact{scroll-margin-top:var(--header-height)}.label,.hero-name,.status,.availability,.technology-list,.section-number,.timeline-period,.secondary-case-number,.index-list article>div>p{margin:0;font:650 .7rem/1.5 var(--mono);letter-spacing:.07em;text-transform:uppercase}.label{color:var(--blue)}.hero{display:grid;grid-template-columns:minmax(0,1.22fr) minmax(350px,.78fr);column-gap:clamp(3rem,7vw,7rem);min-height:calc(100svh - var(--header-height));padding:clamp(4.25rem,8vw,7.5rem) max(2rem,calc((100vw - 1240px)/2)) 0;background:linear-gradient(90deg,transparent calc(50% - 1px),rgb(17 24 32 / .045) 50%,transparent calc(50% + 1px)),var(--cream);border-bottom:1px solid var(--ink)}.hero-copy{align-self:center;padding-bottom:clamp(3.5rem,8vw,6.5rem)}.hero-name{margin-bottom:1.3rem;color:var(--ink)}.hero-label{display:inline-flex;align-items:center;gap:.55rem}.hero-label:before{width:.6rem;height:.6rem;content:"";background:var(--red);border-radius:50%}.hero h1{max-width:9.2ch;margin:1.25rem 0 0;font-family:var(--display);font-size:clamp(4.2rem,8.1vw,8rem);font-weight:500;line-height:.86;letter-spacing:-.066em}.hero h1 span{color:var(--red)}.hero-thesis{margin:1.25rem 0 0;color:var(--blue);font-family:var(--display);font-size:clamp(1.7rem,3vw,2.8rem);font-style:italic;line-height:1.05;letter-spacing:-.035em}.hero-detail{max-width:700px;margin:1.5rem 0 0;color:var(--ink-soft);font-size:1.02rem}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;margin-top:2rem}.button{display:inline-flex;min-height:3rem;align-items:center;justify-content:center;gap:.55rem;padding:.75rem 1rem;font-size:.83rem;font-weight:800;text-decoration:none;border:1px solid var(--ink);transition:color .16s ease,background .16s ease,border-color .16s ease}.button-dark{color:var(--cream);background:var(--ink)}.button-dark:hover{color:#fff;background:var(--blue);border-color:var(--blue)}.button-accent{color:var(--ink);background:var(--red);border-color:var(--red)}.button-accent:hover{color:#fff;background:var(--blue);border-color:var(--blue)}.icon-link{display:inline-flex;align-items:center;gap:.35rem;padding:.55rem .4rem;color:var(--ink-soft);font-size:.78rem;font-weight:700;text-decoration:none}.icon-link>svg:last-child{display:none}.icon-link:hover{color:var(--blue)}.system-plate{position:relative;align-self:center;min-width:0;padding:1.25rem;color:#fff;background:linear-gradient(rgb(255 255 255 / .1) 1px,transparent 1px),linear-gradient(90deg,rgb(255 255 255 / .1) 1px,transparent 1px),var(--blue);background-size:2.5rem 2.5rem;border:1px solid var(--ink);box-shadow:.85rem .85rem 0 var(--ink)}.plate-header{display:flex;justify-content:space-between;gap:1rem;padding-bottom:1rem;font:650 .66rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid rgb(255 255 255 / .55)}.workflow{position:relative;display:grid;margin:0;padding:.8rem 0 0;list-style:none}.workflow:before{position:absolute;top:3.15rem;bottom:3.15rem;left:2.35rem;width:1px;content:"";background:#ffffffb3}.workflow li{position:relative;display:grid;grid-template-columns:1.3rem 1.25rem minmax(0,.75fr) minmax(110px,1fr);gap:.8rem;align-items:center;min-height:5.5rem;border-bottom:1px solid rgb(255 255 255 / .3)}.workflow li:last-child{border-bottom:0}.workflow-index{font:500 .62rem/1 var(--mono)}.workflow-node{position:relative;z-index:1;display:block;width:1.05rem;height:1.05rem;background:var(--red);border:3px solid white;border-radius:50%}.workflow strong{font-family:var(--display);font-size:1.45rem;font-weight:500}.workflow small{color:#ffffffc2;font-size:.71rem;line-height:1.35}.plate-note{margin:1rem 0 0;padding-top:1rem;font:650 .72rem/1.45 var(--mono);text-align:right;border-top:1px solid rgb(255 255 255 / .55)}.proof-strip{display:grid;grid-column:1 / -1;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;border-top:1px solid var(--ink)}.proof-strip>div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem;align-items:baseline;padding:1.35rem 1.5rem;border-right:1px solid var(--ink)}.proof-strip>div:first-child{padding-left:0}.proof-strip>div:last-child{padding-right:0;border-right:0}.proof-strip dt{color:var(--blue);font-family:var(--display);font-size:clamp(1.65rem,3vw,2.25rem);font-weight:600;line-height:1}.proof-strip dd{margin:0;color:var(--ink-soft);font-size:.78rem;line-height:1.35}.work-section,.expertise-section,.experience-section,.resume-section,.contact-section{padding:clamp(5rem,9vw,8.5rem) 0}.work-section{background:var(--paper)}.section-header{display:grid;grid-template-columns:5rem minmax(0,1fr);gap:1.5rem;max-width:980px;margin-bottom:clamp(3rem,6vw,5rem)}.section-number{padding-top:.25rem;color:var(--ink-soft)}.section-header h2{max-width:13ch;margin:.8rem 0 0;font-family:var(--display);font-size:clamp(3rem,6.4vw,6rem);font-weight:500;line-height:.92;letter-spacing:-.055em}.section-lede{max-width:730px;margin:1.35rem 0 0;color:var(--ink-soft);font-size:1.03rem}.section-header-inverse .section-number,.section-header-inverse .section-lede{color:#9ca8b3}.section-header-inverse .label{color:#8fb0ff}.primary-case{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.case-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:2rem;padding:1.4rem 0 1.7rem;border-bottom:1px solid var(--line)}.case-title-row h3{margin:.4rem 0 0;font-family:var(--display);font-size:clamp(2.3rem,5vw,4.8rem);font-weight:500;line-height:.95;letter-spacing:-.045em}.status{padding:.35rem .55rem;color:var(--blue);border:1px solid var(--blue)}.primary-case-grid{display:grid;grid-template-columns:minmax(220px,.72fr) minmax(230px,.62fr) minmax(330px,1.3fr);border-bottom:1px solid var(--line)}.case-summary-block,.case-metric,.case-narrative{padding:clamp(1.5rem,3vw,2.4rem)}.case-summary-block{padding-left:0;border-right:1px solid var(--line)}.case-summary-block>p{margin:0 0 2rem;font-family:var(--display);font-size:1.35rem;line-height:1.3}.case-metric{display:flex;flex-direction:column;justify-content:flex-end;color:#fff;background:var(--blue)}.case-metric strong{font-family:var(--display);font-size:clamp(5rem,9vw,8rem);font-weight:500;line-height:.72;letter-spacing:-.07em}.case-metric span{max-width:12rem;margin-top:1.2rem;font-size:.92rem;font-weight:800;line-height:1.25}.case-metric small{margin-top:.35rem;color:#ffffffb3;font-size:.7rem}.case-narrative{display:grid;gap:1.2rem;margin:0;padding-right:0}.case-narrative>div{display:grid;grid-template-columns:4.5rem minmax(0,1fr);gap:1rem;padding-bottom:1.2rem;border-bottom:1px solid var(--line)}.case-narrative>div:last-child{padding-bottom:0;border-bottom:0}.case-narrative dt{color:var(--red);font:700 .68rem/1.5 var(--mono);text-transform:uppercase}.case-narrative dd{margin:0;color:var(--ink-soft);font-size:.88rem}.technology-list{display:flex;flex-wrap:wrap;gap:.4rem;margin:0;padding:1rem 0;list-style:none}.technology-list li{padding:.25rem .45rem;color:var(--blue-dark);background:#e3e9f7}.technology-list-inverse li{color:#c2d1f8;background:var(--night-soft)}.project-links{display:flex;flex-wrap:wrap;gap:1rem}.inline-link,.availability{display:inline-flex;align-items:center;gap:.3rem;color:var(--blue);font-size:.78rem;font-weight:800}.inline-link:hover{color:var(--red)}.availability{color:var(--ink-soft)}.project-links-inverse .inline-link{color:#b9cbfb}.project-links-inverse .inline-link:hover{color:var(--red)}.availability-inverse{color:#8f9ca8}.secondary-cases{margin-top:clamp(4rem,8vw,7rem);color:#fff;background:var(--night);border-top:1px solid var(--night-line)}.secondary-case{display:grid;grid-template-columns:3rem minmax(230px,.78fr) minmax(320px,1.22fr);gap:clamp(1.5rem,4vw,4rem);padding:clamp(1.6rem,4vw,3rem);border-right:1px solid var(--night-line);border-bottom:1px solid var(--night-line);border-left:1px solid var(--night-line)}.secondary-case-number{color:var(--red)}.secondary-case-main .label{color:#91b0ff}.secondary-case-main h3{margin:.55rem 0 0;font-family:var(--display);font-size:clamp(2.3rem,4.5vw,4rem);font-weight:500;line-height:.95;letter-spacing:-.045em}.secondary-case-main>p:last-child{margin:1.1rem 0 0;color:#aeb9c3}.secondary-case-detail{padding-left:clamp(1.5rem,4vw,3rem);border-left:1px solid var(--night-line)}.secondary-case-detail>p{margin:0;color:#aeb9c3;font-size:.88rem}.secondary-case-detail>p strong{display:block;margin-bottom:.45rem;color:var(--red);font:700 .68rem/1 var(--mono);letter-spacing:.07em;text-transform:uppercase}.project-index{display:grid;grid-template-columns:minmax(250px,.55fr) minmax(0,1.45fr);gap:clamp(2rem,7vw,7rem);margin-top:clamp(5rem,10vw,9rem)}.index-heading h3{max-width:8ch;margin:.65rem 0 0;font-family:var(--display);font-size:clamp(2.6rem,5vw,4.5rem);font-weight:500;line-height:.93;letter-spacing:-.05em}.index-list{border-top:1px solid var(--ink)}.index-list article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem;align-items:end;padding:1.4rem 0;border-bottom:1px solid var(--line)}.index-list article>div>p{color:var(--blue)}.index-list h4{margin:.25rem 0 0;font-family:var(--display);font-size:1.55rem;font-weight:600;line-height:1.1}.index-list article>div>span{display:block;max-width:670px;margin-top:.5rem;color:var(--ink-soft);font-size:.85rem}.interest-link{background:linear-gradient(90deg,rgb(22 79 214 / .06),transparent 60%)}.expertise-section{color:#fff;background:var(--blue)}.expertise-layout{display:grid;grid-template-columns:minmax(310px,.72fr) minmax(0,1.28fr);gap:clamp(3rem,8vw,8rem)}.expertise-section .section-header{display:grid;grid-template-columns:3rem minmax(0,1fr);align-content:start;margin:0}.expertise-section .section-number,.expertise-section .section-lede{color:#c0cff5}.expertise-section .label{color:#fff}.capability-list{margin:0;padding:0;list-style:none;border-top:1px solid rgb(255 255 255 / .55)}.capability-list li{display:grid;grid-template-columns:2.5rem minmax(0,1fr);gap:1.25rem;padding:1.4rem 0;border-bottom:1px solid rgb(255 255 255 / .35)}.capability-list li>span{padding-top:.25rem;color:var(--red);font:700 .7rem/1.4 var(--mono)}.capability-list h3{margin:0;font-family:var(--display);font-size:1.7rem;font-weight:500;line-height:1.1}.capability-list p{margin:.55rem 0 0;color:#d5def7;font-size:.9rem}.experience-section{color:#fff;background:var(--night)}.timeline{margin:0;padding:0;list-style:none;border-top:1px solid var(--night-line)}.timeline li{display:grid;grid-template-columns:2.5rem 10rem minmax(230px,.78fr) minmax(300px,1.22fr);gap:1.5rem;align-items:start;padding:1.5rem 0;border-bottom:1px solid var(--night-line)}.timeline-index{padding-top:.12rem;color:var(--red);font:700 .68rem/1.4 var(--mono)}.timeline-period{color:#8fb0ff}.timeline-title h3{margin:0;font-family:var(--display);font-size:1.3rem;font-weight:500;line-height:1.15}.timeline-title p{margin:.35rem 0 0;color:#83919d;font-size:.77rem}.timeline-highlight{margin:0;color:#afbac3;font-size:.88rem}.resume-section{background:var(--cream);border-bottom:1px solid var(--ink)}.resume-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.45fr);gap:4rem;align-items:end}.resume-section h2,.contact-section h2{margin:.75rem 0 0;font-family:var(--display);font-size:clamp(3rem,6vw,5.8rem);font-weight:500;line-height:.92;letter-spacing:-.055em}.resume-section p:not(.label){max-width:700px;margin:1.35rem 0 0;color:var(--ink-soft)}.resume-actions{display:grid;grid-template-columns:repeat(2,auto);gap:.8rem 1.25rem;align-items:center}.resume-actions .button{grid-column:1 / -1}.contact-section{position:relative;overflow:hidden;color:var(--ink);background:var(--red)}.contact-section:after{position:absolute;top:-7rem;right:-5rem;width:22rem;height:22rem;content:"";border:1px solid rgb(17 24 32 / .45);border-radius:50%;box-shadow:0 0 0 3rem #f05236,0 0 0 calc(3rem + 1px) #11182059,0 0 0 6rem #f05236,0 0 0 calc(6rem + 1px) #11182040;pointer-events:none}.contact-layout{position:relative;z-index:1}.contact-section .label{color:var(--ink)}.contact-section h2{max-width:10ch;font-size:clamp(3.6rem,8vw,7.5rem)}.contact-email{display:inline-flex;align-items:center;gap:.8rem;margin-top:2rem;color:var(--ink);font-size:clamp(1.2rem,3vw,2rem);font-weight:850}.contact-layout>p:last-child{margin:1rem 0 0;color:#50241e}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.35rem max(2rem,calc((100vw - 1240px)/2));color:#9ca8b3;background:var(--night);border-top:1px solid var(--night-line);font-size:.78rem}.site-footer p{margin:0}.site-footer>div{display:flex;flex-wrap:wrap;gap:1.25rem}.site-footer .inline-link{color:#c5ced5}.site-footer .inline-link:hover{color:var(--red)}@media(max-width:1080px){.hero{grid-template-columns:1fr;min-height:auto}.system-plate{width:min(100%,720px);margin-bottom:4rem}.primary-case-grid{grid-template-columns:minmax(250px,.85fr) minmax(230px,.65fr)}.case-narrative{grid-column:1 / -1;padding-left:0}.case-narrative>div{grid-template-columns:5rem minmax(0,1fr)}.expertise-layout{grid-template-columns:1fr}.expertise-section .section-header{margin-bottom:3rem}.timeline li{grid-template-columns:2.5rem 8rem minmax(0,1fr)}.timeline-highlight{grid-column:3}}@media(max-width:780px){:root{--shell: min(100% - 2rem, 1240px);--header-height: 7.35rem}.site-header{align-items:flex-start;flex-direction:column;gap:.75rem;padding-right:1rem;padding-left:1rem}nav{width:100%;justify-content:space-between;gap:.5rem}.hero{padding-right:1rem;padding-left:1rem}.hero h1{font-size:clamp(3.7rem,17vw,6rem)}.hero-actions .button{flex:1 1 13rem}.proof-strip{grid-template-columns:1fr}.proof-strip>div,.proof-strip>div:first-child,.proof-strip>div:last-child{padding:1rem 0;border-right:0;border-bottom:1px solid var(--line)}.proof-strip>div:last-child{border-bottom:0}.section-header{grid-template-columns:2.5rem minmax(0,1fr);gap:.75rem}.section-header h2{font-size:clamp(2.8rem,13vw,4.5rem)}.primary-case-grid{grid-template-columns:1fr}.case-summary-block{padding-left:0;border-right:0;border-bottom:1px solid var(--line)}.case-metric{min-height:21rem}.case-narrative{grid-column:1}.secondary-case{grid-template-columns:2rem minmax(0,1fr);gap:1rem}.secondary-case-detail{grid-column:2;padding:1.5rem 0 0;border-top:1px solid var(--night-line);border-left:0}.project-index{grid-template-columns:1fr}.index-heading h3{max-width:10ch}.timeline li{grid-template-columns:2rem minmax(0,1fr);gap:.65rem 1rem}.timeline-period,.timeline-title,.timeline-highlight{grid-column:2}.resume-layout{grid-template-columns:1fr}.resume-actions{max-width:420px}}@media(max-width:520px){.brand-copy small{display:none}nav a{font-size:.61rem}.hero-copy{padding-bottom:3.5rem}.hero h1{font-size:clamp(3.35rem,16.5vw,5rem)}.hero-actions .icon-link span{display:none}.system-plate{padding:.9rem;box-shadow:.5rem .5rem 0 var(--ink)}.workflow li{grid-template-columns:1.1rem 1.1rem minmax(0,1fr);gap:.55rem}.workflow:before{left:1.75rem}.workflow small{display:none}.case-title-row{align-items:flex-start;flex-direction:column;gap:1rem}.case-narrative>div{grid-template-columns:1fr;gap:.35rem}.secondary-case{padding-right:1rem;padding-left:1rem}.index-list article{grid-template-columns:1fr;gap:1rem;align-items:start}.expertise-section .section-header{grid-template-columns:2rem minmax(0,1fr)}.resume-actions{grid-template-columns:1fr}.resume-actions .button{grid-column:1}.contact-email{font-size:1.05rem}.contact-section:after{opacity:.45}.site-footer{align-items:flex-start;flex-direction:column;padding-right:1rem;padding-left:1rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important}}
