:root{color-scheme:dark;--bg:#0d1827;--panel:#122135;--text:#edf3fb;--muted:#b1bfd0;--accent:#76e6c1;--line:#2a3b50;--mono:ui-monospace,SFMono-Regular,Consolas,monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:1rem;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:5px}button{font:inherit}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:5px}[hidden]{display:none!important}img{max-width:100%}p,h1,h2,h3,h4,ul,figure{margin:0}p+p{margin-top:16px}.wrap{width:min(1152px,calc(100% - 64px));margin-inline:auto}.skip{position:fixed;top:-100px;left:20px;z-index:10;background:var(--accent);color:var(--bg);padding:12px 20px}.skip:focus{top:12px}.site-header{background:rgba(13,24,39,.96);position:sticky;top:0;z-index:5;border-bottom:1px solid rgba(177,191,208,.13);backdrop-filter:blur(14px)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:76px}.brand{font-size:1.4rem;font-weight:780;letter-spacing:-.055em;text-decoration:none}.brand span{color:var(--accent)}nav{display:flex;align-items:center;gap:30px}nav a{font-size:.875rem;line-height:1.4;color:var(--muted);text-decoration:none;padding:10px 0;transition:color .18s}nav a:hover,nav a[aria-current]{color:var(--accent)}nav .nav-contact{border:1px solid var(--line);border-radius:6px;color:var(--text);padding:9px 16px}.nav-contact span{margin-left:9px}.eyebrow{font:500 .8125rem/1.6 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--accent)}h1,h2,h3,h4{font-weight:640;letter-spacing:-.035em;line-height:1.2}h2{font-size:clamp(1.8rem,3.3vw,2.55rem)}h3{font-size:1.25rem}.hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:center;gap:64px;padding:50px 0 40px}.hero h1{font-size:clamp(3.2rem,6.1vw,4.9rem);line-height:1.04;letter-spacing:-.055em;margin:15px 0 20px}.hero h1 span{color:var(--accent)}.hero-intro{font-size:1.12rem;line-height:1.75;color:var(--muted);max-width:560px}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px;margin-top:25px}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:46px;padding:11px 17px;font-size:.875rem;line-height:1.4;font-weight:650;border:1px solid transparent;border-radius:6px;text-decoration:none;transition:transform .18s,background-color .18s,border-color .18s}.button:hover{transform:translateY(-2px)}.button.primary{background:var(--accent);color:var(--bg)}.button.primary:hover{background:#a4f4d8}.button.secondary{border-color:var(--line)}.button.secondary:hover{background:#17293d;border-color:#6d8198}.quiet-link{font-size:.875rem;text-decoration:none;display:inline-flex;align-items:center;gap:10px;min-height:44px;color:var(--muted)}.quiet-link:hover{color:var(--accent)}.hero-footnote{font-size:.8125rem;color:var(--muted);margin-top:20px}.hero-footnote strong{color:var(--text);font-weight:600}.hero-footnote>span{margin:0 10px;color:#6c7e94}.highlights{padding:24px 24px 0;background:linear-gradient(135deg,#15283a,#102033);border:1px solid #30465b;border-radius:14px;box-shadow:0 16px 40px rgba(0,0,0,.08)}.profile-heading{display:flex;gap:19px;align-items:center;padding-bottom:22px}.portrait{width:76px;height:76px;object-fit:cover;border-radius:50%;border:2px solid #536f80;flex-shrink:0}.profile-heading .eyebrow{font-size:.75rem;letter-spacing:.04em;margin-bottom:6px}.profile-heading h2{font-size:1.25rem;line-height:1.35;letter-spacing:-.025em}.highlight-row{display:grid;grid-template-columns:20px 1fr 16px;align-items:start;gap:11px;text-decoration:none;padding:17px 0;border-top:1px solid #304357}.highlight-number{font:.75rem/1.9 var(--mono);color:var(--accent)}.highlight-row strong{font-size:.875rem;font-weight:620}.highlight-detail{display:block;color:var(--muted);font-size:.8125rem;line-height:1.5;margin-top:4px}.row-arrow{font-size:.875rem;color:#91a2b6;transition:transform .18s}.highlight-row:hover .row-arrow{transform:translate(2px,-2px);color:var(--accent)}.highlight-row:hover strong{color:var(--accent)}
.companies{padding:20px 0 26px;border-block:1px solid var(--line);min-width:0}.companies-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:14px}.companies h2{font:.8125rem/1.5 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.motion-control{display:inline-flex;gap:8px;align-items:center;border:0;background:transparent;color:var(--muted);font-size:.8125rem;min-height:36px;padding:5px 8px;cursor:pointer}.motion-control:hover{color:var(--accent)}.company-window{overflow:auto;scrollbar-width:thin;mask-image:linear-gradient(to right,transparent,#000 24px,#000 calc(100% - 24px),transparent);padding:6px 0;overscroll-behavior-x:contain}.company-track{display:flex;width:max-content}.company-list{display:flex;list-style:none;gap:14px;margin:0;padding:0 14px 0 0;flex-shrink:0}.company-list li{width:156px;flex-shrink:0}.company-card{display:flex;flex-direction:column;align-items:center;gap:9px;padding:5px;text-align:center;text-decoration:none;border-radius:8px}.company-logo{display:flex;align-items:center;justify-content:center;width:146px;height:76px;background:#fff;border:1px solid #dce5ee;border-radius:7px;padding:12px;overflow:hidden;transition:transform .2s,border-color .2s,box-shadow .2s}.company-logo img{display:block;width:100%;height:100%;object-fit:contain}.logo-mandg img{max-width:53px}.logo-mercor img{width:122px;height:122px;max-width:none;flex:none;object-fit:contain}.logo-barclays img{width:135px;height:66px;max-width:none}.logo-bskyb img{width:94px;height:70px;max-width:none}.logo-specsavers img{width:108px;max-width:none}.logo-dvla img{width:101px;height:66px;max-width:none}.company-name{font-size:.8125rem;color:var(--muted);line-height:1.3}.company-card:hover .company-logo{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 3px 15px rgba(118,230,193,.12)}.company-card:hover .company-name{color:var(--accent)}.company-card:focus-visible{outline-offset:-2px}.company-window.animated{overflow:hidden}.animated .company-track{animation:company-scroll 42s linear infinite}.companies.paused .company-track,.company-window:hover .company-track,.company-window:focus-within .company-track{animation-play-state:paused}.company-window.keyboard-navigation{overflow:auto;mask-image:none}.company-window.keyboard-navigation .company-track{animation:none;transform:none}.keyboard-navigation .company-list[aria-hidden]{display:none}@keyframes company-scroll{to{transform:translateX(-50%)}}
.section{padding:70px 0;border-bottom:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:28px;margin-bottom:30px}.section-heading .eyebrow{margin-bottom:11px}.section-note{font-size:.8125rem;color:var(--muted);padding-bottom:4px}.inline-link{font-size:.875rem;display:inline-flex;gap:12px;align-items:center;min-height:40px;color:var(--accent);text-decoration:none;border-bottom:1px solid #3c5d60}.inline-link:hover{border-color:var(--accent)}.project{background:var(--panel);border:1px solid #33495d;border-radius:14px;overflow:hidden}.project-heading{padding:32px 32px 0;display:flex;justify-content:space-between;gap:20px;align-items:center}.project-heading h3{font-size:2.3rem;margin-top:6px;letter-spacing:-.045em}.wip-badge{display:inline-flex;flex-shrink:0;color:#ffdb9d;background:#3a3023;border:1px solid #675033;border-radius:30px;padding:7px 12px;font-size:.8125rem;font-weight:550;line-height:1.5}.project-grid{display:grid;grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr);align-items:start;gap:32px;padding:26px 32px 32px}.project-copy>p{color:var(--muted)}.project-copy .project-lead{font-size:1.15rem;color:var(--text);line-height:1.5}.project-status{font-size:.875rem;border-left:2px solid #ba9563;padding-left:14px}.project-status strong{color:#ffdb9d;font-weight:550}.tags{display:flex;gap:7px;flex-wrap:wrap;list-style:none;padding:0;margin-top:20px}.tags li{font-size:.75rem;line-height:1.5;padding:4px 9px;border:1px solid #395168;background:rgba(0,0,0,.07);border-radius:4px;color:#c4d0df}.project-copy .inline-link{margin-top:15px}.project-visual{background:#0d1827;border:1px solid #36516a;border-radius:9px;overflow:hidden;box-shadow:0 20px 40px rgba(0,0,0,.15)}.capture-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;font:.75rem/1.5 var(--mono);color:#c4d0df;padding:13px 16px}.capture-status{color:#ffdb9d}.dashboard-preview{background:#f3f6fc;color:#19283d;padding:24px;line-height:1.5}.dashboard-preview h4{font-size:1.6rem;letter-spacing:-.045em}.preview-profile{font-size:.8125rem;color:#54667e;margin:7px 0 20px}.http-result{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;background:#e5f5ed;border:1px solid #aacfbf;border-radius:6px;color:#1b5545}.http-result strong{font:700 1rem/1.5 var(--mono);white-space:nowrap}.http-result span{font-size:.75rem}.preview-panel{margin-top:16px;border:1px solid #d2dceb;background:white;border-radius:6px;padding:18px}.preview-panel h5{font-size:.875rem;margin:0 0 12px}.preview-field{display:flex;justify-content:space-between;gap:15px;font-size:.8125rem;padding:10px 0;border-top:1px solid #e7ecf3}.preview-field span{color:#56697d}.preview-field strong{font-weight:550;text-align:right}.preview-flow{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.preview-flow span{font-size:.75rem;padding:5px 8px;color:#3f536d;background:#e7eef9;border-radius:4px}.project-visual figcaption{padding:14px 16px;font-size:.8125rem;line-height:1.6;color:var(--muted)}.project-decisions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #33495d;background:#102033}.project-decisions>div{padding:24px 30px}.project-decisions>div+div{border-left:1px solid #33495d}.decision-number{font:.75rem/1.6 var(--mono);color:var(--accent)}.project-decisions h4{font-size:1rem;margin:8px 0}.project-decisions p{font-size:.875rem;line-height:1.65;color:var(--muted)}
.role{display:grid;grid-template-columns:200px minmax(0,1fr);gap:40px;position:relative;padding:30px 0;border-bottom:1px solid var(--line);scroll-margin-top:110px}.role:first-child{padding-top:7px}.role:last-child{border-bottom:0;padding-bottom:0}.role-period{display:flex;flex-direction:column;gap:3px;color:var(--muted);font-size:.8125rem}.role-period .year{font-size:1.2rem;line-height:1.5;letter-spacing:-.02em;font-weight:600;color:var(--text);margin-bottom:3px}.role-logo{display:flex;justify-content:center;align-items:center;width:106px;height:62px;background:white;border-radius:6px;padding:10px;margin-top:17px;overflow:hidden}.role-logo img{width:100%;height:100%;object-fit:contain}.role-logo.logo-mandg img{max-width:42px}.role-logo.logo-mercor img{width:100px;height:100px;max-width:none;flex:none}.role-logo.logo-dvla img{width:76px;height:52px;max-width:none}.role-content{border-left:1px solid #355064;padding-left:35px;position:relative;min-width:0}.role-content::before{content:"";position:absolute;width:7px;height:7px;border:1px solid var(--accent);background:var(--bg);left:-4px;top:9px;transform:rotate(45deg)}.role-company{font:.875rem/1.7 var(--mono);color:var(--accent);margin-bottom:8px}.role-content h3{font-size:1.45rem;line-height:1.35;margin-bottom:12px}.role-content>p:not(.role-company){color:var(--muted);max-width:730px}.role-content>ul:not(.tags){padding-left:20px;margin-top:14px;color:var(--muted);font-size:.9375rem}.role-content>ul:not(.tags) li{padding-left:3px;margin-top:8px}.role-content>ul:not(.tags) li::marker{color:#638e96}.role:target .role-content{border-left-color:var(--accent)}.earlier-heading{margin-top:48px;padding-top:27px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;align-items:baseline}.earlier-heading h3{font-size:1.25rem}.earlier-heading p{font-size:.875rem;color:var(--muted)}.earlier-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px;margin-top:20px}.earlier-role{padding:22px 0;border-top:1px solid var(--line)}.earlier-role:target{border-top-color:var(--accent)}.earlier-date{font:.75rem/1.6 var(--mono);color:var(--muted);margin-bottom:9px}.earlier-role h4{font-size:1.05rem}.earlier-title{color:var(--accent);font-size:.875rem;margin:6px 0 10px}.earlier-role p+p{margin-top:10px}.earlier-role p:last-child{font-size:.875rem;line-height:1.65;color:var(--muted)}.expertise-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.expertise-card{padding:28px 25px;background:linear-gradient(155deg,#152639,#101e30);border:1px solid var(--line);border-radius:10px;transition:border-color .2s,transform .2s}.expertise-card:hover{border-color:#628d94;transform:translateY(-3px)}.expertise-symbol{font:500 1.2rem/1.5 var(--mono);color:var(--accent)}.expertise-card h3{margin:18px 0 14px;font-size:1.15rem}.expertise-card p{color:var(--muted);font-size:.9375rem}.expertise-card .tags{margin-top:24px}.contact-section{padding:64px 0 48px}.contact-panel{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:44px;background:linear-gradient(130deg,#183345,#132238);border:1px solid #41696f;border-radius:14px;padding:40px}.contact-panel h2{font-size:clamp(1.9rem,4vw,3rem);margin:14px 0}.contact-panel p:not(.eyebrow){color:#c0d0df;max-width:540px}.email-link{font-size:clamp(1rem,2vw,1.25rem);display:inline-block;margin-top:24px;text-decoration:none;color:var(--accent);overflow-wrap:anywhere}.email-link:hover{text-decoration:underline}.email-link span{display:inline-block;margin-left:10px}.contact-actions{display:flex;flex-direction:column;gap:12px;align-self:center}.contact-actions .quiet-link{justify-content:center}.site-footer{display:flex;justify-content:space-between;gap:20px;padding-bottom:32px;color:var(--muted);font-size:.8125rem}.site-footer a{padding:3px 0;text-decoration:none}.site-footer a:hover{color:var(--accent)}.footer-divider{margin:0 10px;color:#53647b}
@media(max-width:1000px){.hero{gap:32px;grid-template-columns:1.2fr 1fr}.hero .eyebrow{max-width:350px}.highlights{padding:20px 18px 0}.profile-heading{gap:12px}.portrait{width:62px;height:62px}.profile-heading h2{font-size:1.1rem}.hero-actions{gap:9px}.hero-actions .button{padding-inline:13px}.project-grid{grid-template-columns:1fr;gap:26px}.project-copy{max-width:740px}.project-visual{max-width:800px}.project-decisions>div{padding:22px}.role{grid-template-columns:166px 1fr;gap:20px}.role-content{padding-left:26px}.expertise-grid{gap:14px}.expertise-card{padding:24px 20px}}
@media(max-width:760px){html{scroll-padding-top:95px}.wrap{width:calc(100% - 36px)}.header-inner{min-height:66px;gap:14px}nav{gap:16px}nav a{font-size:.8125rem}nav .nav-contact{padding:7px 10px}.nav-contact span{display:none}.hero{grid-template-columns:1fr;gap:30px;padding:34px 0 32px}.hero .eyebrow{max-width:none;font-size:.75rem;letter-spacing:.06em}.hero h1{font-size:clamp(3.1rem,11vw,4.4rem);margin:14px 0 16px}.hero-intro{font-size:1.05rem}.hero-actions{gap:10px 13px;margin-top:21px}.hero-footnote{font-size:.8125rem}.highlights{padding:21px 22px 0}.profile-heading{gap:16px}.portrait{width:70px;height:70px}.profile-heading h2{font-size:1.2rem}.highlight-row{padding:14px 0}.companies{padding-top:19px;padding-bottom:23px}.companies-heading{gap:12px}.companies h2{font-size:.75rem;max-width:190px}.motion-control{font-size:.75rem;white-space:nowrap}.section{padding:47px 0}.section-heading{align-items:start;gap:14px;flex-direction:column;margin-bottom:24px}.section-heading .eyebrow{margin-bottom:8px}.section-note{display:none}.project-heading{padding:24px 22px 0;align-items:start;flex-wrap:wrap;gap:14px}.project-heading h3{font-size:2rem}.wip-badge{font-size:.75rem}.project-grid{padding:24px 22px;gap:25px}.project-decisions{grid-template-columns:1fr}.project-decisions>div{padding:20px 22px}.project-decisions>div+div{border-left:0;border-top:1px solid #33495d}.project-decisions h4{margin:4px 0 8px}.capture-heading{font-size:.75rem;padding:11px;flex-wrap:wrap}.project-visual figcaption{font-size:.75rem;padding:12px}.dashboard-preview{padding:18px}.dashboard-preview h4{font-size:1.3rem}.preview-field{flex-wrap:wrap;gap:4px}.role{grid-template-columns:1fr;gap:14px;padding:26px 0}.role-period{flex-direction:row;align-items:center;flex-wrap:wrap;gap:7px 13px;padding-left:24px}.role-period .year{margin:0;font-size:1rem}.role-period>span:not(.year):not(.role-logo){font-size:.75rem}.role-logo{display:none}.role-content{padding-left:24px}.role-content h3{font-size:1.25rem}.role-content>p:not(.role-company){font-size:.9375rem}.role-content>ul:not(.tags){font-size:.875rem}.role-company{font-size:.8125rem}.earlier-heading{flex-direction:column;gap:6px;margin-top:30px}.earlier-grid{grid-template-columns:1fr 1fr;gap:0 22px}.expertise-grid{grid-template-columns:1fr;gap:16px}.expertise-card{padding:26px}.expertise-card h3{margin-top:12px}.contact-section{padding:44px 0 30px}.contact-panel{grid-template-columns:1fr;gap:28px;padding:28px 24px}.contact-actions{max-width:380px;width:100%}.site-footer{font-size:.75rem;flex-wrap:wrap;padding-bottom:25px}.email-link{margin-top:18px}}
@media(max-width:420px){nav{gap:12px}nav a{font-size:.75rem}nav .nav-contact{padding:7px 9px}.brand{font-size:1.25rem}.hero-actions .quiet-link{flex-basis:100%;min-height:30px}.hero-footnote>span{margin-inline:5px}.earlier-grid{grid-template-columns:1fr}.companies h2{max-width:160px}.contact-panel{padding:27px 22px}.http-result{flex-wrap:wrap;gap:4px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.company-window.animated{overflow:auto}.company-list[aria-hidden]{display:none}.company-track{transform:none!important}.motion-control{display:none}.button:hover,.company-card:hover .company-logo,.expertise-card:hover{transform:none}}

/* Keep reading text comfortably sized at desktop and mobile widths. */
.project-decisions p,.earlier-role p:last-child,.expertise-card p,.role-content>p:not(.role-company),.role-content>ul:not(.tags){font-size:1rem}.preview-field,.preview-panel h5{font-size:.875rem}.hero-footnote,.quiet-link{font-size:.875rem}
@media(max-width:520px){.header-inner{flex-wrap:wrap;gap:3px;padding:10px 0 6px}.brand{font-size:1.25rem;width:100%}nav{width:100%;justify-content:space-between;gap:10px}nav a{font-size:.875rem;min-height:40px;display:flex;align-items:center}nav .nav-contact{padding:6px 10px}.hero{padding-top:28px}.hero-footnote{max-width:290px}}
