:root{color-scheme:dark;--bg:#09191f;--surface:#122a31;--text:#f1f5f0;--muted:#b7c8cb;--accent:#9be8c6;--line:#375159;--font-display:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--radius:22px;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);font-synthesis:none;text-rendering:optimizeLegibility}
.appearance-status{max-width:260px;line-height:1.6;font-size:.66rem}
*{box-sizing:border-box}body{margin:0;line-height:1.65;background:var(--bg);color:var(--text)}img,svg{display:block;max-width:100%}a{color:inherit;text-underline-offset:.25em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}a,button,select,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:5px;border-radius:3px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--font-display);line-height:1.12;letter-spacing:-.045em;text-wrap:balance}h1{font-size:clamp(2.75rem,5.2vw,5.4rem);font-weight:600;max-width:15ch}h2{font-size:clamp(2rem,3.2vw,3.4rem);font-weight:550;max-width:23ch}h3{font-size:1.45rem;font-weight:600;letter-spacing:-.025em}p{max-width:70ch}p+p{margin-top:1.25rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}.skip-link{position:absolute;z-index:99;top:-100px;left:1rem;padding:.75rem 1rem;background:var(--text);color:var(--bg)}.skip-link:focus{top:1rem}.site-header,.page-shell,.site-footer{width:min(1240px,calc(100% - 96px));margin-inline:auto}.site-header{min-height:122px;display:flex;align-items:center;gap:2rem;position:relative;z-index:3;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:.8rem;text-decoration:none;font-size:1.3rem;font-weight:650;line-height:1.2;letter-spacing:-.035em;flex-shrink:0}.brand small{display:block;font-size:.62rem;font-weight:450;letter-spacing:.015em;margin-top:.35rem;color:var(--muted)}.brand-mark{display:grid;place-content:center;width:45px;height:45px;border:1px solid var(--line);border-radius:50%;font-size:1.5rem;font-weight:550;letter-spacing:-.15em;padding-right:.16em}.brand-mark span{display:inline}.brand-accent{color:var(--accent)}.primary-nav{display:flex;gap:1.4rem;align-items:center;margin-left:auto}.primary-nav a{text-decoration:none;padding:.65rem 0;font-size:.88rem}.primary-nav a[aria-current="page"]{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.5em}.primary-nav .nav-contact{border:1px solid var(--line);padding:.65rem 1.1rem;border-radius:100px}.language-switch{display:flex;gap:.15rem}.language-switch a{display:flex;align-items:center;justify-content:center;min-width:36px;min-height:44px;font-size:.69rem;letter-spacing:.06em;text-decoration:none;color:var(--muted)}.language-switch a[aria-current]{font-weight:750;color:var(--text);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.4em}.page-shell{display:flex;flex-direction:column}.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:5%;align-items:center;padding-block:6rem 5rem;min-height:700px}.hero-copy{position:relative;z-index:1}.eyebrow{font-size:.68rem;font-weight:650;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:.7rem;margin-bottom:1.65rem}.status-dot{display:inline-block;width:7px;height:7px;background:var(--accent);border-radius:50%;flex:0 0 auto;box-shadow:0 0 16px color-mix(in srgb,var(--accent),transparent 60%)}.lede{font-size:1.08rem;color:var(--muted);max-width:49ch;margin-top:1.8rem;line-height:1.8}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.7rem;margin-top:2.1rem}.button{display:inline-flex;align-items:center;justify-content:center;gap:1.5rem;text-decoration:none;border-radius:100px;min-height:52px;padding:.85rem 1.3rem;font-size:.88rem;font-weight:650;background:var(--accent);color:var(--bg)}.button:hover{transform:translateY(-2px);box-shadow:0 6px 22px #0002}.text-link{font-size:.9rem;display:inline-flex;align-items:center;gap:1rem;font-weight:600}.hero-signature{margin-top:3.5rem;font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}.hero-visual{position:relative;min-width:0;padding:1.25rem}.portrait-frame{position:relative}.portrait{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 42%;border-radius:160px 160px 20px 20px;position:relative;z-index:1;box-shadow:0 30px 65px #0004}.portrait-orbit{position:absolute;inset:-22px 28px 30px -22px;border:1px solid var(--line);border-radius:200px 200px 25px 25px;transform:rotate(-7deg)}.visual-caption{position:relative;z-index:2;display:flex;align-items:center;gap:.7rem;font-size:.66rem;letter-spacing:.07em;margin-top:1.5rem;color:var(--muted)}.visual-coordinate{position:absolute;right:-20px;bottom:28%;writing-mode:vertical-rl;font-size:.56rem;letter-spacing:.2em;color:var(--muted)}.proof-strip{padding:2.5rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.stat{display:flex;align-items:center;gap:1rem;text-decoration:none}.stat strong{font-size:clamp(2.2rem,3.8vw,3.5rem);line-height:1;letter-spacing:-.06em;font-weight:500}.stat span{font-size:.78rem;color:var(--muted);max-width:18ch}.stats-source{font-size:.66rem;color:var(--muted);margin-top:1.8rem}details{font-size:.75rem;margin-top:.75rem;color:var(--muted)}summary{cursor:pointer;width:fit-content;padding:.3rem 0}details p{margin-top:.5rem}.section{padding-block:6rem}.section-heading{display:flex;gap:3rem;align-items:flex-end;justify-content:space-between;margin-bottom:3rem}.section-heading p{font-size:.92rem;color:var(--muted);max-width:42ch}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.service-card,.project-card{padding:2rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);position:relative;min-width:0}.service-card{display:flex;flex-direction:column}.card-number{font-size:.75rem;color:var(--accent);letter-spacing:.07em;display:block;margin-bottom:2rem}.service-card h3{max-width:18ch}.service-card p,.project-card>p{font-size:.88rem;color:var(--muted);margin-top:1.1rem}.service-card .card-tech,.project-card .card-tech{font-size:.66rem;letter-spacing:.03em;margin-top:auto;padding-top:1.8rem;color:var(--accent)}.section-work{border-top:1px solid var(--line)}.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem}.project-card{background:transparent}.project-card .eyebrow{font-size:.62rem;margin:0 0 1rem;color:var(--accent)}.project-card .text-link{margin-top:1.5rem}.project-card .secondary-project-link{font-size:.73rem;display:block;margin-top:.7rem}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;list-style:none;margin:0;padding:0}.step{border-top:1px solid var(--line);padding-top:1.5rem}.step .card-number{margin-bottom:1rem}.step p{font-size:.88rem;margin-top:1rem;color:var(--muted)}.contact-panel{padding:4rem;margin-block:1rem 5rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);position:relative;overflow:hidden}.contact-panel h2{max-width:24ch}.contact-panel>p:not(.eyebrow){font-size:.96rem;color:var(--muted);margin-top:1.5rem;max-width:60ch}.contact-email{display:inline-flex;gap:2rem;margin-top:2rem;font-size:clamp(1.1rem,2.5vw,2rem);color:var(--accent);text-decoration:none;overflow-wrap:anywhere}.site-footer{display:flex;justify-content:space-between;align-items:flex-start;gap:3rem;border-top:1px solid var(--line);padding-block:2.5rem 3.5rem;font-size:.7rem;color:var(--muted)}.footer-wordmark{display:inline-block;font-size:1.5rem;letter-spacing:-.05em;color:var(--text);text-decoration:none;margin-bottom:.75rem}.site-footer p{margin-bottom:.7rem}.theme-control{max-width:260px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.6rem 1rem}.theme-control select{max-width:100%;padding:.5rem .65rem;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:8px;font-size:.75rem;min-height:44px}.theme-control small{grid-column:1/-1;line-height:1.6;font-size:.66rem}.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:5rem}.about-prose{font-size:1.07rem;color:var(--muted)}.interest{padding:0 0 1.8rem 3rem;position:relative}.interest>span{position:absolute;left:0;font-size:1.8rem;color:var(--accent);line-height:1}.interest h3{font-size:1.1rem}.interest p{font-size:.88rem;color:var(--muted);margin-top:.6rem}.privacy-content{max-width:850px;min-height:65vh}.privacy-content h1{font-size:clamp(2rem,4vw,3.5rem);max-width:25ch;margin-bottom:2rem}.privacy-content p{color:var(--muted)}
@media(max-width:1100px){.site-header,.page-shell,.site-footer{width:calc(100% - 64px)}.site-header{gap:1rem}.brand small{max-width:180px}.primary-nav{gap:1rem}.hero{min-height:610px;padding-block:4rem}.service-card,.project-card{padding:1.6rem}.hero-visual{padding:1rem}.section{padding-block:4rem}}
@media(max-width:800px){.site-header{flex-wrap:wrap;justify-content:space-between;padding-block:1.5rem;gap:1rem;min-height:auto}.primary-nav{order:3;width:100%;justify-content:space-between;margin-left:0}.hero{grid-template-columns:1fr 0.8fr;gap:1.5rem;min-height:0}.hero h1{font-size:clamp(2.7rem,6vw,4rem)}.hero-visual{padding:.5rem}.lede{font-size:1rem}.hero-signature{margin-top:2rem}.hero-actions{gap:1rem}.section-heading{display:block}.section-heading p{margin-top:1.3rem;max-width:65ch}.service-grid{grid-template-columns:repeat(2,1fr)}.steps{grid-template-columns:repeat(2,1fr)}.about-grid{gap:2rem}.stat{align-items:flex-start;flex-direction:column;gap:.7rem}.contact-panel{padding:2.5rem}.site-footer{gap:2rem}}
@media(max-width:600px){.site-header,.page-shell,.site-footer{width:calc(100% - 40px)}.brand small{font-size:.57rem}.brand{font-size:1.2rem;gap:.55rem}.brand-mark{width:38px;height:38px}.language-switch{gap:0}.language-switch a{min-width:31px}.hero{display:flex;flex-direction:column;align-items:stretch;gap:2.5rem;padding-block:3rem}.hero h1{font-size:clamp(2.5rem,10vw,3.8rem);max-width:17ch}.hero-visual{max-width:380px;width:88%;margin:0 auto}.portrait{max-height:420px}.visual-coordinate{right:-15px}.hero-signature{display:none}.eyebrow{font-size:.61rem;letter-spacing:.1em}.proof-strip{padding-block:2rem}.stats-grid{gap:.8rem}.stat strong{font-size:2.4rem}.stat span{font-size:.67rem}.stats-source{font-size:.62rem}.section{padding-block:3rem}.section-heading{margin-bottom:2rem}.service-grid,.project-grid,.about-grid{grid-template-columns:1fr}.service-card,.project-card{padding:1.7rem}.service-card .card-number{margin-bottom:1.2rem}.steps{gap:1.4rem}.step h3{font-size:1.2rem}.contact-panel{padding:2rem 1.5rem;margin-bottom:3rem}.contact-panel h2{font-size:2rem}.contact-email{gap:1rem}.site-footer{flex-direction:column;gap:2rem}.theme-control{max-width:none;width:100%}.about-prose{font-size:1rem}}
@media(prefers-reduced-motion:no-preference){.button{transition:transform .2s,box-shadow .2s}.service-card{transition:transform .25s,border-color .25s}.service-card:hover{transform:translateY(-4px);border-color:var(--accent)}}
@media(forced-colors:active){.button,.service-card,.project-card,.contact-panel{border:1px solid CanvasText}.status-dot{background:CanvasText}.portrait-orbit{display:none}}
@media print{.site-header,.site-footer,.hero-visual,.hero-actions{display:none}body{background:white;color:black}.page-shell{width:100%}.hero,.section{padding:1rem 0;min-height:0}.hero{display:block}h1,h2{font-size:2rem}.service-grid,.project-grid{grid-template-columns:repeat(2,1fr)}.service-card,.project-card{break-inside:avoid}p,.lede{color:black!important}}

.visitor-statistics{margin-top:1rem;font-size:.78rem;color:var(--muted)}.visitor-statistics a{display:inline-block;min-height:44px;padding-block:.65rem}.visitor-statistics strong{font-variant-numeric:tabular-nums;color:var(--text)}

/* Small editorial signposts keep services, evidence and enquiry connected. */
.page-jumps{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.4rem 1.8rem;border-top:1px solid var(--line);padding-top:1rem;font-size:.8rem}
.page-jumps a{padding:.4rem 0;min-height:44px;display:inline-flex;align-items:center}
.service-example{margin-top:1.1rem;font-size:.78rem;color:var(--text);min-height:44px;display:flex;align-items:center;gap:.5rem}
[id]{scroll-margin-top:2rem}
.project-flow{display:flex;align-items:center;gap:.6rem;min-height:100px;margin-bottom:1.8rem;padding:1rem;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--accent);font-family:ui-monospace,monospace;font-size:.72rem}
.project-flow span{flex:1;min-width:0;overflow-wrap:anywhere;text-align:center}
.project-flow b{font-weight:400;flex:none}
.project-faq{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--line);max-width:75ch}
.project-faq h3{margin-bottom:1rem}
.project-faq details{font-size:.9rem;border-bottom:1px solid var(--line);padding-block:.6rem}
.project-faq summary{color:var(--text);padding-block:.7rem;min-height:44px;width:100%}
.project-faq details p{padding-bottom:1rem}
@media(max-width:600px){.project-flow{gap:.4rem;padding:.8rem;font-size:.65rem}.page-jumps{gap:.2rem 1.2rem}}
@media(forced-colors:active){.project-flow{color:CanvasText;border-color:CanvasText}}


/* Keep the introduction conversational across theme-specific display styles. */
body[data-page] .hero h1 {
  font-size: clamp(2rem, 3.3vw, 3.3rem);
  line-height: 1.16;
  letter-spacing: -.035em;
  max-width: 23ch;
}
body[data-page="bio"] .hero h1 {
  font-size: clamp(1.9rem, 2.8vw, 2.75rem);
  max-width: 25ch;
}
@media print {
  body[data-page] .hero h1 { font-size: 2rem; }
}

.languages-heading { margin-block: 2rem .75rem; }
@media (max-width: 600px) {
  body[data-page] .site-header { display: flex; flex-wrap: wrap; gap: 1rem; }
  body[data-page] .language-switch { flex-wrap: wrap; }
}

.credentials { margin-top: 2.5rem; }
.credentials article { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.credentials h4 { margin: 0 0 .75rem; font-size: 1rem; }
.credentials li { margin-block: .5rem; }
.credential-code { font-size: .75rem; overflow-wrap: anywhere; color: var(--muted); }
