/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.static{position:static}.start{inset-inline-start:var(--spacing)}}:root{--font-geist-sans:"Helvetica Neue", "Segoe UI", Arial, sans-serif;--font-geist-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--ink:#0b1211;--paper:#eef0e9;--paper-deep:#e4e7de;--signal:#c9ff36;--signal-dark:#9dc91e;--muted:#66706c;--line:#0b121129}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{background:var(--paper);color:var(--ink);font-family:var(--font-geist-sans), Arial, sans-serif;-webkit-font-smoothing:antialiased;margin:0}a{color:inherit;text-decoration:none}::selection{background:var(--signal);color:var(--ink)}.site-header{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:var(--paper);align-items:center}@supports (color:color-mix(in lab, red, red)){.site-header{background:color-mix(in srgb, var(--paper) 88%, transparent)}}.site-header{border-bottom:1px solid var(--line);z-index:20;grid-template-columns:1fr auto 1fr;gap:24px;height:84px;padding:0 clamp(22px,4vw,72px);display:grid;position:fixed;top:0;left:0;right:0}.brand{align-items:center;gap:14px;width:fit-content;display:flex}.brand-mark{filter:brightness(0);object-fit:contain;width:92px;height:27px;display:block}.brand-detail{border-left:1px solid var(--line);font-family:var(--font-geist-mono), monospace;letter-spacing:.08em;text-transform:uppercase;padding-left:13px;font-size:8px;line-height:1.25}nav{gap:clamp(22px,3vw,48px);display:flex}nav a{font-size:13px;font-weight:620;position:relative}nav a:after{background:var(--ink);content:"";transform-origin:100%;width:100%;height:1px;transition:transform .25s;position:absolute;bottom:-7px;left:0;transform:scaleX(0)}nav a:hover:after,nav a:focus-visible:after{transform-origin:0;transform:scaleX(1)}.header-contact{font-family:var(--font-geist-mono), monospace;letter-spacing:.03em;text-transform:uppercase;justify-self:end;font-size:11px;font-weight:700}.header-contact span{color:var(--signal-dark);margin-left:6px;font-size:16px}.hero{grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);min-height:100svh;padding:170px clamp(22px,4vw,72px) 0;display:grid;position:relative;overflow:hidden}.hero:before,.contact:before{background:linear-gradient(90deg, transparent 0, var(--line) 50%, transparent 100%);content:"";opacity:.36;pointer-events:none;height:1px;position:absolute;top:47%;left:0;right:0}.hero-copy{z-index:1;max-width:850px;padding:3vh 6vw 110px 0;position:relative}.eyebrow,.section-label{font-family:var(--font-geist-mono), monospace;letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:12px;margin:0;font-size:10px;font-weight:700;display:flex}.eyebrow span,.section-label span{background:var(--ink);color:var(--paper);letter-spacing:0;border-radius:50%;justify-content:center;align-items:center;width:27px;height:27px;display:inline-flex}h1{letter-spacing:-.075em;margin:52px 0 46px;font-size:clamp(58px,7.2vw,126px);font-weight:680;line-height:.96}h1 em,.contact h2 em{color:var(--muted);font-family:Georgia,serif;font-weight:400}.hero-lead{max-width:670px;margin:0;font-size:clamp(18px,1.45vw,24px);line-height:1.48}.hero-actions{flex-wrap:wrap;align-items:center;gap:32px;margin-top:46px;display:flex}.button{font-family:var(--font-geist-mono), monospace;letter-spacing:.035em;text-transform:uppercase;justify-content:center;align-items:center;gap:28px;min-height:58px;padding:0 25px;font-size:11px;font-weight:750;transition:transform .2s,background .2s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--ink);color:#fff}.button-primary span{color:var(--signal);font-size:18px}.text-link{border-bottom:1px solid var(--ink);padding:8px 0;font-size:13px;font-weight:650}.text-link span{margin-left:12px}.signal-panel{color:#fff;background:#0a1210;align-self:center;height:min(600px,64vh);min-height:510px;position:relative;overflow:hidden;box-shadow:0 28px 70px #0b121121}.panel-topline{font-family:var(--font-geist-mono), monospace;letter-spacing:.08em;border-bottom:1px solid #ffffff29;justify-content:space-between;align-items:center;padding:20px 22px;font-size:9px;display:flex}.live{color:var(--signal)}.live i{background:var(--signal);border-radius:50%;width:6px;height:6px;margin-right:7px;animation:1.8s infinite pulse;display:inline-block}.traffic-map{background:#07110f;justify-content:center;align-items:center;height:calc(100% - 142px);display:flex;position:relative;overflow:hidden}.application-path-art{object-fit:contain;width:auto;max-width:none;height:106%;display:block}.panel-readout{border-top:1px solid #ffffff29;grid-template-columns:repeat(3,1fr);display:grid;position:absolute;bottom:0;left:0;right:0}.panel-readout div{border-right:1px solid #ffffff29;padding:14px 18px}.panel-readout div:last-child{border:0}.panel-readout span,.panel-readout strong{font-family:var(--font-geist-mono), monospace;display:block}.panel-readout span{color:#7d8882;letter-spacing:.08em;font-size:7px}.panel-readout strong{color:var(--signal);margin-top:5px;font-size:13px}.hero-proof{border-top:1px solid var(--line);z-index:2;grid-column:1/-1;grid-template-columns:repeat(4,1fr);align-items:stretch;display:grid;position:relative;bottom:0}.hero-proof div{border-right:1px solid var(--line);align-items:center;gap:16px;min-height:98px;padding:18px 24px;display:flex}.hero-proof div:last-child{border:0}.hero-proof strong{font-family:var(--font-geist-mono), monospace;letter-spacing:-.04em;font-size:25px}.hero-proof span{color:var(--muted);max-width:120px;font-size:11px;line-height:1.3}.position,.future,.method{padding:130px clamp(22px,6vw,112px)}.position{grid-template-columns:.7fr 1.3fr;gap:60px 7vw;display:grid}.section-label{align-self:start}.section-label.light{color:#fff}.section-label.light span{background:var(--signal);color:var(--ink)}.position-heading{grid-column:2;max-width:980px}.position-heading>p,.kicker{color:var(--signal-dark);font-family:var(--font-geist-mono), monospace;letter-spacing:.08em;text-transform:uppercase;margin:0 0 24px;font-size:11px;font-weight:700}.position h2,.services-intro h2,.future h2,.method h2,.heritage h2,.contact h2{letter-spacing:-.065em;margin:0;font-size:clamp(42px,5vw,82px);font-weight:590;line-height:.99}.position-copy{grid-column:2;grid-template-columns:1fr 1fr;gap:30px;max-width:900px;display:grid}.position-copy p{margin:0;font-size:16px;line-height:1.65}.position-copy p:first-child{font-size:20px}.expertise-rail{border-bottom:1px solid var(--line);border-top:1px solid var(--line);flex-wrap:wrap;grid-column:1/-1;gap:0;margin-top:42px;display:flex}.expertise-rail span{border-right:1px solid var(--line);font-family:var(--font-geist-mono), monospace;text-align:center;flex:1;min-width:130px;padding:19px 15px;font-size:9px;font-weight:700}.services{background:var(--ink);color:#fff;padding:118px clamp(22px,4vw,72px) 130px}.services-intro{grid-template-columns:1.4fr .6fr;gap:40px;margin:70px 0 76px;display:grid}.services-intro h2{max-width:900px}.services-intro p{color:#adb5b0;align-self:end;max-width:380px;margin:0 0 5px;font-size:16px;line-height:1.6}.service-grid{border-top:1px solid #ffffff2b;border-left:1px solid #ffffff2b;grid-template-columns:repeat(3,1fr);display:grid}.service-card{border-bottom:1px solid #ffffff2b;border-right:1px solid #ffffff2b;flex-direction:column;min-height:390px;padding:32px;transition:background .25s,color .25s;display:flex;position:relative}.service-card:hover{background:var(--signal);color:var(--ink)}.card-number{color:var(--signal);font-family:var(--font-geist-mono), monospace;font-size:10px}.service-card:hover .card-number{color:var(--ink)}.service-card h3{letter-spacing:-.04em;max-width:270px;margin:auto 0 20px;font-size:28px;font-weight:560;line-height:1.08}.service-card>p{color:#adb5b0;max-width:340px;margin:0 0 28px;font-size:14px;line-height:1.6}.service-card:hover>p{color:#0b1211b8}.tag-row{flex-wrap:wrap;gap:6px;display:flex}.tag-row span{color:#d8ddd9;font-family:var(--font-geist-mono), monospace;text-transform:uppercase;border:1px solid #ffffff47;border-radius:99px;padding:7px 9px;font-size:8px}.service-card:hover .tag-row span{color:var(--ink);border-color:#0b121147}.future{background:var(--paper-deep);grid-template-columns:.7fr 1.3fr;gap:64px 7vw;display:grid}.future-heading{grid-column:2;max-width:970px}.future-heading>p:last-child{max-width:770px;margin:38px 0 0;font-size:17px;line-height:1.68}.future-grid{border-left:1px solid var(--line);border-top:1px solid var(--line);grid-column:1/-1;grid-template-columns:repeat(3,1fr);margin-top:24px;display:grid}.future-grid article{border-bottom:1px solid var(--line);border-right:1px solid var(--line);min-height:280px;padding:30px}.future-grid article>span{color:var(--signal-dark);font-family:var(--font-geist-mono), monospace;font-size:10px}.future-grid h3{letter-spacing:-.035em;max-width:260px;margin:86px 0 18px;font-size:25px;font-weight:580;line-height:1.08}.future-grid p{color:var(--muted);max-width:330px;margin:0;font-size:13px;line-height:1.6}.method{padding-bottom:150px}.method-layout{grid-template-columns:.82fr 1.18fr;gap:10vw;margin-top:86px;display:grid}.method-intro h2{font-size:clamp(42px,4.6vw,74px)}.method-intro>p:last-child{max-width:500px;margin:38px 0 0;font-size:16px;line-height:1.65}.steps{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.steps li{border-bottom:1px solid var(--line);grid-template-columns:44px 1fr;gap:26px;padding:25px 0;display:grid}.steps li>span{color:var(--signal-dark);font-family:var(--font-geist-mono), monospace;padding-top:4px;font-size:10px}.steps h3{letter-spacing:-.025em;margin:0 0 8px;font-size:21px}.steps p{color:var(--muted);max-width:580px;margin:0;font-size:13px;line-height:1.55}.heritage{color:#fff;background:#17201e;grid-template-columns:.8fr 1.2fr;gap:70px 7vw;padding:120px clamp(22px,6vw,112px);display:grid;position:relative;overflow:hidden}.heritage-grid{background:linear-gradient(90deg,#0000,#ffffff1f,#0000);height:1px;position:absolute;top:50%;left:0;right:0}.heritage>:not(.heritage-grid){z-index:1;position:relative}.heritage-main{grid-column:2}.archive-stamp{color:var(--signal);font-family:var(--font-geist-mono), monospace;letter-spacing:.12em;margin:0 0 28px;font-size:10px}.heritage-main>p:last-child{color:#b7c0bb;max-width:790px;margin:38px 0 0;font-size:17px;line-height:1.7}blockquote{border:1px solid #ffffff2e;margin:20px 0 0;padding:34px}blockquote>span{color:var(--signal);font-family:Georgia,serif;font-size:64px;line-height:.6}blockquote p{letter-spacing:-.04em;margin:30px 0 24px;font-family:Georgia,serif;font-size:clamp(30px,3.2vw,52px);font-style:italic;line-height:1}blockquote cite{color:#8e9a94;font-family:var(--font-geist-mono), monospace;letter-spacing:.08em;text-transform:uppercase;font-size:8px;font-style:normal}.heritage-note{border-top:1px solid #fff3;align-self:end;margin-top:20px;padding-top:24px}.heritage-note b{color:var(--signal);font-family:var(--font-geist-mono), monospace;letter-spacing:.07em;text-transform:uppercase;font-size:10px}.heritage-note p{color:#b7c0bb;max-width:670px;margin:18px 0 0;font-size:14px;line-height:1.65}.contact{grid-template-columns:1.2fr .8fr;gap:8vw;padding:140px clamp(22px,6vw,112px);display:grid;position:relative;overflow:hidden}.contact>div{z-index:1;position:relative}.contact h2{margin-top:45px;font-size:clamp(50px,6.2vw,98px)}.contact-side{align-self:end}.contact-side p{color:var(--muted);max-width:500px;margin:0 0 36px;font-size:16px;line-height:1.65}footer{background:var(--ink);color:#fff;font-family:var(--font-geist-mono), monospace;letter-spacing:.06em;text-transform:uppercase;grid-template-columns:1fr auto 1fr;align-items:center;min-height:110px;padding:24px clamp(22px,4vw,72px);font-size:8px;display:grid}footer .brand-detail{border-color:#ffffff4d}footer .brand-mark{filter:none}footer p{color:#85908a;margin:0}footer p:last-child{justify-self:end}@keyframes pulse{50%{opacity:.5}}@media (width<=1020px){.site-header{grid-template-columns:1fr auto}nav{display:none}.hero{grid-template-columns:1fr;padding-top:150px}.hero-copy{padding-right:0}.signal-panel{height:540px;min-height:0;margin-bottom:80px}.position,.future{grid-template-columns:1fr}.position-heading,.position-copy,.future-heading{grid-column:1}.services-intro,.method-layout,.heritage,.contact{grid-template-columns:1fr}.service-grid{grid-template-columns:repeat(2,1fr)}.heritage-main{grid-column:1}.contact-side{max-width:620px}}@media (width<=680px){.site-header{height:72px;padding-inline:18px}.brand-detail{display:none}.header-contact{font-size:9px}.hero{padding:128px 18px 0}h1{margin:42px 0 34px;font-size:clamp(54px,17vw,78px)}.hero-copy{padding-bottom:78px}.hero-lead{font-size:17px}.hero-actions{flex-direction:column;align-items:flex-start}.signal-panel{height:460px;margin-bottom:56px}.application-path-art{height:102%}.panel-readout div{padding-inline:10px}.hero-proof{grid-template-columns:1fr 1fr}.hero-proof div{border-bottom:1px solid var(--line);min-height:84px;padding:14px 12px}.position,.future,.method,.services,.heritage,.contact{padding:92px 18px}.position{gap:42px}.position-copy{grid-template-columns:1fr}.expertise-rail{margin-top:20px}.expertise-rail span{flex-basis:50%}.services-intro{margin:54px 0}.service-grid{grid-template-columns:1fr}.service-card{min-height:340px}.future-grid{grid-template-columns:1fr}.future-grid article{min-height:250px}.future-grid h3{margin-top:70px}.method-layout{margin-top:58px}blockquote{padding:28px 22px}footer{grid-template-columns:1fr;gap:24px;padding-block:32px}footer p:last-child{justify-self:start}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}

/* ---- dcc.fi static additions (5 Nov 2026) ---- */
.labs-note { color: #b7c0bb; font-size: 14px; line-height: 1.65; margin: 18px 0 0; max-width: 670px; }
.labs-note a { color: var(--signal); border-bottom: 1px solid currentColor; }
footer { font-size: 10px; line-height: 1.7; }
footer a { border-bottom: 1px solid rgba(255,255,255,.35); }
footer p:last-child { text-align: right; }
.legal { padding: 170px clamp(22px, 6vw, 112px) 120px; max-width: 980px; }
.legal h1 { font-size: clamp(44px, 6vw, 84px); margin: 40px 0 24px; }
.legal h2 { font-size: 24px; font-weight: 600; letter-spacing: -.02em; margin: 48px 0 12px; }
.legal p { font-size: 16px; line-height: 1.7; margin: 0 0 14px; max-width: 760px; }
.legal a { border-bottom: 1px solid var(--ink); }
.legal-meta { color: var(--muted); font-family: var(--font-geist-mono), monospace; font-size: 11px !important; letter-spacing: .04em; text-transform: uppercase; }
.legal-lead { font-size: 20px !important; }
@media (max-width: 680px) {
  .legal { padding: 120px 18px 80px; }
  .hero-proof div { flex-direction: column; align-items: flex-start; gap: 6px; }
  .hero-proof span { max-width: none; }
  footer p:last-child { text-align: left; }
}

/* ==== Type scale and review fixes, Claude 016 (5 Nov 2026, rev 3) ====
   Five sizes only, modelled on the GOV.UK type scale (body 19 px, few steps, ~5:1 range):
   display 80 · heading 48 · sub 24 · body 19 · small 15. Every element maps to one of them. */
:root {
  --fs-display: clamp(48px, 5.6vw, 80px);
  --fs-heading: clamp(32px, 3.6vw, 48px);
  --fs-sub: 24px;
  --fs-body: 19px;
  --fs-small: 15px;
  --muted: #4a534f;          /* grey text on light background: ~7:1 contrast */
  --muted-on-dark: #b3bdb8;  /* grey text on dark sections */
}

/* 80 — display */
h1 { font-size: var(--fs-display); }
h1 em, .contact h2 em { color: #66706c; }

/* 48 — section headings, quote */
.position h2, .services-intro h2, .future h2, .method h2, .method-intro h2, .heritage h2, .contact h2,
.legal h1, blockquote p { font-size: var(--fs-heading); }

/* 24 — card headings, lead sentence, proof figures */
.service-card h3, .future-grid h3, .steps h3, .legal h2, .hero-proof strong,
.hero-lead, .legal-lead { font-size: var(--fs-sub) !important; line-height: 1.3; }
.service-card h3, .future-grid h3, .steps h3, .legal h2 { letter-spacing: -.02em; line-height: 1.15; }
.hero-proof strong { line-height: 1.1; }

/* 19 — all running text */
.position-copy p, .position-copy p:first-child, .services-intro p, .future-heading > p:last-child,
.method-intro > p:last-child, .heritage-main > p:last-child, .contact-side p, .legal p,
.service-card > p, .future-grid p, .steps p, .heritage-note p, .labs-note { font-size: var(--fs-body); line-height: 1.6; }

/* 15 — everything small */
nav a, .text-link, .button, .header-contact, .brand-detail,
.eyebrow, .section-label, .position-heading > p, .kicker, .card-number, .future-grid article > span,
.steps li > span, .archive-stamp, .heritage-note b, .expertise-rail span, .legal-meta,
.panel-topline, .panel-readout span, .panel-readout strong, .tag-row span, blockquote cite, footer,
.hero-proof span { font-size: var(--fs-small) !important; }
.brand-detail, .eyebrow, .section-label, .archive-stamp, .expertise-rail span, .panel-topline { letter-spacing: .06em; }
.panel-readout span, blockquote cite, footer p { color: var(--muted-on-dark); }
.hero-proof span { color: var(--ink); max-width: 200px; line-height: 1.35; }

/* Hero proof strip: compact cells */
.hero { grid-template-rows: 1fr auto; }
.hero-proof div { min-height: 96px; }
.hero-proof strong { white-space: nowrap; }

/* Tablet and phone: section links stay visible as a scrollable row (no JavaScript) */
@media (width <= 1020px) {
  html { scroll-padding-top: 130px; }
  .site-header { height: auto; padding-top: 14px; grid-template-rows: auto auto; row-gap: 10px; }
  nav { display: flex; grid-column: 1 / -1; grid-row: 2; overflow-x: auto; gap: 26px; padding: 4px 0 12px; scrollbar-width: none; }
  nav::-webkit-scrollbar { display: none; }
  nav a { white-space: nowrap; }
  .hero { padding-top: 170px; }
  .legal { padding-top: 180px; }
}
@media (width <= 680px) {
  .site-header { height: auto; }
  .hero { padding-top: 150px; }
  .service-card, .future-grid article { min-height: 0; }
  .service-card h3 { margin-top: 36px; }
  .future-grid h3 { margin-top: 32px; }
  .hero-proof { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
  .hero-proof strong { white-space: normal; }
  .panel-readout div { padding-inline: 8px; }
}

/* ==== Diagrams and service icons, Claude 016 (5 Nov 2026) ==== */
.dg { grid-column: 1 / -1; margin: 42px 0 0; background: #0a1210; color: #fff; padding: clamp(20px, 3vw, 36px); }
.dg-cols { display: grid; grid-template-columns: 1fr 2fr; gap: clamp(20px, 3vw, 44px); align-items: start; }
.dg-col { border: 1px solid #ffffff29; padding: 22px; }
.dg-head { margin: 0 0 18px; font-family: var(--font-geist-mono), monospace; font-size: var(--fs-small); letter-spacing: .06em; text-transform: uppercase; color: var(--signal); }
.dg-head span { color: var(--muted-on-dark); text-transform: none; letter-spacing: 0; margin-left: 10px; }
.dg-flow { display: flex; flex-direction: column; }
.dg-row { display: flex; align-items: center; }
.dg-row > .dg-node, .dg-row > .dg-group { flex: 1 1 0; min-width: 0; }
.dg-row > .dg-boundary { flex: 3 1 0; }
.dg-node { position: relative; border: 1px solid #ffffff3d; background: #0f1a17; padding: 14px 16px; font-size: var(--fs-small); line-height: 1.35; }
.dg-node b { display: block; font-family: var(--font-geist-mono), monospace; font-weight: 700; color: #fff; }
.dg-node span { display: block; margin-top: 4px; color: var(--muted-on-dark); }
.dg-dcc { border-color: var(--signal); }
.dg-group { position: relative; border: 1px dashed #ffffff66; padding: 12px 14px 16px; }
.dg-group-label { margin: 0 0 12px; font-family: var(--font-geist-mono), monospace; font-size: var(--fs-small); color: var(--muted-on-dark); }
.dg-badge { position: absolute; top: -13px; right: -13px; z-index: 1; width: 26px; height: 26px; border-radius: 50%; background: var(--signal); color: var(--ink); display: flex; align-items: center; justify-content: center; }
.dg-badge svg { width: 16px; height: 16px; }
/* connectors: vertical by default, horizontal inside rows */
.dg-arrow { position: relative; display: block; flex: 0 0 auto; width: 2px; height: 30px; margin: 0 auto; background: #ffffff59; }
.dg-arrow::after { content: ""; position: absolute; left: -4px; bottom: -6px; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 7px solid #ffffff59; }
.dg-arrow.sec { background: var(--signal); }
.dg-arrow.sec::after { border-top-color: var(--signal); }
.dg-row > .dg-arrow { width: 30px; height: 2px; margin: 0 8px 0 0; }
.dg-row > .dg-arrow::after { left: auto; bottom: auto; right: -6px; top: -4px; border: 0; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 7px solid #ffffff59; }
.dg-row > .dg-arrow.sec::after { border-left-color: var(--signal); }
/* bus from the policy layer to the four destinations */
.dg-bus { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 30px; padding-top: 22px; border-top: 2px solid #ffffff59; }
.dg-bus::before { content: ""; position: absolute; top: -32px; left: 50%; width: 2px; height: 30px; background: #ffffff59; }
.dg-bus > .dg-node::before { content: ""; position: absolute; top: -23px; left: 50%; width: 2px; height: 22px; background: #ffffff59; }
/* method diagram */
.dg-method { margin-top: 64px; }
.dg-method .dg-row { gap: 0; }
.dg-ongoing { margin-top: 26px; }
.dg-teams { margin-top: 14px; background: transparent; border-style: dashed; text-align: center; }
.dg-teams b { font-family: var(--font-geist-sans), Arial, sans-serif; font-weight: 600; color: var(--muted-on-dark); }
/* legend */
.dg-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 30px; margin-top: 26px; font-size: var(--fs-small); color: var(--muted-on-dark); }
.dg-key { display: inline-flex; align-items: center; gap: 10px; }
.dg-key .dg-badge { position: static; flex: 0 0 auto; }
.k-line { display: inline-block; width: 32px; height: 2px; background: var(--signal); }
.k-box { display: inline-block; width: 22px; height: 16px; border: 1px solid var(--signal); }
.k-dash { display: inline-block; width: 22px; height: 16px; border: 1px dashed #ffffff8c; }
/* service card icons: technology symbol plus the DCC specialist badge */
.svc-icon { position: relative; width: 52px; height: 52px; border: 1px solid #ffffff3d; color: var(--signal); display: flex; align-items: center; justify-content: center; }
.svc-icon > svg { width: 26px; height: 26px; }
.svc-icon .dg-badge { top: auto; bottom: -10px; right: -10px; width: 24px; height: 24px; }
.service-card:hover .svc-icon { color: var(--ink); border-color: #0b121147; }
.service-card:hover .svc-icon .dg-badge { background: var(--ink); color: var(--signal); }
@media (width <= 1020px) {
  .dg-cols { grid-template-columns: 1fr; }
  .dg-row { flex-direction: column; align-items: stretch; }
  .dg-row > .dg-node, .dg-row > .dg-group { flex: 0 0 auto; }
  .dg-row > .dg-arrow { width: 2px; height: 30px; margin: 0 auto; }
  .dg-row > .dg-arrow::after { right: auto; top: auto; left: -4px; bottom: -6px; border: 0; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 7px solid #ffffff59; }
  .dg-row > .dg-arrow.sec::after { border-top-color: var(--signal); }
}
@media (width <= 680px) {
  .dg-bus { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 14px; }
  .dg-bus > .dg-node:nth-child(n+3)::before { display: none; }
  .dg-col { padding: 16px; }
}
.svc-icon { flex: 0 0 auto; margin-bottom: 34px; }
@media (width <= 680px) { .dg-method { display: none; } }
/* Diagram 02 rev: centred text, parallel lanes through the policy layer */
.dg-node, .dg-group-label { text-align: center; }
.dg-lanes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 10px; }
.dg-lanes > .dg-band { grid-column: 1 / -1; }
.dg-lanes > .dg-arrow { height: 34px; }
.dg-lanes > .dg-arrow:nth-child(-n+4) { height: 30px; margin-bottom: 6px; }
@media (width <= 680px) {
  .dg-lanes { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 0; }
  .dg-lanes > .dg-arrow:nth-child(3), .dg-lanes > .dg-arrow:nth-child(4) { display: none; }
  .dg-lanes > .dg-arrow:nth-child(8), .dg-lanes > .dg-arrow:nth-child(9) { display: none; }
  .dg-lanes > .dg-node:nth-last-child(-n+2) { margin-top: 12px; }
}
/* Section 02: "Then" beside the text, "Now" full width below */
.position > .section-label { grid-column: 1; grid-row: 1; }
.position-heading { grid-row: 1 / span 2; }
.position-copy { grid-row: 3; }
.dg-then { grid-column: 1; grid-row: 2 / span 2; margin: 0; align-self: start; }
.dg-now { grid-column: 1 / -1; grid-row: 4; margin-top: 20px; }
.position > .expertise-rail { grid-row: 5; }
@media (width <= 1020px) {
  .position > * { grid-column: 1 !important; grid-row: auto !important; }
  .dg-then { margin-top: 10px; }
}
.position { grid-template-rows: auto auto 1fr auto auto; }
.position-copy { align-self: start; }
@media (width <= 1020px) { .position { grid-template-rows: none; } }
/* Section 02 rev 2 (Timo's sketch): Then full height on the left, Now under the text on the right */
.position { grid-template-rows: auto auto auto 1fr auto; }
.dg-then { grid-row: 2 / span 3; align-self: stretch; display: flex; flex-direction: column; }
.dg-then > .dg-flow { flex: 1; justify-content: center; }
.dg-now { grid-column: 2; grid-row: 4; align-self: end; margin-top: 0; }
@media (width <= 1020px) { .dg-now { margin-top: 20px; } }
/* Hero proof strip: caption under the bold word in every cell */
.hero-proof div { flex-direction: column; align-items: flex-start; justify-content: center; gap: 6px; }
.hero-proof span { max-width: none; }
