@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{color-scheme:light;--paper:#f8f6ff;--surface:#fff;--ink:#20182e;--muted:#635970;--line:#dcd4e8;--accent:#6838dc;--soft:#eee6ff;--lime:#d8f56c;--coral:#ffab8d;--pink:#f5b7db;--violet:#6339c8;--shadow:0 12px 32px #39235b0c}
:root[data-theme=dark]{color-scheme:dark;--paper:#121019;--surface:#1d1828;--ink:#f4effb;--muted:#b9afc9;--line:#393044;--accent:#b99aff;--soft:#282034;--shadow:0 12px 32px #0003}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.7 'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:5px}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:6px}button{font:inherit;cursor:pointer}header{padding:25px 5%;display:flex;align-items:center;gap:28px;border-bottom:1px solid var(--line);background:var(--paper)}.wordmark{font:800 1.4rem Manrope,sans-serif;letter-spacing:-.06em;white-space:nowrap}.logo-dot{color:var(--accent)}nav{display:flex;gap:26px;align-items:center;margin-left:auto;font-size:.875rem}.nav-contact{font-weight:600}.nav-contact span{margin-left:8px}.theme-toggle{display:flex;align-items:center;gap:8px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:30px;padding:8px 13px;font-size:.875rem;white-space:nowrap}.theme-icon{font-size:1.25rem;line-height:1}.hero{padding:32px 6% 0;background:radial-gradient(ellipse at 80% 35%,#ba99fc24,transparent 60%)}.hero-top{display:flex;justify-content:space-between;gap:20px}.eyebrow,.section-label,.project-number,.mini-facts span,.toolbox>span{font-size:.75rem;letter-spacing:.1em;font-weight:600}.location{font-size:.875rem;color:var(--muted)}.hero-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(250px,1fr);gap:7%;padding:52px 0 58px;align-items:center}.hello{font-size:1.1rem;margin-bottom:22px}.hello span{display:inline-block;color:var(--accent);font-size:1.6rem;vertical-align:middle;margin-left:8px;animation:spin-in 1.4s ease both}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,Arial,sans-serif}h1{font-size:clamp(3rem,5.35vw,5.7rem);line-height:1.12;letter-spacing:-.06em;font-weight:600;margin-bottom:30px;animation:enter .9s both}h1 .highlight{color:var(--accent);position:relative}h1 em{font-family:Georgia,serif;font-weight:400;color:var(--accent);letter-spacing:-.05em}.hero-description{max-width:570px;font-size:1.0625rem;color:var(--muted)}.hero-links{display:flex;gap:14px;margin-top:28px;align-items:center}.primary-button,.secondary-button{border-radius:100px;padding:13px 23px;font-size:.9375rem;font-weight:600;transition:transform .2s,box-shadow .2s}.primary-button{background:var(--ink);color:var(--paper);display:flex;gap:28px}.secondary-button{border:1px solid var(--line)}.primary-button:hover,.secondary-button:hover{transform:translateY(-3px);text-decoration:none;box-shadow:var(--shadow)}.hero-notes{padding:24px 0 0}.note{padding:25px 28px;border:1px solid #20182e;border-radius:16px;box-shadow:6px 7px 0 #20182e;color:#241c30;position:relative;max-width:335px;transition:transform .25s;animation:enter 1s both}.note>span,.note-tools{font-size:.75rem;letter-spacing:.06em}.note h3{font-size:1.6rem;line-height:1.25;letter-spacing:-.04em;margin:17px 0 10px}.note p{font-size:.9375rem;line-height:1.5;margin-bottom:16px}.note-tools{padding-top:12px;border-top:1px solid #20182e44}.note-lime{background:var(--lime);transform:rotate(-5deg);margin:0 24px 25px 0;animation-delay:.12s}.note-coral{background:var(--coral);transform:rotate(4deg);margin-left:35px;animation-delay:.25s}.note:hover{transform:rotate(0) translateY(-5px)}.personal-note{font-size:.9375rem;display:flex;justify-content:space-between;gap:15px;line-height:1.5;margin:32px 5px 0 25px}.personal-note span{font-size:1.8rem;color:var(--accent)}.identity-strip{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:15px;padding:23px 0;font-size:.75rem;letter-spacing:.1em}.identity-strip span:nth-child(even){color:var(--accent);font-size:1.6rem}.section{display:grid;grid-template-columns:21% 79%;padding:90px 6%;border-top:1px solid var(--line)}.section-label{color:var(--muted);padding-top:9px}h2{font-size:clamp(2.2rem,4vw,3.9rem);line-height:1.15;letter-spacing:-.055em;font-weight:600;margin-bottom:32px}.about{background:var(--surface)}.about-copy{display:grid;grid-template-columns:1fr 1fr;gap:5px 42px}.about-copy p{color:var(--muted)}.about-copy .lead{font-size:1.45rem;line-height:1.5;color:var(--accent)}.mini-facts{display:flex;gap:35px;margin-top:24px}.mini-facts>div{flex:1;background:var(--soft);border-radius:15px;padding:22px}.mini-facts span{display:block;color:var(--muted);margin-bottom:8px}.mini-facts strong{font-size:1.1rem}.mini-facts p{font-size:.875rem;margin:6px 0 0;color:var(--muted)}.section-head{display:flex;justify-content:space-between;align-items:center;gap:20px}.text-link{font-size:.875rem;border-bottom:1px solid currentColor;padding-bottom:4px;white-space:nowrap}.section-intro{max-width:590px;color:var(--muted);margin-bottom:36px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:start}.project{border-radius:22px;border:1px solid #20182e33;overflow:hidden;box-shadow:var(--shadow);transition:transform .3s,box-shadow .3s;color:#241c30}.project:hover{transform:translateY(-7px);box-shadow:0 18px 35px #38245822}.project summary{display:block;cursor:pointer;list-style:none;padding:28px}.project summary::-webkit-details-marker{display:none}.project:nth-child(1){background:var(--violet);color:#fff}.project:nth-child(2){background:var(--coral)}.project:nth-child(3){background:var(--lime)}.project:nth-child(4){background:var(--pink)}.project-visual{height:210px;display:flex;justify-content:center;flex-direction:column;margin:20px 0;border-radius:12px;border:1px solid currentColor;border-color:#20182e22;background:#ffffff12}.type-visual{font-size:2.9rem;font-weight:500;letter-spacing:-.05em;line-height:1.05;padding-left:22px}.type-visual i{font-family:Georgia,serif;font-weight:400}.metric-visual{font-size:3.2rem;letter-spacing:-.05em;align-items:center;line-height:1.1}.metric-visual span:last-child{font-family:Georgia,serif;font-style:italic;padding-left:65px;opacity:.7}.project h3{font-size:1.3rem;letter-spacing:-.025em;margin-bottom:8px}.project summary p{font-size:1rem;line-height:1.6;min-height:50px}.project-action{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #20182e44;padding-top:16px;font-size:.875rem}.blue .project-action{border-color:#ffffff55}.project-action b{font-size:1.5rem;font-weight:400;transition:transform .2s}.project[open] .project-action b{transform:rotate(45deg)}.project-detail{padding:0 28px 28px;font-size:1rem}.project-detail p{margin-bottom:16px}.tags{font-size:.8125rem;margin-top:24px}.toolbox{margin-top:35px}.toolbox>span{color:var(--muted)}.toolbox p{font-size:.875rem;margin-top:8px}.research{display:grid;grid-template-columns:21% 79%;padding:80px 6%;background:var(--violet);color:#fff}.research .section-label{color:#dfd3f7}.research .eyebrow{display:inline-block;background:var(--lime);color:#241c30;padding:6px 12px;border-radius:30px}.research h2{margin:25px 0}.research h3{font-size:1.3rem;max-width:650px;font-weight:500}.research p{color:#e6dcf6;max-width:650px}.research-footer{display:flex;justify-content:space-between;gap:22px;border-top:1px solid #ffffff44;padding-top:22px;font-size:.875rem}.research-footer a{color:var(--lime);white-space:nowrap}.beyond{background:var(--surface)}.life-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.life-grid article{border:1px solid var(--line);border-top:5px solid var(--accent);border-radius:18px;padding:25px;background:var(--paper);transition:transform .25s}.life-grid article:nth-child(2){border-top-color:#d284ae}.life-grid article:nth-child(3){border-top-color:#92ad32}.life-grid article:nth-child(4){border-top-color:#e88c68}.life-grid article:hover{transform:rotate(-1deg)}.life-index{color:var(--accent);font-family:Georgia,serif;font-size:1.6rem}.life-grid h3{font-size:1.35rem;margin:13px 0}.life-grid p{color:var(--muted);margin:0}.london{min-height:420px;color:#fff;padding:64px 6%;display:flex;align-items:center;background:linear-gradient(90deg,#171128ed,#17112855),url('london.jpg') center/cover}.london-copy{max-width:480px}.london h2{margin:22px 0}.london p{max-width:420px;margin:0;color:#e5deed}.contact{padding:90px 6%;background:var(--soft)}.contact h2{font-size:clamp(2.4rem,5.8vw,5rem);margin:28px 0}.contact>p{max-width:510px;color:var(--muted)}.email{display:inline-flex;align-items:center;gap:45px;font-size:clamp(1.1rem,2.8vw,2.4rem);letter-spacing:-.04em;border-bottom:1px solid var(--ink);padding-bottom:12px;margin-top:20px;overflow-wrap:anywhere}.email span{color:var(--accent)}.socials{display:flex;gap:30px;margin-top:28px;font-size:.875rem}footer{border-top:1px solid var(--line);padding:25px 6%;display:flex;justify-content:space-between;gap:16px;font-size:.8125rem;color:var(--muted)}.skip{position:absolute;left:10px;top:-100px;background:var(--surface);padding:10px;z-index:20}.skip:focus{top:10px}.reveal{opacity:0;translate:0 24px;transition:opacity .65s ease,translate .65s ease,transform .3s,box-shadow .3s}.reveal.arrived{opacity:1;translate:0 0}@keyframes enter{from{opacity:0;translate:0 24px}to{opacity:1;translate:0 0}}@keyframes spin-in{from{transform:rotate(-140deg);opacity:0}to{transform:rotate(0);opacity:1}}
@media(min-width:1600px){body{max-width:1600px;margin:auto}}@media(max-width:1000px){header{flex-wrap:wrap;gap:18px}nav{gap:18px}.theme-label{display:none}.hero-layout{gap:5%}h1{font-size:clamp(2.8rem,5.6vw,4.2rem)}.note{padding:20px}.note h3{font-size:1.4rem}.section,.research{grid-template-columns:1fr;gap:24px}.section-label{padding:0}}@media(max-width:680px){header{padding:20px 6%;justify-content:space-between}.wordmark{font-size:1.25rem}nav{order:3;width:100%;justify-content:space-between;margin:0;font-size:.875rem}.theme-label{display:inline}.hero-top{flex-direction:column;gap:9px}.hero-layout{grid-template-columns:1fr;padding-top:32px;gap:30px}h1{font-size:clamp(2.7rem,8.3vw,3.6rem)}.hero-notes{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:5px 0}.note{margin:0;box-shadow:3px 4px 0 #20182e;padding:18px;max-width:none}.note h3{font-size:1.2rem}.note>span,.note-tools{font-size:.75rem}.note p{font-size:.875rem}.note-lime{transform:rotate(-3deg)}.note-coral{transform:rotate(3deg)}.personal-note{grid-column:1/-1;margin:14px 0 0}.identity-strip{font-size:.75rem;letter-spacing:0;flex-wrap:wrap;justify-content:center;gap:12px}.identity-strip span:nth-child(even){font-size:1.1rem}.section,.research{padding:55px 6%}.about-copy,.life-grid{grid-template-columns:1fr}.mini-facts{gap:14px;flex-wrap:wrap}.mini-facts>div{min-width:210px}.project-grid{grid-template-columns:1fr}.section-head{align-items:start}.section-head .text-link{margin-top:8px}.research-footer{flex-wrap:wrap}.contact{padding:60px 6%}.email{gap:16px}footer{flex-wrap:wrap}footer>span:nth-child(2){display:none}}@media(max-width:360px){.hero-notes{grid-template-columns:1fr}.note{transform:none}.hero-links{flex-wrap:wrap}.theme-label{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;translate:none}}
/* Restrained technical identity */
:root{--paper:#f7f7f5;--surface:#fff;--ink:#181818;--muted:#606060;--line:#d9d9d5;--accent:#327147;--soft:#eeeeea;--shadow:none;--lime:#ddd;--coral:#ddd;--pink:#ddd;--violet:#222}
:root[data-theme=dark]{--paper:#080808;--surface:#0d0d0d;--ink:#eeeeeb;--muted:#a1a1a1;--line:#282828;--accent:#aad3b2;--soft:#111;--shadow:none}
header{background:var(--paper)}.wordmark{font-weight:600}.logo-dot{color:var(--ink)}.cv-link{border:1px solid var(--line);padding:7px 17px;border-radius:5px}.theme-toggle{border-radius:6px}.hero{background:none;padding-top:36px;overflow:hidden}.hero-layout{display:block;padding:65px 0 55px;min-height:560px}.hero-main{max-width:1000px}.hello{color:var(--muted);font-size:.95rem}h1{font-size:clamp(3rem,6.1vw,6.2rem);font-weight:500;line-height:1.09;letter-spacing:-.065em}h1 br:first-child{display:none}h1 em{font-family:Manrope,Arial,sans-serif;font-style:normal;letter-spacing:-.065em;color:var(--muted)}h1 .highlight{color:var(--ink)}.hero-description{max-width:650px;font-size:1.1rem}.primary-button,.secondary-button{border-radius:6px}.primary-button{font-weight:500}.name-watermark{font:700 clamp(1rem,5.45vw,5.7rem)/1.3 Manrope,Arial,sans-serif;letter-spacing:-.06em;white-space:nowrap;opacity:.13;text-align:center;padding:12px 0 0;user-select:none}.data-space{height:460px;position:relative;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);overflow:hidden}.data-space canvas{display:block;width:100%;height:100%;touch-action:pan-y}.space-caption,.space-bottom{position:absolute;left:6%;right:6%;z-index:1;display:flex;justify-content:space-between;gap:20px;align-items:center;color:var(--muted);pointer-events:none}.space-caption{top:25px}.space-caption .eyebrow{font-size:.75rem;max-width:70%}.motion-toggle{pointer-events:auto;background:var(--paper);border:1px solid var(--line);color:var(--ink);padding:7px 12px;border-radius:5px;font-size:.8125rem}.space-bottom{bottom:22px;font: .75rem/1.5 monospace;letter-spacing:.05em}.section,.research{padding-top:85px;padding-bottom:85px}.about-copy .lead{color:var(--ink)}.mini-facts>div{background:transparent;border:1px solid var(--line);border-radius:6px}.project,.project:nth-child(n){background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:none}.project:hover{box-shadow:none;border-color:var(--muted);transform:translateY(-4px)}.project-visual{background:var(--soft);border:1px solid var(--line);color:var(--muted);border-radius:5px}.project:first-child .project-visual{color:var(--accent)}.project-number{color:var(--muted)}.project-action,.blue .project-action{border-color:var(--line)}.research{background:var(--soft);color:var(--ink);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.research .section-label{color:var(--muted)}.research .eyebrow{background:transparent;border:1px solid var(--line);color:var(--accent);border-radius:5px}.research p{color:var(--muted)}.research-footer{border-color:var(--line)}.research-footer a{color:var(--ink)}.life-grid article,.life-grid article:nth-child(n){border:1px solid var(--line);border-radius:6px;background:transparent}.life-grid article:hover{transform:translateY(-3px)}.life-index{color:var(--muted);font-family:monospace;font-size:1rem}.london{background-image:linear-gradient(90deg,#080808ed,#08080866),url('london.jpg');background-blend-mode:saturation;filter:grayscale(1)}.contact{background:var(--paper)}.email span{color:var(--muted)}.eyebrow,.section-label,.project-number,.mini-facts span,.toolbox>span{font-family:monospace;font-weight:400}.hero-top .eyebrow{color:var(--muted)}
@media(max-width:680px){.hero-layout{padding:45px 0 50px;min-height:0}h1{font-size:clamp(2.5rem,8vw,3.5rem)}.hero-description{font-size:1rem}.name-watermark{font-size:5.4vw;padding:20px 0 8px}.data-space{height:360px}.space-caption{align-items:flex-start;gap:10px}.space-caption .eyebrow{font-size:.75rem;max-width:58%}.space-bottom{font-size:.75rem}.space-bottom span:first-child{max-width:65%}.section,.research{padding-top:55px;padding-bottom:55px}nav{flex-wrap:wrap;justify-content:flex-start;gap:15px}.cv-link{padding:4px 11px}.hero-top{gap:12px}}@media(prefers-reduced-motion:reduce){.reveal{opacity:1;translate:none}}
/* Texture, selective colour and integrated motion */
:root{--accent:#217d74;--texture:radial-gradient(#303d4512 .65px,transparent .8px)}
:root[data-theme=dark]{--accent:#78d9c5;--texture:radial-gradient(#ffffff0e .65px,transparent .8px)}
body{background-image:var(--texture);background-size:4px 4px}header,.about,.beyond,.research,.contact{background-image:var(--texture);background-size:4px 4px}.hero{background-image:radial-gradient(ellipse at 95% 20%,#46a89c0c,transparent 65%)}h1 .highlight{color:var(--accent)}.logo-dot{color:var(--accent)}.primary-button{background:var(--accent);color:#07231e}.name-watermark{margin:0 -6.8181818%;padding:0;opacity:.16;line-height:0;white-space:normal}.name-watermark svg{width:100%;height:auto;display:block;fill:currentColor;overflow:visible}.name-watermark text{font:800 143px Manrope,Arial,sans-serif;letter-spacing:-7px}.person-side{min-width:0;position:relative}.about{grid-template-columns:29% 71%;gap:0}.about>div:last-child{min-width:0;padding-left:28px}.person-side .data-space{height:340px;min-width:0;margin:24px -12px 0;border:0;background:transparent;overflow:visible}.data-space canvas{width:100%;height:100%}.person-side .motion-toggle{position:absolute;bottom:0;left:50%;transform:translateX(-50%);font-size:.75rem;white-space:nowrap;color:var(--muted);background:var(--surface)}.london{filter:none;background-blend-mode:normal;background-image:linear-gradient(90deg,rgba(8,8,8,.8),rgba(8,8,8,.12)),url('london.jpg')}.project:nth-child(1){border-top:3px solid #58b9a5}.project:nth-child(2){border-top:3px solid #b793de}.project:nth-child(3){border-top:3px solid #d8ad63}.project:nth-child(4){border-top:3px solid #79a7d8}.project:nth-child(2) .project-visual{color:#b793de}.project:nth-child(3) .project-visual{color:#bd9147}.project:nth-child(4) .project-visual{color:#79a7d8}:root[data-theme=light] .project:nth-child(2) .project-visual{color:#79509e}:root[data-theme=light] .project:nth-child(4) .project-visual{color:#386c9f}.life-grid article:nth-child(2) .life-index{color:#b793de}.life-grid article:nth-child(3) .life-index{color:#bd9147}.life-grid article:nth-child(4) .life-index{color:#79a7d8}.toolbox{margin-top:48px;padding-top:30px;border-top:1px solid var(--line)}.toolbox h3{font-size:1.5rem;margin-bottom:8px}.toolbox .toolbox-intro{font-size:1rem;color:var(--muted);margin-bottom:28px}.tool-group{margin-top:25px}.tool-group h4{font-family:monospace;font-size:.8125rem;font-weight:400;letter-spacing:.03em;color:var(--muted);margin:0 0 14px}.tool-chips{display:flex;flex-wrap:wrap;gap:10px}.tool-chip{display:inline-flex;align-items:center;gap:10px;min-height:45px;font-size:.875rem;padding:9px 13px;border:1px solid var(--line);border-radius:7px;background:var(--surface);transition:border-color .2s,transform .2s}.tool-chip:hover{border-color:var(--accent);transform:translateY(-2px)}.tool-chip img{object-fit:contain;width:24px;height:24px;flex-shrink:0}.tool-chip img[src*="pandas"],.tool-chip img[src*="githubactions"]{background:#fff;border-radius:3px;padding:2px}@media(max-width:1000px){.about{grid-template-columns:1fr}.about>div:last-child{padding-left:0}.person-side{display:grid;grid-template-columns:1fr 1fr;align-items:center}.person-side .data-space{height:230px;margin:0}.person-side .motion-toggle{bottom:8px}}@media(max-width:680px){.person-side{grid-template-columns:1fr}.person-side .data-space{height:260px;max-width:360px;width:100%;margin:0 auto 20px}.name-watermark{padding:0}.tool-chip{padding:8px 11px}.about-copy{gap:0}}
.evidence-card .project-content{padding:28px}.evidence-card h3{margin:18px 0 12px;font-size:1.4rem}.evidence-card .project-content>p{color:var(--muted);font-size:1rem}.project-stat{padding:23px 0;margin:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:6px}.project-stat strong{font-family:Manrope,sans-serif;font-size:2.8rem;letter-spacing:-.05em;color:var(--accent);line-height:1.15}.project-stat span{font-size:.8125rem;color:var(--muted)}.case-study summary{padding:8px 0;display:flex;justify-content:space-between;gap:15px;font-size:.875rem;list-style:none;cursor:pointer}.case-study summary::-webkit-details-marker{display:none}.case-study[open] summary span{transform:rotate(45deg)}.case-copy{padding-top:18px}.case-copy h4{font-size:.875rem;margin:15px 0 7px;font-weight:600}.case-copy p{font-size:1rem;color:var(--muted);margin-bottom:15px}.case-copy .evidence-limit{font-size:.875rem;border-left:2px solid var(--accent);padding-left:12px}.project-links{display:flex;gap:14px 20px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:22px;padding-top:20px;font-size:.875rem}.project-links a{color:var(--accent)}.evidence-card .tags{color:var(--muted);line-height:1.8}.more-projects{margin-top:35px}.more-projects h3{font-size:1.15rem}.more-projects a{display:block;border-top:1px solid var(--line);padding:18px 0}.more-projects span{display:block;font-size:.9375rem;color:var(--muted);margin-top:6px}.experience{background:var(--surface);background-image:var(--texture);background-size:4px 4px}.experience-list article{padding:28px 0;border-top:1px solid var(--line)}.experience-meta{display:flex;gap:24px;font: .75rem/1.5 monospace;letter-spacing:.04em;color:var(--muted);margin-bottom:16px}.experience-list h3{font-size:1.4rem;margin-bottom:3px}.experience-list h4{color:var(--accent);font-size:1rem;font-weight:500;margin:0 0 17px}.experience-list p{max-width:720px;color:var(--muted);margin-bottom:12px}.experience-tag{font-size:.8125rem;color:var(--muted)}h1 br:first-child{display:block}@media(max-width:680px){.evidence-card .project-content{padding:23px}.experience-meta{flex-wrap:wrap;gap:8px 20px}.project-stat strong{font-size:2.4rem}}
.project-grid .evidence-card:nth-child(1){--card-accent:#58b9a5;border-top-color:var(--card-accent)}.project-grid .evidence-card:nth-child(2){--card-accent:#b793de;border-top-color:var(--card-accent)}.project-grid .evidence-card:nth-child(3){--card-accent:#d8ad63;border-top-color:var(--card-accent)}.project-grid .evidence-card:nth-child(4){--card-accent:#79a7d8;border-top-color:var(--card-accent)}.evidence-card .project-stat strong{color:var(--card-accent)}:root[data-theme=light] .project-grid .evidence-card:nth-child(1){--card-accent:#267e6d}:root[data-theme=light] .project-grid .evidence-card:nth-child(2){--card-accent:#79509e}:root[data-theme=light] .project-grid .evidence-card:nth-child(3){--card-accent:#916719}:root[data-theme=light] .project-grid .evidence-card:nth-child(4){--card-accent:#386c9f}

/* Featured work and writing */
.credibility-line{max-width:680px;padding-top:18px;border-top:1px solid var(--line);font-size:.8125rem;line-height:1.9;color:var(--muted);margin:24px 0 0}.project-grid .flagship{grid-column:1/-1}.flagship .project-content{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:0 36px;padding:36px}.flagship .project-number,.flagship h3,.flagship .project-content>p,.flagship .tags,.flagship .project-links{grid-column:1/-1}.flagship h3{font-size:clamp(1.8rem,3vw,2.7rem);max-width:750px;line-height:1.2}.flagship .project-content>.flagship-insight{max-width:780px;padding-left:17px;border-left:2px solid var(--card-accent);margin-top:12px}.flagship-insight strong{color:var(--ink)}.flagship .project-stat{grid-column:2;grid-row:5;justify-content:center;padding:24px}.flagship .case-study{grid-column:1;grid-row:5;align-self:center}.flagship .project-stat strong{font-size:3.6rem}.writing-entry{padding:30px 0;border-top:1px solid var(--accent);border-bottom:1px solid var(--line)}.writing-entry .eyebrow{color:var(--accent)}.writing-entry h3{font-size:clamp(1.5rem,2.6vw,2.3rem);line-height:1.35;max-width:790px;margin:20px 0}.writing-entry p{max-width:650px;color:var(--muted)}.writing-links,.contact-actions{display:flex;gap:18px;flex-wrap:wrap;align-items:center}.writing-links{margin-top:25px}.contact-actions{margin:28px 0 10px}.primary-button{color:#07231e}:root[data-theme=light] .primary-button{color:#fff}@media(max-width:680px){.flagship .project-content{display:block;padding:23px}.flagship .project-stat{padding:23px 0}.flagship .project-stat strong{font-size:2.8rem}.contact-actions{align-items:stretch;flex-direction:column}.contact-actions a{justify-content:center;text-align:center}.credibility-line{font-size:.8rem}nav{gap:12px 16px}}

.case-study-link{display:inline-block;color:var(--card-accent,var(--accent));font-weight:600;border-bottom:1px solid currentColor;padding:8px 0;font-size:1rem}.flagship .case-study-link{grid-column:1;grid-row:5;align-self:center;justify-self:start}.more-projects strong:after{content:"Read case study";display:block;color:var(--accent);font-size:.875rem;margin-top:8px}

/* Compact project summaries; full detail lives on each case-study page. */
.project-grid{gap:18px}.evidence-card .project-content{padding:22px}.evidence-card h3{margin-top:12px}.evidence-card .project-stat{padding:16px 0;margin:16px 0}.flagship .project-content{padding:28px}
@media(max-width:680px){
 .work .section-intro{margin-bottom:22px}
 .project-grid{grid-template-columns:minmax(0,1fr);gap:14px}
 .project-grid .evidence-card .project-content{display:block;padding:18px}
 .project-grid .evidence-card .project-number{font-size:.75rem;line-height:1.5;letter-spacing:.04em}
 .project-grid .evidence-card h3{font-size:1.25rem;line-height:1.3;margin:8px 0}
 .project-grid .evidence-card .project-content>p{font-size:1rem;line-height:1.5;margin-bottom:12px}
 .project-grid .evidence-card .flagship-insight,.project-grid .evidence-card .tags,.project-grid .evidence-card .project-links{display:none}
 .project-grid .evidence-card .project-stat{display:flex;flex-direction:row;align-items:center;gap:14px;margin:12px 0 4px;padding:12px 0;border-bottom:0}
 .project-grid .evidence-card .project-stat strong{font-size:1.65rem;line-height:1.15;white-space:nowrap;flex-shrink:0}
 .project-grid .evidence-card .project-stat span{font-size:.875rem;line-height:1.4;max-width:210px}
 .project-grid .evidence-card .case-study-link{display:inline-flex;align-items:center;min-height:44px;padding:8px 0;font-size:.9375rem}
 .more-projects{margin-top:24px}.more-projects a{padding:13px 0}
}

.availability{font-size:.9375rem;color:var(--accent);margin-top:14px}.article-note{padding:22px 0;margin-top:22px;border-bottom:1px solid var(--line);display:grid;gap:8px}.article-note>a{font-size:1.1rem;font-weight:600}.article-note>span:last-child{font-size:.875rem;color:var(--muted)}.personal-brief{display:grid;grid-template-columns:1.3fr 1fr;gap:30px;align-items:stretch}.personal-brief p{color:var(--muted)}.personal-london{min-height:220px;padding:0;border-radius:6px;background-image:linear-gradient(90deg,#08080818,#08080805),url('london.jpg');background-blend-mode:normal;filter:none}.flagship .case-study-link{grid-row:4}.flagship .project-stat{grid-row:4}@media(max-width:680px){.personal-brief{grid-template-columns:1fr;gap:12px}.personal-london{min-height:180px}.article-note{padding:16px 0}.article-note>a{font-size:1rem}}

/* Compact desktop cards, with three projects sharing one row on wide screens. */
@media (min-width:681px){
 .project-grid{gap:16px;align-items:stretch}
 .project-grid .flagship{grid-column:auto}
 .project-grid .evidence-card .project-content{display:flex;flex-direction:column;gap:0;padding:20px;height:100%}
 .project-grid .evidence-card h3{font-size:1.35rem;line-height:1.3;margin:10px 0}
 .project-grid .evidence-card .project-content>p{font-size:1rem;line-height:1.5;margin-bottom:12px}
 .project-grid .evidence-card .project-stat{flex-direction:row;align-items:center;gap:12px;padding:12px 0;margin:0 0 10px}
 .project-grid .evidence-card .project-stat strong{font-size:2rem;white-space:nowrap}
 .project-grid .evidence-card .project-stat span{font-size:.875rem;line-height:1.4}
 .project-grid .evidence-card .case-study-link{align-self:flex-start;font-size:.9375rem;padding:6px 0;margin-top:auto}
 .project-grid .evidence-card .tags{font-size:.875rem;line-height:1.5;margin-top:12px}
 .project-grid .evidence-card .project-links{gap:8px 14px;margin-top:12px;padding-top:12px;font-size:.875rem;line-height:1.5}
}
@media (min-width:1100px){.project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
