:root{--ink:#16212b;--ink-soft:#4a5a68;--ink-faint:#6e7c88;--paper:#f8f8f6;--paper-veil:#f8f8f6e6;--limestone:#efefe9;--rule:#d9dbd5;--rule-soft:#e6e7e1;--accent:#2c6b7c;--accent-ink:#1e4c59;--on-accent:#fff;--display:"Newsreader", Georgia, serif;--body:"Public Sans", -apple-system, BlinkMacSystemFont, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--measure:62ch;--page:1080px;--nav-h:58px}[data-theme=dark]{--ink:#e7eae8;--ink-soft:#a6b2ba;--ink-faint:#7c8a94;--paper:#131a20;--paper-veil:#131a20e6;--limestone:#1b232a;--rule:#2b353e;--rule-soft:#222b33;--accent:#3d8ca1;--accent-ink:#8cc9d9;--on-accent:#0b1216}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 24px)}body{background:var(--paper);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;font-size:17px;font-weight:400;line-height:1.7;transition:background-color .26s,color .26s}a{color:inherit}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:1px}.wrap{max-width:var(--page);margin:0 auto;padding:0 32px}.nav{z-index:20;background:var(--paper-veil);backdrop-filter:saturate(180%)blur(10px);border-bottom:1px solid var(--rule);position:sticky;top:0}.nav-inner{min-height:var(--nav-h);justify-content:space-between;align-items:center;gap:24px;display:flex}.nav-mark{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);white-space:nowrap;font-size:13px;font-weight:500;text-decoration:none}.nav-right{align-items:center;gap:24px;display:flex}.nav-links{font-family:var(--mono);letter-spacing:.02em;gap:24px;font-size:13px;display:flex}.nav-links a{color:var(--ink-faint);padding:4px 0;text-decoration:none;transition:color .16s;position:relative}.nav-links a:after{content:"";background:var(--accent);transform-origin:0;height:1px;transition:transform .22s cubic-bezier(.22,1,.36,1);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.nav-links a:hover{color:var(--ink)}.nav-links a:hover:after{transform:scaleX(1)}.nav-links a.is-current{color:var(--accent-ink)}.nav-links a.is-current:after{transform:scaleX(1)}.theme-btn{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);border:1px solid var(--rule);cursor:pointer;background:0 0;border-radius:2px;padding:5px 11px;font-size:11px;transition:color .16s,border-color .16s}.theme-btn:hover{color:var(--accent-ink);border-color:var(--accent)}.hero{padding:88px 0 8px}.hero-grid{grid-template-columns:minmax(0,1fr) 232px;align-items:end;gap:48px;display:grid}.name{font-family:var(--display);letter-spacing:-.025em;margin:0 0 20px;font-size:clamp(3.4rem,9vw,6.2rem);font-weight:400;line-height:.94}.locator{font-family:var(--mono);letter-spacing:.06em;color:var(--ink-faint);border-bottom:1px solid var(--rule);margin-bottom:26px;padding-bottom:26px;font-size:12.5px}.locator span{color:var(--accent-ink)}.thesis{font-family:var(--display);letter-spacing:-.012em;text-wrap:balance;max-width:23ch;margin:0 0 26px;font-size:clamp(1.45rem,3.1vw,2.05rem);font-weight:300;line-height:1.34}.thesis em{color:var(--accent-ink);font-style:italic}.bio{max-width:54ch;color:var(--ink-soft);margin:0 0 34px}.portrait{aspect-ratio:4/5;background:var(--limestone);border:1px solid var(--rule-soft);text-align:center;font-family:var(--mono);letter-spacing:.05em;color:var(--ink-faint);justify-content:center;align-items:center;padding:16px;font-size:11.5px;line-height:1.6;display:flex;overflow:hidden}.portrait img{object-fit:cover;width:100%;height:100%;display:block}.actions{flex-wrap:wrap;gap:12px;display:flex}.btn{font-family:var(--mono);letter-spacing:.04em;border:1px solid var(--accent);color:var(--on-accent);background:var(--accent);border-radius:2px;padding:11px 20px;font-size:13px;text-decoration:none;transition:background-color .16s,border-color .16s,transform .16s;display:inline-block}.btn:hover{background:var(--accent-ink);border-color:var(--accent-ink)}.btn:active{transform:translateY(1px)}.btn-quiet{color:var(--accent-ink);border-color:var(--rule);background:0 0}.btn-quiet:hover{background:var(--limestone);border-color:var(--accent);color:var(--accent-ink)}.span-rule{width:100%;height:46px;margin:62px 0 54px;display:block;overflow:visible}.span-rule .cable,.span-rule .deck,.span-rule .hanger,.span-rule .tower{fill:none;stroke:var(--rule);stroke-width:1px;vector-effect:non-scaling-stroke}.span-rule .cable,.span-rule .tower{stroke:var(--accent);opacity:.55}.span-rule .hanger{opacity:.5}.span-rule--tight{margin:46px 0 42px}.eyebrow{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent-ink);margin:0 0 26px;font-size:11.5px;font-weight:500}.work-group+.work-group{margin-top:48px}.group-label{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--rule);margin:0 0 4px;padding-bottom:12px;font-size:11.5px;font-weight:500}.item{border-bottom:1px solid var(--rule-soft);grid-template-columns:minmax(0,1fr) 280px;gap:40px;padding:24px 0;transition:border-color .2s;display:grid}.item:hover{border-bottom-color:var(--accent)}.item h3{font-family:var(--display);letter-spacing:-.01em;margin:0 0 7px;font-size:1.3rem;font-weight:400}.item p{color:var(--ink-soft);max-width:48ch;margin:0;font-size:15.5px;line-height:1.65}.item-meta{font-family:var(--mono);color:var(--ink-faint);letter-spacing:.03em;font-size:12px;line-height:1.9}.about-grid{grid-template-columns:minmax(0,1fr) 300px;gap:56px;display:grid}.about-grid p{max-width:var(--measure);color:var(--ink-soft);margin:0 0 20px}.about-grid p:first-child{font-family:var(--display);color:var(--ink);font-size:1.22rem;font-weight:400;line-height:1.6}.facts{border-top:1px solid var(--rule);font-family:var(--mono);margin:0;padding-top:18px;font-size:12.5px;line-height:1.9}.facts dt{color:var(--accent-ink);letter-spacing:.09em;text-transform:uppercase;margin-top:15px;font-size:10.5px}.facts dt:first-child{margin-top:0}.facts dd{color:var(--ink-soft);margin:0}.about-side{flex-direction:column;gap:28px;display:flex}.footer{border-top:1px solid var(--rule);margin-top:24px;padding:46px 0 64px}.footer-grid{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:28px;display:flex}.footer h2{font-family:var(--display);letter-spacing:-.018em;text-wrap:balance;max-width:18ch;margin:0 0 10px;font-size:clamp(1.7rem,4vw,2.5rem);font-weight:400;line-height:1.2}.footer-note{color:var(--ink-soft);max-width:42ch;margin:0;font-size:15.5px}.footer-links{font-family:var(--mono);text-align:right;flex-direction:column;gap:8px;font-size:13px;display:flex}.footer-links a{color:var(--accent-ink);border-bottom:1px solid #0000;padding-bottom:1px;text-decoration:none;transition:border-color .16s}.footer-links a:hover{border-bottom-color:var(--accent)}.colophon{border-top:1px solid var(--rule);font-family:var(--mono);letter-spacing:.04em;color:var(--ink-faint);flex-wrap:wrap;justify-content:space-between;gap:14px;margin-top:42px;padding-top:18px;font-size:11.5px;display:flex}.reveal{opacity:0;animation:.7s cubic-bezier(.22,1,.36,1) forwards rise;transform:translateY(10px)}.reveal:first-child{animation-delay:60ms}.reveal:nth-child(2){animation-delay:.14s}@keyframes rise{to{opacity:1;transform:none}}.span-rule .cable{stroke-dasharray:1400;stroke-dashoffset:1400px;animation:1.4s cubic-bezier(.4,0,.2,1) .24s forwards draw}@keyframes draw{to{stroke-dashoffset:0}}.js .observe{opacity:0;transform:translateY(14px)}.js .observe.in{opacity:1;transition:opacity .62s cubic-bezier(.22,1,.36,1),transform .62s cubic-bezier(.22,1,.36,1);transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;animation:none;transform:none}.js .observe{opacity:1;transform:none}.span-rule .cable{stroke-dasharray:none;stroke-dashoffset:0;animation:none}*{transition:none!important}}@media (width<=900px){.item{grid-template-columns:minmax(0,1fr) 220px;gap:28px}.about-grid{gap:40px}}@media (width<=860px){.wrap{padding:0 22px}.hero{padding-top:56px}.hero-grid{grid-template-columns:1fr;gap:40px}.portrait{aspect-ratio:4/5;width:min(72vw,260px);max-width:none;margin-inline:auto;padding:12px}.item,.about-grid{grid-template-columns:1fr;gap:18px}.footer-links{text-align:left}}@media (width<=620px){:root{--nav-h:auto}.nav-inner{flex-direction:column;align-items:stretch;gap:0;padding-top:12px}.nav-mark{padding:10px 0}.nav-right{justify-content:space-between;padding:10px 0}.nav-links{flex-wrap:wrap;gap:8px 14px;font-size:12px}.nav-links a{white-space:nowrap}html{scroll-padding-top:110px}}
