:root{color-scheme:light;--paper:#edf2f0;--surface:#fafcfb;--ink:#14272e;--slate:#52666c;--signal:#176b87;--trace:#0f8b7b;--line:#52666c47;--max-width:72rem;--reading-width:48rem;--font-display:Georgia, "Times New Roman", serif;--font-body:Inter, "Avenir Next", "Segoe UI", sans-serif;--font-utility:ui-monospace, "SFMono-Regular", monospace;--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2.5rem;--space-5:4rem;--space-6:clamp(5rem, 11vw, 9rem)}*{box-sizing:border-box}html{background:var(--paper);max-width:100%;color:var(--ink);font-family:var(--font-body);scroll-behavior:smooth;overflow-x:hidden}body{min-width:0;margin:0;font-size:clamp(1rem,.97rem + .12vw,1.075rem);line-height:1.65;overflow-x:hidden}a{color:var(--signal);text-underline-offset:.22em;text-decoration-thickness:.08em;transition:color .14s,background-color .14s,border-color .14s}a:hover{color:var(--ink)}:focus-visible{outline:2px solid var(--signal);outline-offset:3px}a,p,h1,h2,h3{overflow-wrap:anywhere}main,.site-header__inner{width:min(calc(100% - 3rem), var(--max-width));margin-inline:auto}main{padding-bottom:var(--space-6)}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--font-display);font-weight:400}h1{max-width:12ch;margin-bottom:var(--space-3);letter-spacing:-.045em;font-size:clamp(3rem,7.2vw,6.6rem);line-height:.94}h2{margin-bottom:var(--space-2);letter-spacing:-.025em;font-size:clamp(2.1rem,4.1vw,3.8rem);line-height:1.05}h3{margin-bottom:var(--space-2);font-size:clamp(1.15rem,1.8vw,1.45rem);line-height:1.25}h4,h5{color:var(--ink);margin-top:0;line-height:1.3}h4{margin-bottom:var(--space-2);font-size:1rem}h5{margin-bottom:.75rem;font-size:.9rem}.skip-link{z-index:10;top:var(--space-2);left:var(--space-2);border:1px solid var(--signal);background:var(--surface);padding:.7rem 1rem;font-weight:700;position:fixed;transform:translateY(calc(-100% - 2rem))}.skip-link:focus{transform:translateY(0)}.site-header{border-bottom:1px solid var(--line)}.site-header__inner{align-items:center;gap:var(--space-2) var(--space-3);min-height:5rem;padding-block:var(--space-2);display:flex}.site-logo{color:var(--ink);font-family:var(--font-display);flex:none;font-size:1.12rem;font-weight:700;text-decoration:none}.site-nav{margin-inline-start:auto}.site-nav ul{gap:.2rem var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.site-nav a,.resume-link{min-height:2.75rem;color:var(--ink);padding:.55rem .4rem;font-size:.9rem;font-weight:650;text-decoration:none;display:inline-block}.site-nav a:hover{color:var(--signal)}.resume-link{border:1px solid var(--signal);color:var(--signal);flex:none;padding-inline:.9rem}.resume-link:hover{border-color:var(--trace);color:var(--ink)}.hero{border-bottom:1px solid var(--line)}.hero__thesis{padding-block:clamp(4rem,8vw,7.5rem)}.eyebrow,.section-label{margin-bottom:var(--space-2);color:var(--signal);font-family:var(--font-utility);letter-spacing:.11em;text-transform:uppercase;font-size:.74rem;font-weight:700;line-height:1.4}.hero__statement{max-width:38rem;margin-bottom:var(--space-2);color:var(--ink);font-size:clamp(1.25rem,2vw,1.65rem);line-height:1.45}.hero__support{max-width:42rem;margin-bottom:var(--space-4);color:var(--slate)}.hero__actions{flex-wrap:wrap;gap:.75rem;display:flex}.button{border:1px solid var(--signal);align-items:center;min-height:3rem;padding:.65rem 1rem;font-size:.94rem;font-weight:700;text-decoration:none;display:inline-flex}.button--primary{background:var(--signal);color:var(--surface)}.button--primary:hover{border-color:var(--ink);background:var(--ink);color:var(--surface)}.button--secondary{background:0 0}.impact,.capabilities,.selected-work,.experience,.research,.skills{padding-block:var(--space-6);border-bottom:1px solid var(--line)}.section-heading{gap:var(--space-4);margin-bottom:var(--space-5);grid-template-columns:minmax(10rem,.7fr) minmax(0,2fr);align-items:end;display:grid}.section-heading .section-label{margin-bottom:.55rem}.section-heading h2{max-width:15ch;margin-bottom:0}.impact__list{padding:0 0 0 var(--space-4);margin:0;list-style:none;position:relative}.impact__list:before{background:var(--trace);content:"";width:1px;position:absolute;top:.52rem;bottom:.52rem;left:.28rem}.impact__item{gap:var(--space-3);min-width:0;padding:var(--space-3) 0;border-bottom:1px solid var(--line);grid-template-columns:minmax(9rem,.7fr) minmax(9rem,.8fr) minmax(0,1.5fr);align-items:baseline;display:grid;position:relative}.impact__item:before{top:.1rem;left:calc(-1 * var(--space-4) - .06rem);background:var(--trace);content:"";width:.7rem;height:.7rem;position:absolute}.impact__item strong{color:var(--ink);font-family:var(--font-display);font-size:clamp(2rem,4vw,3.25rem);font-weight:400;line-height:1}.impact__label{color:var(--ink);font-size:.95rem;font-weight:700}.impact__context{color:var(--slate);font-family:var(--font-utility);font-size:.74rem;line-height:1.55}.section-heading--reading{align-items:start}.section-heading--reading p:last-child{max-width:var(--reading-width);color:var(--slate);margin:0}.capabilities__grid{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.capability{min-width:0;padding:var(--space-4)}.capability+.capability{border-left:1px solid var(--line)}.capability h3{font-family:var(--font-display);font-weight:400}.capability p{color:var(--slate);margin-bottom:0}.selected-work__list{border-top:1px solid var(--line)}.project-case{padding:var(--space-6) 0 var(--space-6) var(--space-4);border-bottom:1px solid var(--line);position:relative}.project-case:before{background:var(--trace);content:"";width:1px;position:absolute;top:0;bottom:0;left:.3rem}.project-case:after{top:calc(var(--space-6) + .35rem);background:var(--trace);content:"";width:.7rem;height:.7rem;position:absolute;left:0}.project-case__header{max-width:58rem;margin-bottom:var(--space-5)}.project-case__header h3{max-width:24ch;margin-bottom:var(--space-3);font-family:var(--font-display);letter-spacing:-.025em;font-size:clamp(2rem,4.2vw,3.8rem);font-weight:400;line-height:1.08}.project-case__summary{max-width:var(--reading-width);color:var(--slate);margin-bottom:0;font-size:clamp(1.08rem,1.5vw,1.3rem)}.project-case__context{gap:var(--space-4);margin-bottom:var(--space-5);padding-block:var(--space-3);border-block:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.project-case__context section,.insight__evidence section{min-width:0}.project-case__context p,.project-case__outcomes p,.project-case__planned p{color:var(--slate);margin-bottom:0}.project-case__approach,.project-case__architecture,.project-case__outcomes,.project-case__capabilities{margin-top:var(--space-5)}.project-case__approach ul,.project-case__outcomes ul,.insight ul{max-width:var(--reading-width);gap:.75rem;margin:0;padding-left:1.25rem;display:grid}.project-case__approach li::marker,.project-case__outcomes li::marker,.insight li::marker{color:var(--signal)}.project-case__section-heading{max-width:var(--reading-width);margin-bottom:var(--space-3)}.project-case__section-heading .section-label{margin-bottom:.5rem}.architecture-flow{counter-reset:architecture;grid-template-columns:repeat(5,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.architecture-flow li{min-width:0;padding:var(--space-3) var(--space-2) var(--space-3) 0;counter-increment:architecture;position:relative}.architecture-flow li:not(:last-child):after{border-top:1px solid var(--trace);border-right:1px solid var(--trace);content:"";width:.7rem;height:.7rem;position:absolute;top:2rem;right:.35rem;transform:rotate(45deg)}.architecture-flow span{color:var(--ink);font-family:var(--font-utility);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.65rem;font-size:.76rem;font-weight:700;display:block}.architecture-flow span:before{color:var(--signal);content:counter(architecture, decimal-leading-zero);margin-right:.45rem}.architecture-flow p{padding-right:var(--space-2);color:var(--slate);margin:0;font-size:.85rem;line-height:1.55}.insight{margin-top:var(--space-5);border:1px solid var(--line);background:var(--surface);padding:clamp(2rem,5vw,4rem)}.insight__header{max-width:var(--reading-width);margin-bottom:var(--space-4)}.insight__header h4{max-width:24ch;font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(1.8rem,3.5vw,3rem);font-weight:400}.insight__header p:last-child{color:var(--slate);margin-bottom:0}.insight__evidence{gap:var(--space-4);grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);display:grid}.insight__evidence section+section{padding-left:var(--space-4);border-left:1px solid var(--line)}.project-case__capabilities ul{gap:var(--space-1);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.project-case__capabilities li{border:1px solid var(--line);color:var(--ink);font-family:var(--font-utility);padding:.4rem .65rem;font-size:.74rem;line-height:1.4}.project-case__planned{max-width:var(--reading-width);margin-top:var(--space-5);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);border:1px dashed var(--line);position:relative}.project-case__planned:before{top:var(--space-3);left:var(--space-2);border:1px dashed var(--signal);background:var(--paper);content:"";width:.65rem;height:.65rem;position:absolute}.planned-status{color:var(--signal);font-family:var(--font-utility);letter-spacing:.09em;text-transform:uppercase;margin-bottom:.35rem;font-size:.74rem;font-weight:700}.experience__list{border-top:1px solid var(--line)}.experience-entry{gap:var(--space-4);padding-block:var(--space-5);border-bottom:1px solid var(--line);grid-template-columns:minmax(15rem,.85fr) minmax(0,2fr);display:grid}.experience-entry__header{min-width:0}.experience-entry__header h3{font-family:var(--font-display);margin-bottom:.35rem;font-size:clamp(1.7rem,3vw,2.4rem);font-weight:400}.experience-entry__role{margin-bottom:var(--space-2);color:var(--ink);font-weight:650}.experience-entry__dates,.experience-entry__scope,.research__meta{color:var(--slate);font-family:var(--font-utility);font-size:.78rem;line-height:1.55}.experience-entry__scope{grid-column:1}.experience-entry__scope span{color:var(--signal);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.25rem;font-weight:700;display:block}.experience-entry ul{gap:var(--space-2);grid-area:1/2/span 2;margin:0;padding-left:1.25rem;display:grid}.experience-entry li::marker{color:var(--signal)}.research__grid{border-block:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.research__grid article{min-width:0;padding:var(--space-4)}.research__grid article+article{border-left:1px solid var(--line)}.research__grid h3{font-family:var(--font-display);font-size:clamp(1.5rem,2.6vw,2.2rem);font-weight:400}.research__grid p:last-child{color:var(--slate);margin-bottom:0}.skills__list{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.skills__list div{min-width:0;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line)}.skills__list div:nth-child(odd){padding-left:0}.skills__list div:nth-child(2n){border-left:1px solid var(--line)}.skills__list dt{color:var(--ink);margin-bottom:.45rem;font-weight:700}.skills__list dd{color:var(--slate);margin:0}.about{gap:var(--space-5);padding-block:var(--space-6);grid-template-columns:minmax(12rem,.75fr) minmax(0,1.6fr);display:grid}.about h2{max-width:13ch;margin-bottom:0}.about__statement{max-width:var(--reading-width);font-family:var(--font-display);font-size:clamp(1.35rem,2.5vw,2rem);line-height:1.4}.about nav ul{gap:var(--space-2);margin:var(--space-4) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.about nav a{min-height:2.75rem;padding:.55rem 0;font-weight:700;display:inline-block}.site-footer{border-top:1px solid var(--line)}.site-footer p{width:min(calc(100% - 3rem), var(--max-width));padding-block:var(--space-3);color:var(--slate);font-family:var(--font-utility);margin:0 auto;font-size:.72rem}.not-found{min-height:100vh;padding-block:clamp(5rem,14vw,10rem)}.not-found h1{max-width:10ch}.not-found>p:not(.section-label){max-width:var(--reading-width);margin-bottom:var(--space-4);color:var(--slate)}@media (width<=48rem){main,.site-header__inner{width:min(calc(100% - 2rem), var(--max-width))}.site-header__inner{padding-block:var(--space-2);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.site-nav{border-block:1px solid var(--line);grid-area:2/1/auto/-1;width:100%;margin-inline-start:0}.site-nav ul{gap:0 var(--space-1)}.site-nav a{padding-inline:.2rem}.resume-link{grid-area:1/2;padding-inline:.7rem;font-size:.82rem}.hero__thesis{padding:clamp(3.5rem,16vw,5.25rem) 0}.section-heading{margin-bottom:var(--space-4);display:block}.section-heading .section-label{margin-bottom:var(--space-2)}.impact__list{padding-left:var(--space-3);display:block}.impact__item{min-height:0;padding:0 0 var(--space-4) var(--space-2);grid-template-columns:minmax(0,1fr);gap:.2rem;display:grid}.impact__item+.impact__item{padding-top:var(--space-3)}.impact__item:before{top:.1rem;left:calc(-1 * var(--space-3) - .08rem)}.impact__item+.impact__item:before{top:calc(var(--space-3) + .1rem)}.capabilities__grid{display:block}.capability{padding:var(--space-3) 0}.capability+.capability{border-top:1px solid var(--line);border-left:0}.project-case{padding:var(--space-5) 0 var(--space-5) var(--space-3)}.project-case:after{top:calc(var(--space-5) + .35rem)}.project-case__context,.insight__evidence{gap:var(--space-3);grid-template-columns:minmax(0,1fr)}.architecture-flow{padding-left:var(--space-3);border-left:1px solid var(--trace);display:block}.architecture-flow li{padding:0 0 var(--space-4) var(--space-2)}.architecture-flow li:before{top:.32rem;left:calc(-1 * var(--space-3) - .34rem);background:var(--trace);content:"";width:.65rem;height:.65rem;position:absolute}.architecture-flow li:not(:last-child):after{display:none}.insight{padding:var(--space-3)}.insight__evidence section+section{padding-top:var(--space-3);border-top:1px solid var(--line);border-left:0;padding-left:0}.experience-entry{padding-block:var(--space-4);display:block}.experience-entry__scope,.experience-entry ul{margin-top:var(--space-3)}.research__grid,.skills__list,.about{display:block}.research__grid article{padding:var(--space-3) 0}.research__grid article+article{border-top:1px solid var(--line);border-left:0}.skills__list div,.skills__list div:nth-child(odd){padding:var(--space-3) 0}.skills__list div:nth-child(2n){border-left:0}.about>div+div{margin-top:var(--space-4)}.site-footer p{width:min(calc(100% - 2rem), var(--max-width))}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important}}
