@font-face{font-family:Geist;src:url(fonts/geist-sans-latin-400-normal.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Geist;src:url(fonts/geist-sans-latin-500-normal.woff2) format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:Geist;src:url(fonts/geist-sans-latin-600-normal.woff2) format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:Geist;src:url(fonts/geist-sans-latin-700-normal.woff2) format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:Caveat;src:url(fonts/caveat-latin.woff2) format('woff2');font-weight:400 700;font-display:swap}
:root{
  --page:#fff;--ink:#191b1e;--muted:#5d626b;--blue:#126fc8;--line:#dce0e5;--tint:#f1f6fc;--on-blue:#fff;
  --sans:Geist,Arial,sans-serif;--hand:Caveat,cursive;
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;
  --text-small:14px;--text-body:17px;--text-lead:22px;--text-title:32px;--text-display:72px;--text-note:30px;
  --page-width:1120px;--nav-height:76px;--radius:6px;--motion:220ms;--ease:cubic-bezier(.2,.8,.2,1);
}
@media(prefers-color-scheme:dark){:root{--page:#111315;--ink:#f3f4f5;--muted:#aeb6c2;--blue:#78b5f5;--line:#343941;--tint:#181f28;--on-blue:#111315}}
*{box-sizing:border-box;letter-spacing:0}
html{scroll-behavior:smooth;scroll-padding-top:var(--nav-height)}
body{margin:0;background:var(--page);color:var(--ink);font:400 var(--text-body)/1.6 var(--sans)}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit;cursor:pointer;color:inherit}
a{color:inherit;text-underline-offset:var(--space-1);text-decoration-thickness:1px}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:var(--space-1)}
button{border:0;background:none}
button:hover,a:hover{color:var(--blue)}
.skip-link{position:fixed;z-index:20;left:var(--space-4);top:var(--space-4);padding:var(--space-3);background:var(--page);transform:translateY(-200%)}
.skip-link:focus{transform:none}
.reading-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:11;background:var(--blue);transform:scaleX(0);transform-origin:left;pointer-events:none}
.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:var(--nav-height);padding:var(--space-3) var(--space-6);background:var(--page);border-bottom:1px solid var(--line)}
.wordmark{font-weight:600;text-decoration:none;white-space:nowrap}
.back-label{font-weight:400;color:var(--muted)}
.topbar nav{display:flex;gap:var(--space-5);align-items:center;font-size:var(--text-small)}
.topbar button{padding:var(--space-3) 0;white-space:nowrap}
.contact-link{font-weight:600;text-decoration:none}
.resume-wrap{width:min(var(--page-width),calc(100% - var(--space-8)));margin:auto}
.intro{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.8fr);gap:var(--space-7);align-items:center;padding:var(--space-9) 0 var(--space-8)}
.hand-note{margin:0 0 var(--space-3);font:600 var(--text-note)/1.15 var(--hand);color:var(--blue)}
h1,h2,h3,p{overflow-wrap:break-word}
h1{margin:0;font-size:var(--text-display);line-height:1.05;font-weight:700}
.positioning{font-size:var(--text-title);line-height:1.3;margin:var(--space-5) 0;max-width:25ch}
.intro-detail{color:var(--muted);max-width:52ch;margin:0}
.current-role{display:flex;flex-direction:column;gap:var(--space-1);margin:var(--space-5) 0 0;font-size:var(--text-body)}
.label{color:var(--blue);font-size:var(--text-small);font-weight:600}
.contact-details{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5);margin-top:var(--space-5);font-size:var(--text-small)}
.portrait{--tool-size:48px;--tool-rise:8px;--tool-duration:6s;position:relative;aspect-ratio:1;min-width:0;align-self:center}
.portrait img{width:100%;height:100%;object-fit:contain;display:block}
.portrait-tools{position:absolute;inset:0;pointer-events:none}
.portrait-tool{position:absolute;width:min(16%,var(--tool-size));aspect-ratio:1;display:block}
.portrait-tool img{width:100%;height:100%;object-fit:contain}
.portrait-tool.figma{left:0;top:8%;--tool-delay:-1s}
.portrait-tool.claude{right:0;top:18%;--tool-delay:-3s}
.portrait-tool.chatgpt{left:0;bottom:15%;--tool-delay:-4s}
.portrait-tool.cursor{right:0;bottom:0;--tool-delay:-2s}
@keyframes portrait-tool-float{0%,100%{transform:translateY(0)}50%{transform:translateY(calc(-1 * var(--tool-rise)))}}
@media(prefers-reduced-motion:no-preference){.portrait-tool{animation:portrait-tool-float var(--tool-duration) ease-in-out infinite;animation-delay:var(--tool-delay)}}
@media(prefers-color-scheme:dark){.portrait-tool.chatgpt img{filter:invert(1)}}
section:not(.intro){padding:var(--space-8) 0;border-top:1px solid var(--line)}
.section-header{display:flex;align-items:end;justify-content:space-between;gap:var(--space-5);margin-bottom:var(--space-6)}
h2{font-size:var(--text-title);line-height:1.2;margin:0;font-weight:600}
.focus-filters{display:flex;flex-shrink:0;border-bottom:1px solid var(--line);gap:var(--space-5)}
.focus-filters button{position:relative;padding:var(--space-3) 0;font-size:var(--text-small);font-weight:500;min-width:var(--space-6)}
.focus-filters button::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--blue);transform:scaleX(0);transition:transform var(--motion) var(--ease)}
.focus-filters button[aria-pressed=true]{color:var(--blue)}
.focus-filters button[aria-pressed=true]::after{transform:scaleX(1)}
.evidence-list{border-top:1px solid var(--line)}
.evidence-item{border-bottom:1px solid var(--line)}
[hidden]{display:none!important}
summary{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.3fr) var(--space-5);align-items:center;gap:var(--space-5);padding:var(--space-5) 0;cursor:pointer;list-style:none}
summary::-webkit-details-marker{display:none}
.evidence-main{display:grid;gap:var(--space-1)}
.project-name{font-size:var(--text-lead);font-weight:600;transition:color var(--motion)}
summary:hover .project-name{color:var(--blue)}
.project-description{color:var(--muted);font-size:var(--text-small)}
.outcome{font-size:var(--text-lead);font-weight:600;color:var(--blue)}
.outcome>span{display:block;color:var(--muted);font-size:var(--text-small);font-weight:400}
.expand-icon{font-size:var(--text-lead);text-align:center;transition:transform var(--motion) var(--ease)}
details[open] .expand-icon{transform:rotate(45deg)}
.evidence-detail{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:var(--space-6);padding:0 0 var(--space-6);align-items:center}
.evidence-detail img{width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;background:var(--tint);display:block}
.evidence-detail p{margin:0 0 var(--space-4)}
.qualification,.evidence-note{font-size:var(--text-small);color:var(--muted)}
.evidence-detail a{font-size:var(--text-small);font-weight:600;color:var(--blue)}
.evidence-note{max-width:78ch;margin:var(--space-5) 0 0}
.timeline{padding:0;margin:0;list-style:none}
.timeline>li{display:grid;grid-template-columns:minmax(0,.32fr) minmax(0,1fr);gap:var(--space-7);padding:var(--space-6) 0;border-top:1px solid var(--line)}
.period{color:var(--muted);font-size:var(--text-small);margin:var(--space-1) 0 0}
h3{font-size:var(--text-lead);font-weight:600;line-height:1.4;margin:0}
.secondary-title{font-size:var(--text-body);font-weight:500}
.organization{color:var(--blue);margin:var(--space-1) 0 var(--space-4);font-weight:500}
.timeline ul{margin:0;padding-left:var(--space-5);max-width:65ch}
.timeline li li+li{margin-top:var(--space-2)}
.job-copy{margin:0;max-width:65ch}
.practice{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:var(--space-8)}
.capabilities{margin:0}
.capabilities>div+div{margin-top:var(--space-5)}
dt{font-weight:600;margin:0 0 var(--space-1)}
dd{margin:0;color:var(--muted)}
.resume-footer{padding:var(--space-7) 0 var(--space-8);border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:var(--space-4) var(--space-6);align-items:center}
.resume-footer .hand-note{width:100%;margin:0}
.portfolio-return{margin-left:auto;font-size:var(--text-small)}
.action-status{position:fixed;bottom:var(--space-5);left:50%;transform:translateX(-50%);max-width:calc(100% - var(--space-6));padding:var(--space-3) var(--space-4);margin:0;background:var(--ink);color:var(--page);border-radius:var(--radius);font-size:var(--text-small);z-index:20;pointer-events:none}
.action-status:empty{display:none}
@keyframes detail-enter{from{opacity:0;transform:translateY(var(--space-2))}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:no-preference){details[open] .evidence-detail{animation:detail-enter 300ms var(--ease)}.intro-copy{animation:detail-enter 600ms var(--ease)}.portrait{animation:detail-enter 800ms var(--ease)}}
@media(max-width:800px){:root{--text-display:56px;--text-title:28px}.section-header{align-items:start;flex-direction:column}.intro{gap:var(--space-5);grid-template-columns:minmax(0,1fr) minmax(0,.5fr);padding-top:var(--space-8)}.topbar{padding-inline:var(--space-5)}.back-label{display:none}.practice{gap:var(--space-6)}}
@media(max-width:560px){:root{--text-display:48px;--text-title:26px;--text-body:16px;--text-lead:20px;--text-note:28px;--nav-height:112px}.topbar{flex-wrap:wrap;gap:0;padding:var(--space-3) var(--space-5)}.topbar nav{width:100%;justify-content:space-between;gap:var(--space-4)}.resume-wrap{width:calc(100% - var(--space-7))}.intro{grid-template-columns:1fr;padding-top:var(--space-7);gap:var(--space-5)}.portrait{width:55%;max-width:220px;justify-self:end;grid-row:1}.positioning{max-width:none}.intro-copy{grid-row:2}.evidence-detail,.practice{grid-template-columns:1fr}.timeline>li{grid-template-columns:1fr;gap:var(--space-3)}summary{grid-template-columns:minmax(0,1fr) var(--space-5);gap:var(--space-3)}.outcome{grid-column:1;grid-row:2;font-size:var(--text-body)}.outcome>span{display:inline;margin-left:var(--space-2)}.expand-icon{grid-column:2;grid-row:1/3}.portfolio-return{margin-left:0}.contact-details{flex-direction:column}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@page{size:A4;margin:14mm}
@media print{
  :root{--page:#fff;--ink:#111;--muted:#444;--blue:#174c80;--line:#ccc;--text-body:10pt;--text-small:9pt;--text-lead:12pt;--text-title:16pt;--text-display:30pt;--text-note:17pt;--space-8:24pt;--space-9:30pt}
  body{line-height:1.45}.topbar,.reading-progress,.skip-link,.action-status,.focus-filters,.expand-icon,.portrait,.portfolio-return{display:none!important}
  .resume-wrap{width:100%;max-width:none}.intro{display:block;padding:0 0 18pt}.positioning{font-size:15pt;max-width:40ch;margin:10pt 0}.intro-detail{max-width:none}.current-role{margin-top:10pt}.contact-details{margin-top:8pt}
  .hand-note{margin-bottom:6pt}.section-header{margin-bottom:12pt}section:not(.intro){padding:18pt 0}.evidence-item[hidden]{display:block!important}
  summary{padding:9pt 0;grid-template-columns:minmax(0,1fr) minmax(120pt,.32fr);gap:12pt;break-after:avoid}.outcome{font-size:12pt}.outcome>span{display:block;margin:0}.project-name{font-size:12pt}.project-description{font-size:9pt}
  .evidence-detail{display:block!important;padding:0 0 9pt;font-size:9pt;animation:none!important}.evidence-detail img{display:none}.evidence-detail p{margin-bottom:4pt}.evidence-detail a{display:none}
  .evidence-item{break-inside:avoid}.evidence-note{margin-top:9pt}.timeline>li{grid-template-columns:105pt minmax(0,1fr);gap:18pt;padding:12pt 0;break-inside:avoid}.timeline li li+li{margin-top:4pt}.organization{margin:2pt 0 6pt}.practice{gap:18pt}.capabilities>div+div{margin-top:10pt}.resume-footer{padding:12pt 0 0;gap:6pt}.resume-footer .hand-note{display:none}a{text-decoration:none;color:inherit}*{animation:none!important;transition:none!important}
}
