*,:before,:after{box-sizing:border-box}body{font-family:var(--font-sans);font-size:var(--font-size-body);line-height:var(--line-height-body);color:var(--color-text);background:var(--color-bg);margin:0}h1,h2,h3{line-height:var(--line-height-heading);font-weight:var(--font-weight-semibold)}a{color:var(--color-accent);text-decoration:underline}a:hover{color:var(--color-accent-soft)}main{max-width:var(--measure);padding-inline:var(--space-md);padding-block:var(--space-2xl);margin-inline:auto}@media (width>=40em){main{padding-inline:var(--space-lg)}}main:has(>.shell){max-width:none;padding:0}main:has(>.case-study){max-width:820px}main:has(>.work-index){max-width:var(--maxw);padding-inline:clamp(var(--space-md), 5vw, var(--space-2xl))}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition:none!important}:hover{transform:none!important}}.skip-link{padding:var(--space-sm) var(--space-md);background:var(--color-accent);color:var(--color-bg);border-radius:var(--radius-sm);z-index:100;position:absolute;top:0;left:-9999px}.skip-link:focus{left:var(--space-sm);top:var(--space-sm)}.skip-link:hover{color:var(--color-bg);background:var(--color-accent-soft)}.site-header,.site-footer{background:var(--color-surface);padding:var(--space-md-tight) var(--space-md)}.site-header{border-bottom:1px solid var(--color-border)}.site-footer{border-top:1px solid var(--color-border);padding-block:var(--space-lg)}.header-inner{max-width:var(--maxw);justify-content:space-between;align-items:center;gap:var(--space-sm) var(--space-lg);flex-wrap:wrap;margin-inline:auto;display:flex}.site-footer>*{max-width:var(--maxw);margin-inline:auto}.wordmark{font-family:var(--font-mono);font-weight:var(--font-weight-semibold);letter-spacing:-.01em;color:var(--color-text);text-decoration:none}.wordmark:hover{color:var(--color-accent-soft)}.site-header nav,.site-footer nav{align-items:center;gap:var(--space-xs) var(--space-sm);flex-wrap:wrap;display:flex}.site-header nav a,.site-footer nav a{align-items:baseline;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--font-size-small);color:var(--color-text-dim);background:0 0;text-decoration:none;transition:color .18s,background .18s;display:inline-flex}.site-header nav a:hover,.site-footer nav a:hover,.site-header nav a[aria-current=page],.site-footer nav a[aria-current=page]{color:var(--color-accent-soft);background:var(--color-accent-ghost)}.site-header nav a[aria-current=page],.site-footer nav a[aria-current=page]{font-weight:var(--font-weight-semibold);box-shadow:inset 0 -2px 0 0 var(--color-accent)}.nav-key{font-family:var(--font-mono);color:var(--color-accent)}.site-header nav a:hover .nav-key,.site-footer nav a:hover .nav-key,.site-header nav a[aria-current=page] .nav-key,.site-footer nav a[aria-current=page] .nav-key{color:var(--color-accent-soft)}.footer-contact{margin-block:var(--space-md-tight) 0}.footer-icons{gap:var(--space-lg);display:flex}.footer-icon{color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;padding:0;transition:color .18s,transform .18s;display:inline-flex}.footer-icon:hover{color:var(--color-accent);transform:translateY(-2px)}.footer-icon svg{width:22px;height:22px;display:block}.footer-fallback,.footer-out{max-width:280px;margin-block:var(--space-sm) 0;font-size:var(--font-size-small);color:var(--color-text-muted);overflow-wrap:anywhere}.site-footer a{overflow-wrap:anywhere}.footer-location,.footer-copyright{font-size:var(--font-size-small);color:var(--color-text-muted);margin-block:var(--space-sm) 0}.shell{max-width:var(--maxw);gap:var(--gap);grid-template-columns:minmax(300px,36%) 1fr;margin-inline:auto;padding-inline:clamp(16px,5vw,56px);display:grid}@media (width<=980px){.shell{gap:var(--space-sm);grid-template-columns:1fr}}.rail{min-height:100vh;padding-block:clamp(64px, 11vh, 108px) var(--space-2xl);flex-direction:column;align-self:start;display:flex;position:sticky;top:0}@media (width<=980px){.rail{height:auto;padding-block:84px var(--space-md-tight);position:static}}.rail-name{font-size:clamp(2.6rem,5.2vw,3.9rem);line-height:1.02;font-weight:var(--font-weight-bold);letter-spacing:-.02em;text-wrap:balance;margin:0}.rail-role{margin:var(--space-md-tight) 0 0;font-size:clamp(1.05rem,1.6vw,1.3rem);font-weight:var(--font-weight-semibold);color:var(--color-text)}.rail-role-clause{color:var(--color-text-muted)}.rail-blurb{margin:var(--space-md) 0 0;max-width:40ch;color:var(--color-text-dim)}.rail-cta{margin-top:var(--space-xl);gap:var(--space-md-tight);flex-direction:column;max-width:280px;display:flex}.btn{justify-content:space-between;align-items:center;gap:var(--space-sm);min-height:44px;padding:var(--space-md-tight) var(--space-md);border:1px solid var(--color-border-2);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-weight:var(--font-weight-semibold);text-decoration:none;transition:border-color .18s,background .18s,transform .18s,color .18s;display:inline-flex}.btn .arw{color:var(--color-text-muted);transition:transform .18s,color .18s}.btn:hover{border-color:var(--color-accent);background:var(--color-surface-2);transform:translateY(-1px)}.btn:hover .arw{color:var(--color-accent);transform:translate(3px,-3px)}.btn--primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-contrast)}.btn--primary .arw{color:var(--color-accent-contrast)}.btn--primary:hover{background:var(--color-accent-soft);border-color:var(--color-accent-soft);color:var(--color-accent-contrast)}.btn--primary:hover .arw{color:var(--color-accent-contrast)}.rail-socials{padding-top:var(--space-xl);gap:var(--space-lg);margin-top:auto;display:flex}@media (width<=980px){.rail-socials{margin-top:var(--space-lg)}}.rail-socials a{color:var(--color-text-muted);transition:color .18s,transform .18s;display:inline-flex}.rail-socials a:hover{color:var(--color-accent);transform:translateY(-2px)}.rail-socials svg{width:22px;height:22px;display:block}.rail-fallback,.rail-out{margin:var(--space-md-tight) 0 0;max-width:280px;font-size:var(--font-size-small);color:var(--color-text-muted);overflow-wrap:anywhere}.rail-location{margin:var(--space-md) 0 0;font-size:var(--font-size-small);color:var(--color-text-muted)}.main-col{min-width:0;padding-block:clamp(64px,11vh,108px) 90px}.eyebrow{margin:0 0 var(--space-md);font-family:var(--font-mono);font-size:var(--font-size-small);letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent)}.eyebrow-num{color:var(--color-text-muted);margin-inline-end:var(--space-sm)}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.cards-section{margin-block-end:var(--space-2xl)}.cards{gap:var(--space-md);grid-template-columns:repeat(3,1fr);display:grid}@media (width<=640px){.cards{grid-template-columns:1fr}}.card{gap:var(--space-md-tight);padding:var(--space-cardpad);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;transition:border-color .2s,background .2s,transform .2s;display:flex;position:relative}.card:hover{border-color:var(--color-accent);background:var(--color-surface-2);transform:translateY(-4px)}.card-ic{border:1px solid var(--color-accent-line);border-radius:var(--radius-md);background:var(--color-accent-ghost);width:40px;height:40px;color:var(--color-accent-soft);place-items:center;display:grid}.card-ic svg{width:21px;height:21px}.bracket{font-family:var(--font-mono);font-size:var(--font-size-small);color:var(--color-text-dim)}.card-title{font-size:1.06rem;font-weight:var(--font-weight-bold);margin:0}.card-title a{color:var(--color-text);text-decoration:none}.card-title a:after{content:"";position:absolute;inset:0}.card:hover .card-title a{color:var(--color-accent-soft)}.card p{font-size:var(--font-size-small);color:var(--color-text-dim);overflow-wrap:anywhere;margin:0}.selected-work{margin-block-end:var(--space-2xl)}.teaser-grid{gap:var(--space-lg);margin-block:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));display:grid}.selected-work .teaser-grid{grid-template-columns:repeat(3,1fr)}@media (width<=640px){.selected-work .teaser-grid{grid-template-columns:1fr}}.teaser-card{min-height:160px;padding:var(--space-cardpad);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);overflow-wrap:anywhere;text-decoration:none;transition:border-color .2s,background .2s,transform .2s;display:block}.teaser-card:hover{border-color:var(--color-accent);background:var(--color-surface-2);transform:translateY(-4px)}.teaser-card:hover .teaser-title{text-decoration:underline}.teaser-title{font-size:var(--font-size-heading);margin-block:0 var(--space-sm)}.teaser-summary{margin-block:0 var(--space-sm)}.teaser-topics{font-family:var(--font-mono);font-size:var(--font-size-small);color:var(--color-text-dim);margin-block:0}.work-grid{gap:var(--space-lg);margin-block:var(--space-lg) 0;grid-template-columns:repeat(3,1fr);display:grid}@media (width<=820px){.work-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.work-grid{grid-template-columns:1fr}}.experience{margin-block-end:var(--space-2xl)}.xp{gap:var(--space-sm);flex-direction:column;display:flex}.job{gap:var(--space-lg);padding:var(--space-cardpad);border-radius:var(--radius-md);border:1px solid #0000;grid-template-columns:140px 1fr;transition:border-color .2s,background .2s;display:grid}.job:hover{border-color:var(--color-border-2);background:var(--color-surface)}@media (width<=640px){.job{gap:var(--space-sm);grid-template-columns:1fr}}.job .when{padding-top:var(--space-xs);font-family:var(--font-mono);font-size:var(--font-size-small);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-dim);margin:0}.job h3{margin:0 0 var(--space-sm);font-size:var(--font-size-heading)}.job .org{color:var(--color-accent-soft)}.role-scope{margin:0 0 var(--space-sm);color:var(--color-text-muted);font-size:var(--font-size-small)}.role-bullets{margin-block:0;padding-inline-start:var(--space-lg)}.role-bullets li{overflow-wrap:anywhere;margin-block-end:var(--space-xs)}.chips{gap:var(--space-sm);margin-block:var(--space-md-tight) 0;flex-wrap:wrap;padding-inline-start:0;list-style:none;display:flex}.chip{font-family:var(--font-mono);font-size:.75rem;font-weight:var(--font-weight-semibold);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);color:var(--color-accent-soft);background:var(--color-accent-ghost);border:1px solid var(--color-accent-line);white-space:nowrap;line-height:1.4}.resume-row{margin-block-start:var(--space-lg)}.resume-btn{align-items:center;gap:var(--space-sm);min-height:44px;padding:var(--space-md-tight) var(--space-lg);border:1px solid var(--color-accent);border-radius:var(--radius-md);background:var(--color-accent-ghost);color:var(--color-accent-soft);font-weight:var(--font-weight-bold);text-decoration:none;transition:background .18s,transform .18s;display:inline-flex}.resume-btn:hover{background:var(--color-accent-line);transform:translateY(-1px)}.earlier-roles{font-size:var(--font-size-small);margin-block-start:var(--space-md)}.earlier-roles a{color:var(--color-text-dim)}.earlier-roles a:hover{color:var(--color-accent-soft)}.toolbox{margin-block-end:var(--space-2xl)}.toolbox-signature{margin-block:0 var(--space-sm);color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--font-size-small);font-weight:var(--font-weight-regular)}.group-grid{margin-block:var(--space-lg) 0;gap:var(--space-md);counter-reset:panel;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));display:grid}.skill-group{counter-increment:panel;padding:var(--space-cardpad);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.skill-group-name{align-items:baseline;gap:var(--space-sm);margin-block:0 var(--space-md-tight);font-size:var(--font-size-small);font-weight:var(--font-weight-bold);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text);display:flex}.skill-group-name:before{content:counter(panel, decimal-leading-zero);font-family:var(--font-mono);font-weight:var(--font-weight-semibold);text-transform:none;color:var(--color-accent)}.skill-list{gap:var(--space-sm);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.skill-list li{padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-2);font-family:var(--font-mono);font-size:var(--font-size-small);color:var(--color-text-dim);overflow-wrap:anywhere}.toolbox-coda{border-top:1px solid var(--color-border);gap:var(--space-md);grid-template-columns:repeat(2,minmax(0,1fr));margin-block-start:var(--space-md);padding-block-start:var(--space-md);display:grid}.coda-card{padding:var(--space-cardpad);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.coda-label{margin:0 0 var(--space-xs);font-size:var(--font-size-small);font-weight:var(--font-weight-bold);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text)}.coda-value{font-size:var(--font-size-small);color:var(--color-text-muted);margin:0}@media (width<=640px){.toolbox-coda{grid-template-columns:1fr}}.authored-guides-band{margin-block-end:var(--space-2xl)}.guides-inline{gap:var(--space-sm);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.guides-inline a{align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-2);color:var(--color-text-dim);font-size:var(--font-size-small);overflow-wrap:anywhere;text-decoration:none;transition:border-color .18s,color .18s;display:inline-flex}.guides-inline a:hover,.guides-inline a:focus-visible{border-color:var(--color-accent);color:var(--color-accent-soft)}.guides-inline .arw{color:var(--color-text-muted)}.guides-inline a:hover .arw{color:var(--color-accent-soft)}.case-study{margin-block-end:var(--space-2xl)}.case-study h1{font-size:var(--font-size-display);margin-block:0 var(--space-lg);overflow-wrap:anywhere}.scan-strip{column-gap:var(--space-md);row-gap:var(--space-sm);margin-block:0 var(--space-lg);border-block-end:1px solid var(--color-border);grid-template-columns:max-content 1fr;align-items:baseline;padding-block-end:var(--space-md);display:grid}.scan-strip dt{font-family:var(--font-mono);font-size:var(--font-size-small);text-transform:uppercase;letter-spacing:.14em;color:var(--color-text-dim)}.scan-strip dd{color:var(--color-text);overflow-wrap:anywhere;margin:0}.scan-strip .tool-chips{margin:0}.case-study-body{counter-reset:step;margin-block-end:var(--space-xl)}.case-study-body :is(h2){font-size:var(--font-size-heading);margin-block:var(--space-xl) var(--space-md)}.case-study-body>h2{counter-increment:step;align-items:baseline;gap:var(--space-sm);font-weight:var(--font-weight-bold);display:flex}.case-study-body>h2:before{content:counter(step, decimal-leading-zero);font-family:var(--font-mono);font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--color-accent)}.case-study-body p{margin-block:0 var(--space-md);max-width:var(--measure);overflow-wrap:anywhere}.case-study-body :is(ul,ol){max-width:var(--measure)}.case-study-body>h2:last-of-type+p{padding:var(--space-md) var(--space-lg);background:var(--color-surface);border:1px solid var(--color-accent-line);border-radius:var(--radius-md);color:var(--color-text)}.investigation-callout{max-width:var(--measure);border-inline-start:4px solid var(--color-accent);background:var(--color-surface);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);margin-inline:0}.investigation-callout>:first-child{margin-block-start:0}.investigation-callout>:last-child{margin-block-end:0}.tool-chips{gap:var(--space-xs) var(--space-sm);margin-block:0 var(--space-xl);flex-wrap:wrap;padding:0;list-style:none;display:flex}.tool-chip{font-family:var(--font-mono);font-size:var(--font-size-small);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-sm);overflow-wrap:anywhere}.pager{gap:var(--space-md-tight);margin-block:0 var(--space-xl);border-top:1px solid var(--color-border);grid-template-columns:1fr auto 1fr;align-items:stretch;padding-block-start:var(--space-lg);display:grid}.pg{gap:var(--space-xs);min-width:0;padding:var(--space-md-tight) var(--space-md);border:1px solid var(--color-border-2);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);flex-direction:column;text-decoration:none;transition:border-color .18s,background .18s,transform .18s;display:flex}.pg:hover{border-color:var(--color-accent);background:var(--color-surface-2);transform:translateY(-1px)}.pg .dir{font-family:var(--font-mono);font-size:var(--font-size-small);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-dim)}.pg .t{font-weight:var(--font-weight-semibold);color:var(--color-text-dim);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pg:hover .t{color:var(--color-accent-soft)}.pg.next{text-align:right}.pg.mid{text-align:center;font-family:var(--font-mono);font-size:var(--font-size-small);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-dim);border-color:var(--color-border);background:0 0;flex-direction:row;justify-content:center;align-items:center}.pg.mid:hover{color:var(--color-accent-soft);background:var(--color-surface-2);border-color:var(--color-accent)}@media (width<=620px){.pager{grid-template-columns:1fr 1fr}.pg.mid{order:3;grid-column:1/-1}}.empty-state{margin-block-end:var(--space-2xl)}.muted{color:var(--color-text-muted)}
