@charset "UTF-8";
:root{--paper:#f5f3ed;--ink:#202b29;--muted:#4d5b53;--line:#d5dbd3;--accent:#21654f;--surface:#e9ede5;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.7 "Segoe UI",Arial,Helvetica,sans-serif}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:5px}a:hover{color:var(--accent)}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:5px}img{display:block;max-width:100%}.shell{width:min(1120px,calc(100% - 96px));margin:auto}header{display:flex;justify-content:space-between;align-items:center;padding:30px 0;border-bottom:1px solid var(--line)}.brand{text-decoration:none;font-weight:650;letter-spacing:-.04em;font-size:21px}nav{display:flex;gap:30px;font-size:14px}nav a{text-decoration:none}.skip{position:absolute;top:-100px;background:var(--paper);padding:12px}.skip:focus{top:10px}.hero{padding:88px 0 72px;display:grid;grid-template-columns:1fr;align-items:start}.label,.number,.meta{font:600 12px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.label{color:var(--accent);margin:0 0 24px}.label:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:10px;vertical-align:middle}h1{font-size:clamp(40px,5.4vw,69px);line-height:1.08;letter-spacing:-.055em;font-weight:600;margin:0 0 27px;max-width:800px}h1 em{font-family:inherit;font-style:normal;font-weight:inherit;color:var(--accent)}.intro{max-width:630px;font-size:18px;color:var(--muted);line-height:1.8}.actions{display:flex;gap:30px;margin-top:30px;font-size:14px;font-weight:600}.context{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:20px 0 0;gap:20px;color:var(--muted);font-size:14px}.context b{font-weight:600;color:var(--ink)}section{padding:64px 0;border-bottom:1px solid var(--line)}.section-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:30px;gap:20px}h2{font-size:30px;font-weight:600;letter-spacing:-.04em;margin:0}h3{font-size:25px;line-height:1.3;font-weight:600;letter-spacing:-.025em;margin:10px 0 16px}p{margin:0 0 18px}.work{display:grid;grid-template-columns:60px 1fr 240px;gap:25px;padding:36px 0;border-top:1px solid var(--line)}.work p{max-width:620px;color:var(--muted);font-size:16px}.work .meta{color:var(--accent)}.work-link{font-size:14px;font-weight:600}.scope{font-size:14px;color:var(--muted);padding-top:30px}.scope span{display:block;border-bottom:1px solid var(--line);padding:9px 0}.split{display:grid;grid-template-columns:260px 1fr;gap:65px}.career-row{display:grid;grid-template-columns:155px 1fr;gap:25px;padding:25px 0;border-top:1px solid var(--line)}.career-row:first-child{padding-top:0;border:0}.career-row h3{font-size:18px;margin:0 0 4px}.career-row p{font-size:16px;color:var(--muted);margin:0}.role{font-size:14px;color:var(--muted)}.recognition{background:var(--surface);padding:25px 30px;margin-top:30px;font-size:15px}.recognition p{margin:8px 0 0}.writing-row{display:grid;grid-template-columns:70px 1fr auto;gap:25px;padding:23px 0;border-top:1px solid var(--line);text-decoration:none}.writing-row h3{font-size:18px;margin:0 0 5px}.writing-row p{font-size:16px;color:var(--muted);margin:0}.contact{padding:70px 0}.contact h2{font-size:42px;line-height:1.15;max-width:600px;margin-bottom:22px}.contact p{color:var(--muted)}footer{border-top:1px solid var(--line);padding:23px 0;display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.detail{max-width:760px;padding:75px 0}.detail h1{font-size:clamp(38px,5vw,60px)}.detail h2{font-size:26px;margin:40px 0 15px}.detail p,.detail li{color:var(--muted)}.detail ul{padding-left:22px}.detail .lead{font-size:21px;color:var(--ink)}.diagram{display:grid;grid-template-columns:1fr 35px 1fr;align-items:center;gap:12px;margin:30px 0}.diagram-box{border:1px solid var(--line);padding:24px;font-size:15px}.diagram-box small{display:block;color:var(--muted);margin-top:10px}.diagram-arrow{text-align:center;color:var(--accent)}.detail-note{padding:20px;border-left:2px solid var(--accent);background:var(--surface);font-size:14px;margin-top:35px}@media(max-width:800px){.shell{width:calc(100% - 40px)}.hero{grid-template-columns:1fr;padding-top:55px}h1{font-size:44px}.intro{font-size:16px}.work{grid-template-columns:30px 1fr}.scope{display:none}.split{grid-template-columns:1fr;gap:30px}.context{flex-direction:column;gap:5px}.writing-row{grid-template-columns:45px 1fr auto;gap:12px}}@media(max-width:520px){header{padding:22px 0}.brand{font-size:18px}nav{gap:18px;font-size:12px}.hero{grid-template-columns:1fr;padding:45px 0 35px}h1{font-size:43px}.actions{gap:24px}section{padding:42px 0}.section-top{align-items:start}.section-top .meta{max-width:100px;text-align:right}h2{font-size:27px}.work{padding:27px 0;gap:12px}h3{font-size:23px}.career-row{grid-template-columns:1fr;gap:8px}.contact h2{font-size:35px}footer{gap:15px;flex-wrap:wrap}.detail{padding:45px 0}.diagram{grid-template-columns:1fr}.diagram-arrow{transform:rotate(90deg)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Appearance: system preference without JS, explicit selection with JS. */
:root[data-theme="dark"]{--paper:#151d1a;--ink:#e4ebe3;--muted:#bdc9bf;--line:#36473d;--accent:#93cfad;--surface:#202e26;color-scheme:dark}
@media(prefers-color-scheme:dark){:root:not([data-theme]){--paper:#151d1a;--ink:#e4ebe3;--muted:#bdc9bf;--line:#36473d;--accent:#93cfad;--surface:#202e26;color-scheme:dark}}
header{gap:24px}header nav{margin-left:auto}.theme-control[hidden]{display:none}.theme-control select{font:500 14px/1.4 "Segoe UI",Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:4px;min-height:40px;padding:8px 26px 8px 10px;cursor:pointer}.theme-control select:hover{border-color:var(--accent)}select:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}@media(max-width:520px){header{flex-wrap:wrap;gap:12px}header nav{gap:16px}.theme-control{margin-left:auto}}@media(max-width:370px){header .theme-control{flex-basis:100%;display:flex;justify-content:flex-end}}

/* Keep the text-led introduction readable after removing the portrait. */
.hero .intro{max-width:680px}.hero h1{max-width:960px}nav a{font-weight:500}.number{font-size:12px}
