:root {
  color-scheme: light;
  --bg: #f7f8fa; --surface: #fff; --soft: #edf1f6; --text: #15243b;
  --muted: #536177; --line: #d8e0e9; --accent: #245acf; --accent-soft: #e9effd;
  --nav: rgba(247,248,250,.96); --max: 1240px;
  --shadow: 0 18px 50px rgba(24,44,74,.065);
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  font-synthesis: none;
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --bg:#101926; --surface:#172334; --soft:#1c2b40; --text:#edf3fc;
  --muted:#acbcd2; --line:#33445d; --accent:#9cbaff; --accent-soft:#243a60;
  --nav:rgba(16,25,38,.97); --shadow:0 18px 50px rgba(0,0,0,.15);
}
* { box-sizing:border-box; }
[hidden] { display:none !important; }
html { scroll-behavior:smooth; scroll-padding-top:110px; }
body { margin:0; background:var(--bg); color:var(--text); line-height:1.6; }
body.menu-open { overflow:hidden; }
a { color:inherit; text-underline-offset:4px; }
button,input,select { font:inherit; }
button,summary { cursor:pointer; }
button { color:inherit; }
button:disabled { cursor:default; opacity:.6; }
img { max-width:100%; display:block; }
h1,h2,h3,p { margin:0; }
h1,h2,h3 { line-height:1.14; font-weight:650; letter-spacing:-.04em; }
h2 { font-size:clamp(1.65rem,2.5vw,2.25rem); }
h3 { font-size:1.25rem; }
button,a,input,select,summary { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid var(--accent); outline-offset:5px; }
button,a,summary { touch-action:manipulation; }
.accent { color:var(--accent); }
.skip-link { position:fixed; top:8px; left:16px; z-index:100; padding:12px 20px; background:var(--text); color:var(--bg); transform:translateY(-150%); }
.skip-link:focus { transform:translateY(0); }
.site-header { position:sticky; top:0; z-index:20; background:var(--nav); border-bottom:1px solid var(--line); backdrop-filter:blur(16px); }
.nav-shell { max-width:var(--max); margin:auto; min-height:88px; padding:0 28px; display:flex; align-items:center; gap:30px; }
.brand { display:flex; align-items:center; gap:13px; text-decoration:none; flex-shrink:0; }
.brand-monogram { font-size:31px; font-weight:800; line-height:1; letter-spacing:-.08em; }
.brand-monogram span { color:var(--accent); }
.brand-text strong { display:block; font-size:15px; letter-spacing:-.025em; }
.brand-text small { display:block; color:var(--muted); font-size:11px; letter-spacing:.04em; }
.desktop-nav { display:flex; gap:25px; margin-left:auto; align-items:center; }
.desktop-nav a { position:relative; padding:30px 0; text-decoration:none; font-size:13px; font-weight:600; color:var(--muted); }
.desktop-nav a[aria-current="page"],.desktop-nav a:hover { color:var(--accent); }
.desktop-nav a[aria-current="page"]::after { content:""; position:absolute; height:2px; background:var(--accent); bottom:20px; left:0; right:0; }
.header-actions { display:flex; gap:14px; align-items:center; }
.theme-toggle,.icon-button { display:grid; place-items:center; width:44px; min-height:44px; padding:0; border:1px solid var(--line); border-radius:50%; background:var(--surface); font-size:23px; }
.menu-toggle { display:none; }
.button { min-height:48px; display:inline-flex; justify-content:center; align-items:center; gap:24px; padding:12px 21px; border:1px solid var(--line); border-radius:5px; background:var(--surface); color:var(--text); text-decoration:none; font-weight:600; font-size:14px; transition:background .15s,transform .15s; }
.button:hover { background:var(--soft); transform:translateY(-1px); }
.button.primary { background:var(--accent); border-color:var(--accent); color:#fff; }
:root[data-theme="dark"] .button.primary { color:#101926; }
.button.primary:hover { filter:brightness(.94); }
.button.small { min-height:42px; padding:8px 15px; gap:20px; }
.actions { display:flex; gap:12px; flex-wrap:wrap; }
.text-link { display:inline-flex; gap:24px; align-items:center; color:var(--accent); font-size:14px; font-weight:600; text-decoration:none; min-height:44px; }
.text-link:hover { text-decoration:underline; }
.text-button { padding:9px 2px; background:none; border:0; color:var(--accent); font-weight:600; font-size:14px; }
.eyebrow { font-size:11px; line-height:1.5; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:var(--muted); }
.status-dot { width:7px; height:7px; display:inline-block; border-radius:50%; background:#38877d; margin:0 7px 1px 0; }
.view { max-width:var(--max); margin:auto; padding:0 28px; }
.hero { display:grid; grid-template-columns:1.2fr 1fr; gap:72px; padding:64px 0 56px; align-items:center; }
.hero-copy h1 { font-size:clamp(2.8rem,4.6vw,4.4rem); margin:22px 0 13px; letter-spacing:-.065em; }
.hero-title { font-size:clamp(1.5rem,2.3vw,2.15rem); font-weight:500; line-height:1.22; letter-spacing:-.035em; }
.lede { font-size:18px; margin-top:24px; max-width:450px; line-height:1.6; }
.hero-summary { color:var(--muted); font-size:14px; margin:12px 0 26px; max-width:490px; }
.location-line { margin-top:20px; font-size:11px; color:var(--muted); }
.location-line span { margin:0 9px; color:#7e8fa7; }
.industry-card { background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:28px; box-shadow:var(--shadow); }
.card-heading { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.tiny-label { padding:4px 8px; border:1px solid var(--line); border-radius:4px; font-size:10px; white-space:nowrap; color:var(--muted); }
.industry-card h2 { font-size:25px; margin-top:14px; }
.chart-figure { margin:22px 0 0; }
.chart-layout { display:grid; grid-template-columns:1.12fr 1fr; align-items:center; gap:23px; }
.donut { width:100%; max-width:245px; height:auto; overflow:visible; }
.donut-number { font-size:34px; font-weight:650; fill:var(--text); letter-spacing:-1px; }
.donut-label { font-size:10px; fill:var(--muted); }
.chart-legend { list-style:none; padding:0; margin:0; display:grid; gap:7px; }
.chart-legend li { display:grid; grid-template-columns:7px 1fr auto; align-items:center; gap:7px; font-size:10px; color:var(--muted); }
.chart-legend b { color:var(--text); font-weight:600; font-variant-numeric:tabular-nums; }
.legend-dot { width:7px; height:7px; border-radius:2px; }
.chart-figure figcaption { font-size:10px; color:var(--muted); margin:18px 0 8px; }
.industry-card > .text-link { border-top:1px solid var(--line); width:100%; padding-top:14px; margin-top:12px; justify-content:space-between; font-size:12px; }
.proof-strip { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:26px 0; }
.proof-strip a { display:flex; gap:17px; align-items:center; text-decoration:none; padding:0 28px; border-right:1px solid var(--line); }
.proof-strip a:first-child { padding-left:0; }.proof-strip a:last-child { border:0; padding-right:0; }
.proof-strip strong { font-size:38px; line-height:1; letter-spacing:-.05em; font-weight:650; white-space:nowrap; }.proof-strip strong span { font-size:25px; }
.proof-strip b { display:block; font-size:12px; }.proof-strip small { display:block; font-size:10px; line-height:1.6; color:var(--muted); margin-top:3px; }
.proof-strip a:hover b { color:var(--accent); }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:28px; }
.section-heading h2 { margin-top:10px; }.section-heading > p { color:var(--muted); font-size:14px; max-width:360px; }
.section-heading.compact h2 { font-size:25px; }.section-heading .text-link { flex-shrink:0; }
.logo-band { padding:40px 0; border-bottom:1px solid var(--line); }
.logo-collage { background:#fff; padding:20px 36px; border:1px solid var(--line); border-radius:7px; }
.logo-collage img { width:100%; height:auto; max-height:190px; object-fit:contain; }
.overview-section { padding:50px 0; border-bottom:1px solid var(--line); }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.service-card { display:flex; flex-direction:column; text-decoration:none; padding:26px; background:var(--surface); border:1px solid var(--line); border-top:3px solid var(--accent); border-radius:5px; }
.service-card:nth-child(2) { border-top-color:#458779; }.service-card:nth-child(3) { border-top-color:#bb9161; }
.service-number { color:var(--muted); font-size:10px; letter-spacing:.1em; font-weight:700; margin-bottom:30px; }
.service-card h3 { font-size:23px; line-height:1.2; }.service-card p { font-size:13px; color:var(--muted); margin:17px 0 23px; }.service-card .text-link { margin-top:auto; font-size:12px; justify-content:space-between; }.service-card:hover { box-shadow:var(--shadow); }
.recent-role { display:grid; grid-template-columns:125px 1fr auto; align-items:center; gap:24px; padding:21px 0; border-top:1px solid var(--line); text-decoration:none; }
.recent-role time { font-size:12px; color:var(--muted); }.recent-role strong { font-size:17px; display:block; }.recent-role p { font-size:13px; color:var(--muted); margin-top:3px; }.recent-role > span { color:var(--accent); }.recent-role:hover strong { color:var(--accent); }
.next-step { padding:42px 0 52px; display:flex; justify-content:space-between; align-items:center; gap:30px; }.next-step h2 { font-size:28px; margin-top:9px; }
.content-view { padding-top:52px; padding-bottom:70px; min-height:65vh; }
.page-heading { max-width:850px; margin-bottom:42px; }.page-heading h1 { font-size:clamp(2.5rem,4.7vw,4rem); margin:20px 0; letter-spacing:-.06em; }.page-heading > p:not(.eyebrow) { max-width:640px; color:var(--muted); font-size:17px; }.page-heading > .text-link { margin-top:12px; }
.path-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.path-card { padding:26px; border:1px solid var(--line); background:var(--surface); border-radius:6px; }
.path-card summary { list-style:none; position:relative; padding-right:35px; }.path-card summary::-webkit-details-marker { display:none; }.path-card summary::after { content:"+"; position:absolute; top:0; right:0; font-size:24px; color:var(--accent); }.path-card[open] summary::after { content:"−"; }
.path-card .eyebrow { display:block; margin-bottom:16px; }.path-card h2 { font-size:22px; }.path-card summary p { color:var(--muted); font-size:13px; margin-top:13px; }.path-body { border-top:1px solid var(--line); margin-top:22px; padding-top:20px; }.path-body > p { color:var(--muted); font-size:14px; }.tag-cloud { display:flex; gap:7px; flex-wrap:wrap; margin:18px 0; }.tag { font-size:11px; padding:4px 8px; border-radius:3px; background:var(--soft); color:var(--muted); }
.evidence-links { display:flex; flex-wrap:wrap; gap:9px; }.evidence-links a { display:inline-flex; align-items:center; padding:9px 0; margin-right:8px; color:var(--accent); font-size:12px; font-weight:600; }
.search-panel { padding:22px; background:var(--surface); border:1px solid var(--line); display:grid; grid-template-columns:1.3fr 1fr auto; align-items:end; gap:18px; border-radius:6px; }
.search-panel label { color:var(--muted); font-size:12px; font-weight:600; }.search-panel input,.search-panel select { display:block; min-width:0; width:100%; margin-top:7px; min-height:48px; border:1px solid var(--line); border-radius:4px; background:var(--bg); color:var(--text); font-size:14px; padding:11px; }
.results-heading { display:flex; align-items:center; justify-content:space-between; margin:20px 0; font-size:13px; color:var(--muted); }
.timeline { border-top:1px solid var(--line); }.role-card { border-bottom:1px solid var(--line); padding:0; background:var(--surface); }.role-card > summary { padding:23px 22px; display:grid; grid-template-columns:135px 1fr 28px; align-items:center; gap:25px; list-style:none; }.role-card > summary::-webkit-details-marker { display:none; }.role-period { color:var(--muted); font-size:12px; line-height:1.5; }.role-heading h2 { font-size:18px; letter-spacing:-.025em; }.role-heading p { margin-top:4px; font-size:14px; color:var(--muted); }.role-expand { color:var(--accent); font-size:24px; }.role-card[open] .role-expand { transform:rotate(45deg); }.role-card[open] { border-left:3px solid var(--accent); }.role-body { margin-left:182px; padding:0 30px 28px 0; font-size:14px; color:var(--muted); }.role-body .eyebrow { margin-bottom:12px; }.role-body ul { padding-left:19px; }.role-body li { margin:10px 0; }.empty-state { padding:40px; background:var(--surface); border:1px solid var(--line); text-align:center; }
.featured-results { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-bottom:50px; }.result-card { display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--line); padding:28px; border-radius:6px; }.result-card .result-value { font-size:42px; line-height:1.1; letter-spacing:-.05em; margin:25px 0 18px; font-weight:600; }.result-card h2 { font-size:18px; margin-bottom:12px; }.result-card > p { font-size:13px; color:var(--muted); }.result-card > a { margin-top:auto; padding-top:20px; font-size:12px; }
.logo-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:35px; }.logo-tile { border:1px solid var(--line); border-radius:6px; background:var(--surface); padding:18px; }.logo-image { border-radius:4px; background:#fff; height:82px; display:grid; place-items:center; padding:14px; margin-bottom:14px; }.logo-image img { max-width:150px; max-height:55px; object-fit:contain; }.logo-tile strong { font-size:13px; }.logo-tile p { font-size:11px; color:var(--muted); margin:8px 0; }.logo-tile .evidence-links { gap:0; }.logo-tile .evidence-links a { font-size:11px; padding:6px 0; }
.disclosure { border-top:1px solid var(--line); padding:20px 0; }.disclosure > summary { color:var(--text); font-weight:600; padding:10px 0; }.disclosure > p { color:var(--muted); font-size:13px; max-width:720px; margin:15px 0; }.value-add-grid,.metrics-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin:20px 0; }.value-card,.metric-card { padding:22px; border:1px solid var(--line); border-radius:5px; background:var(--surface); }.value-card h3,.metric-card h3 { font-size:18px; margin:12px 0; }.value-card p,.metric-card p { font-size:13px; color:var(--muted); }.reference-list { display:grid; grid-template-columns:1fr 1fr; gap:20px; }.reference-list a { display:block; padding:12px 0; color:var(--accent); font-size:13px; }.reference-list span { display:block; color:var(--muted); font-size:12px; margin-top:6px; }
.tech-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }.tech-card { padding:25px; border:1px solid var(--line); border-top:3px solid #9eb9dd; border-radius:5px; background:var(--surface); }.tech-card h2,.tech-card h3 { font-size:21px; margin-bottom:16px; }.tech-card p { font-size:14px; color:var(--muted); }.tech-card .tag-cloud { margin-bottom:0; }.inline-cta { display:flex; justify-content:space-between; align-items:center; padding:30px 0; margin-top:25px; border-top:1px solid var(--line); }
.industry-detail { display:grid; grid-template-columns:1fr 1.15fr; align-items:start; gap:50px; }.industry-detail .industry-card { padding:30px; }.industry-detail .chart-layout { grid-template-columns:1fr; }.industry-detail .donut { max-width:300px; margin:auto; }.industry-detail .chart-legend { grid-template-columns:1fr 1fr; margin-top:12px; gap:12px 24px; }.industry-detail .chart-legend li { font-size:12px; }.industry-detail h2 { font-size:22px; margin-bottom:25px; }.industry-row { display:grid; grid-template-columns:120px 1fr 28px; gap:17px; align-items:center; margin:18px 0; font-size:12px; }.industry-bar { height:8px; border-radius:4px; overflow:hidden; background:var(--soft); }.industry-fill { height:100%; border-radius:4px; }.industry-months { text-align:right; font-variant-numeric:tabular-nums; }.data-note { font-size:12px; color:var(--muted); margin-top:25px; }
.rosetta-feature { display:grid; grid-template-columns:1fr 1fr; gap:50px; background:var(--surface); border:1px solid var(--line); border-radius:8px; padding:40px; margin-bottom:30px; }.rosetta-feature img { width:220px; height:85px; padding:8px 15px; background:#fff; object-fit:contain; border-radius:5px; margin-bottom:24px; }.rosetta-feature h2 { font-size:25px; }.rosetta-feature p { color:var(--muted); font-size:14px; margin:16px 0 24px; }.feature-list { padding:0; margin:0; list-style:none; }.feature-list li { padding:18px 0; border-bottom:1px solid var(--line); }.feature-list b,.feature-list span { display:block; }.feature-list b { font-size:16px; }.feature-list span { font-size:13px; color:var(--muted); margin-top:5px; }
.game-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-bottom:35px; }.game-card { border:1px solid var(--line); border-radius:6px; background:var(--surface); overflow:hidden; }.game-image { width:100%; height:185px; object-fit:contain; background:#142030; padding:16px; image-rendering:auto; }.game-copy { padding:23px; }.game-copy h2 { font-size:21px; }.game-copy > p { font-size:12px; color:var(--muted); margin:8px 0; }.game-copy details { border-top:1px solid var(--line); margin-top:18px; padding-top:10px; font-size:13px; }.game-copy summary { padding:10px 0; color:var(--accent); font-weight:600; }.game-copy details p { color:var(--muted); padding:10px 0; }
.contact-layout { display:grid; grid-template-columns:1.3fr 1fr; gap:50px; align-items:start; }.contact-card { padding-top:15px; }.contact-email { font-size:clamp(1.3rem,2.7vw,2rem); line-height:1.3; display:block; margin:24px 0 16px; color:var(--accent); text-decoration:none; font-weight:600; letter-spacing:-.04em; overflow-wrap:anywhere; }.contact-phone { display:inline-block; font-size:22px; text-decoration:none; min-height:44px; }.contact-facts { margin:30px 0; }.contact-facts div { padding:17px 0; border-bottom:1px solid var(--line); display:grid; grid-template-columns:140px 1fr; gap:20px; font-size:13px; }.contact-facts dt { color:var(--muted); }.contact-facts dd { margin:0; }.cv-card { padding:32px; border:1px solid var(--line); border-radius:8px; background:var(--surface); }.document-icon { width:69px; height:84px; border:1px solid var(--line); border-radius:4px 16px 4px 4px; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:24px; font-weight:600; background:var(--soft); margin-bottom:25px; }.document-icon span { font-size:9px; color:var(--accent); letter-spacing:.2em; }.cv-card h2 { font-size:27px; }.cv-card p { margin:16px 0 25px; font-size:14px; color:var(--muted); }.cv-card .button { width:100%; justify-content:space-between; }.cv-card .text-link { font-size:12px; width:100%; margin-top:13px; justify-content:space-between; }.cv-card small { display:block; margin-top:16px; color:var(--muted); font-size:11px; }
.footer { max-width:var(--max); margin:auto; border-top:1px solid var(--line); padding:35px 28px; display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:35px; color:var(--muted); font-size:12px; }.footer-brand { color:var(--text); }.footer-brand .brand-monogram { font-size:26px; }.footer-brand strong { font-size:13px; }.footer p { margin:15px 0 8px; }.footer small { font-size:10px; }.footer nav,.footer-contact { display:flex; flex-direction:column; align-items:flex-start; }.footer nav a,.footer-contact a { min-height:34px; padding:6px 0; text-decoration:none; }.footer nav a:hover,.footer-contact a:hover { color:var(--accent); }.footer-contact { align-items:flex-end; }
.mobile-menu { width:min(490px,calc(100vw - 24px)); max-height:calc(100dvh - 24px); margin:12px 12px 12px auto; border:1px solid var(--line); border-radius:12px; padding:24px; color:var(--text); background:var(--surface); box-shadow:var(--shadow); overscroll-behavior:contain; }.mobile-menu::backdrop { background:rgba(8,20,36,.55); backdrop-filter:blur(3px); }.menu-heading { display:flex; justify-content:space-between; gap:12px; align-items:center; padding-bottom:14px; }.menu-heading p { font-size:14px; font-weight:600; }.icon-button { font-size:29px; flex-shrink:0; }.mobile-menu nav { margin:3px 0 25px; }.mobile-menu nav a { display:flex; align-items:center; gap:18px; min-height:51px; padding:10px 0; border-bottom:1px solid var(--line); text-decoration:none; font-size:18px; font-weight:500; }.mobile-menu nav a span { color:var(--muted); font-size:10px; font-weight:400; }.mobile-menu nav a b { margin-left:auto; font-size:17px; color:var(--accent); }.mobile-menu nav a[aria-current="page"] { color:var(--accent); }.mobile-menu > .button { width:100%; justify-content:space-between; }.menu-note { font-size:10px; color:var(--muted); margin-top:16px; }.noscript-note { max-width:850px; margin:30px auto; border:1px solid var(--line); padding:25px; }
@media(min-width:981px) { .mobile-menu { display:none; } }
@media(max-width:1150px) {
  .nav-shell { gap:22px; }.desktop-nav { gap:18px; }.hero { gap:35px; }.chart-layout { gap:14px; }.industry-card { padding:23px; }.proof-strip a { padding:0 20px; gap:12px; }.proof-strip strong { font-size:33px; }
}
@media(max-width:980px) {
  .nav-shell { min-height:76px; }.header-actions { margin-left:auto; gap:10px; }.desktop-nav { display:none; }.js .menu-toggle { display:flex; align-items:center; justify-content:center; gap:13px; padding:9px 12px; min-height:44px; background:var(--surface); border:1px solid var(--line); border-radius:5px; font-size:12px; font-weight:600; }
  html:not(.js) .desktop-nav { display:flex; flex-wrap:wrap; width:100%; order:3; gap:4px 20px; margin:0; }html:not(.js) .nav-shell { flex-wrap:wrap; padding-top:16px; padding-bottom:12px; }html:not(.js) .desktop-nav a { padding:10px 0; }html:not(.js) .desktop-nav a::after { display:none; }
  .burger { display:grid; gap:4px; }.burger i { width:17px; height:1.5px; background:currentColor; }
  .hero { grid-template-columns:1.1fr 1fr; gap:25px; padding-top:42px; }.hero-copy h1 { font-size:44px; }.hero-title { font-size:25px; }.hero .eyebrow { font-size:9px; }.hero-summary { font-size:13px; }.chart-layout { grid-template-columns:1fr; }.donut { width:170px; margin:auto; }.chart-legend { grid-template-columns:1fr 1fr; gap:8px 14px; }.industry-card h2 { font-size:22px; }.lede { font-size:16px; }.hero .button { font-size:12px; padding:10px 15px; gap:18px; }
  .proof-strip strong { font-size:29px; }.proof-strip a { flex-direction:column; align-items:flex-start; }.proof-strip b { font-size:11px; }.service-card { padding:20px; }.service-card h3 { font-size:21px; }.section-heading { gap:25px; }.section-heading > p { max-width:300px; }.tech-grid,.game-grid { grid-template-columns:1fr 1fr; }.logo-grid { grid-template-columns:repeat(3,1fr); }.featured-results { gap:13px; }.result-card { padding:23px; }.result-card .result-value { font-size:34px; }.industry-detail { gap:30px; }.contact-layout { gap:30px; }.contact-facts div { grid-template-columns:110px 1fr; }
}
@media(max-width:700px) {
  .view { padding-left:20px; padding-right:20px; }.nav-shell { padding:0 20px; min-height:72px; gap:12px; }.brand { gap:9px; }.brand-text strong { font-size:13px; }.brand-text small { font-size:9px; }.brand-monogram { font-size:29px; }.header-cv { display:none; }.theme-toggle { width:38px; min-height:44px; border:0; background:transparent; font-size:24px; }.header-actions { gap:3px; }.js .menu-toggle { padding:8px 10px; gap:10px; }
  .hero { grid-template-columns:1fr; padding:35px 0 30px; gap:32px; }.hero-copy h1 { font-size:clamp(2.4rem,9.1vw,3.4rem); margin:17px 0 12px; }.hero-title { font-size:27px; }.hero .eyebrow { font-size:9px; letter-spacing:.1em; }.lede { margin-top:20px; font-size:17px; max-width:350px; }.hero-summary { font-size:14px; margin-bottom:23px; }.hero .button { min-height:48px; font-size:13px; padding:12px 19px; gap:22px; }.location-line { font-size:10px; margin-top:18px; }.location-line span { margin:0 4px; }.industry-card { padding:22px; }.industry-card h2 { margin-top:8px; }.chart-layout { grid-template-columns:1.1fr 1fr; gap:17px; }.donut { width:100%; }.chart-legend { grid-template-columns:1fr; gap:8px; }.chart-legend li { font-size:10px; }.chart-figure { margin-top:20px; }.chart-figure figcaption { font-size:10px; margin-top:17px; }
  .proof-strip { padding:22px 0; gap:14px; }.proof-strip a { padding:0 12px 0 0; gap:10px; }.proof-strip strong { font-size:26px; }.proof-strip strong span { font-size:18px; }.proof-strip b { font-size:10px; line-height:1.4; }.proof-strip small { font-size:9px; line-height:1.5; }
  .logo-band { padding:32px 0; }.section-heading,.section-heading.compact { display:block; margin-bottom:22px; }.section-heading h2 { font-size:28px; }.section-heading.compact h2 { font-size:25px; }.section-heading > p { margin-top:17px; max-width:none; }.section-heading > .text-link { margin-top:10px; }.logo-collage { padding:18px 12px; }.logo-collage img { max-height:none; }.overview-section { padding:35px 0; }.service-grid { grid-template-columns:1fr; gap:13px; }.service-card { padding:23px; }.service-number { margin-bottom:17px; }.service-card h3 { font-size:23px; }.service-card h3 br { display:none; }.service-card p { margin:12px 0; }.service-card .text-link { min-height:38px; }.recent-role { grid-template-columns:1fr 20px; gap:3px 15px; padding:19px 0; }.recent-role time { grid-column:1; font-size:11px; }.recent-role > div { grid-column:1; }.recent-role > span { grid-column:2; grid-row:1/3; }.recent-role strong { font-size:17px; }.recent-role p { font-size:12px; }.next-step { flex-direction:column; align-items:flex-start; padding:35px 0; gap:23px; }.next-step h2 { font-size:27px; }
  .content-view { padding-top:30px; padding-bottom:42px; }.page-heading { margin-bottom:28px; }.page-heading h1 { font-size:38px; margin:16px 0; }.page-heading > p:not(.eyebrow) { font-size:15px; }.path-grid,.featured-results,.tech-grid,.value-add-grid,.metrics-grid,.reference-list,.industry-detail,.rosetta-feature,.contact-layout { grid-template-columns:1fr; }.path-card { padding:23px; }.path-card h2 { font-size:21px; }.search-panel { grid-template-columns:1fr auto; padding:16px; gap:14px; }.search-panel label:first-child { grid-column:1/-1; }.search-panel input,.search-panel select { font-size:16px; }.search-panel .button { min-height:48px; padding:10px 14px; font-size:12px; }.search-panel label { min-width:0; }
  .role-card > summary { padding:18px 15px; grid-template-columns:1fr 23px; gap:7px 12px; }.role-period { grid-column:1; font-size:10px; }.role-heading { grid-column:1; }.role-expand { grid-column:2; grid-row:1/3; }.role-heading h2 { font-size:17px; }.role-heading p { font-size:12px; }.role-body { margin-left:0; padding:0 18px 20px; font-size:13px; }.role-body .tag { font-size:10px; }.results-heading { font-size:11px; }.results-heading .text-button { font-size:12px; }.result-card { padding:25px; }.result-card .result-value { font-size:44px; margin:18px 0; }.featured-results { margin-bottom:34px; }.logo-grid { grid-template-columns:1fr 1fr; gap:11px; }.logo-tile { padding:12px; }.logo-image { height:70px; padding:10px; }.logo-image img { max-width:100%; max-height:45px; }.logo-tile .evidence-links a { min-height:32px; }.logo-tile p { font-size:10px; }.inline-cta { align-items:flex-start; gap:17px; flex-direction:column; }.industry-detail .industry-card { padding:25px; }.industry-detail .donut { max-width:245px; }.industry-detail .chart-legend { grid-template-columns:1fr 1fr; gap:12px 18px; }.industry-detail .chart-legend li { font-size:10px; }.industry-row { grid-template-columns:105px 1fr 25px; gap:12px; }.rosetta-feature { padding:24px; gap:25px; }.rosetta-feature .actions { gap:10px; }.rosetta-feature .button { font-size:12px; padding:10px 15px; gap:18px; }.game-grid { grid-template-columns:1fr 1fr; gap:14px; }.game-image { height:130px; padding:10px; }.game-copy { padding:15px; }.game-copy h2 { font-size:18px; }.game-copy > p { font-size:10px; }.game-copy details { font-size:12px; }.contact-email { font-size:25px; }.contact-phone { font-size:21px; }.contact-facts div { font-size:12px; }.cv-card { padding:27px; }.footer { padding:30px 20px; grid-template-columns:1fr 1fr; gap:24px 18px; }.footer > div:first-child { grid-column:1/-1; }.footer-contact { align-items:flex-start; font-size:11px; }.footer nav { font-size:11px; }.footer nav a,.footer-contact a { min-height:39px; }
}
@media(max-width:360px) { .brand-text small { display:none; }.brand-text strong { font-size:11px; }.nav-shell { padding:0 14px; }.view { padding-left:16px; padding-right:16px; }.theme-toggle { width:32px; }.js .menu-toggle { padding:8px; }.hero .button { padding:11px 14px; gap:14px; }.location-line { font-size:9px; }.industry-card { padding:17px; }.chart-layout { gap:12px; }.chart-legend li { font-size:9px; }.proof-strip { gap:8px; }.proof-strip strong { font-size:23px; }.proof-strip strong span { font-size:16px; }.proof-strip a { padding-right:7px; }.mobile-menu { padding:20px; }.mobile-menu nav a { font-size:17px; }.page-heading h1 { font-size:33px; }.game-grid { grid-template-columns:1fr; }.game-image { height:180px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }*,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }
@media print {
  :root,:root[data-theme="dark"] { --bg:#fff; --surface:#fff; --soft:#eee; --text:#111; --muted:#444; --line:#ccc; --accent:#174d99; }
  .site-header,.footer,.mobile-menu,.search-panel,.results-heading,.actions,.next-step { display:none!important; }
  [data-view][hidden] { display:block!important; }.view { max-width:none; padding:15px 0; }.hero { padding-top:0; }.content-view { break-before:page; }.page-heading h1 { font-size:32px; }.role-card { break-inside:avoid; }.path-card,.tech-card,.game-card { break-inside:avoid; }
}
.cv-logo { flex-shrink:0; background-repeat:no-repeat; }
.organisation-wordmark { color:#15243b; font-size:16px; font-weight:700; line-height:1.15; text-align:center; }
.nav-more { position:relative; font-size:13px; font-weight:600; color:var(--muted); }
.nav-more > summary { display:flex; align-items:center; gap:6px; min-height:44px; list-style:none; }
.nav-more > summary::-webkit-details-marker { display:none; }
.nav-more[open] > summary { color:var(--accent); }
.nav-more > div { position:absolute; top:calc(100% + 10px); right:-30px; width:220px; padding:10px 17px; background:var(--surface); border:1px solid var(--line); border-radius:6px; box-shadow:var(--shadow); }
.desktop-nav .nav-more a { display:block; padding:11px 0; min-height:44px; }
.desktop-nav .nav-more a::after { display:none; }
