:root{--paper:#fafaf8;--ink:#181b19;--muted:#60655f;--line:#ced1ca;--dark:#171b18;--light:#eff1eb;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;font-family:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0}a{color:inherit;text-decoration:none}a:focus-visible,summary:focus-visible{outline-offset:6px;outline:2px solid}a:hover{text-underline-offset:5px;text-decoration:underline}.wrap{width:100%;padding-left:clamp(24px,6vw,108px);padding-right:clamp(24px,6vw,108px)}p{margin:0 0 1.2rem;font-size:1.0625rem;line-height:1.6}h1,h2,h3,h4{letter-spacing:-.04em;text-wrap:balance;margin:0;font-weight:500}h2{font-size:clamp(2.1rem,4.5vw,4.5rem);line-height:1.06}h3{font-size:clamp(1.7rem,3vw,3rem);line-height:1.12}h4{letter-spacing:-.02em;margin-bottom:10px;font-size:1.2rem}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:24px;font-family:Arial,Helvetica,sans-serif;font-size:.78rem;line-height:1.5}.header{border-bottom:1px solid var(--line);background:var(--paper);justify-content:space-between;align-items:center;gap:20px;padding:24px clamp(24px,6vw,108px);display:flex}.identity{letter-spacing:-.04em;white-space:nowrap;font-size:1.3rem;font-weight:600}nav{align-items:center;gap:30px;font-size:.875rem;display:flex}.resume-link{border-left:1px solid var(--line);padding-left:28px}.skip{z-index:4;background:#fff;padding:12px;position:absolute;top:-100px;left:20px}.skip:focus{top:10px}.hero{padding-top:72px;padding-bottom:44px}.hero h1{letter-spacing:-.055em;max-width:1300px;font-size:clamp(2.6rem,6.8vw,7rem);line-height:1.02}.applicant{color:#7b8078;letter-spacing:-.025em;margin-top:18px;font-size:.34em;display:block}.intro{letter-spacing:-.025em;max-width:840px;margin-top:38px;font-size:clamp(1.35rem,2vw,2rem);line-height:1.35}.hero-body{max-width:770px;color:var(--muted);font-size:1.1rem}.hero-bottom{border-top:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:30px;margin-top:42px;padding-top:25px;display:flex}.hero-bottom p{color:var(--muted);margin:0;font-size:.875rem}.text-link{align-items:center;gap:50px;padding:10px 0;font-size:.95rem;display:inline-flex}.section-heading{padding-top:75px;padding-bottom:44px}.section-heading h2{max-width:950px}.section-heading>p:last-child:not(.eyebrow){color:var(--muted);max-width:690px;margin:20px 0 0}.work{border-top:1px solid var(--line)}.project{border-top:1px solid var(--line);padding-top:44px;padding-bottom:40px}.project-heading{justify-content:space-between;align-items:flex-start;gap:40px;margin-bottom:30px;display:flex}.project-heading .eyebrow{margin-bottom:12px}.status{text-align:right;flex:0 340px;padding-top:4px;font-size:.875rem;line-height:1.6}.status span{color:var(--muted)}.project-body{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(30px,7vw,120px);display:grid}.project-body>div>p:not(.lead){color:var(--muted)}.lead{letter-spacing:-.02em;font-size:1.38rem;line-height:1.4}.stack{margin-top:24px!important;font-size:.875rem!important;line-height:1.7!important}.stack>span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;font-size:.75rem;display:block}dl{margin:0}.evidence>div{border-top:1px solid var(--line);padding:15px 0}dt{margin-bottom:8px;font-size:.875rem;font-weight:600}dd{color:var(--muted);margin:0;font-size:1rem;line-height:1.55}.flow{background:#edf0e9;margin:30px 0 0;padding:24px 28px}.flow figcaption{color:var(--muted);margin-bottom:24px;font-size:.8rem}.flow ol{grid-template-columns:repeat(4,minmax(0,1fr));gap:30px;margin:0;padding:0;list-style:none;display:grid}.flow li{padding-right:20px;position:relative}.flow li:not(:last-child):after{content:"→";color:var(--muted);position:absolute;top:0;right:-13px}.flow strong{margin-bottom:10px;font-size:1rem;font-weight:500;display:block}.flow li span{color:var(--muted);font-size:.875rem;line-height:1.5;display:block}details{border-bottom:1px solid var(--line);margin-top:15px}summary{cursor:pointer;justify-content:space-between;align-items:center;gap:24px;padding:22px 0;font-size:.9375rem;list-style:none;display:flex}summary::-webkit-details-marker{display:none}.expand{flex-shrink:0;width:12px;height:12px;position:relative}.expand:before,.expand:after{content:"";background:currentColor;position:absolute}.expand:before{width:12px;height:1px;top:5px}.expand:after{width:1px;height:12px;left:5px}details[open] .expand:after{display:none}.detail-columns{grid-template-columns:1fr 1fr;gap:50px;padding:15px 0 24px;display:grid}.detail-body p{color:var(--muted);font-size:1rem}.scope{color:var(--muted);font-size:.875rem!important}.dark-section{background:var(--dark);color:var(--light);--muted:#b4beb3;--line:#424b42;margin-top:32px;padding-bottom:38px}.system{border-top:1px solid var(--line);grid-template-columns:1fr 1.3fr;gap:clamp(35px,7vw,100px);padding:42px 0;display:grid}.system-title h3{font-size:clamp(1.8rem,3vw,2.9rem)}.system-title .scope{margin-top:18px}.compact>div{border-top:1px solid var(--line);grid-template-columns:130px 1fr;gap:20px;padding:15px 0;display:grid}.compact dt{margin:0}.compact dd{font-size:.9375rem}.system .stack{margin-bottom:0}.experience{padding-bottom:20px}.experience-row{border-top:1px solid var(--line);grid-template-columns:1fr 1.3fr;gap:clamp(30px,7vw,100px);padding:36px 0;display:grid}.experience-row .eyebrow{margin-bottom:13px}.experience-row h3{margin-bottom:12px;font-size:2rem}.experience-row p{color:var(--muted)}.experience-row .stack{margin-bottom:0}.alignment{background:#edf0e9;padding-bottom:48px}.fit-list{grid-template-columns:1fr 1fr;column-gap:60px;display:grid}.fit-list a{border-top:1px solid #bdc4b9;padding:24px 0}.fit-list h3{letter-spacing:-.02em;margin-bottom:12px;font-size:1.18rem}.fit-list p{color:var(--muted);max-width:580px;margin-bottom:16px;font-size:1rem}.fit-list span{font-size:.8125rem}.fit-list a:hover{text-decoration:none}.fit-list a:hover h3{text-underline-offset:4px;text-decoration:underline}.alignment-note{color:var(--muted);max-width:850px;margin:24px 0 0;font-size:.9375rem}.contact{padding-top:68px;padding-bottom:54px}.contact h2{font-size:clamp(3rem,6vw,6rem)}.contact-intro{color:var(--muted);margin-top:18px}.contact-links{flex-wrap:wrap;align-items:center;gap:20px 40px;margin-top:28px;display:flex}.contact-links a{overflow-wrap:anywhere;font-size:1rem}.download{border:1px solid var(--ink);gap:35px;padding:15px 22px;display:flex}.credentials{border-top:1px solid var(--line);flex-wrap:wrap;gap:50px;margin-top:40px;padding-top:25px;display:flex}.credentials p{margin:0;font-size:.875rem}.credentials strong{font-weight:500;display:block}.credentials span{color:var(--muted);margin-top:4px;display:block}.footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:20px;padding-top:20px;padding-bottom:25px;font-size:.75rem;line-height:1.5;display:flex}@media (width>=1700px){.hero-body,.project-body p{max-width:900px}.system>div>p,.experience-row>div>p{max-width:950px}}@media (width<=760px){html{scroll-padding-top:20px}.header{flex-wrap:wrap;align-items:flex-start;gap:18px;padding-top:20px;padding-bottom:18px}.header nav{flex-wrap:wrap;justify-content:space-between;gap:20px;width:100%;font-size:.8rem}.resume-link{border:0;padding-left:0}.hero{padding-top:42px;padding-bottom:30px}.hero h1{font-size:clamp(2.65rem,8.5vw,4.5rem)}.desktop-break{display:none}.applicant{font-size:.43em}.intro{margin-top:28px}.hero-body{font-size:1rem}.hero-bottom{flex-direction:column;align-items:flex-start;gap:20px;margin-top:25px}.section-heading{padding-top:45px;padding-bottom:30px}.project{padding-top:30px;padding-bottom:28px}.project-heading{margin-bottom:23px;display:block}.status{text-align:left;margin-bottom:0;padding-top:14px}.project-body,.system,.experience-row,.detail-columns{grid-template-columns:1fr;gap:24px}.project-body .lead{font-size:1.25rem}.evidence{margin-top:0}.flow{margin-top:20px;padding:22px}.flow ol{grid-template-columns:1fr;gap:26px}.flow li{border-left:1px solid #adb5a6;padding:0 0 0 22px}.flow li:not(:last-child):after{content:"↓";inset:auto auto -22px -6px}.flow strong{margin-bottom:5px}.detail-columns{padding-top:8px}.dark-section{margin-top:12px}.system{padding:30px 0}.system-title .eyebrow{margin-bottom:14px}.system-title .scope{margin-bottom:0}.compact>div{grid-template-columns:1fr;gap:7px}.experience-row{gap:10px;padding:28px 0}.fit-list{grid-template-columns:1fr}.fit-list a{padding:22px 0}.contact{padding-top:45px;padding-bottom:35px}.contact-links{flex-direction:column;align-items:flex-start;gap:20px}.credentials{flex-direction:column;gap:24px}.footer{flex-direction:column;gap:9px}p{font-size:1rem}.eyebrow{font-size:.75rem}summary{min-height:64px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{.header nav,details,.download,.skip{display:none}.dark-section{color:#000;--muted:#444;--line:#aaa;background:#fff}.wrap{padding:20px}.project,.system,.experience-row{break-inside:avoid}.hero h1{font-size:40px}.footer{font-size:10px}}.ontology-diagram{border-top:1px solid var(--ink);border-bottom:1px solid var(--line);margin:30px 0 0}.ontology-diagram figcaption{justify-content:space-between;gap:20px;padding:18px 0;font-size:.875rem;display:flex}.ontology-diagram figcaption span{color:var(--muted)}.ontology-sources{grid-template-columns:1fr 1fr;display:grid}.ontology-sources>div{background:#edf0e9;padding:24px 28px}.ontology-sources>div+div{border-left:1px solid var(--line)}.ontology-sources strong,.ontology-sources span{display:block}.ontology-sources strong{margin-bottom:9px;font-weight:500}.ontology-sources span{color:var(--muted);font-size:.9375rem;line-height:1.6}.ontology-core{color:#f4f5f0;background:#1b211d;grid-template-columns:1fr 1fr;gap:35px;padding:30px;display:grid}.ontology-core .eyebrow{color:#b9c3b7;margin-bottom:10px}.ontology-core h4{margin-bottom:14px;font-size:2rem}.ontology-core p:last-child{color:#c3cbbf;max-width:450px;margin-bottom:0;font-size:1rem}.ontology-relations{flex-direction:column;justify-content:center;gap:10px;display:flex}.ontology-relations span{border-bottom:1px solid #495246;padding-bottom:10px;font-size:.9375rem}.ontology-relations b{color:#b9c3b7;margin:0 10px;font-weight:400}.engineering-record{border-top:1px solid var(--ink);margin:25px 0 0}.engineering-record figcaption{padding:18px 0;font-size:.875rem}.engineering-record dl{grid-template-columns:1fr 1fr;gap:0 40px;display:grid}.engineering-record dl>div{border-top:1px solid var(--line);padding:18px 0}.engineering-record dt{font-weight:500}.engineering-record dd{font-size:1rem}.fit-list a>span:first-child{color:var(--muted);margin-bottom:12px;display:block}@media (width<=760px){.ontology-diagram figcaption{display:block}.ontology-diagram figcaption span{margin-top:8px;line-height:1.5;display:block}.ontology-sources,.ontology-core,.engineering-record dl{grid-template-columns:1fr}.ontology-sources>div{padding:20px}.ontology-sources>div+div{border-left:0;border-top:1px solid var(--line)}.ontology-core{gap:24px;padding:24px 20px}.ontology-core h4{font-size:1.65rem}.ontology-relations b{margin:0 6px}}.hero .text-link,.download{color:#171b18;background:#c2ff36;border:1px solid #171b18;padding:14px 22px}.dark-section .eyebrow,.ontology-core .eyebrow{color:#c2ff36}.ontology-core{border-left:4px solid #c2ff36}.dark-section .system-title h3{color:#f4f5f0}.fit-list a:hover h3{text-decoration-color:#537700}.personal-note{border-top:1px solid var(--line);padding-top:24px;padding-bottom:28px}.personal-note .eyebrow{margin-bottom:8px}.personal-note p:last-child{margin:0;font-size:1rem}.personal-note strong{color:#171b18;background:#c2ff36;padding:3px 6px;font-weight:500}a:focus-visible,summary:focus-visible{outline-color:#537700}.dark-section a:focus-visible{outline-color:#c2ff36}.credentials-expanded{grid-template-columns:1.35fr 1fr 1fr;align-items:start;gap:36px;padding-top:34px;display:grid}.credentials-expanded .eyebrow{margin-bottom:15px;font-size:.75rem;line-height:1.6}.credentials-expanded h3{margin-bottom:14px;font-size:clamp(1.5rem,2.5vw,2.4rem)}.credentials-expanded p{font-size:1rem;line-height:1.6}.credentials-expanded ul{margin:14px 0 0;padding-left:19px;font-size:1rem;line-height:1.8}.credentials-expanded .score{letter-spacing:-.05em;font-size:clamp(3rem,5vw,5rem);line-height:1}.credentials-expanded .score span{color:var(--muted);font-size:.5em;display:inline}.personal-note .lifting-context{color:var(--muted);max-width:750px;margin-top:16px;font-size:.875rem}.lifting-context a{text-underline-offset:3px;text-decoration:underline}@media (width<=900px){.credentials-expanded{grid-template-columns:1fr}.credentials-expanded>div+div{border-top:1px solid var(--line);padding-top:25px}.credentials-expanded h3{font-size:1.8rem}.credentials-expanded .score{font-size:3.5rem}}.mission-statement{max-width:800px;color:var(--ink);margin-top:26px;font-size:1.0625rem;line-height:1.6}.mission-statement strong{letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;font-size:.8125rem;font-weight:500;display:block}.technical-detail{border-bottom:1px solid var(--line);margin-top:22px}.detail-heading{letter-spacing:0;border-bottom:1px solid var(--line);margin:0;padding:18px 0;font-size:.9375rem}.ontology-relations>div{border-bottom:1px solid #495246;padding-bottom:12px}.ontology-relations strong{margin-bottom:5px;font-size:.9375rem;font-weight:500;display:block}.ontology-core .ontology-relations p{max-width:none;font-size:.9375rem;line-height:1.55}.ontology-core .ontology-example-note{margin-top:20px;font-size:.875rem}.ontology-core .ontology-consequence{border-top:1px solid #495246;grid-column:1/-1;max-width:none;padding-top:20px;font-size:1rem}



/* hero: paper background, title reveal only */
@keyframes hero-reveal{from{clip-path:inset(0 0 100% 0);transform:translateY(28%)}to{clip-path:inset(0 0 0 0);transform:translateY(0)}}
@keyframes hero-fade{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
.hero h1{clip-path:inset(0 0 0 0);animation:hero-reveal 1s cubic-bezier(.25,.25,0,1) both;animation-delay:.05s;will-change:clip-path,transform}
.hero .eyebrow{animation:hero-fade .6s cubic-bezier(.25,.25,0,1) both}
.hero .intro{animation:hero-fade .8s cubic-bezier(.25,.25,0,1) both;animation-delay:.55s}
.hero .hero-body{animation:hero-fade .8s cubic-bezier(.25,.25,0,1) both;animation-delay:.7s}
.hero .mission-statement{animation:hero-fade .8s cubic-bezier(.25,.25,0,1) both;animation-delay:.85s}
.hero .hero-bottom{animation:hero-fade .8s cubic-bezier(.25,.25,0,1) both;animation-delay:1s}
@media (prefers-reduced-motion:reduce){.hero h1,.hero .eyebrow,.hero .intro,.hero .hero-body,.hero .mission-statement,.hero .hero-bottom{animation:none}}

/* ontology Q&A: fill the column height, larger type */
.ontology-core{align-items:stretch}
.ontology-relations{height:100%;justify-content:space-between;gap:0}
.ontology-relations>div{flex:1 1 0;display:flex;flex-direction:column;justify-content:center;padding:14px 0;border-bottom:1px solid #495246}
.ontology-relations>div:first-child{padding-top:0}
.ontology-relations>div:last-child{border-bottom:0;padding-bottom:0}
.ontology-relations strong{font-size:1.125rem;margin-bottom:8px;color:#f4f5f0}
.ontology-core .ontology-relations p{font-size:1.0625rem;line-height:1.55;margin:0;color:#c3cbbf}
@media (width<=760px){.ontology-relations{height:auto}.ontology-relations>div{flex:none;padding:12px 0}.ontology-relations strong{font-size:1rem}.ontology-core .ontology-relations p{font-size:.9375rem}}

/* let the Q&A column span both rows so it fills the block */
@media (width>760px){
.ontology-core{grid-template-rows:auto auto}
.ontology-core>div:first-child{grid-column:1;grid-row:1}
.ontology-core .ontology-consequence{grid-column:1;grid-row:2;max-width:none}
.ontology-core .ontology-relations{grid-column:2;grid-row:1/span 2;height:auto;align-self:stretch}
}

/* fit: Saronic qualification / duty pair, same place in every section */
.fit{margin:22px 0 0;border-top:1px solid var(--line)}
.fit>div{display:grid;grid-template-columns:170px 1fr;gap:16px;padding:10px 0;border-bottom:1px solid var(--line)}
.fit dt{margin:0;font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);line-height:1.6}
.fit dd{margin:0;font-size:.9375rem;line-height:1.55;color:var(--ink)}
.dark-section .fit dd{color:#f4f5f0}
.fit+.stack{margin-top:18px!important}
@media (width<=760px){.fit>div{grid-template-columns:1fr;gap:4px;padding:10px 0}}
